๐—ช๐—ต๐˜† ๐—ฆ๐—ผ๐—ณ๐˜๐˜„๐—ฎ๐—ฟ๐—ฒ ๐——๐—ฒ๐˜€๐—ถ๐—ด๐—ป ๐— ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ๐˜€

You know OOP. You know SOLID. You know Design Patterns.

You memorize definitions for interviews. You learn syntax. Then you forget it all.

You know what these concepts are. You do not know why they exist.

Stop asking what a concept is. Ask what problem it solves.

Small projects are easy. You have a few files and functions. Everything works.

Then your project grows.

The code works. But it is hard to change. It is hard to read.

Software design is not about clever code. It organizes your system. It lets your code evolve without breaking.

This series focuses on the problem.

I use JavaScript and TypeScript for examples. These rules apply to any language.

Next, we look at OOP. We look at the problems developers faced before OOP existed.

Source: https://dev.to/ashay_tiwari_3658168ad5db/understanding-the-why-behind-software-design-introduction-41j3