🔖

プログラム学習

2023/10/07に公開

良いソフトウェアの定義

  • 保守性が優れている
  • 拡張性がある
  • 可読性が高い(認知負荷が低い)

達人

  • 適切なアーキテクチャを選定できる
  • 引き出しをいっぱい持っている
  • 良いコードと悪いコードの違いがなんなのか言語化できている

前提

  • 現代において「プログラミング」というのはコードを手続的に書くことだけではない。手続きと構造を理解しなければ、コードは書けない
  • 手続きを知るには、数学、アルゴリズムを学ぶ
  • 構造を知るには、下記を学ぶ

https://github.com/bamboo-house/Good-Code

凝集度・結合度(文・式・関数レベル)

良いコードとは何か - エンジニア新卒研修 スライド公開

オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling

リファクタリング(第2版)既存のコードを安全に改善する

リファクタリング guru

SOLID原則・デザインパターン(ファイルレベル(クラス))

https://www.udemy.com/course/typescript-solid-design-patterns/learn/lecture/34149122?start=420#content

デザインパターン guru

アーキテクチャ(フォルダレベル)

  • 三層アーキテクチャ
  • レイヤードアーキテクチャ
  • クリーンアーキテクチャ

“1つの独立して動く要素”の内部を整理し直す 「改めて整理するアプリケーション設計の基本」で伝えたいこと

https://www.udemy.com/course/learning-application-architecture-with-reversi/learn/lecture/34348364?start=195#content

その他

GoFデザインパターン

48. GoFデザインパターンとDI (前編) w/ twada | fukabori.fm

アーキテクチャにおけるActiveRecordの位置付けや、PoEAAとrailsのActiveRecordの関係を説明している。「データモデリングを当てはめていくだけ」に持って行ったのがrailsのすごいところ

4. Not Just ORM by texta.fm

なぜ、Fat コントローラーになるのか、railsで開発していく中で苦しくなるケースやその理由を説明している。

7. Fat Controllers and Models by texta.fm

モデリング・設計

Discussion