#前提
これは私の学習用なのでメモ程度の内容でしかありません。ご了承ください。
##プログラミングに銀の弾丸はない
プログラミングに特効薬はない
ソフトウェアは本質的に困難である4つの性質
- 複雑性
- 同調性
- 可変性
- 不可視性
##コードは設計書である
コードの設計とは、「コーディング」「デバック」「テスト」などを経て洗練されていく為プログラミングは創造的な行為である。
大事なのは、コードが設計書ならばコーディングをできるだけ早く始め不明確な所を洗い出し洗練し良いコードを書くことに専念する。
##コードは必ず変更される
本質的に複雑であるソフトウェアは完璧にならない為、「コードが変更される」や「機能の拡張をする」事を前提にし「コードが読みやすい」(参照透過性が高い)事を重視する事が大切である。
コードはコーディングしている時よりも読んでいる時間の方が長くなりやすい為、例え記述に時間を要しても読む時間を短縮できるならそうするべきである。
##まとめ
学生のプログラマーは拡張性や参照透過なコーディングは授業などでは取り扱うことが少ないためこういった概念的なものをもっと学習する必要があると思いました。