Have a look at these two classes: <?php // example 1 final class Basket { private $products; public function addProduct($product) { if (3 == count($this->products)) { throw new Exception("Max 3 products allowed"); } $this->products[] = $product; } } final class Shipment { private $products; public function addProduct($product) { if (3 == count($this->products)) { throw new Exception("Max 3 product
I hadn’t done any presentations or blog posts about Command/Query Responsibility Segregation yet, even though I’ve been working with it for more than year (and have been wanting to use it for another year). Volker Dusch invited me to speak at the first ResearchGate Developer Day in Berlin, and offered me the luxury to choose any SE topic I wanted, I just had to do it. See the slides on Speakerdeck
Video Slides Abstract Data Mappers (like Doctrine2) help us a lot to persist data. Yet many projects are still struggling with tough questions: Where to put business logic? How to protect our code from abuse? Where to put queries, and how test them? Let’s look beyond the old Gang of Four design patterns, and take some clues from tactical Domain Driven Design. At the heart of our models, we can use
“Extract Till You Drop” is a live refactoring that I used to do at conferences and as a webinar. Abstract We’ve all seen them: applications out of control. Under the pressure of deadlines and endless change requests, with the weight of years of legacy, the code has become unmaintainable. Adding features is a slow hit and miss process. You know something needs to be done, but nobody knows how. To c
tl;dr: Cast Value Objects to strings that can be parsed back into the Value Object. I’m a big fan of Value Objects, as they are very helpful in encapsulating behavior, and communicating intent. In fact, as a friend remarked, Value Objects are the heart and soul of Object Oriented Programming. Discussing the uses of Value Objects is not what I want to talk about here though. Let’s set up two simple
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く