ソフトウェア設計の原則を歴史から体系的に学ぶには
#設計 #アーキテクチャ
---
歴史を知ると、メタ認知できる
---
ジュニアエンジニアが「コードがいい感じにかける」を目指すステップとして
まず複雑GUIを何も考えずに作ってみる
エントロピー増大による無秩序で死ぬことを学ぶ
失敗しないとイメージが付かないので、できるだけ早い段階で失敗を経験するのがコツ
成功率は、失敗回数と試行回数に比例するから安全に失敗できるのはチート
設計を学ぶ具体的なモチベーションと目標を見つける
メンタルモデルを整える
設計の考え方とやり方
技術の格言を知る
設計原則の語彙を増やす
プログラマが知るべき97のこととかオブジェクト指向の原則(PrinciplesOfOod)とか、リーダブルコードとかA Philosophy of Software Designとか
後にパターンと呼ばれることになる解決策を考えだした開発者の考え方、価値観を学ぶ
Martin FowlerとRobert C. Martin(Uncle Bob)の著書とか
フロントエンド人物図鑑に乗ってる人のブログとか
研修資料を読む
辞書的に使っても良いので、とにかく本を読んで「しらないこと」、「なにを知るべきか」の土地勘を把握する
根無し草の知識の価値は低い
ジャンクフードなアウトプット
根のある知識は無形資産である
ベスト/グッドプラクティスよりもアンチパターンを優先的に理解する
問題解決の引き出しは多いに越したことはない
原則にはトレードオフがないが、価値にはトレードオフがある
ドメインとプレゼンテーションの分離
関心の分離はドメインとプレゼンテーションから考える(PDS)の基礎と考え方を知る
宣言型プログラミング
型による堅牢なプログラミング
テストやQAの基礎知識
---
ボーナスコンテンツ
計算幾何学
圏論
関数型プログラミング
メッセージパッシングとしてのオブジェクト指向
#成長し続ける能力