昨日の感想の再考

Domain Specificな(開発対象の分野に特有の)ベースのライブラリをクライアントに安全で使いやすいように設計・実装するのは難しい。それによりアプリ側に近い部分(上位階層の部分)の処理のロジックも良い意味で自由度が減って(つまり誰が作成しても似たようになる可能性が高くなり)逆に分かりやすいコードにもなる。


そのことを言っているのであれば記事の内容は大きく外れてはいない。特に、Rubyのブロック構文や高階関数の機能は、そういった低レベルな(下位階層の)汎用性の高いライブラリを作成する際にかなり貢献してくれる。


解説記事の難しいところは、一般論が重要だが、具体例により示さないと読む人が納得できない点にあると思う。私が強調したいのは、設計の大原則として、(汎用的な)Domain Specificなベースライブラリをいかにうまく設計・実装できるかで、大規模アプリであっても保守性、ロバスト性の高いコードができるという点である。