18 Jan 2023

Software Design Principles

KISS (Keep It Simple, Stupid)

  • Keep things simple and avoid unnecessary complexity in a system.
  • Avoid installing an entire library for the sake of one function.
  • Only implement what is asked and needed at the moment.
  • Ensure that each method solves one specific problem.
  • Move logic to helper functions.
  • Instead of creating a project architecture or directory from scratch, look for examples and choose the best one.

YAGNI (You are not gonna need it)

  • Implement only what is needed at the moment.
  • Get rid of any code that is not necessary.
  • Programmers should not include new features that have not been requested.

DRY (Don’t Repeat Yourself)

  • Avoid copying code.
  • Before adding functionality, check if it has already been created in the project.

Occam’s Razor

  • Entities should not be created unnecessarily.
  • Start with simple code and gradually increase complexity.

BDUF (Big Design Up Front)

  • Ensure that everything is planned out before starting implementation.
  • Divide the requirements into multiple stages and prioritize them accordingly.