Your resource for web content, online publishing
and the distribution of digital products.
S M T W T F S
 
 
 
 
 
 
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
 
 
 
 
 
 
 
 
 
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
 

Object Design Checklist: An Index on Software Design Articles

Tags: testing
DATE POSTED:January 13, 2025
This is an index to already published articles on software design.

Some rules must be followed and embraced to create great software designs.

\ This article summarizes them, serving as an index to full stories.

TL;DR: Important concepts about Object-Oriented Programming

Axioms

Build a MAPPER

https://hackernoon.com/what-is-wrong-with-software-uh8j3y7k?embedable=true

Keep a bijection to real entities:

https://hackernoon.com/the-one-and-only-software-design-principle-1x983ylp?embedable=true

Definitions

https://hackernoon.com/object-oriented-programming-explained-in-5-levels-of-difficulty?embedable=true

Corollaries

Do not use null

https://hackernoon.com/null-the-billion-dollar-mistake-8t5z32d6?embedable=true

Avoid Accidental IFs

https://hackernoon.com/how-to-get-rid-of-annoying-ifs-forever-zuh3zlo?embedable=true

Favor immutability:

https://hackernoon.com/is-it-crystal-clear-for-everybody-that-a-date-should-not-mutate-wuoy3z03?embedable=true

Avoid Setters and Getters:

https://hackernoon.com/nude-models-part-i-setters-5tm3u3y?embedable=true

https://hackernoon.com/nude-models-part-ii-getters-sjo3ua2?embedable=true

Best practices

Avoid Coupling:

https://hackernoon.com/coupling-the-one-and-only-software-designing-problem-9z5a321h?embedable=true

Fail Fast:

https://hackernoon.com/fail-fast-philosophy-explained-si963vk9?embedable=true

Avoid Meta-Programming:

https://hackernoon.com/laziness-chapter-i-meta-programming-6s4l300e?embedable=true

Avoid Dynamic Code Generation:

https://hackernoon.com/lazyness-chapter-ii-code-wizards-3i9x3xtr?embedable=true

Choose meaningful names

https://hackernoon.com/what-exactly-is-a-name-the-quest-part-i-fmw3udc?embedable=true

https://hackernoon.com/what-exactly-is-a-name-rehab-part-ii-4st3uph?embedable=true

Build a Theory

https://hackernoon.com/programming-as-theory-building-lts3eqr?embedable=true

Avoid Accidental Complexity

https://hackernoon.com/there-are-no-silver-bullets-for-this-werewolf-2t213woi?embedable=true

Get Inspired by Quotes

https://hackernoon.com/400-thought-provoking-software-engineering-quotes?embedable=true

Anti Patterns

Do not use Singleton:

https://hackernoon.com/singleton-pattern-the-root-of-all-evil-e4r3up7?embedable=true

Avoid Code Smells

https://hackernoon.com/how-to-find-the-stinky-parts-of-your-code-part-i-xqz3evd?embedable=true

Refactorings

Understand Refactorings

https://maximilianocontieri.com/how-to-improve-your-code-with-easy-refactorings?embedable=true

Philosophy

https://hackernoon.com/warning-the-universes-event-simulator-is-a-fierce-adversary-for-coders?embedable=true

Exercises

https://hackernoon.com/how-to-decouple-a-legacy-system-zf153u42?embedable=true

https://hackernoon.com/how-to-squeeze-test-driven-development-on-legacy-systems-rh113wcs?embedable=true

https://hackernoon.com/zombie-testing-one-behavior-at-a-time-9s2m3zjo?embedable=true

Index on GitHub

https://github.com/mcsee/Software-Design-Articles?embedable=true

Buy my Book

https://cleancodecookbook.com/?embedable=true

This series aims to spark debate and discussion on software design.

Your comments and suggestions are highly appreciated.

This article is also available in Spanish here.

Tags: testing