Category: Programming

Balancing Business Needs with Superior Code Quality: A Perspective from 20 Years of Experience

Understanding the Business-Developer Disconnect Finding the right balance between what a business website requires and maintaining code quality with complete adherence to techniques like Clean Architecture, DDD, etc., especially the Framework Agnostic approach, is always challenging. The real struggle arises when many developers fail to grasp the essence of...

Cohesion

Understanding Cohesion Imagine you have a toolbox. In a highly cohesive toolbox, all tools are related to a specific type of task, e.g., a set of screwdrivers of various sizes. In a low cohesive toolbox, you might have a screwdriver, a garden spade, some cooking spices, and a light...

Hardcoded parts

CONSTANTS Have you ever saw something like that? We have a few code smells here. I’ve discussed some of them in other articles, such as nested ‘if’ statements and unclear intentions of those conditions. What else should be done to improve it? The answer is: avoid hard-coded definitions of...

Dependency Injection code smells

The use of injection does not automatically ensure that our code is correctly structured. While it’s an excellent mechanism for breaking dependencies and writing decoupled code, improper usage can introduce chaos into our system. There are certain code smells that, when detected, should alert you to potential design flaws...

Naming conventions

I assume you’re already familiar with PSR-1 & PSR-2, which provide PHP recommendations for naming conventions, such as using camelCase for function names. However, there are a few aspects that aren’t clearly defined there, which can significantly impact your code quality. Variables and Attributes Naming Style Firstly, it’s crucial...

Refactoring Example – guard clauses

I believe the most effective way to learn is through hands-on experience with real-world cases. Below, I will discuss a case study from one of our actual projects, focusing on how we managed the refactoring of a specific section of legacy code. Please note that this article won’t delve...