分解して組み立てる
大辞林で「構造」を検索した時の説明文がこれ。
① 全体を形づくっている種々の材料による各部分の組み合わせ。作りや仕組み。 「機械の-」 「耐震-」
② さまざまな要素が相互に関連し合って作り上げている総体。また、各要素の相互関係。 「社会-」 「精神-」 「物質の-」 「文の-」 「汚職の-」
プログラミング1や、赤嶺先生の演習1で何度も出てきているキーワードの一つが構造化。対象をどういう機能に分解できるのかを考え、その機能を一つずつ作り上げていく。
最初から綺麗に分解できるとは限らないので、間違っても良い(後で使わない事になっても良い)からまずは「何かしらの一つの処理を実現する機能」に分解してみて、それを確認するための簡単なテストを用意し、テストが通るように実現する。
想定通りに動かないなら、使ってるライブラリのドキュメントを参照したり、デバッガを利用して、「何故こう動いているのか?」を明らかにしよう。
まずはテストが通ることを最優先し、バージョン管理。バージョン登録することでいつでもそこに戻れるようになる。余裕があればその動いたコードを俯瞰して、「よりうまい機能の切り出し方がないか」、「似たようなコードが散見していないか」等の観点から、見通しの良いコードを目指してみよう。
関数名・変数名等の命名規則や、ドキュメントも適切に用意することでコードの読みやすさが向上する。
みたいな話を14週かけてやってきました。残す所あと1回。