設計 22 8月 2024 巨人の肩から降りるとき ソフトウェア界隈では、よく「巨人の肩に乗る」という比喩表現が使われます。 「巨人の肩に乗る」というメタファーはフリーソフトウェア運動を推進しその正当性を示すためにも用いられる。 レッドハットのボブ・ヤングは2002年の著書『リチャード・ストールマンと自由ソフトウェア革命(英語版)』で、人々が巨人の肩… 続きを読む
設計 7 7月 2024 関数型言語でのTDDについての妄想 OOPの言語(自分がやっているのはPHP)でプログラムを書く場合、TDD(テスト駆動開発)を愚直に実践しています。 この話は、関数型言語を使うようになったら、開発プロセスがどのように変わるのだろうかという妄想です。 『関数型ドメインモデリング』 最近、『関数型ドメインモデリング』の関数型言語のF#で… 続きを読む
設計 14 5月 2024 モジュールとは何か? 様々な設計原則やデザインパターンの中でモジュールという言葉が登場します。モジュールという言葉の意味は「部品」のようなイメージはありそうです。しかし、それ以上明確な定義を求められると困ってしまうかもしれません。 モジュールというのは、どう捉えるべき概念なのでしょうか? Wikipediaで見るモジュー… 続きを読む
設計 13 2月 2024 ビジネスロジックとは何か? 業務システムの設計/開発/運用の文脈での、ビジネスロジックについて考察してみたいと思います。 ソフトウェア設計についての本やブログ記事などで、「ビジネスロジックは重要である」ということは、何度も何度も言われていて常識になっていて否定する人はほとんど居ないと思います。この点については文字… 続きを読む
設計 10 11月 2023 『整理して分解する』 〜 複雑なソースコードをコントロールする方法 〜 継続的なソフトウェア開発で複雑になってしまったソースコードに対処する方針について説明してみます。 手に負えない複雑さ 業務で扱っているソースコードをちょこっと修正したつもりなのに、他の場所でバグが発生する。機能追加するための調査に時間がかかる。そのような状態は、ソースコードが複雑になりすぎて手に負え… 続きを読む