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