DEV Community

Cover image for 12 Fun Idioms and Principles for Software Engineers
Daria Gorchylina
Daria Gorchylina

Posted on

12 Fun Idioms and Principles for Software Engineers

Software engineering is as much about creative problem-solving as it is about writing code. While technical skills are crucial, understanding and applying certain principles can transform your coding practices from good to exceptional🚀 

Here are some idioms and principles every software engineer should know:

  1. DRY (Don’t Repeat Yourself): Avoid redundancy by ensuring every piece of knowledge has a single, unambiguous representation. It keeps your code clean and easy to maintain.

  2. KISS (Keep It Simple, Stupid): Simplicity is key. Overcomplicating things not only confuses others but can also come back to bite you later. Remember, the simplest solution is often the best. If you find yourself with a convoluted design, step back and simplify.

  3. YAGNI (You Aren’t Gonna Need It): Future-proofing can sometimes lead to bloated and unnecessary features. Focus on what you need now, and add functionality only when it’s necessary. It keeps your code lean and efficient.

  4. SOC (Separation of Concerns): Think of your code as a pizza🍕 You wouldn’t mix all the ingredients together in a chaotic pile. Instead, you separate them into crust, sauce, cheese, and toppings. Similarly, divide your software system into distinct sections, each addressing a separate concern.

  5. The Boy Scout Rule: Just like the Boy Scouts aim to leave a campsite cleaner than they found it, leave the codebase better than it was before. Whether it’s fixing a bug, refactoring, or updating documentation, minor improvements add up over time.

  6. The Broken Windows Theory: Fix small issues immediately to prevent more significant problems. Ignoring minor bugs or bad practices can lead to a decline in code quality, much like a broken window invites more vandalism.

  7. The Rule of Three: When refactoring, wait until you’ve encountered something three times before optimising it. It helps to ensure that your optimisation is addressing a real problem and not just a premature concern.

  8. The BeyoncĂ© Rule: If you liked it, you should have put a CI test on it. Continuous Integration (CI) tests ensure that your code remains functional and bug-free as you develop it. It’s like having a safety net that catches you when you fall.

  9. Chesterton’s Fence: Before removing or changing something, first understand why it’s there. This principle guards against making changes without appreciating the purpose behind the existing setup, preventing potential negative consequences.

  10. Rubber Duck Debugging: Sometimes, explaining your code or problem to a rubber duck (or any inanimate object) helps identify the issue. This quirky method forces you to articulate the problem clearly, often leading to a solution.

  11. Cargo Cult Programming: Avoid blindly copying code without understanding its purpose or function. It’s like building a plane out of bamboo and expecting it to fly because it looks like one. Understand the context and functionality of the code you incorporate.

  12. Murphy’s Law: Anything that can go wrong will go wrong, especially in complex systems. Prepare for the unexpected by writing robust, error-handling code and always have a backup plan.

By embedding these principles into your workflow, you can enhance your coding practices and navigate software engineering challenges with greater ease and confidence. Happy coding!😎

Top comments (0)