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...
Is There a Sufficient Number of Mentors in the Programming World?
When I began my coding journey nearly two decades ago, the landscape looked quite different, but even then it was hard to find a mentor. With the current influx of new developers, a question lingers – do we have enough experienced mentors for the upcoming generation? Let’s review some...
Insights from a 20-Year Road in Coding
Navigating through various roles over nearly two decades in the software development industry, I’ve garnered invaluable experience that has shaped my professional journey. From my humble beginnings as a programmer to roles such as leading programmer, team leader, project manager, technical advisor, CTO, and finally, the owner of a...
The Missing Piece: Why So Many Projects Lack Unit Testing
Over nearly two decades of my software development journey, collaborating with over a hundred programmers across various projects, I’ve often stumbled upon a glaring omission – the lack of unit tests. Despite advancements in software practices, the absence of automated testing – be it unit, integration, or smoke testing,...
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...
Architecture or Clean Code ?
When we talk about software development, the concepts of clean code and good architecture often emerge. Clean code principles, popularized by Robert C. Martin in his book “Clean Code,” emphasize writing code that is readable, maintainable, and modular. At a glance, it would seem that adhering to these principles...
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...