Software architecture IS Conway's Law
Explores how Conway's Law influences software architecture, comparing solo development to collaborative teamwork and its impact on code structure.
Explores how Conway's Law influences software architecture, comparing solo development to collaborative teamwork and its impact on code structure.
The article critiques the DRY principle, explaining how its overzealous application can lead to complex, hard-to-maintain code and bad abstractions.
Explores how AI tools like GitHub Copilot are transforming software development by automating tasks, improving debugging, and enhancing code quality.
A developer draws parallels between physical clutter and technical debt, advocating for regular 'code cleaning' sessions to improve team happiness and productivity.
The article explains the true meaning of 'refactoring' in software development and argues for its proper use to avoid client misunderstandings.
A developer explores adapting coding styles to different situations, inspired by the 'Six Thinking Hats' framework.
A guide to integrating JetBrains Qodana, a code quality analysis tool, into GitLab CI/CD pipelines and publishing its reports via GitLab Pages.
A guide to using typos-cli, a Rust-based command-line spell checker for detecting and fixing typos in code and documentation.
A senior developer shares eight key lessons on writing clean code, conducting effective reviews, and professional best practices from decades of experience.
A developer recounts the decision to revert a major refactoring of the EqualsVerifier library after encountering persistent edge cases and bugs.
Explains why to minimize try...catch usage in programming, offering alternative strategies like pre-validation and scope reduction.
A critique of developers boasting about short development times, arguing that quality and problem-solving matter more than speed.
A developer shares 25 years of experience with linters, discussing strategies for configuring them effectively and treating warnings as errors.
A senior engineer reflects on the complex reasons behind messy codebases, arguing against blaming developers and for focusing on systemic solutions.
Explores the 'Fewest Elements' rule in software design, advocating for removing unnecessary code like unreachable lines, comments, and unused abstractions.
A practical guide for developers on how to approach, understand, and incrementally improve a newly inherited legacy C++ codebase.
Explains why reusable UI components should avoid outer margins and padding, as they break encapsulation and create layout issues.
Explains evolutionary design in software development as a middle path between over- and under-design, emphasizing simplicity and refactoring.
A TypeScript tip on using a custom `TODO` type as a purposeful escape hatch for difficult type problems, with a caution against overuse.
Compares using pre-commit hooks vs. CI pipelines for automating code checks, discussing trade-offs like speed, feedback, and handling slow tests.