【3章~4章】プログラムは証明するために小さく分割する!@Clean Architectureを読んで学んだことメモ
どうも、たかふみです。
前回に続き、今日は「第3章〜第4章」です。
3章:パラダイムの概要
プログラミングをする際には3つの縛りがあり、これらによって我々がプログラミングをする際に"何をすべきではないか"ということが表現されています。(*1)
この後の章でそれぞれの縛りについて説明されています。
4章:構造化プログラミング
まず、テストはバグを見つけるために実行するものです。
そのため、テストによってプログラムが正しく動くということは証明できませんが「テストが問題無い=プログラムは正しく動作していないということを証明できない」ということになり、プログラムには問題が無いとみなすことができる、ということになります。
ここで、この証明をするにはプログラム自体が証明可能なプログラムであるという前提が必要になります。そのためにプログラムを分割する必要があります。
■ソフトウェア開発は数学ではなく、科学である
本章では、数学と科学について書かれています。
つまり、数学は真であることの証明を目指し、科学は偽であることの証明を目指すということです。
実験を繰り返すことで同じ現象を見ることができる、偽であることが証明できないのであれば十分に真とみなすことができる、という科学。テストも同じで、不具合を見つけることを目指して行うが、不具合があるということを証明できないのであれば、十分に問題なく動作するとみなすことができる。
■おわり
「プログラム=数学」という印象が強かったため、科学が出てきたのは驚きでした。「偽でないことを証明できなければ真とみなす」という考え方は覚えておきたいです。
それでは!
いいなと思ったら応援しよう!
読んでくださりありがとうございます。
これからもnoteで発信していくのでよろしくお願いします!