LoginSignup
1
0

More than 3 years have passed since last update.

Clean Architecture 第3章, 第4章のまとめ

Posted at
1 / 13

これはなに

Clean Architectureを読んで自分なりにまとめたものです。


第II部 構成要素から始めよ: プログラミングパラダイム

  • プログラミングには様々な革命が起きてきた
  • その中でも重要なのは、プログラミングパラダイムの革命
    • パラダイム
      • プログラミングの方法のこと
      • 言語とは比較的関係のないもの
    • パラダイムは、どのプログラミング構造を使うべきか、いつ使うべきかを教えてくれる
    • 現在、パラダイムは3つ存在している

第3章 パラダイムの概要

3つのパラダイム

  • 構造化プログラミング
  • オブジェクト指向プログラミング
  • 関数型プログラミング

構造化プログラミング

  • 制限のないジャンプ(goto文)🙅
    • if / then / else や do / while/ until などの構文に置き換えた

構造化プログラミングは、直接的な制御の移行に規律を課すものである。


オブジェクト指向プログラミング

  • コンストラクタ、インスタンス変数、メソッド、ポリモーフィズムの発見

オブジェクト指向プログラミングは、間接的な制御の移行に規律を課すものである。


関数型プログラミング

  • 代入をすることを制限→不変

関数型プログラミングは、代入に規律を課すものである。


考えるべきこと

  • 3つのプログラミングパラダイムは、プログラマから能力を"削除"している
    • 何をすべきかを教えてくれるわけではない
    • 何をすべきでないかを教えてくれている

まとめ

  • これらの3つが、アーキテクチャの大きな関心事に対応している
    • コンポーネントの分離
    • データ管理
    • 機能

第4章 構造化プログラミング

  • モジュールやコンポーネントなど、機能ごとに分割するのがベストプラクティスである

数学と科学の証明

  • 数学
    • 真であることを証明する
  • 科学
    • 真でないことを証明する
    • 反証

テスト

  • テストはバグが存在しないことではなく、バグが存在することを示すものである
    • テストによって正しくないことは証明できる
    • どれだけ最善を尽くしても、正しくないことを証明できない → 正しいとする
      • 科学的証明

goto文は反証することができない


まとめ

  • 構造化プログラミングの価値を高めるのは、反証可能なプログラミングの単位を作成する能力
  • ソフトウェアアーキテクトは、簡単に反証できるモジュール、コンポーネントなどを定義しようとする
  • アーキテクチャレベルで、機能分割するのがベストプラクティスと考えられている
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0