No, QA is not your designated tester
No, QA is not your designated tester. “QA” is a process, not a role: its real job is to help the team grow.
No, QA is not your designated tester. “QA” is a process, not a role: its real job is to help the team grow.
It’s better to have a little intentional duplication than premature abstraction that mixes business rules that have no business being together.
When should you throw an exception, return an error, or model the absence of a value? The answer lies in the business intent.
Before components, tokens. How to structure a coherent Design System using a well-thought-out token architecture.
TypeScript is often used only superficially. This is particularly true for Union Types, which help prevent inconsistent states.
Exceptions are not meant to handle predictable errors. Meet the Result type, an alternative to try/catch.
PBT verifies that a business invariant is always satisfied regardless of the parameters and the return value of the function being tested.
A call for pragmatism in software development: avoid dogma, observe what works, and leave room for doubt.
An example of algorithm optimization (the skyscraper game) and the lessons that can be learned from it. Pareto’s Law applies fully.
This metric isn’t very useful if you don’t know what lies behind it… It does tell you something, however, mainly when it’s low!
Not all tests fit into a single test pyramid. Several aspects must be considered: purpose, granularity, and assertion methods.
End-to-end tests should be used sparingly, as they are costly to write (Page Model) and costly to run. Here’s how to proceed.
ADR helps streamline a team’s architectural decisions and prevents them from being constantly called into question.
Avoid over-anticipating: don’t lay the groundwork for future features; they remain hypothetical. Instead, write code that can evolve.
The Walking Skeleton aims to lay a solid foundation for reaching the MVP while minimizing technical debt. It’s a step worth formalizing.
Trunk-Based Development, straight out of Extreme Programming, is an excellent alternative to GitFlow, but study the prerequisites carefully.
Building an object means starting with its behavior. The data it encapsulates is derived from that and constitutes an implementation detail.
“Clean Code” is a reference book: reading it cover to cover would make little sense. You need to read it, experiment, and come back to it often.
You call a library, but it’s the framework that calls you. The difference is inversion of control.
While TDD is a wonderful tool, it is not suitable for all development projects, as it risks falling prey to the “law of the instrument.”
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.
Code is intangible. So, to make it more understandable, we use metaphors from the real world, particularly real estate.
A point-by-point rebuttal of the seminal article by David Heinemeier Hansson, a critic of Test-Driven Development.
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!