saahityaedams

23 Jun 2021

The Most Important Design Guideline

In college we were taught SOLID and GRASP principles which was more heuristics than principles1 that was supposed to make our code better. I honestly don't know whether applying them helps as I never could remember it and I definitely wasn't thinking about applying it when I was writing code. But one thing that did stay with me from college that was taught and repeated dozens of times by a great professor was the idea of interface and implementation, which was beautifully taught in C++ with the interface being written in the header file and the implementation being written in the library source file. His point being interfaces are static and hard to change and must be designed well and carefully, in contast with implementation being abstracted away from user and hence easy to change. A video he had asked us to look at that I recently rewatched after a year of being paid to write software makes a lot more sense now. The video expands on the above point + metions some other very usefull guidelines and is a must watch.

Footnotes


1

Principles are fundamental truths that are found in maths and physics. Pretty sure there are no principles in software development only heuristics and guidelines.