思考と現場の間で

「いいサービスづくり」のために、組織づくりやソフトウェア設計など、考えていることを書きます

開発ツールを最大限活かすために大切なこと

アジャイル、スクラム、テスト駆動開発、ドメイン駆動設計、継続的インテグレーション…。色々な開発ツールや開発の考え方があります。それぞれ素晴らしいツール(手段)であり、取り入れるだけで開発方法を変えることができます。ただ、このような素晴らしい…

プログラマとしてレベルを上げるために必要な4つの要素

最近、プログラマの成長について考えることが多くなりました。自分自身についても仲間についても。成長しているメンバーが集まらないといいモノは作れません。個人としても、エンジニアは常に成長していかないと仕事にならなくなる瞬間がやってきます。簡単…

【DDDメモ】サービス

エリック・エヴァンス ドメイン駆動開発P.104 ソフトウェア表現されたモデル サービス ドメインから生まれる概念の中には、オブジェクトとしてモデル化すると不自然なものもある。こうしたドメインで必要な機能をエンティティや値オブジェクトの責務として押…

【DDDメモ】関連

エリック・エヴァンスのドメイン駆動設計 P.81 現実の世界では、多対多の関連がたくさんあり、その多くはもともと双方向である。【中略】だが、これらの一般的な関連のせいで、実装と保守が複雑になってしまう。しかも、こうした一般的な関連は、そこにある…

【DDDメモ】モデルの整合性を維持する:腐敗防止層

腐敗防止層 エリック・エヴァンスのドメイン駆動設計 P.374 外部システムとのインタフェースには多くの渉外がある。例えば、インフラストラクチャ層は、プラットフォームが異なっていたり、異なるプロトコルを使用していたりするかもしれない他システムとの…

【DDDメモ】モデルの整合性を維持する:順応者

順応者 エリック・エヴァンスのドメイン駆動設計 P.371 上流チームのモデルに隷従することで生じる、境界づけられたコンテキスト間での複雑な変換を取り除くこと。確かに下流の設計者がとれるスタイルは制限され、そのアプリケーションにとって理想的なモデ…

【DDDメモ】モデルの整合性を維持する:顧客/供給者の開発チーム

エリック・エヴァンスのドメイン駆動設計 P.365 蒸溜チームが自由に開発の舵をとれなくなるのは、下流のチームが変更に対する拒否権を持っている場合や、変更を要求されるための手続きがあまりに面倒な場合である。下流のシステムを壊してしまうのではないか…