PageSourceSearch

https://verraes.net/

html verraes.net collected 2026-09-24 08:40:57 UTC 107,836 bytes, 2,887 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" class="theme-light">
3<head>
4    <meta charset="utf-8">
5    <title>Mathias Verraes</title>
6    <meta name="author" content="Mathias Verraes">
7    <meta name="description" content="Mathias Verraes' blog">
8    <link rel="alternate" type="application/atom+xml" title="Blog" href="/feed.atom"/>
9
10    <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png">
11<link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32x32.png">
12<link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16x16.png">
13<link rel="manifest" href="/favicons/site.webmanifest">
14<link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#b02b2c">
15<link rel="shortcut icon" href="/favicons/favicon.ico">
16<meta name="msapplication-TileColor" content="#b02b2c">
17<meta name="msapplication-config" content="/favicons/browserconfig.xml">
18<meta name="theme-color" content="#ffffff">
19    <!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 19-20
19
20<script async src="https://www.googletagmanager.com/gtag/js?id=
20G-NPR19J8LX2
vendor: 12 bytes, line 20
20"></script>
21<script>
22    
vendor: 140 bytes, lines 22-26
22window.dataLayer = window.dataLayer || [];
23    function gtag(){dataLayer.push(arguments);}
24    gtag('js', new Date());
25
26    gtag('config', '
26G-NPR19J8LX2
vendor: 4 bytes, line 26
26');
27</script>
27
28
29    <link rel="stylesheet" href="/css/main.css">
30    <meta name="viewport" content="width=device-width, initial-scale=1.0">
31    <link href='https://fonts.googleapis.com/css?family=Roboto:100' rel="stylesheet" type="text/css">
32    <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet">
33    
34    <meta name="twitter:card" content="summary">
35    <meta name="twitter:image:src" content="https://www.gravatar.com/avatar/3a7cb0c3c8d5864e2e72c49cafc3e4d5?s=1024">
36
37<meta name="twitter:site" content="@mathiasverraes">
38<meta name="twitter:creator" content="@mathiasverraes">
39<meta name="twitter:title" content="Mathias Verraes">
40
41<meta name="twitter:url" content="https://verraes.net/">
42<meta name="twitter:description" content="Student of Systems">
43
44    <meta content="Mathias Verraes' Blog" property="og:site_name">
45 <meta content="Mathias Verraes" property="og:title">
46
47<meta content="article" property="og:type">
48
49<meta content="Student of Systems" property="og:description">
50<meta content="https://verraes.net/" property="og:url">
51
52
53<meta content="https://twitter.com/mathiasverraes" property="article:author">
54 <meta content="https ://www.gravatar.com/avatar/3a7cb0c3c8d5864e2e72c49cafc3e4d5?s=1024" property="og:image">
55
56
57</head>
58<body class="has-navbar-fixed-top">
59<nav class="navbar is-fixed-top is-dark" role="navigation" aria-label="main navigation" style="border-left:12px solid #B02B2C;border-right:12px solid #B02B2C;">
60    <div class="navbar-brand">
61        <a class="navbar-item" href="/">
62            Mathias Verraes
63        </a>
64
65        <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasic">
66            <span aria-hidden="true" class="has-background-light"></span>
67            <span aria-hidden="true" class="has-background-light"></span>
68            <span aria-hidden="true" class="has-background-light"></span>
69            <span aria-hidden="true" class="has-background-light"></span>
70        </a>
71    </div>
72
73
74    <div id="navbarBasic" class="navbar-menu">
75        <div class="navbar-end">
76            <a href="/#blog" class="navbar-item">
77                Blog
78            </a>
79            <a href="/feed.atom" class="navbar-item is-hidden-touch">
80                <img src="/img/rss-solid-white.svg" alt="Atom feed" class="image is-24x24"/>
81            </a>
82            <a href="/services/" class="navbar-item">
83                Consulting Services
84            </a>
85
86            <a href="https://ddd.academy/" class="navbar-item" target="_blank">
87                Training
88            </a>
89
90            <a href="/books/" class="navbar-item">
91               Books
92            </a>
93
94            <a href="/about/" class="navbar-item">
95                About
96            </a>
97            <a href="/about/#contact" class="navbar-item">
98                Contact
99            </a>
100
101        </div>
102    </div>
103</nav>
104
105
106
107<section class="hero">
108    <div class="hero-body">
109        <div class="container has-text-centered">
110            <h1 class="title">
111                Mathias Verraes
112            </h1>
113            <p class="subtitle">
114                Student of Systems
115            </p>
116            <div class="container ">
117
118                <img style="border-radius: 50%" height="128" src="https://www.gravatar.com/avatar/e2b2842ad2ca81583a545dc64cd5402a62993edc60d9c992590541d32cedb554?s=256" width="128">
119
120
121            </div>
122            <p class="subtitle">
123                <a href="https://www.linkedin.com/in/mathiasverraes">LinkedIn</a> -
124                <a href="https://mastodon.social/@mathiasverraes">Mastodon</a> -
125                <a href="https://bsky.app/profile/mathiasverraes.bsky.social">Bluesky</a>
126            </p>
127            <p></p>
128        </div>
129    </div>
130    <section class="section">
131    <div class="container">
132            <div class="columns mb-6 ">
133                <div class="column is-offset-2 is-2">
134                    <figure class="media-left image " style="box-shadow: 2px 2px 7px darkgray">
135                        <a href="https://leanpub.com/design-and-reality">
136                            <img src="https://d2sofvawe08yqg.cloudfront.net/design-and-reality/s_hero2x?1664874345">
137                        </a>
138                    </figure>
139                </div>
140                <div class="column is-6">
141                    <h1 class="title">Design and Reality</h1>
142                    <h2 class="subtitle">Essays on Software Design</h2>
143                    <p>by Mathias Verraes & Rebecca Wirfs-Brock</p>
144                    <br>
145                    <a class="button is-info" href="https://leanpub.com/design-and-reality">
146                        Get it on Leanpub
147                    </a>
148                    <br>
149                    <br>
150                    <blockquote>
151                        “Happily purchased. Handy to have these in one place. Thank y
151ou!” <br>— Kent Beck<br>
152                    </blockquote>
153                    <br>
154                    <blockquote>
155                        “Excellent new thinking on Domain-Driven Design, full of real practical experience in getting
156                        the most
157                        value from domain modelling. Like the Eric Evans' DDD book, this gives more insight each time
158                        you read
159                        it.” — Ian Russell<br>
160                    </blockquote>
161                </div>
162            </div>
163    </div>
164</section>
165</section>
166
167<!-- http://stackoverflow.com/a/20777475/432982 -->
168<a id="blog"></a>
169<section class="section">
170    <div class="container">
171        <div class="column is-desktop is-8 is-offset-2">
172        <h1 class="title">Blog</h1>
173            
174            
175            
176            
177            <div>
178                <div class="divider is-size-7">2026</div>
179            </div>
180            
181
182            <div class="block">
183                <p class="p-5">
184                    <a href="/2026/07/loosely-coupled-podcast/">
185                        <span class="has-text-grey-darker is-size-5">Loosely Coupled: Is Software Design Still Relevant?</span>
186                        <br>
187                        
188                        
189                        
190                            <span class="tag is-size-7 is-success is-light">Podcast</span>
191                        
192                        
193                            <span class="has-text-grey is-size-6">Podcast with Martin Fowler, Xin Yao, Andrew Harmel-Law, and Mathias Verraes</span>
194                        
195                        
196                    </a>
197                </p>
198            </div>
199            
200            
201            
202
203            <div class="block">
204                <p class="p-5">
205                    <a href="/2026/07/software-design-in-the-agentic-age/">
206                        <span class="has-text-grey-darker is-size-5">Software Design in the Agentic Age: Place Your Bets</span>
207                        <br>
208                        
209                        
210                            <span class="tag is-size-7 is-info is-light">Article</span>
211                        
212                        
213                        
214                            <span class="has-text-grey is-size-6">An evaluation of the role of software design in retrospect of Thoughtworks' Future of Software Engineering retreat.</span>
215                        
216                        
217                    </a>
218                </p>
219            </div>
220            
221            
222            
223            
224            <div>
225                <div class="divider is-size-7">2025</div>
226            </div>
227            
228
229            <div class="block">
230                <p class="p-5">
231                    <a href="/2025/08/domain-and-bounded-contexts-dont-map-one-on-one/">
232                        <span class="has-text-grey-darker is-size-5">No, Your Domains and Bounded Contexts Don’t Map 1 on 1</span>
233                        <br>
234                        
235                        
236                            <span class="tag is-size-7 is-info is-light">Article</span>
237                        
238                        
239                        
240                            <span class="has-text-grey is-size-6">Bounded Contexts are a design choice to suit engineering needs</span>
241                        
242                        
243                    </a>
244                </p>
245            </div>
246            
247            
248            
249
250            <div class="block">
251                <p class="p-5">
252                    <a href="/2025/08/two-hard-problems-with-distributed-systems/">
253                        <span class="has-text-grey-darker is-size-5">Two Hard Problems with Distributed Systems</span>
254                        <br>
255                        
256                        
257                            <span class="tag is-size-7 is-info is-light">Article</span>
258                        
259                        
260                        
261                            <span class="has-text-grey is-size-6">A joke</span>
262                        
263                        
264                    </a>
265                </p>
266            </div>
267            
268            
269            
270
271            <div class="block">
272                <p class="p-5">
273                    <a href="/2025/06/submitting-talks-to-conference-cfps/">
274                        <span class="has-text-grey-darker is-size-5">Submitting talks to a tech conference Call for Papers</span>
275                        <br>
276                        
277                        
278                            <span class="tag is-size-7 is-info is-light">Article</span>
279                        
280                        
281                        
282                            <span class="has-text-grey is-size-6">My 20+ tips as a conference organiser</span>
283                        
284                        
285                    </a>
286                </p>
287            </div>
288            
289            
290            
291            
292            <div>
293                <div class="divider is-size-7">2024</div>
294            </div>
295            
296
297            <div class="block">
298                <p class="p-5">
299                    <a href="/2024/03/how-to-fix-a-bug-tests-hypotheses-timeboxes/">
300                        <span class="has-text-grey-darker is-size-5">How to Fix a Bug: Tests, Hypotheses, Timeboxes</span>
301                        <br>
302                        
303                        
304                            <span class="tag is-size-7 is-info is-light">Article</span>
305                        
306                        
307                        
308                            <span class="has-text-grey is-size-6">An efficient process for fixing bugs that saves times and reduces regressions.</span>
309                        
310                        
311                    </a>
312                </p>
313            </div>
314            
315            
316            
317
318            <div class="block">
319                <p class="p-5">
320                    <a href="/2024/01/critical-software-redesign/">
321                        <span class="has-text-grey-darker is-size-5">Critical Software Redesign: Creating the Environment for Large Scale Change</span>
322                        <br>
323                        
324                        
325                            <span class="tag is-size-7 is-info is-light">Article</span>
326                        
327                        
328                        
329                            <span class="has-text-grey is-size-6">When do you choose to do a major redesign, and how to do you prepare your organisation for it to succeed?</span>
330                        
331                        
332                            <br><span class="has-text-grey is-size-7">— by Mathias Verraes and Rebecca Wirfs-Brock</span>
333                        
334                    </a>
335                </p>
336            </div>
337            
338            
339            
340            
341            <div>
342                <div class="divider is-size-7">2023</div>
343            </div>
344            
345
346            <div class="block">
347                <p class="p-5">
348                    <a href="/2023/07/surfacing-worldviews-in-design/">
349                        <span class="has-text-grey-darker is-size-5">Surfacing Worldviews in Design</span>
350                        <br>
351                        
352                        
353                            <span class="tag is-size-7 is-info is-light">Article</span>
354                        
355                        
356                        
357                            <span class="has-text-grey is-size-6">Implicit worldviews underlie our design choices. Exposing them can generate better options.</span>
358                        
359                        
360                            <br><span class="has-text-grey is-size-7">— by Mathias Verraes and Rebecca Wirfs-Brock</span>
361                        
362                    </a>
363                </p>
364            </div>
365            
366            
367            
368
369            <div class="block">
370                <p class="p-5">
371                    <a href="/2023/05/eventsourcing-testing-patterns/">
372                        <span class="has-text-grey-darker is-size-5">EventSourcing Testing Patterns</span>
373                        <br>
374                        
375                        
376                            <span class="tag is-size-7 is-info is-light">Article</span>
377                        
378                        
379                        
380                            <span class="has-text-grey is-size-6"></span>
381                        
382                        
383                    </a>
384                </p>
385            </div>
386            
387            
388            
389
390            <div class="block">
391                <p class="p-5">
392                    <a href="/2023/05/devjourney-podcast/">
393                        <span class="has-text-grey-darker is-size-5">From Music to Languages and Models (DevJourney Podcast)</span>
394                        <br>
395                        
396                        
397                        
398                            <span class="tag is-size-7 is-success is-light">Podcast</span>
399                        
400                        
401                            <span class="has-text-grey is-size-6">Interview by Tim Bourguignon on the Software Developers Journey Podcast</span>
402                        
403                        
404                    </a>
405                </p>
406            </div>
407            
408            
409            
410
411            <div class="block">
412                <p class="p-5">
413                    <a href="/2023/04/parser-combinators-full-stack-europe/">
414                        <span class="has-text-grey-darker is-size-5">Parser Combinators (Full Stack Europe)</span>
415                        <br>
416                        
417                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
418                        
419                        
420                        
421                        
422                            <span class="has-text-grey is-size-6">Improvised presentation on building a parser using pure functional programming in PHP.</span>
423                        
424                        
425                    </a>
426                </p>
427            </div>
428            
429            
430            
431
432            <div class="block">
433                <p class="p-5">
434                    <a href="/2023/03/bounded-contexts-manage-understandability-ddd-australia/">
435                        <span class="has-text-grey-darker is-size-5">Bounded Contexts: Manage the Understandability of Your Systems (DDD Australia)</span>
436                        <br>
437                        
438                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
439                        
440                        
441                        
442                        
443                            <span class="has-text-grey is-size-6">Understandability boundaries are separations that look at how concepts in our system are understood together (or autonomously).</span>
444                        
445                        
446                    </a>
447                </p>
448            </div>
449            
450            
451            
452
453            <div class="block">
454                <p class="p-5">
455                    <a href="/2023/02/software-design-scaleups-startups-.md/">
456                        <span class="has-text-grey-darker is-size-5">Software Design for Startups and Scaleups</span>
457                        <br>
458                        
459                        
460                        
461                            <span class="tag is-size-7 is-success is-light">Podcast</span>
462                        
463                        
464                            <span class="has-text-grey is-size-6">Interview by Tom Klaasen, Software Captains founder</span>
465                        
466                        
467                    </a>
468                </p>
469            </div>
470            
471            
472            
473
474            <div class="block">
475                <p class="p-5">
476                    <a href="/2023/01/critically-engaging-with-models/">
477                        <span class="has-text-grey-darker is-size-5">Critically Engaging With Models (DDD Europe Keynote)</span>
478                        <br>
479                        
480                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
481                        
482                        
483                        
484                        
485                            <span class="has-text-grey is-size-6">Our worldviews are grown from other people’s models. How do we control what models we let in?</span>
486                        
487                        
488                            <br><span class="has-text-grey is-size-7">— by Rebecca Wirfs-Brock and Mathias Verraes</span>
489                        
490                    </a>
491                </p>
492            </div>
493            
494            
495            
496
497            <div class="block">
498                <p class="p-5">
499                    <a href="/2023/01/leanpub-podcast-design-reality/">
500                        <span class="has-text-grey-darker is-size-5">Design and Reality (Leanpub Podcast)</span>
501                        <br>
502                        
503                        
504                        
505                            <span class="tag is-size-7 is-success is-light">Podcast</span>
506                        
507                        
508                            <span class="has-text-grey is-size-6">Interview by Len Epp, Leanpub co-founder</span>
509                        
510                        
511                    </a>
512                </p>
513            </div>
514            
515            
516            
517            
518            <div>
519                <div class="divider is-size-7">2022</div>
520            </div>
521            
522
523            <div class="block">
524                <p class="p-5">
525                    <a href="/2022/09/critically-engaging-with-models/">
526                        <span class="has-text-grey-darker is-size-5">Critically Engaging With Models</span>
527                        <br>
528                        
529                        
530                            <span class="tag is-size-7 is-info is-light">Article</span>
531                        
532                        
533                        
534                            <span class="has-text-grey is-size-6">Our worldviews are grown from other people’s models. How do we control what models we let in?</span>
535                        
536                        
537                            <br><span class="has-text-grey is-size-7">— by Rebecca Wirfs-Brock and Mathias Verraes</span>
538                        
539                    </a>
540                </p>
541            </div>
542            
543            
544            
545
546            <div class="block">
547                <p class="p-5">
548                    <a href="/2022/05/conways-law-vs-rigid-designs/">
549                        <span class="has-text-grey-darker is-size-5">Conway’s Law Doesn’t Apply to Rigid Designs</span>
550                        <br>
551                        
552                        
553                            <span class="tag is-size-7 is-info is-light">Article</span>
554                        
555                        
556                        
557                            <span class="has-text-grey is-size-6">The impact of the Inverse Conway Manoeuvre is constrained by the flexibility of the system. A reorganisation can’t fix a broken design.</span>
558                        
559                        
560                    </a>
561                </p>
562            </div>
563            
564            
565            
566
567            <div class="block">
568                <p class="p-5">
569                    <a href="/2022/03/domain-driven-design-applied/">
570                        <span class="has-text-grey-darker is-size-5">Domain-Driven Design Applied</span>
571                        <br>
572                        
573                        
574                        
575                            <span class="tag is-size-7 is-success is-light">Podcast</span>
576                        
577                        
578                            <span class="has-text-grey is-size-6">Podcast discussion with Alex Bolboacă</span>
579                        
580                        
581                    </a>
582                </p>
583            </div>
584            
585            
586            
587
588            <div class="block">
589                <p class="p-5">
590                    <a href="/2022/03/multi-temporal-events/">
591                        <span class="has-text-grey-darker is-size-5">Eventsourcing Patterns: Multi-temporal Events</span>
592                        <br>
593                        
594                        
595                            <span class="tag is-size-7 is-info is-light">Article</span>
596                        
597                        
598                        
599                            <span class="has-text-grey is-size-6">Within a Domain Event, use separate timestamps to distinguish when the event occurred and when it was captured.</span>
600                        
601                        
602                    </a>
603                </p>
604            </div>
605            
606            
607            
608
609            <div class="block">
610                <p class="p-5">
611                    <a href="/2022/02/loss-aversion-heuristics/">
612                        <span class="has-text-grey-darker is-size-5">Loss Aversion Heuristics</span>
613                        <br>
614                        
615                        
616                        
617                            <span class="tag is-size-7 is-success is-light">Podcast</span>
618                        
619                        
620                            <span class="has-text-grey is-size-6">Acknowledge your loss aversion bias to identify solutions that incur a loss</span>
621                        
622                        
623                    </a>
624                </p>
625            </div>
626            
627            
628            
629
630            <div class="block">
631                <p class="p-5">
632                    <a href="/2022/02/design-and-reality-virtualddd/">
633                        <span class="has-text-grey-darker is-size-5">Design & Reality (VirtualDDD presentation)</span>
634                        <br>
635                        
636                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
637                        
638                        
639                        
640                        
641                            <span class="has-text-grey is-size-6">Modelling as the opportunity to create novel concepts.</span>
642                        
643                        
644                    </a>
645                </p>
646            </div>
647            
648            
649            
650            
651            <div>
652                <div class="divider is-size-7">2021</div>
653            </div>
654            
655
656            <div class="block">
657                <p class="p-5">
658                    <a href="/2021/12/models-and-metaphors/">
659                        <span class="has-text-grey-darker is-size-5">Models and Metaphors</span>
660                        <br>
661                        
662                        
663                            <span class="tag is-size-7 is-info is-light">Article</span>
664                        
665                        
666                        
667                            <span class="has-text-grey is-size-6">When a complex technical domain isn’t easily captured in a model, look for metaphors that bring clarity.</span>
668                        
669                        
670                            <br><span class="has-text-grey is-size-7">— by Mathias Verraes and Rebecca Wirfs-Brock</span>
671                        
672                    </a>
673                </p>
674            </div>
675            
676            
677            
678
679            <div class="block">
680                <p class="p-5">
681                    <a href="/2021/09/bounded-context-podcast/">
682                        <span class="has-text-grey-darker is-size-5">Bounded Context Podcast</span>
683                        <br>
684                        
685                        
686                        
687                            <span class="tag is-size-7 is-success is-light">Podcast</span>
688                        
689                        
690                            <span class="has-text-grey is-size-6">Conversation with Ryan Shriver</span>
691                        
692                        
693                    </a>
694                </p>
695            </div>
696            
697            
698            
699
700            <div class="block">
701                <p class="p-5">
702                    <a href="/2021/09/what-is-domain-driven-design-ddd/">
703                        <span class="has-text-grey-darker is-size-5">What is Domain-Driven Design (DDD)</span>
704                        <br>
705                        
706                        
707                            <span class="tag is-size-7 is-info is-light">Article</span>
708                        
709                        
710                        
711                            <span class="has-text-grey is-size-6">A definition of DDD as a software design discipline</span>
712                        
713                        
714                    </a>
715                </p>
716            </div>
717            
718            
719            
720
721            <div class="block">
722                <p class="p-5">
723                    <a href="/2021/09/design-and-reality/">
724                        <span class="has-text-grey-darker is-size-5">Design and Reality</span>
725                        <br>
726                        
727                        
728                            <span class="tag is-size-7 is-info is-light">Article</span>
729                        
730                        
731                        
732                            <span class="has-text-grey is-size-6">Reframing the problem through design.</span>
733                        
734                        
735                            <br><span class="has-text-grey is-size-7">— by Mathias Verraes and Rebecca Wirfs-Brock</span>
736                        
737                    </a>
738                </p>
739            </div>
740            
741            
742            
743
744            <div class="block">
745                <p class="p-5">
746                    <a href="/2021/06/split-domain-across-bounded-contexts/">
747                        <span class="has-text-grey-darker is-size-5">Splitting a Domain Across Multiple Bounded Contexts</span>
748                        <br>
749                        
750                        
751                            <span class="tag is-size-7 is-info is-light">Article</span>
752                        
753                        
754                        
755                            <span class="has-text-grey is-size-6">How designing for business opportunities and the rate of change may give you better contexts.</span>
756                        
757                        
758                            <br><span class="has-text-grey is-size-7">— by Mathias Verraes and Rebecca Wirfs-Brock</span>
759                        
760                    </a>
761                </p>
762            </div>
763            
764            
765            
766
767            <div class="block">
768                <p class="p-5">
769                    <a href="/2021/05/its-just-like-heuristic/">
770                        <span class="has-text-grey-darker is-size-5">The “It's Just Like...” Heuristic</span>
771                        <br>
772                        
773                        
774                            <span class="tag is-size-7 is-info is-light">Article</span>
775                        
776                        
777                        
778                            <span class="has-text-grey is-size-6">Why feeling that you understand a new idea, is a sign that you didn't.</span>
779                        
780                        
781                    </a>
782                </p>
783            </div>
784            
785            
786            
787
788            <div class="block">
789                <p class="p-5">
790                    <a href="/2021/04/simple-models-scaffolding-enabling-constraints/">
791                        <span class="has-text-grey-darker is-size-5">Simple Models, Scaffolding, Enabling Constraints</span>
792                        <br>
793                        
794                        
795                            <span class="tag is-size-7 is-info is-light">Article</span>
796                        
797                        
798                        
799                            <span class="has-text-grey is-size-6">Simple models are more wrong than complex ones, but they can be useful to detect problems, and to kickstart more suitable models.</span>
800                        
801                        
802                    </a>
803                </p>
804            </div>
805            
806            
807            
808
809            <div class="block">
810                <p class="p-5">
811                    <a href="/2021/04/tensions-when-designing-evolvable-bounded-contexts/">
812                        <span class="has-text-grey-darker is-size-5">Tensions when Designing Evolvable Bounded Contexts</span>
813                        <br>
814                        
815                        
816                            <span class="tag is-size-7 is-info is-light">Article</span>
817                        
818                        
819                        
820                            <span class="has-text-grey is-size-6">Bounded Contexts and their interfaces are governed by fundamental tensions that affect our design</span>
821                        
822                        
823                    </a>
824                </p>
825            </div>
826            
827            
828            
829
830            <div class="block">
831                <p class="p-5">
832                    <a href="/2021/03/heuristic-legacy-mirror/">
833                        <span class="has-text-grey-darker is-size-5">The Legacy Mirror Heuristic</span>
834                        <br>
835                        
836                        
837                            <span class="tag is-size-7 is-info is-light">Article</span>
838                        
839                        
840                        
841                            <span class="has-text-grey is-size-6">Evaluate a novel idea by swapping the old and the new idea in time.</span>
842                        
843                        
844                    </a>
845                </p>
846            </div>
847            
848            
849            
850            
851            <div>
852                <div class="divider is-size-7">2020</div>
853            </div>
854            
855
856            <div class="block">
857                <p class="p-5">
858                    <a href="/2020/01/wall-of-technical-debt/">
859                        <span class="has-text-grey-darker is-size-5">The Wall of Technical Debt</span>
860                        <br>
861                        
862                        
863                            <span class="tag is-size-7 is-info is-light">Article</span>
864                        
865                        
866                        
867                            <span class="has-text-grey is-size-6">A method for making technical debt visible and negotiable.</span>
868                        
869                        
870                    </a>
871                </p>
872            </div>
873            
874            
875            
876            
877            <div>
878                <div class="divider is-size-7">2019</div>
879            </div>
880            
881
882            <div class="block">
883                <p class="p-5">
884                    <a href="/2019/08/eventsourcing-state-from-events-vs-events-as-state/">
885                        <span class="has-text-grey-darker is-size-5">Eventsourcing: State from Events or Events as State?</span>
886                        <br>
887                        
888                        
889                            <span class="tag is-size-7 is-info is-light">Article</span>
890                        
891                        
892                        
893                            <span class="has-text-grey is-size-6">Comparison of two common interpretations of eventsourcing; and proposing a definition.</span>
894                        
895                        
896                    </a>
897                </p>
898            </div>
899            
900            
901            
902
903            <div class="block">
904                <p class="p-5">
905                    <a href="/2019/07/patterns-are-not-defined-by-their-implementation/">
906                        <span class="has-text-grey-darker is-size-5">Patterns Are Not Defined by Their Implementation</span>
907                        <br>
908                        
909                        
910                            <span class="tag is-size-7 is-info is-light">Article</span>
911                        
912                        
913                        
914                            <span class="has-text-grey is-size-6">Design Patterns express a problem in a context with a reusable solution.</span>
915                        
916                        
917                    </a>
918                </p>
919            </div>
920            
921            
922            
923
924            <div class="block">
925                <p class="p-5">
926                    <a href="/2019/06/talk-temporal-modelling/">
927                        <span class="has-text-grey-darker is-size-5">Temporal Modelling</span>
928                        <br>
929                        
930                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
931                        
932                        
933                        
934                        
935                            <span class="has-text-grey is-size-6">How reasoning with time helps you model software better than structure.</span>
936                        
937                        
938                    </a>
939                </p>
940            </div>
941            
942            
943            
944
945            <div class="block">
946                <p class="p-5">
947                    <a href="/2019/06/emergent-contexts-through-refinement/">
948                        <span class="has-text-grey-darker is-size-5">Emergent Contexts through Refinement</span>
949                        <br>
950                        
951                        
952                            <span class="tag is-size-7 is-info is-light">Article</span>
953                        
954                        
955                        
956                            <span class="has-text-grey is-size-6">Refine a model and its language until opportunities for better Bounded Contexts emerge.</span>
957                        
958                        
959                    </a>
960                </p>
961            </div>
962            
963            
964            
965
966            <div class="block">
967                <p class="p-5">
968                    <a href="/2019/06/messaging-patterns-natural-language-message-names/">
969                        <span class="has-text-grey-darker is-size-5">Messaging Patterns: Natural Language Message Names</span>
970                        <br>
971                        
972                        
973                            <span class="tag is-size-7 is-info is-light">Article</span>
974                        
975                        
976                        
977                            <span class="has-text-grey is-size-6">Embed more meaning in messages by using verbs.</span>
978                        
979                        
980                    </a>
981                </p>
982            </div>
983            
984            
985            
986
987            <div class="block">
988                <p class="p-5">
989                    <a href="/2019/06/eventsourcing-patterns-migration-events-ghost-context/">
990                        <span class="has-text-grey-darker is-size-5">Eventsourcing Patterns: Migration Events in a Ghost Context</span>
991                        <br>
992                        
993                        
994                            <span class="tag is-size-7 is-info is-light">Article</span>
995                        
996                        
997                        
998                            <span class="has-text-grey is-size-6">Explicitly conform to the legacy component's model in an eventsourcing migration.</span>
999                        
1000                        
1001                    </a>
1002                </p>
1003            </div>
1004            
1005            
1006            
1007
1008            <div class="block">
1009                <p class="p-5">
1010                    <a href="/2019/05/eventsourcing-patterns-decision-tracking/">
1011                        <span class="has-text-grey-darker is-size-5">Eventsourcing Patterns: Decision Tracking</span>
1012                        <br>
1013                        
1014                        
1015                            <span class="tag is-size-7 is-info is-light">Article</span>
1016                        
1017                        
1018                        
1019                            <span class="has-text-grey is-size-6">Store the outcome of a decision to guard against rule changes.</span>
1020                        
1021                        
1022                    </a>
1023                </p>
1024            </div>
1025            
1026            
1027            
1028
1029            <div class="block">
1030                <p class="p-5">
1031                    <a href="/2019/05/messaging-patterns-throttling/">
1032                        <span class="has-text-grey-darker is-size-5">Messaging Patterns: Throttling</span>
1033                        <br>
1034                        
1035                        
1036                            <span class="tag is-size-7 is-info is-light">Article</span>
1037                        
1038                        
1039                        
1040                            <span class="has-text-grey is-size-6">Only keep one event per time unit from a high frequency stream.</span>
1041                        
1042                        
1043                    </a>
1044                </p>
1045            </div>
1046            
1047            
1048            
1049
1050            <div class="block">
1051                <p class="p-5">
1052                    <a href="/2019/05/messaging-patterns-ephemeral-events/">
1053                        <span class="has-text-grey-darker is-size-5">Messaging Patterns: Ephemeral Events</span>
1054                        <br>
1055                        
1056                        
1057                            <span class="tag is-size-7 is-info is-light">Article</span>
1058                        
1059                        
1060                        
1061                            <span class="has-text-grey is-size-6">An event's lifetime lasts until the next event.</span>
1062                        
1063                        
1064                    </a>
1065                </p>
1066            </div>
1067            
1068            
1069            
1070
1071            <div class="block">
1072                <p class="p-5">
1073                    <a href="/2019/05/messaging-patterns-change-detection-events/">
1074                        <span class="has-text-grey-darker is-size-5">Messaging Patterns: Change Detection Events</span>
1075                        <br>
1076                        
1077                        
1078                            <span class="tag is-size-7 is-info is-light">Article</span>
1079                        
1080                        
1081                        
1082                            <span class="has-text-grey is-size-6">Listen to a stream of events and produce a new event when a value changes.</span>
1083                        
1084                        
1085                    </a>
1086                </p>
1087            </div>
1088            
1089            
1090            
1091
1092            <div class="block">
1093                <p class="p-5">
1094                    <a href="/2019/05/ddd-msg-arch/">
1095                        <span class="has-text-grey-darker is-size-5">DDD and Messaging Architectures</span>
1096                        <br>
1097                        
1098                        
1099                            <span class="tag is-size-7 is-info is-light">Article</span>
1100                        
1101                        
1102                        
1103                            <span class="has-text-grey is-size-6">An overview of my different series on patterns in distributed systems.</span>
1104                        
1105                        
1106                    </a>
1107                </p>
1108            </div>
1109            
1110            
1111            
1112
1113            <div class="block">
1114                <p class="p-5">
1115                    <a href="/2019/05/eventsourcing-patterns-throw-away-the-key/">
1116                        <span class="has-text-grey-darker is-size-5">Eventsourcing Patterns: Crypto-Shredding</span>
1117                        <br>
1118                        
1119                        
1120                            <span class="tag is-size-7 is-info is-light">Article</span>
1121                        
1122                        
1123                        
1124                            <span class="has-text-grey is-size-6">Encrypt sensitive information in an event and delete the key.</span>
1125                        
1126                        
1127                    </a>
1128                </p>
1129            </div>
1130            
1131            
1132            
1133
1134            <div class="block">
1135                <p class="p-5">
1136                    <a href="/2019/05/eventsourcing-patterns-forgettable-payloads/">
1137                        <span class="has-text-grey-darker is-size-5">Eventsourcing Patterns: Forgettable Payloads</span>
1138                        <br>
1139                        
1140                        
1141                            <span class="tag is-size-7 is-info is-light">Article</span>
1142                        
1143                        
1144                        
1145                            <span class="has-text-grey is-size-6">Store the sensitive payload of an event in a separate store to control access and removal.</span>
1146                        
1147                        
1148                    </a>
1149                </p>
1150            </div>
1151            
1152            
1153            
1154
1155            <div class="block">
1156                <p class="p-5">
1157                    <a href="/2019/05/patterns-for-decoupling-distsys-segregated-event-layers/">
1158                        <span class="has-text-grey-darker is-size-5">Patterns for Decoupling in Distributed Systems: Segregated Event Layers</span>
1159                        <br>
1160                        
1161                        
1162                            <span class="tag is-size-7 is-info is-light">Article</span>
1163                        
1164                        
1165                        
1166                            <span class="has-text-grey is-size-6">Explicitly segregate a Bounded Context's events in visibility layers, with their own language.</span>
1167                        
1168                        
1169                    </a>
1170                </p>
1171            </div>
1172            
1173            
1174            
1175
1176            <div class="block">
1177                <p class="p-5">
1178                    <a href="/2019/05/patterns-for-decoupling-distsys-fat-event/">
1179                        <span class="has-text-grey-darker is-size-5">Patterns for Decoupling in Distributed Systems: Fat Event</span>
1180                        <br>
1181                        
1182                        
1183                            <span class="tag is-size-7 is-info is-light">Article</span>
1184                        
1185                        
1186                        
1187                            <span class="has-text-grey is-size-6">Add redundant information to a Domain Event to reduce complexity in the consumer.</span>
1188                        
1189                        
1190                    </a>
1191                </p>
1192            </div>
1193            
1194            
1195            
1196
1197            <div class="block">
1198                <p class="p-5">
1199                    <a href="/2019/05/patterns-for-decoupling-distsys-explicit-public-events/">
1200                        <span class="has-text-grey-darker is-size-5">Patterns for Decoupling in Distributed Systems: Explicit Public Events</span>
1201                        <br>
1202                        
1203                        
1204                            <span class="tag is-size-7 is-info is-light">Article</span>
1205                        
1206                        
1207                        
1208                            <span class="has-text-grey is-size-6">Mark a small subset of events as public, keep the rest private by default.</span>
1209                        
1210                        
1211                    </a>
1212                </p>
1213            </div>
1214            
1215            
1216            
1217
1218            <div class="block">
1219                <p class="p-5">
1220                    <a href="/2019/05/patterns-for-decoupling-distsys-passage-of-time-event/">
1221                        <span class="has-text-grey-darker is-size-5">Patterns for Decoupling in Distributed Systems: Passage of Time Event</span>
1222                        <br>
1223                        
1224                        
1225                            <span class="tag is-size-7 is-info is-light">Article</span>
1226                        
1227                        
1228                        
1229                            <span class="has-text-grey is-size-6">Replace cron jobs and scheduled commands, with an agnostic event to indicate the passage of time.</span>
1230                        
1231                        
1232                    </a>
1233                </p>
1234            </div>
1235            
1236            
1237            
1238
1239            <div class="block">
1240                <p class="p-5">
1241                    <a href="/2019/05/patterns-for-decoupling-distsys-summary-event/">
1242                        <span class="has-text-grey-darker is-size-5">Patterns for Decoupling in Distributed Systems: Summary Event</span>
1243                        <br>
1244                        
1245                        
1246                            <span class="tag is-size-7 is-info is-light">Article</span>
1247                        
1248                        
1249                        
1250                            <span class="has-text-grey is-size-6">Instead of emitting a stream of Domain Events, emit a single Summary.</span>
1251                        
1252                        
1253                    </a>
1254                </p>
1255            </div>
1256            
1257            
1258            
1259
1260            <div class="block">
1261                <p class="p-5">
1262                    <a href="/2019/05/patterns-for-decoupling-distsys-domain-query/">
1263                        <span class="has-text-grey-darker is-size-5">Patterns for Decoupling in Distributed Systems: Domain Query</span>
1264                        <br>
1265                        
1266                        
1267                            <span class="tag is-size-7 is-info is-light">Article</span>
1268                        
1269                        
1270                        
1271                            <span class="has-text-grey is-size-6">Replace Free Queries with Domain Queries to decouple from knowledge of the server's internals.</span>
1272                        
1273                        
1274                    </a>
1275                </p>
1276            </div>
1277            
1278            
1279            
1280
1281            <div class="block">
1282                <p class="p-5">
1283                    <a href="/2019/05/patterns-for-decoupling-distsys-completeness-guarantee/">
1284                        <span class="has-text-grey-darker is-size-5">Patterns for Decoupling in Distributed Systems: Completeness Guarantee</span>
1285                        <br>
1286                        
1287                        
1288                            <span class="tag is-size-7 is-info is-light">Article</span>
1289                        
1290                        
1291                        
1292                            <span class="has-text-grey is-size-6">Design the set of Domain Events from a producer so that they can be used to rebuild the producer's state.</span>
1293                        
1294                        
1295                    </a>
1296                </p>
1297            </div>
1298            
1299            
1300            
1301            
1302            <div>
1303                <div class="divider is-size-7">2018</div>
1304            </div>
1305            
1306
1307            <div class="block">
1308                <p class="p-5">
1309                    <a href="/2018/04/design-heuristics/">
1310                        <span class="has-text-grey-darker is-size-5">Design Heuristics</span>
1311                        <br>
1312                        
1313                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1314                        
1315                        
1316                        
1317                        
1318                            <span class="has-text-grey is-size-6">Distilling your design heuristics using practical examples.</span>
1319                        
1320                        
1321                    </a>
1322                </p>
1323            </div>
1324            
1325            
1326            
1327            
1328            <div>
1329                <div class="divider is-size-7">2017</div>
1330            </div>
1331            
1332
1333            <div class="block">
1334                <p class="p-5">
1335                    <a href="/2017/04/emergent-boundaries/">
1336                        <span class="has-text-grey-darker is-size-5">Emergent Boundaries</span>
1337                        <br>
1338                        
1339                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1340                        
1341                        
1342                        
1343                        
1344                            <span class="has-text-grey is-size-6"></span>
1345                        
1346                        
1347                    </a>
1348                </p>
1349            </div>
1350            
1351            
1352            
1353
1354            <div class="block">
1355                <p class="p-5">
1356                    <a href="/2017/04/messages-over-structure/">
1357                        <span class="has-text-grey-darker is-size-5">Messages Over Structure</span>
1358                        <br>
1359                        
1360                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1361                        
1362                        
1363                        
1364                        
1365                            <span class="has-text-grey is-size-6"></span>
1366                        
1367                        
1368                    </a>
1369                </p>
1370            </div>
1371            
1372            
1373            
1374            
1375            <div>
1376                <div class="divider is-size-7">2016</div>
1377            </div>
1378            
1379
1380            <div class="block">
1381                <p class="p-5">
1382                    <a href="/2016/11/on-being-explicit/">
1383                        <span class="has-text-grey-darker is-size-5">On Being Explicit</span>
1384                        <br>
1385                        
1386                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1387                        
1388                        
1389                        
1390                        
1391                            <span class="has-text-grey is-size-6">Software design stories</span>
1392                        
1393                        
1394                    </a>
1395                </p>
1396            </div>
1397            
1398            
1399            
1400
1401            <div class="block">
1402                <p class="p-5">
1403                    <a href="/2016/05/designed-stickiness/">
1404                        <span class="has-text-grey-darker is-size-5">Designed Stickiness</span>
1405                        <br>
1406                        
1407                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1408                        
1409                        
1410                        
1411                        
1412                            <span class="has-text-grey is-size-6">How sticky metaphors can communicate better software models.</span>
1413                        
1414                        
1415                    </a>
1416                </p>
1417            </div>
1418            
1419            
1420            
1421
1422            <div class="block">
1423                <p class="p-5">
1424                    <a href="/2016/05/lightning-talks/">
1425                        <span class="has-text-grey-darker is-size-5">Lightning Talks</span>
1426                        <br>
1427                        
1428                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1429                        
1430                        
1431                        
1432                        
1433                            <span class="has-text-grey is-size-6">Five minute lightning talks, to practice public speaking.</span>
1434                        
1435                        
1436                    </a>
1437                </p>
1438            </div>
1439            
1440            
1441            
1442
1443            <div class="block">
1444                <p class="p-5">
1445                    <a href="/2016/04/repair-replace-heuristic-for-legacy-software/">
1446                        <span class="has-text-grey-darker is-size-5">The Repair/Replace Heuristic for Legacy Software</span>
1447                        <br>
1448                        
1449                        
1450                            <span class="tag is-size-7 is-info is-light">Article</span>
1451                        
1452                        
1453                        
1454                            <span class="has-text-grey is-size-6">How understanding the history of systems aids strategic decisions</span>
1455                        
1456                        
1457                    </a>
1458                </p>
1459            </div>
1460            
1461            
1462            
1463
1464            <div class="block">
1465                <p class="p-5">
1466                    <a href="/2016/04/property-based-testing/">
1467                        <span class="has-text-grey-darker is-size-5">Property-based testing</span>
1468                        <br>
1469                        
1470                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1471                        
1472                        
1473                        
1474                        
1475                            <span class="has-text-grey is-size-6"></span>
1476                        
1477                        
1478                    </a>
1479                </p>
1480            </div>
1481            
1482            
1483            
1484
1485            <div class="block">
1486                <p class="p-5">
1487                    <a href="/2016/04/code-reviews-and-blame-culture/">
1488                        <span class="has-text-grey-darker is-size-5">Code Reviews and Blame Culture</span>
1489                        <br>
1490                        
1491                        
1492                            <span class="tag is-size-7 is-info is-light">Article</span>
1493                        
1494                        
1495                        
1496                            <span class="has-text-grey is-size-6">A common belief is that gated reviews lead to blaming individuals. The opposite can be true.</span>
1497                        
1498                        
1499                    </a>
1500                </p>
1501            </div>
1502            
1503            
1504            
1505
1506            <div class="block">
1507                <p class="p-5">
1508                    <a href="/2016/02/type-safety-and-money/">
1509                        <span class="has-text-grey-darker is-size-5">Type Safety and Money</span>
1510                        <br>
1511                        
1512                        
1513                            <span class="tag is-size-7 is-info is-light">Article</span>
1514                        
1515                        
1516                        
1517                            <span class="has-text-grey is-size-6">All good design is redesign.</span>
1518                        
1519                        
1520                    </a>
1521                </p>
1522            </div>
1523            
1524            
1525            
1526            
1527            <div>
1528                <div class="divider is-size-7">2015</div>
1529            </div>
1530            
1531
1532            <div class="block">
1533                <p class="p-5">
1534                    <a href="/2015/05/towards-modelling-processes/">
1535                        <span class="has-text-grey-darker is-size-5">Towards Modelling Processes</span>
1536                        <br>
1537                        
1538                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1539                        
1540                        
1541                        
1542                        
1543                            <span class="has-text-grey is-size-6">A temporal view of business problems leads to deeper models.</span>
1544                        
1545                        
1546                    </a>
1547                </p>
1548            </div>
1549            
1550            
1551            
1552
1553            <div class="block">
1554                <p class="p-5">
1555                    <a href="/2015/04/context-mapping-life-expectancy/">
1556                        <span class="has-text-grey-darker is-size-5">Context Mapping: Life Expectancy</span>
1557                        <br>
1558                        
1559                        
1560                            <span class="tag is-size-7 is-info is-light">Article</span>
1561                        
1562                        
1563                        
1564                            <span class="has-text-grey is-size-6">When Context Mapping a complex environment, indicate the Life Expectancy of each Bounded Context, as well as its sponsors and other relevant metadata.</span>
1565                        
1566                        
1567                    </a>
1568                </p>
1569            </div>
1570            
1571            
1572            
1573
1574            <div class="block">
1575                <p class="p-5">
1576                    <a href="/2015/03/event-storming-storytelling-visualisations/">
1577                        <span class="has-text-grey-darker is-size-5">Event Storming, Storytelling, Visualisations</span>
1578                        <br>
1579                        
1580                        
1581                            <span class="tag is-size-7 is-info is-light">Article</span>
1582                        
1583                        
1584                        
1585                            <span class="has-text-grey is-size-6">About telling non-linear stories with stickies, and visualising complications in Event Stormed models.</span>
1586                        
1587                        
1588                    </a>
1589                </p>
1590            </div>
1591            
1592            
1593            
1594
1595            <div class="block">
1596                <p class="p-5">
1597                    <a href="/2015/02/form-command-model-validation/">
1598                        <span class="has-text-grey-darker is-size-5">Form, Command, and Model Validation</span>
1599                        <br>
1600                        
1601                        
1602                            <span class="tag is-size-7 is-info is-light">Article</span>
1603                        
1604                        
1605                        
1606                            <span class="has-text-grey is-size-6">Make a clear distinction between different layers of validation.</span>
1607                        
1608                        
1609                    </a>
1610                </p>
1611            </div>
1612            
1613            
1614            
1615
1616            <div class="block">
1617                <p class="p-5">
1618                    <a href="/2015/01/messaging-flavours/">
1619                        <span class="has-text-grey-darker is-size-5">Messaging Flavours</span>
1620                        <br>
1621                        
1622                        
1623                            <span class="tag is-size-7 is-info is-light">Article</span>
1624                        
1625                        
1626                        
1627                            <span class="has-text-grey is-size-6">Differentiating between informational, interrogatory, and imperative messages, and keeping them nicely separated.</span>
1628                        
1629                        
1630                    </a>
1631                </p>
1632            </div>
1633            
1634            
1635            
1636
1637            <div class="block">
1638                <p class="p-5">
1639                    <a href="/2015/01/economy-of-tests/">
1640                        <span class="has-text-grey-darker is-size-5">Economy of Tests</span>
1641                        <br>
1642                        
1643                        
1644                            <span class="tag is-size-7 is-info is-light">Article</span>
1645                        
1646                        
1647                        
1648                            <span class="has-text-grey is-size-6">Migrate test levels to improve the long term sustainability of your test suite.</span>
1649                        
1650                        
1651                            <br><span class="has-text-grey is-size-7">— by @mathiasverraes and @everzet</span>
1652                        
1653                    </a>
1654                </p>
1655            </div>
1656            
1657            
1658            
1659            
1660            <div>
1661                <div class="divider is-size-7">2014</div>
1662            </div>
1663            
1664
1665            <div class="block">
1666                <p class="p-5">
1667                    <a href="/2014/12/how-much-testing-is-too-much/">
1668                        <span class="has-text-grey-darker is-size-5">How Much Testing is Too Much?</span>
1669                        <br>
1670                        
1671                        
1672                            <span class="tag is-size-7 is-info is-light">Article</span>
1673                        
1674                        
1675                        
1676                            <span class="has-text-grey is-size-6">Run an experiment to learn how much unit tests you actually need.</span>
1677                        
1678                        
1679                    </a>
1680                </p>
1681            </div>
1682            
1683            
1684            
1685
1686            <div class="block">
1687                <p class="p-5">
1688                    <a href="/2014/12/erlang-let-it-crash/">
1689                        <span class="has-text-grey-darker is-size-5">Let It Crash</span>
1690                        <br>
1691                        
1692                        
1693                            <span class="tag is-size-7 is-info is-light">Article</span>
1694                        
1695                        
1696                        
1697                            <span class="has-text-grey is-size-6">The Erlang view of the world is that everything is a process and that processes can interact only by exchanging messages.</span>
1698                        
1699                        
1700                    </a>
1701                </p>
1702            </div>
1703            
1704            
1705            
1706
1707            <div class="block">
1708                <p class="p-5">
1709                    <a href="/2014/11/higher-order-programming/">
1710                        <span class="has-text-grey-darker is-size-5">Higher Order Programming</span>
1711                        <br>
1712                        
1713                        
1714                            <span class="tag is-size-7 is-info is-light">Article</span>
1715                        
1716                        
1717                        
1718                            <span class="has-text-grey is-size-6">map(divide(__, 2), __) and other excursions into elegant functional programming in PHP</span>
1719                        
1720                        
1721                    </a>
1722                </p>
1723            </div>
1724            
1725            
1726            
1727
1728            <div class="block">
1729                <p class="p-5">
1730                    <a href="/2014/11/modelling-heuristics/">
1731                        <span class="has-text-grey-darker is-size-5">Modelling Heuristics</span>
1732                        <br>
1733                        
1734                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1735                        
1736                        
1737                        
1738                        
1739                            <span class="has-text-grey is-size-6">Mental tools to help you discover model variations</span>
1740                        
1741                        
1742                    </a>
1743                </p>
1744            </div>
1745            
1746            
1747            
1748
1749            <div class="block">
1750                <p class="p-5">
1751                    <a href="/2014/11/domain-events/">
1752                        <span class="has-text-grey-darker is-size-5">Domain Events</span>
1753                        <br>
1754                        
1755                        
1756                            <span class="tag is-size-7 is-info is-light">Article</span>
1757                        
1758                        
1759                        
1760                            <span class="has-text-grey is-size-6">Domain Events allow you to segregate the models of different systems</span>
1761                        
1762                        
1763                    </a>
1764                </p>
1765            </div>
1766            
1767            
1768            
1769
1770            <div class="block">
1771                <p class="p-5">
1772                    <a href="/2014/11/object-reorientation/">
1773                        <span class="has-text-grey-darker is-size-5">Object Reorientation</span>
1774                        <br>
1775                        
1776                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1777                        
1778                        
1779                        
1780                        
1781                            <span class="has-text-grey is-size-6">Introductory talk to programming with objects</span>
1782                        
1783                        
1784                    </a>
1785                </p>
1786            </div>
1787            
1788            
1789            
1790
1791            <div class="block">
1792                <p class="p-5">
1793                    <a href="/2014/10/software-design-is-just-theory/">
1794                        <span class="has-text-grey-darker is-size-5">“Software design is just theory”</span>
1795                        <br>
1796                        
1797                        
1798                            <span class="tag is-size-7 is-info is-light">Article</span>
1799                        
1800                        
1801                        
1802                            <span class="has-text-grey is-size-6">Is writing code all day all you need to do to become a better programmer?</span>
1803                        
1804                        
1805                    </a>
1806                </p>
1807            </div>
1808            
1809            
1810            
1811
1812            <div class="block">
1813                <p class="p-5">
1814                    <a href="/2014/10/small-controlled-experiments-revisited/">
1815                        <span class="has-text-grey-darker is-size-5">Small Uncontrolled Experiments (revisited)</span>
1816                        <br>
1817                        
1818                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1819                        
1820                        
1821                        
1822                        
1823                            <span class="has-text-grey is-size-6">How to improve when you don't know how to improve</span>
1824                        
1825                        
1826                    </a>
1827                </p>
1828            </div>
1829            
1830            
1831            
1832
1833            <div class="block">
1834                <p class="p-5">
1835                    <a href="/2014/09/objects-as-contracts-for-behaviour/">
1836                        <span class="has-text-grey-darker is-size-5">Objects as Contracts for Behaviour</span>
1837                        <br>
1838                        
1839                        
1840                            <span class="tag is-size-7 is-info is-light">Article</span>
1841                        
1842                        
1843                        
1844                            <span class="has-text-grey is-size-6">Even in the real world, the potential behaviours of an object are essential to that object.</span>
1845                        
1846                        
1847                    </a>
1848                </p>
1849            </div>
1850            
1851            
1852            
1853
1854            <div class="block">
1855                <p class="p-5">
1856                    <a href="/2014/09/decoupling-model-framework/">
1857                        <span class="has-text-grey-darker is-size-5">Decoupling the Model from the Framework</span>
1858                        <br>
1859                        
1860                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1861                        
1862                        
1863                        
1864                        
1865                            <span class="has-text-grey is-size-6">Presentation on Domain-Driven Design, CRUD, Task-based UI's, Commands, Events, ...</span>
1866                        
1867                        
1868                    </a>
1869                </p>
1870            </div>
1871            
1872            
1873            
1874
1875            <div class="block">
1876                <p class="p-5">
1877                    <a href="/2014/08/sterile-estimation/">
1878                        <span class="has-text-grey-darker is-size-5">Sterile Estimation</span>
1879                        <br>
1880                        
1881                        
1882                            <span class="tag is-size-7 is-info is-light">Article</span>
1883                        
1884                        
1885                        
1886                            <span class="has-text-grey is-size-6">The Anchoring Bias, well-known to psychologists, prevents you from making quality estimates.</span>
1887                        
1888                        
1889                    </a>
1890                </p>
1891            </div>
1892            
1893            
1894            
1895
1896            <div class="block">
1897                <p class="p-5">
1898                    <a href="/2014/08/resolving-feature-envy-in-the-domain/">
1899                        <span class="has-text-grey-darker is-size-5">Resolving Feature Envy in the Domain</span>
1900                        <br>
1901                        
1902                        
1903                            <span class="tag is-size-7 is-info is-light">Article</span>
1904                        
1905                        
1906                        
1907                            <span class="has-text-grey is-size-6">Expressing the Ubiquitous Language helps us to get rid of the Feature Envy code smell.</span>
1908                        
1909                        
1910                    </a>
1911                </p>
1912            </div>
1913            
1914            
1915            
1916
1917            <div class="block">
1918                <p class="p-5">
1919                    <a href="/2014/08/dry-is-about-knowledge/">
1920                        <span class="has-text-grey-darker is-size-5">DRY is about Knowledge</span>
1921                        <br>
1922                        
1923                        
1924                            <span class="tag is-size-7 is-info is-light">Article</span>
1925                        
1926                        
1927                        
1928                            <span class="has-text-grey is-size-6">Code duplication is not the issue.</span>
1929                        
1930                        
1931                    </a>
1932                </p>
1933            </div>
1934            
1935            
1936            
1937
1938            <div class="block">
1939                <p class="p-5">
1940                    <a href="/2014/07/event-storming-fake-domains-happy-paths/">
1941                        <span class="has-text-grey-darker is-size-5">Event Storming: on Fake Domains and Happy Paths</span>
1942                        <br>
1943                        
1944                        
1945                            <span class="tag is-size-7 is-info is-light">Article</span>
1946                        
1947                        
1948                        
1949                            <span class="has-text-grey is-size-6">More Event Storming insights: picking good domains, modelling branches using duplication, and creative visualisation.</span>
1950                        
1951                        
1952                    </a>
1953                </p>
1954            </div>
1955            
1956            
1957            
1958
1959            <div class="block">
1960                <p class="p-5">
1961                    <a href="/2014/06/managed-technical-debt-revisited/">
1962                        <span class="has-text-grey-darker is-size-5">Managed Technical Debt (revisited)</span>
1963                        <br>
1964                        
1965                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
1966                        
1967                        
1968                        
1969                        
1970                            <span class="has-text-grey is-size-6">Are you sweeping technical debt under the rug?</span>
1971                        
1972                        
1973                    </a>
1974                </p>
1975            </div>
1976            
1977            
1978            
1979
1980            <div class="block">
1981                <p class="p-5">
1982                    <a href="/2014/06/information-overload/">
1983                        <span class="has-text-grey-darker is-size-5">Information Overload</span>
1984                        <br>
1985                        
1986                        
1987                            <span class="tag is-size-7 is-info is-light">Article</span>
1988                        
1989                        
1990                        
1991                            <span class="has-text-grey is-size-6">Learn by finding the differences, not the similarities.</span>
1992                        
1993                        
1994                    </a>
1995                </p>
1996            </div>
1997            
1998            
1999            
2000
2001            <div class="block">
2002                <p class="p-5">
2003                    <a href="/2014/06/cost-of-estimation/">
2004                        <span class="has-text-grey-darker is-size-5">The Cost of Estimation</span>
2005                        <br>
2006                        
2007                        
2008                            <span class="tag is-size-7 is-info is-light">Article</span>
2009                        
2010                        
2011                        
2012                            <span class="has-text-grey is-size-6">Asking for estimates can cost you more than you think. When you do estimate, take into account time, complexity, and risk.</span>
2013                        
2014                        
2015                    </a>
2016                </p>
2017            </div>
2018            
2019            
2020            
2021
2022            <div class="block">
2023                <p class="p-5">
2024                    <a href="/2014/06/when-to-use-static-methods-in-php/">
2025                        <span class="has-text-grey-darker is-size-5">When to Use Static Methods</span>
2026                        <br>
2027                        
2028                        
2029                            <span class="tag is-size-7 is-info is-light">Article</span>
2030                        
2031                        
2032                        
2033                            <span class="has-text-grey is-size-6">Static methods? Yes, when they are stateless.</span>
2034                        
2035                        
2036                    </a>
2037                </p>
2038            </div>
2039            
2040            
2041            
2042
2043            <div class="block">
2044                <p class="p-5">
2045                    <a href="/2014/06/named-constructors-in-php/">
2046                        <span class="has-text-grey-darker is-size-5">Named Constructors in PHP</span>
2047                        <br>
2048                        
2049                        
2050                            <span class="tag is-size-7 is-info is-light">Article</span>
2051                        
2052                        
2053                        
2054                            <span class="has-text-grey is-size-6">Don't limit yourself by PHP's single constructor. Use static factory methods.</span>
2055                        
2056                        
2057                    </a>
2058                </p>
2059            </div>
2060            
2061            
2062            
2063
2064            <div class="block">
2065                <p class="p-5">
2066                    <a href="/2014/05/why-domain-driven-design-matters/">
2067                        <span class="has-text-grey-darker is-size-5">Why Domain-Driven Design Matters</span>
2068                        <br>
2069                        
2070                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
2071                        
2072                        
2073                        
2074                        
2075                            <span class="has-text-grey is-size-6">Thinking about Systems and Complexity.</span>
2076                        
2077                        
2078                    </a>
2079                </p>
2080            </div>
2081            
2082            
2083            
2084
2085            <div class="block">
2086                <p class="p-5">
2087                    <a href="/2014/05/functional-foundation-for-cqrs-event-sourcing/">
2088                        <span class="has-text-grey-darker is-size-5">A Functional Foundation for CQRS/ES</span>
2089                        <br>
2090                        
2091                        
2092                            <span class="tag is-size-7 is-info is-light">Article</span>
2093                        
2094                        
2095                        
2096                            <span class="has-text-grey is-size-6">A CQRS architecture can be seen as a set of referentially transparent functions that model decisions and interpretation.</span>
2097                        
2098                        
2099                    </a>
2100                </p>
2101            </div>
2102            
2103            
2104            
2105
2106            <div class="block">
2107                <p class="p-5">
2108                    <a href="/2014/05/final-classes-in-php/">
2109                        <span class="has-text-grey-darker is-size-5">Final Classes: Open for Extension, Closed for Inheritance</span>
2110                        <br>
2111                        
2112                        
2113                            <span class="tag is-size-7 is-info is-light">Article</span>
2114                        
2115                        
2116                        
2117                            <span class="has-text-grey is-size-6">Composition, strategies, callbacks, plugins, event listeners, ... are all valid ways to extend without inheritance.</span>
2118                        
2119                        
2120                    </a>
2121                </p>
2122            </div>
2123            
2124            
2125            
2126
2127            <div class="block">
2128                <p class="p-5">
2129                    <a href="/2014/03/small-controlled-experiments/">
2130                        <span class="has-text-grey-darker is-size-5">Small Uncontrolled Experiments</span>
2131                        <br>
2132                        
2133                        
2134                            <span class="tag is-size-7 is-info is-light">Article</span>
2135                        
2136                        
2137                        
2138                            <span class="has-text-grey is-size-6">How we made continuous improvement truly continuous, using stickies, a timeline, and few minutes each day.</span>
2139                        
2140                        
2141                    </a>
2142                </p>
2143            </div>
2144            
2145            
2146            
2147
2148            <div class="block">
2149                <p class="p-5">
2150                    <a href="/2014/03/practical-event-sourcing/">
2151                        <span class="has-text-grey-darker is-size-5">Practical Event Sourcing</span>
2152                        <br>
2153                        
2154                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
2155                        
2156                        
2157                        
2158                        
2159                            <span class="has-text-grey is-size-6">A step by step guide to building your very first Event Sourced Aggregate.</span>
2160                        
2161                        
2162                    </a>
2163                </p>
2164            </div>
2165            
2166            
2167            
2168
2169            <div class="block">
2170                <p class="p-5">
2171                    <a href="/2014/03/religiously-restful/">
2172                        <span class="has-text-grey-darker is-size-5">Religiously RESTful</span>
2173                        <br>
2174                        
2175                        
2176                            <span class="tag is-size-7 is-info is-light">Article</span>
2177                        
2178                        
2179                        
2180                            <span class="has-text-grey is-size-6">REST: The language of the future, or opium for the masses?</span>
2181                        
2182                        
2183                    </a>
2184                </p>
2185            </div>
2186            
2187            
2188            
2189
2190            <div class="block">
2191                <p class="p-5">
2192                    <a href="/2014/02/buzzword-free-bounded-contexts/">
2193                        <span class="has-text-grey-darker is-size-5">Buzzword-free Bounded Contexts</span>
2194                        <br>
2195                        
2196                        
2197                            <span class="tag is-size-7 is-info is-light">Article</span>
2198                        
2199                        
2200                        
2201                            <span class="has-text-grey is-size-6">My recent attempt at explaining Bounded Contexts at @DDDBE, was criticised for being too heavy on terminology. Rinse, adjust, repeat.</span>
2202                        
2203                        
2204                    </a>
2205                </p>
2206            </div>
2207            
2208            
2209            
2210
2211            <div class="block">
2212                <p class="p-5">
2213                    <a href="/2014/02/domain-driven-design-basics/">
2214                        <span class="has-text-grey-darker is-size-5">Domain-Driven Design: Bounded Contexts, Modelling</span>
2215                        <br>
2216                        
2217                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
2218                        
2219                        
2220                        
2221                        
2222                            <span class="has-text-grey is-size-6">Gentle introductions to DDD by the founders of DDD Belgium.</span>
2223                        
2224                        
2225                    </a>
2226                </p>
2227            </div>
2228            
2229            
2230            
2231
2232            <div class="block">
2233                <p class="p-5">
2234                    <a href="/2014/01/bandwidth-and-context-mapping/">
2235                        <span class="has-text-grey-darker is-size-5">Bandwidth and Context Mapping</span>
2236                        <br>
2237                        
2238                        
2239                            <span class="tag is-size-7 is-info is-light">Article</span>
2240                        
2241                        
2242                        
2243                            <span class="has-text-grey is-size-6">Context Mapping is about the whitespace between systems, and the bandwidth of the communications.</span>
2244                        
2245                        
2246                    </a>
2247                </p>
2248            </div>
2249            
2250            
2251            
2252
2253            <div class="block">
2254                <p class="p-5">
2255                    <a href="/2014/01/build-for-failure/">
2256                        <span class="has-text-grey-darker is-size-5">Build for Failure</span>
2257                        <br>
2258                        
2259                        
2260                            <span class="tag is-size-7 is-info is-light">Article</span>
2261                        
2262                        
2263                        
2264                            <span class="has-text-grey is-size-6">Admit failure. Build for failure. Live failure.</span>
2265                        
2266                        
2267                    </a>
2268                </p>
2269            </div>
2270            
2271            
2272            
2273
2274            <div class="block">
2275                <p class="p-5">
2276                    <a href="/2014/01/henry-ford-fallacy/">
2277                        <span class="has-text-grey-darker is-size-5">The Henry Ford Fallacy</span>
2278                        <br>
2279                        
2280                        
2281                            <span class="tag is-size-7 is-info is-light">Article</span>
2282                        
2283                        
2284                        
2285                        
2286                    </a>
2287                </p>
2288            </div>
2289            
2290            
2291            
2292
2293            <div class="block">
2294                <p class="p-5">
2295                    <a href="/2014/01/domain-driven-design-is-linguistic/">
2296                        <span class="has-text-grey-darker is-size-5">Domain-Driven Design is Linguistic</span>
2297                        <br>
2298                        
2299                        
2300                            <span class="tag is-size-7 is-info is-light">Article</span>
2301                        
2302                        
2303                        
2304                            <span class="has-text-grey is-size-6">Just because two behaviours lead to the same outcome, does not mean they are replaceable.</span>
2305                        
2306                        
2307                    </a>
2308                </p>
2309            </div>
2310            
2311            
2312            
2313            
2314            <div>
2315                <div class="divider is-size-7">2013</div>
2316            </div>
2317            
2318
2319            <div class="block">
2320                <p class="p-5">
2321                    <a href="/2013/12/fighting-bottlenecks-with-cqrs/">
2322                        <span class="has-text-grey-darker is-size-5">Fighting Bottlenecks with CQRS</span>
2323                        <br>
2324                        
2325                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
2326                        
2327                        
2328                        
2329                        
2330                            <span class="has-text-grey is-size-6">CQRS challenges the assumption that reading and writing are supposed to share the same abstractions.</span>
2331                        
2332                        
2333                    </a>
2334                </p>
2335            </div>
2336            
2337            
2338            
2339
2340            <div class="block">
2341                <p class="p-5">
2342                    <a href="/2013/11/value-objects-and-user-interfaces/">
2343                        <span class="has-text-grey-darker is-size-5">Value Objects and User Interfaces</span>
2344                        <br>
2345                        
2346                        
2347                            <span class="tag is-size-7 is-info is-light">Article</span>
2348                        
2349                        
2350                        
2351                            <span class="has-text-grey is-size-6">Separate value objects in your model from concepts that serve the UI.</span>
2352                        
2353                        
2354                    </a>
2355                </p>
2356            </div>
2357            
2358            
2359            
2360
2361            <div class="block">
2362                <p class="p-5">
2363                    <a href="/2013/10/pre-merge-code-reviews/">
2364                        <span class="has-text-grey-darker is-size-5">Pre-merge Code Reviews</span>
2365                        <br>
2366                        
2367                        
2368                            <span class="tag is-size-7 is-info is-light">Article</span>
2369                        
2370                        
2371                        
2372                            <span class="has-text-grey is-size-6">Rules, benefits, patterns, and anti-patterns for reviewing code before merging it.</span>
2373                        
2374                        
2375                    </a>
2376                </p>
2377            </div>
2378            
2379            
2380            
2381
2382            <div class="block">
2383                <p class="p-5">
2384                    <a href="/2013/10/verbs-in-class-names/">
2385                        <span class="has-text-grey-darker is-size-5">Verbs in Class Names</span>
2386                        <br>
2387                        
2388                        
2389                            <span class="tag is-size-7 is-info is-light">Article</span>
2390                        
2391                        
2392                        
2393                            <span class="has-text-grey is-size-6">Use a verb to build a sentence. There will be no translation to code in your brain. The sentence _is_ the code.</span>
2394                        
2395                        
2396                    </a>
2397                </p>
2398            </div>
2399            
2400            
2401            
2402
2403            <div class="block">
2404                <p class="p-5">
2405                    <a href="/2013/09/sensible-interfaces/">
2406                        <span class="has-text-grey-darker is-size-5">Sensible Interfaces</span>
2407                        <br>
2408                        
2409                        
2410                            <span class="tag is-size-7 is-info is-light">Article</span>
2411                        
2412                        
2413                        
2414                            <span class="has-text-grey is-size-6">How did we get from 'Program to an interface, not to an implementation' to 'Just slap an interface on there, it's the fashionable thing to do'?</span>
2415                        
2416                        
2417                    </a>
2418                </p>
2419            </div>
2420            
2421            
2422            
2423
2424            <div class="block">
2425                <p class="p-5">
2426                    <a href="/2013/09/extract-till-you-drop/">
2427                        <span class="has-text-grey-darker is-size-5">Extract Till You Drop</span>
2428                        <br>
2429                        
2430                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
2431                        
2432                        
2433                        
2434                        
2435                            <span class="has-text-grey is-size-6">If I'm not afraid to refactor messy code in front of a live audience, you shouldn't be afraid to do it in the comfort of your office.</span>
2436                        
2437                        
2438                    </a>
2439                </p>
2440            </div>
2441            
2442            
2443            
2444
2445            <div class="block">
2446                <p class="p-5">
2447                    <a href="/2013/09/dddbe-modellathon/">
2448                        <span class="has-text-grey-darker is-size-5">The DDDBE Modellathon</span>
2449                        <br>
2450                        
2451                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
2452                        
2453                        
2454                        
2455                        
2456                        
2457                    </a>
2458                </p>
2459            </div>
2460            
2461            
2462            
2463
2464            <div class="block">
2465                <p class="p-5">
2466                    <a href="/2013/08/antifragile-nassim-nicholas-taleb/">
2467                        <span class="has-text-grey-darker is-size-5">Antifragile - Things That Gain from Disorder</span>
2468                        <br>
2469                        
2470                        
2471                            <span class="tag is-size-7 is-info is-light">Article</span>
2472                        
2473                        
2474                        
2475                            <span class="has-text-grey is-size-6">Robustness only goes so far. Embrace a system's natural antifragility.</span>
2476                        
2477                        
2478                    </a>
2479                </p>
2480            </div>
2481            
2482            
2483            
2484
2485            <div class="block">
2486                <p class="p-5">
2487                    <a href="/2013/08/facilitating-event-storming/">
2488                        <span class="has-text-grey-darker is-size-5">Facilitating Event Storming</span>
2489                        <br>
2490                        
2491                        
2492                            <span class="tag is-size-7 is-info is-light">Article</span>
2493                        
2494                        
2495                        
2496                            <span class="has-text-grey is-size-6">Domain-Driven Design modelling for Agile teams, Brandolini-style.</span>
2497                        
2498                        
2499                    </a>
2500                </p>
2501            </div>
2502            
2503            
2504            
2505
2506            <div class="block">
2507                <p class="p-5">
2508                    <a href="/2013/08/chip-dan-heath-switch/">
2509                        <span class="has-text-grey-darker is-size-5">Switch - How to Change Things When Change Is Hard</span>
2510                        <br>
2511                        
2512                        
2513                            <span class="tag is-size-7 is-info is-light">Article</span>
2514                        
2515                        
2516                        
2517                            <span class="has-text-grey is-size-6">Switch is a framework for change that aims to operate on the emotional side, the logical side, and the environment.</span>
2518                        
2519                        
2520                    </a>
2521                </p>
2522            </div>
2523            
2524            
2525            
2526
2527            <div class="block">
2528                <p class="p-5">
2529                    <a href="/2013/08/john-gall-systemantics-the-systems-bible/">
2530                        <span class="has-text-grey-darker is-size-5">Systemantics - The Systems Bible</span>
2531                        <br>
2532                        
2533                        
2534                            <span class="tag is-size-7 is-info is-light">Article</span>
2535                        
2536                        
2537                        
2538                            <span class="has-text-grey is-size-6">The System Kicks Back, Gets In The Way and Opposes Its Own Proper Function. Your own perspective becomes distorted by being In The System.</span>
2539                        
2540                        
2541                    </a>
2542                </p>
2543            </div>
2544            
2545            
2546            
2547
2548            <div class="block">
2549                <p class="p-5">
2550                    <a href="/2013/07/managed-technical-debt/">
2551                        <span class="has-text-grey-darker is-size-5">Managed Technical Debt</span>
2552                        <br>
2553                        
2554                        
2555                            <span class="tag is-size-7 is-info is-light">Article</span>
2556                        
2557                        
2558                        
2559                            <span class="has-text-grey is-size-6">We should make a distinction between Managed and Unmanaged Technical Debt.</span>
2560                        
2561                        
2562                    </a>
2563                </p>
2564            </div>
2565            
2566            
2567            
2568
2569            <div class="block">
2570                <p class="p-5">
2571                    <a href="/2013/06/unbreakable-domain-models/">
2572                        <span class="has-text-grey-darker is-size-5">Unbreakable Domain Models</span>
2573                        <br>
2574                        
2575                            <span class="tag is-size-7 is-warning is-light">Presentation</span>
2576                        
2577                        
2578                        
2579                        
2580                        
2581                    </a>
2582                </p>
2583            </div>
2584            
2585            
2586            
2587
2588            <div class="block">
2589                <p class="p-5">
2590                    <a href="/2013/04/decoupling-symfony2-forms-from-entities/">
2591                        <span class="has-text-grey-darker is-size-5">Decoupling (Symfony2) Forms from Entities</span>
2592                        <br>
2593                        
2594                        
2595                            <span class="tag is-size-7 is-info is-light">Article</span>
2596                        
2597                        
2598                        
2599                            <span class="has-text-grey is-size-6">Avoid tight coupling between your forms and your Entities by using the Command pattern as an intermediate.</span>
2600                        
2601                        
2602                    </a>
2603                </p>
2604            </div>
2605            
2606            
2607            
2608
2609            <div class="block">
2610                <p class="p-5">
2611                    <a href="/2013/04/crud-is-an-anti-pattern/">
2612                        <span class="has-text-grey-darker is-size-5">CRUD is an antipattern</span>
2613                        <br>
2614                        
2615                        
2616                            <span class="tag is-size-7 is-info is-light">Article</span>
2617                        
2618                        
2619                        
2620                            <span class="has-text-grey is-size-6">CRUD doesn't express behaviour. Avoid setters, and use expressive, encapsulated operations instead.</span>
2621                        
2622                        
2623                    </a>
2624                </p>
2625            </div>
2626            
2627            
2628            
2629
2630            <div class="block">
2631                <p class="p-5">
2632                    <a href="/2013/02/2013-02-16-casting-value_objects/">
2633                        <span class="has-text-grey-darker is-size-5">Casting Value Objects to strings</span>
2634                        <br>
2635                        
2636                        
2637                            <span class="tag is-size-7 is-info is-light">Article</span>
2638                        
2639                        
2640                        
2641                            <span class="has-text-grey is-size-6">Cast Value Objects to strings that can be parsed back into the Value Object.</span>
2642                        
2643                        
2644                    </a>
2645                </p>
2646            </div>
2647            
2648            
2649            
2650            
2651            <div>
2652                <div class="divider is-size-7">2012</div>
2653            </div>
2654            
2655
2656            <div class="block">
2657                <p class="p-5">
2658                    <a href="/2012/12/2012-12-23-how-to-read-more-books/">
2659                        <span class="has-text-grey-darker is-size-5">How to Read More Books</span>
2660                        <br>
2661                        
2662                        
2663                            <span class="tag is-size-7 is-info is-light">Article</span>
2664                        
2665                        
2666                        
2667                            <span class="has-text-grey is-size-6">An ever-growing list of tips that help me read more books.</span>
2668                        
2669                        
2670                    </a>
2671                </p>
2672            </div>
2673            
2674            
2675            
2676            
2677            <div>
2678                <div class="divider is-size-7">2011</div>
2679            </div>
2680            
2681
2682            <div class="block">
2683                <p class="p-5">
2684                    <a href="/2011/10/code-folder-structure/">
2685                        <span class="has-text-grey-darker is-size-5">Code Folder Structure</span>
2686                        <br>
2687                        
2688                        
2689                            <span class="tag is-size-7 is-info is-light">Article</span>
2690                        
2691                        
2692                        
2693                        
2694                    </a>
2695                </p>
2696            </div>
2697            
2698            
2699            
2700
2701            <div class="block">
2702                <p class="p-5">
2703                    <a href="/2011/07/coping-with-change-in-software-development/">
2704                        <span class="has-text-grey-darker is-size-5">Coping with Change in Software Development</span>
2705                        <br>
2706                        
2707                        
2708                            <span class="tag is-size-7 is-info is-light">Article</span>
2709                        
2710                        
2711                        
2712                            <span class="has-text-grey is-size-6">Change is not your enemy, it's your job.</span>
2713                        
2714                        
2715                    </a>
2716                </p>
2717            </div>
2718            
2719            
2720            
2721
2722            <div class="block">
2723                <p class="p-5">
2724                    <a href="/2011/05/lazy-loading-with-closures/">
2725                        <span class="has-text-grey-darker is-size-5">Lazy Loading in PHP with Closures</span>
2726                        <br>
2727                        
2728                        
2729                            <span class="tag is-size-7 is-info is-light">Article</span>
2730                        
2731                        
2732                        
2733                        
2734                    </a>
2735                </p>
2736            </div>
2737            
2738            
2739            
2740
2741            <div class="block">
2742                <p class="p-5">
2743                    <a href="/2011/05/ubiquitous-language/">
2744                        <span class="has-text-grey-darker is-size-5">Ubiquitous Language</span>
2745                        <br>
2746                        
2747                        
2748                            <span class="tag is-size-7 is-info is-light">Article</span>
2749                        
2750                        
2751                        
2752                        
2753                    </a>
2754                </p>
2755            </div>
2756            
2757            
2758            
2759
2760            <div class="block">
2761                <p class="p-5">
2762                    <a href="/2011/04/beautiful-code/">
2763                        <span class="has-text-grey-darker is-size-5">Beautiful code</span>
2764                        <br>
2765                        
2766                        
2767                            <span class="tag is-size-7 is-info is-light">Article</span>
2768                        
2769                        
2770                        
2771                        
2772                    </a>
2773                </p>
2774            </div>
2775            
2776            
2777            
2778
2779            <div class="block">
2780                <p class="p-5">
2781                    <a href="/2011/04/fowler-money-pattern-in-php/">
2782                        <span class="has-text-grey-darker is-size-5">Representing Money in PHP, Fowler-style</span>
2783                        <br>
2784                        
2785                        
2786                            <span class="tag is-size-7 is-info is-light">Article</span>
2787                        
2788                        
2789                        
2790                        
2791                    </a>
2792                </p>
2793            </div>
2794            
2795            
2796            
2797
2798            <div class="block">
2799                <p class="p-5">
2800                    <a href="/2011/03/git-vs-svn/">
2801                        <span class="has-text-grey-darker is-size-5">Random thoughts on using Git</span>
2802                        <br>
2803                        
2804                        
2805                            <span class="tag is-size-7 is-info is-light">Article</span>
2806                        
2807                        
2808                        
2809                        
2810                    </a>
2811                </p>
2812            </div>
2813            
2814            
2815            
2816
2817            <div class="block">
2818                <p class="p-5">
2819                    <a href="/2011/03/accessing-private-properties-from-other-instances/">
2820                        <span class="has-text-grey-darker is-size-5">Accessing private properties from other instances</span>
2821                        <br>
2822                        
2823                        
2824                            <span class="tag is-size-7 is-info is-light">Article</span>
2825                        
2826                        
2827                        
2828                        
2829                    </a>
2830                </p>
2831            </div>
2832            
2833            
2834            
2835
2836            <div class="block">
2837                <p class="p-5">
2838                    <a href="/2011/03/keep-you-controllers-thin-with-doctrine2/">
2839                        <span class="has-text-grey-darker is-size-5">Keep your controllers thin with Doctrine2</span>
2840                        <br>
2841                        
2842                        
2843                            <span class="tag is-size-7 is-info is-light">Article</span>
2844                        
2845                        
2846                        
2847                        
2848                    </a>
2849                </p>
2850            </div>
2851            
2852            
2853            
2854
2855            <div class="block">
2856                <p class="p-5">
2857                    <a href="/2011/03/interface-discovery-with-phpunit-mock-objects/">
2858                        <span class="has-text-grey-darker is-size-5">Interface discovery with PHPUnit’s Mock objects</span>
2859                        <br>
2860                        
2861                        
2862                            <span class="tag is-size-7 is-info is-light">Article</span>
2863                        
2864                        
2865                        
2866                        
2867                    </a>
2868                </p>
2869            </div>
2870            
2871        </div>
2872    </div>
2873</section>
2874
2875
2876
2877
2878<footer class="footer mt-7">
2879    <div class="content">
2880        <p>
2881            <br>
2882        </p>
2883    </div>
2884</footer>
2885<script type="text/javascript" src="/lib/main.js"></script>
2885
2886</body>
2887</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.