Emulation of nominal typing in TypeScript
Structural typing is limiting when it comes to defensive programming. Fortunately, it is possible to emulate nominal typing (branding).
Structural typing is limiting when it comes to defensive programming. Fortunately, it is possible to emulate nominal typing (branding).
A distinction must be made between development errors—which are handled with exceptions—and user input errors.
Separating the IT function from the business units it serves is a fundamental mistake, because IT is viewed solely through the lens of its cost.
No-code and low-code tools have their place, provided their use is properly managed to avoid unpleasant surprises (shadow IT).
Reinvent your development tools: Jest, Redux, React, or even TypeScript. This exercise will take your skills to the next level.
A portrait of Clément Cornen, a developer and, above all, a friend. Our values are very much aligned, both in development and in life.
Code is intangible. So, to make it more understandable, we use metaphors from the real world, particularly real estate.
Hexagonal Architecture aims to isolate the application and the domain from the infrastructure. The trade-off is that the infrastructure knows the domain.
First, focus on the system’s modularity at a large scale (strategic DDD). Tactical patterns are important, but they come later.
A point-by-point rebuttal of the seminal article by David Heinemeier Hansson, a critic of Test-Driven Development.
As it has become more widespread, the DevOps approach has strayed from its original spirit, sometimes to the point of being misinterpreted. Let’s set the record straight.
Code katas are the perfect setting to experiment with new ways of working by imposing constraints. Example: coding using only the keyboard.
EDA: a communication model that promotes the decoupling of contexts; ES: a coding model dedicated to traceability within a context.
Developing quickly without mastery invariably leads to the accumulation of technical debt. Invest in it now—it will cost you less in the long run.
Beyond the cost, bringing in a full-time coach can prove counterproductive, as your teams need time to process the changes.
Now, let’s hear from one of my clients, Ovrsea. Antoine, the CTO, explains how the idea to bring in coaching for his teams came about and what it has changed.
As agility has become more widespread, it has been misused, becoming synonymous with micromanagement and absurd practices. Yet we need agility now more than ever.
The goal of higher education should be to “de-school” students—that is, to prepare them for a VUCA world.
I challenge anyone to prove to me that it’s more efficient to do without static typing when building a JavaScript application.
Clean Code is a good starting point, followed by TDD and Functional Programming. Wait a bit before diving into DDD and refactoring!