The Patterns We Don't Name - Christian Johansen - NDC Oslo 2026

The Patterns We Don't Name - Christian Johansen - NDC Oslo 2026

🎙 Christian Johansen 👥 230K 📅 October 13, 2026 ⏱ 46 min 👁 19 📄 expert opinion 🧭 2026-10-13
Available in: English (current) Français

Keywords

software architecturefirst-class conceptspage systemcommandsdata requests

Summary

In this talk, Christian Johansen, a developer at the Norwegian Food Safety Authority, discusses the importance of identifying and naming recurring patterns in code to improve software architecture. He begins by citing Wikipedia’s definition of software architecture and questions how architects can predict which changes will become costly, suggesting that architecture should evolve gradually rather than be fully designed upfront. The core idea is to make implicit concepts ‘first-class’ in the system. As a concrete example, he shows how ‘pages’ are a key concept for his team, yet they are scattered throughout the codebase without a dedicated representation. By introducing page definitions containing route, template, and data fetching logic, and then building a small system around them, he demonstrates how this reduces decision fatigue and enables system-wide leverage. He then transitions to using Clojure to illustrate advanced extensions like page IDs, data requests, and client-side rendering, all achieved with minimal code changes. The talk also covers commands, inspired by CQRS, which represent user intentions as immutable data structures sent to a persistent stream, enabling authorization, validation, and auditability. Throughout, the emphasis is on constraining individual functions to push complexity to a well-defined system boundary, allowing the architecture to become tighter over time. The talk concludes with practical advice on applying these principles in one’s own projects.

216 words

Critical Evaluation

Value of the Information & Strength of the Argument

The talk delivers valuable insights for software developers and architects. The argumentation is strong: it transitions from a general problem (untamed coupling and scattered concerns) to concrete solutions, using real code from production systems. The iterative method of ‘making things first-class’ is persuasive because it is actionable and avoids over-engineering. The speaker successfully demonstrates how systematically constraining function responsibilities (e.g., page renderers only receive serializable data) enables cross-cutting capabilities like caching, streaming, and client-side rendering with minimal changes. The examples are grounded in actual experience, and the reasoning is clear and coherent throughout.

Scientific Rigor, Source Quality, Title Accuracy

The talk provides only a single external source—a Wikipedia definition of software architecture—and relies mostly on the speaker’s personal experience. No academic papers or official documentation are cited, which limits the verifiability of the claims. However, the practical demonstrations and code snippets are detailed and self-contained, adding to the plausibility. The title accurately describes the content: the speaker indeed discusses patterns that are not commonly named and proposes explicit modeling. The description aligns well with the talk’s focus and delivery.

188 words

Title / Content Match

The title accurately reflects the content: the talk focuses on recognizing and naming patterns that are currently implicit in code, such as pages and commands.

Quality & Reliability

7/10

The talk is based on the speaker's practical experience and presents a coherent methodology for identifying and modeling recurring patterns in code. No external references are cited beyond a Wikipedia definition, but the reasoning is solid and the examples are concrete.

Key Moments

Cited Sources

Contribution & Novelties

The talk provides a practical methodology for software architecture evolution by identifying implicit patterns and elevating them to first-class concepts. It demonstrates concrete examples of ‘page’ and ‘command’ as modelable entities, showing how constraining functions and pushing complexity to a system boundary enables new capabilities with minimal changes. The original contribution lies in bridging DDD-style modeling to technical domain concepts, and offering a transferable process applicable to various codebases.

Pour aller plus loin :

124 words

Radar Profile

The radar shows high scores in information quantity and quality, with moderate technical depth and reliability. This indicates a dense, insightful talk grounded in practical experience rather than formal research.

Reliability 6/10