設計

『整理して分解する』 〜 複雑なソースコードをコントロールする方法 〜 設計

『整理して分解する』 〜 複雑なソースコードをコントロールする方法 〜

継続的なソフトウェア開発で複雑になってしまったソースコードに対処する方針について説明してみます。 手に負えない複雑さ 業務で扱っているソースコードをちょこっと修正したつもりなのに、他の場所でバグが発生する。機能追加するための調査に時間がかかる。そのような状態は、ソースコードが複雑になりすぎて手に負え…
技術書のサンプルコードと業務コードの間にある壁 設計

技術書のサンプルコードと業務コードの間にある壁

主にソフトウェア設計やプログラミングについての本を読んでいるとサンプルコードが書いてあるんだけど、説明のためのコードなので、小さいコードであることが多い。紙面の都合上、仕方のないことだし、説明を判り易くするために余分な記述を排除するので当然と言えば当然です。 技術書から学ぶことで、仕事でもより良いコ…
オブジェクト設計スタイルガイド 読了 設計

オブジェクト設計スタイルガイド 読了

オブジェクト設計スタイルガイドを読みおわりました。 オブジェクト設計スタイルガイド(amazon) 購入前に目次を見たところ、自分の感覚と合ってそうな本だなということを感じました。逆に合いすぎて学びが少なかったらどうしようと思って、買って読んでみるかどうか迷いましたが、要らぬ心配でした。読んで良かっ…
レガシーコードにおいて悪者とされるコードの依存について 設計

レガシーコードにおいて悪者とされるコードの依存について

修正するのが怖くて危険になってしまったようなレガシーコードを改善する文脈では、依存が悪者として扱われることが多いです。しかし、特にフレームワークやライブラリを使ってプログラムを書く以上、フレームワークやライブラリの機能を使うので、依存することは避けられません。ということは、依存が悪という単純な解像度…
ドメインを純粋に保つ (レガシープロジェクトの改善活動について) (5) CSVダウンロード機能 ドメインを純粋に保つ

ドメインを純粋に保つ (レガシープロジェクトの改善活動について) (5) CSVダウンロード機能

ドメインを純粋に保つシリーズは 3回に加えてあとがきを書いた時点で一度終了していたのですが、ビジネス概念の抽出というテーマで書けることを思いついたらそのタイミングで不定期に記事を書いていくつもりです。 レガシーサンプルのプロジェクトにCSVダウンロード機能を追加しましたので、CSVダウンロード機能か…