Core Design Principles - moneymayur/Misc GitHub Wiki

https://www.youtube.com/watch?v=llGgO74uXMI

Why code should be simple?

  • keeps you focused

  • solves only real problem we know about

  • fails less

  • easier to understand

Inherent & Accidental Complexity

Simple is not necessarily familiar

Good design -> Hide inherent complexity and eliminates accidental complexity

YAGNI Principle

When should I implement something

-> How much do you know?

-> Cost of implementing

Now Later

$n > $L - postpone

$n == $L - postpone

$n < $l

                        how probable ?    high   do it now

                                         low   postpone

Cohesive Code -> Do one thing and just one thing