設計って何?

まず、先に言っておくと自分はど素人である。
仕事しているが、設計とかよくわかっていない。でも、設計って何なのかな?と思った場合、自分ならこう思うことをまとめてみた。

設計とは

設計というのは、自分がどういう考えを用いてプログラムを作るのかを、上位者およびプログラマに伝える方法である。
1人でプログラムを作るだけなら言語をいじればいい。別に設計とか必要ないと思う。自分で管理するには必要かもしれんが、最悪コードがある。

でも実際は1人で作ることは少ないだろう。チームで作るには他の人にどのようにプログラミングするか伝えないといけない。その為に必要なのが設計である。
なので、設計には言語が存在しない。他の人が見てもわかるように記述されている。

設計の仕方

設計の基本

設計の基本は、どういう考えを用いて作ったのかがわかるように記述する事。
プログラムの品質が悪くても良い。どういう考えを持って、こういう設計にしたのかを相手に伝えることが重要である。
見る側が評価できなければ、品質が良くても前には進む事もできない。
不具合があるかどうかもわからないので、見る側からしても先にすすめることはできない。
そんな時は、レビュー時に「この設計書何書いてるかわかりません。書き直して下さい。」と平気で言われる。コードが動いてても言われる。
だから、自分の考えがわかるような設計を絶対にすべき。

ベースがある場合の設計

仕事を引き受けた時、たいていはベースからコードをいじくり、新しいコードを追加したり、既存のコードを変更することが多いと思う。
そんな時は、設計する時に、ベースがどういう設計になっているのかを調査する。
ベースの設計が悪くても、その設計に基づいて行わないと顧客に「これだと、きちんとは動きますが、設計上は良く無いですね」と言われる。
なので、オブジェクト指向ならオブジェクト指向、手続きなら手続きで書いた方が良い。


なんか他にもいっぱいあった気がするけど、パッと思いついたのはこれくらい。
結局は、どういう考えを持って作ったのかが重要になってくる。
さて…考えなしに作ってしまったこのコードの設計書をどのようにして書こうか…
俺のデスマーチはまだ続きそうだ。