This week, a series of tweets looking at refactoring some bad code, step by step, into some more readable code. We're going to start with a particularly bad setup, and step by step make it more readable and optimised. let's start with the attached code
#ReadableCode
The Singleton pattern ensures a single instance of a class. Use it to manage shared resources like database connections efficiently.
Create a single object, then when you need it reuse it - bonus! memory optimization.
#DesignPatterns#ReadableCode
Use specific exception types.
Create custom exception classes to convey meaningful error information and differentiate between different error scenarios.
Remember you can stack your exception classes like in the code example:
#ErrorHandling#ReadableCode
I found someone way more eloquent than me making a convincing argument about 80 columns in code
Now I can finally stop imploring and rest!
Clearly, I care about this stuff :-)
#coding#80column#readablecode#programming
Provide constructive feedback when you're asked to review code.
Focus on improving code quality and suggest alternative approaches while maintaining a positive tone. There's two ways of saying the same thing - choose the nice one.
#Feedback#CodeReview#ReadableCode
Decorator pattern adds responsibilities dynamically.
Wrap objects with decorators to enhance behaviour without altering their structure.
my example is of course based on coffee! would you expect anything less from me 🤷
#DesignPatterns#ReadableCode
Log error details.
Logging error messages along with context information aids debugging and provides insights into application issues. The example is over-simplified - but remember your logs should actually help you to find the problem.
#Logging#ErrorHandling#ReadableCode
Integrate singletons for better testability.
If it's the same object every time you call it - mock the call if you need to in test - problem solved! Ok, maybe that's an over-simplification - but it's not far from the truth! it can make it easier!
#ReadableCode#DesignPatterns
The code is more readable: when it's less code. #readableCode
Using Typescript will allow you to get rid of those if statements used to check parameter types:
Singletons may lead to tight coupling.
Evaluate if they're truly necessary for the intended use case, or whether there's a more appropriate option. you might want to consider a factory instead!
which would you choose? 1 or 2?
#ReadableCode#DesignPattern
Also note the #MarsKata implementations. How many if statements in the final implementation? Zero. Lines of code per method? 2.125. It’s a lesson in #CleanCode and #ReadableCode and worth watching regardless of your familiarity with #python. Excellent series.
We didn’t collectively learn from overusing annotations. With a lot of companies having migrated to Java 8, one start to notice a lot of code making use of lambdas in an unreadable way
#lambda#readablecode#fromthearchives