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
Let's learn about Refactoring via these 223 free blog posts. They are ordered by HackerNoon reader engagement data. Visit the /Learn or LearnRepo.com to find the most read blog posts about any technology.
Refactoring is the process of restructuring existing computer code without changing its external behavior, to improve its internal structure and readability. It enhances code maintainability, reduces technical debt, and makes future development easier.
Many of us know about includes, joins but sometimes we confuse about their usage. As I was experimenting with code refactoring in one of my projects, there I have tried these things. So I thought I can share these findings with you guys.
Technical debt metrics help you to monitor deficiencies in your current codebase. We decided to look at how they work, and pick out the best tracking tools.
This post contains a step-by-step example of a refactoring session guided by tests. When dealing with untested or legacy code refactoring is dangerous and tests can help us do it the right way, minimizing the amount of bugs we introduce, and possibly completely avoiding them.
As a developer, you’re always looking for cutting-edge tools, tricks, and extensions. Here are 7 tools that'll improve your productivity and efficiency.
In this guide, you'll learn what is legacy code, its characteristics, tools, and the best practices for working effectively with legacy code and technical debt.
Using JSON Mapping to Work with APIs of Various Image Services. This approach is applicable to any other services that are similar in type of returned results.
The code smells bad. Let’s see how to change the aromas. In this series, we will see several symptoms and situations that make us doubt the quality of our developments. We will present possible solutions. Most of these smells are just hints of something that might be wrong. They are not rigid rules.
Avoid software bottlenecks by understanding the 'God Object' anti-pattern in object-oriented programming. Learn its impacts, examples, and best practices.
Ye olde Reliable Data Structures and Their Controversial (Read) Access.
Using objects as data structures is an established practice that generates many problems associated with the maintainability and evolution of software. It misuses brilliant concepts that were stated five decades ago. In this second part we will reflect on the reading access of these objects.
In this short, but nonetheless useful article, I have summarized the most beneficial tips for writing clean code. These rules are independent of the language you use and are invaluable for both beginners and experienced programmers.
In this guide, you’ll learn all about refactoring source code: the benefits, challenges, tools, and best practices, and what is the difference between refactoring and technical debt.
There are more code smells. Let’s keep changing the aromas. We see several symptoms and situations that make us doubt the quality of our development. Let's look at some possible solutions.
Let’s imagine the monolith project with an enormous code base that has been developed for a couple of decades (unbelievable, right?). This project is probably going to have a myriad of features and a considerable (hopefully!) number of automated tests covering the verification of our priceless features on multiple levels. All the way up the famous, or infamous, depending on who’re you gonna ask, testing pyramid from the unit foundation down below to the end-to-end peak high above.
There are yet more code smells. Let’s keep changing the aromas. We see several symptoms and situations that make us doubt the quality of our development.
It smells because there are likely many instances where it could be edited or improved. Most of these smells are just hints of something that might be wrong.
Recently, I had to deal with an old codebase that was difficult to maintain and scale. In this article, I'll share how my team and I decided to deal with maintenance and the best practices we implemented to reduce time spent on refactoring.
Last week we hosted a webinar where I interviewed Adam Tornhill, CTO & Co-founder of CodeScene, about technical debt: what is it, why is it important, and how to manage it effectively.
Most of these smells are just hints of something that might be wrong. Therefore, they are not required to be fixed per se… (You should look into it, though.)
We all love T.D.D. We know its benefits, we have read a thousand tutorials on how to build a system using this technique. But this not feasible for currently legacy systems.
I recently came across a route handler that was 2k LOK (lines of code). This possibly happened due to lack of rules and guidelines in place. I tried to understand the control flow, but 3 mouse scrolls down I was forgetting where I have started and what it's all about. Just a hint (not actual project code):
A step-by-step guide on how to refactor side effects in your python code. Examples, pictures, and recipes on how to deal with dirty code with side effects.
TL;DR: It's time to spring clean your work-life, and make space for joy. Get rid of extraneous work, add a bit of mindfulness, and the WFH world is yours. You can do this regardless of who you are, but if you are the CEO or in a managerial position, the imperative is much higher.
Many engineering teams get stuck and cannot ship quality software fast because of technical debt. The best engineering teams I've talked to use the right tools.
Code refactoring provides a well-needed mental break for developers, and I think many devs can relate to this. Writing code all day is very demanding, especially if you create new functionality day by day. It’s a taxing exercise, and developers often need some space to think about the codebase's overall organization and look back on what can be improved.
Most of these smells are just hints of something that might be wrong. Therefore, they are not required to be fixed per se… (You should look into it, though.)
TODOs are a tricky subject for developers. Many codebases are guilty of having TODOs linger around while nobody knows who’s responsible for a TODO or even has the required context to tackle it. Yet, should we feel ashamed for our lingering TODOs?
Every software company has some amount of technical debt, which is additional development work created in the long-term by taking a shortcut in the short-term to get code out the door. Technical debt can take the form of poor design decisions, much-needed refactorings, technology upgrades, and outstanding bugs.
The term Bug sounds like an excuse out of our scope infecting our systems. It is not. Software quality is under our control. It is our responsibility to deliver
With much of the DevOps stack having matured and good practices becoming more mainstream, the need for quality in software has quickly become a central issue
Developers deal with technical debt every day, and they know how to prevent and manage it better than anyone else. Here’s just some of what they had to say.
Is your team still using Python 2? If you’re not sure, now is a really good time to check. In April, the Python team released version 2.7.18, and it will be the last version of Python 2.x. If security vulnerabilities or other bugs are discovered going forward, they will NOT be fixed. To ensure that your software is secure and functioning properly, it’s imperative to develop a plan for migrating to Python 3. Numerous strategies can be found online. This post outlines an approach that we recommend you take.
Imagine you have several blocks of similar layout which are hard-coded on the frontend side. These blocks are not dynamic, they are not being fetched from back-end, it’s just a layout. Most beginners, when they see similar blocks of layout, start to think about arrays as a tool to handle similar stuff.
Maximiliano Contieri from Germany has been nominated for a 2020 Noonie in the Software Development Awards Category for Hacker Noon Contributor of the Year - REFACTORING.
Most of these smells are just hints of something that might be wrong. Therefore, they are not required to be fixed per se… (You should look into it, though.)
Most of these smells are just hints of something that might be wrong. Therefore, they are not required to be fixed per se… (You should look into it, though.)
Refactoring is the process of changing the current codes of software to make it easier to understand and maintain without modifying its internal functionality.
Spaghetti describes code that is poorly structured and difficult to understand. It often involves deeply nested loops, excessive use of goto statements, and com
Alex Omeyer from the United States has been nominated for TWO 2020 Noonies in the Future Heroes and Development award categories. Without further ado, we present to you, this big techy world, from the perspective of Alex - right after this ad break:
In many systems, the expiry date of a credit card is often represented by simply using a Date object. This can lead to potential issues and misunderstandings.
We see several symptoms and situations that make us doubt the quality of our development. Most of these smells are just hints of something that might be wrong.
See how to use the Extract Method refactoring technique to get started on your journey to being more skilled at refactoring! Check out this C# code example!
Code is dependent on data and models, and therefore on the abstractions used in them, so refactoring is inevitable today. Why? Usually, refactoring means change
Most of these smells are just hints of something that might be wrong. Therefore, they are not required to be fixed per se… (You should look into it, though.)
There are a set of skills and qualities which make the ideal software
developer we are all searching to be or searching for to employ. However, right now I am going to emphasize the importance of a quality that is mostly found in senior developers.
An API might have a secure parameter that enables additional security checks when set to true. While this approach seems simple, it introduces several problems.
Learn how to prevent unreliable tests by generating or mocking test data, ensuring full control over the testing environment and avoiding external dependencies.
Maintain clear version documentation, test versions thoroughly, and deprecate old versions gradually.
This practice will ensure that your API users are happy.
In the early hours of November 18, 2025, Cloudflare’s global network began failing to deliver core HTTP traffic, generating a flood of 5xx errors to end users.
Ternary metaprogramming uses conditional operators to select and invoke methods dynamically. It leads to code that's harder to understand, debug, and maintain.
Learn how to write reliable and professional-looking React code using "Wishful Programming" aka "Top-Down Code Design". Great for coders of all levels.
This story is about pain, agony, and denial of ready-made solutions. It is also about changes that improve the code’s readability and help the development team stay happy. The object of this post is an interface that helps a program communicate with a database.
Inevitably, we’ll someday come across legacy software, inconsistent databases, or integration modules that simply don’t work. It might sound wise to fix this software, especially if they’re crucial to the business. The problem that refactoring costs development and validation time, and the business does not always have this time to invest, but at the same time needs the fix. How can we both deliver the business requirements in time and still not break everything?
A real-world Agent Skills refactor: progressive disclosure, the 200-line entry rule, and workflow-first design to prevent context blowups and regain speed.
Memoization can help you improve the performance of recursive functions involving redundant computations but compromise code readability and maintainability
Technical debt is a common term in software engineering management. It has been the target of debates for many years. The name comes from a financial analogy because some people defend that developers buy time by shipping faster (and with lower-than-expected quality).
Your code smells because there are likely many instances where it could be edited or improved. Most of these smells are just hints something might be wrong.
The 2020 Noonies are here and they are both much greener and much bigger than last year. Among the 2,000+ deserving humans nominated across 5 categories for over 200 award titles, we discovered Maximiliano Contieri from Argentina, who’s has been nominated for in the Software Development category. Without further ado, we present to you, our big techy world, from the perspective of Maximiliano .
Alex is a software engineering veteran with over 30 years of hands-on professional experience. He is a staunch advocate of Extreme Programming and TDD.