🔖
プログラム学習
良いソフトウェアの定義
- 保守性が優れている
- 拡張性がある
- 可読性が高い(認知負荷が低い)
達人
- 適切なアーキテクチャを選定できる
- 引き出しをいっぱい持っている
- 良いコードと悪いコードの違いがなんなのか言語化できている
前提
- 現代において「プログラミング」というのはコードを手続的に書くことだけではない。手続きと構造を理解しなければ、コードは書けない
- 手続きを知るには、数学、アルゴリズムを学ぶ
- 構造を知るには、下記を学ぶ
凝集度・結合度(文・式・関数レベル)
オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling
SOLID原則・デザインパターン(ファイルレベル(クラス))
アーキテクチャ(フォルダレベル)
- 三層アーキテクチャ
- レイヤードアーキテクチャ
- クリーンアーキテクチャ
“1つの独立して動く要素”の内部を整理し直す 「改めて整理するアプリケーション設計の基本」で伝えたいこと
その他
GoFデザインパターン
48. GoFデザインパターンとDI (前編) w/ twada | fukabori.fm
アーキテクチャにおけるActiveRecordの位置付けや、PoEAAとrailsのActiveRecordの関係を説明している。「データモデリングを当てはめていくだけ」に持って行ったのがrailsのすごいところ
なぜ、Fat コントローラーになるのか、railsで開発していく中で苦しくなるケースやその理由を説明している。
7. Fat Controllers and Models by texta.fm
モデリング・設計
Discussion