You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
These come from computer science, organizational theory, psychology, and systems thinking. They're commonly lumped together as "software engineering laws," but they aren't all the same kind of thing. Some are provable constraints you can't work around. Some are patterns measured in labs and observed across decades of projects. Some are practical rules of thumb. And a few are quips from the early internet that turned out to be uncomfortably accurate.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
These principles help developers create code that is easy to extend and maintain, by encouraging the creation of classes that have a single responsibility and are loosely coupled.
KISS (Keep It Simple, Stupid)
This principle encourages developers to write simple code that is easy to understand and maintain. By keeping code simple, developers can reduce the risk of introducing bugs, improve the readability of the code, and make it easier for other developers to work with.
APA (Avoid Premature Abstraction)
This principle encourages developers to avoid creating abstractions too early in the development process. By waiting until the requirements of the system are better understood, developers can create abstractions that are more likely to be useful and maintainable.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters