古庄親方の「PHPでRASIS四方山話」の最新号「『変更容易性』を担保するための言語機能」
私が編集支援している古庄親方の「PHPでRASIS四方山話」の最新号が鈴与シンワートで公開されました。
「『変更容易性』を担保するための言語機能」
PHPを極めたい方は是非お読みください!!
###
変更容易性のお話が少し長くなっていますが、比較的多岐にわたるポイントとメリットがあるので、もう少しだけ続けていきたいと思います。
さて。
プログラムが「レゴブロックのようなものである」という比喩は、時々、使われているかと思います。
一方では「小さくて簡単なパーツを組み合わせると、複雑なものでも作成が出来る」といったニュアンスで、このあたりは「スモール・イズ・ビューティフル」や「一つのプログラムには一つのことをうまくやらせる」といった、いわゆるUNIXなどでよく出てくるお話になります(参考:UNIXという考え方)
もちろん、その一方で「適切なパーツを適切に選択する事のむずかしさ」というのもあるのですが。
ただ、選択を間違えなければ、「作って増築や再構築をして」、かなりすごいものでも作成ができます。Googleの画像検索で「レゴブロック 東大」などのキーワードで検索をすると、何割かの方にとっては「レゴといって想像するものから、少しかけ離れた作成物」の画像が見れるのではないか、と思います。
ただ他方で。
数多くのプログラムを見ていると、「増築や再構築」に耐えられないコード、というのがありまして。
そういったコードは、レゴというよりは「ジェンガ」というテーブルゲームに酷似しているように思われます。
問題のあるコードでも、大抵の場合は「作成直後の変更」には、なんとか、耐えられることが多いです。
ただ、変更をするごとに「負の遺産」とでも呼ぶべきものが蓄積されていき、段々と「同じような変更のはずなのに修正にかかる時間がどんどんと増加していく」ようになります。
(この続きは以下をご覧ください)
https://s-port.shinwart.com/tech-column/php04/