Large systems are collaborative effort and it's a challenge to maintain the overal coherence. Some techniques might help you scale consistency, but some inconsistencies are also inevitable.
Tag: design
Why a Calendar App is a Great Design Exercise
Implementing once a calendar app is a great design exercise, because this domain is simple enough for an exercices, but also subtely tricky.
Things You Can’t Abstract
You can abstract functionality, but not performance and failure modes.
Lateral Thinking
In this classic book from De Bono, you learn techniques to generate ideas, not only vertically (using logical reasoning) but also laterally (using other triggers for thoughts).
Gall’s Law
Complex systems can’t be built from scratch, instead they evolve over time.
Unit Testing Matters
The power of unit is that it’s ridiculously simple but enormously effective to improve quality — from code correctness to better design.
Your Language is a Start-up
Start small and find your niche, then grow, rather than aim at being mainstream from day one. This advice holds for startups, but programming languages too.
Simplicity Prevails
Often, the best thing for a product is taking something away from it. Only simple tools prevail.
Programming Languages Gotchas
All features in a programming language must integrate with each other correctly. The more features, the harder. Sometimes, things don't work as expected.
Abstraction-Level vs. Meta-Level
Models can be created along two axis: the abstraction level, or the meta level.