Warning This page is under construction. Yes it’s live and in the making, and yes it probably doesn’t fully make sense yet.
I wanted to have space where I can have a clear view on events I attend + I can share some insights I’ve taken out of those events. I intent to do it here. I’ll keep a list of events I think about attending and the if things align well and I do, I will target to have a clear takeaway from the event. I hope this should push me to listen more… what else here ?
London Java Community: Unconference - 24th Nov 2018
2018-10-08 A Craftsman’s Guide To Designing A Clean Architecture - by @MarcusBiel
This event was organized by London Java Community and it hit my nerve while browsing for events. While still being a newbie in back end software, I search for events that touch subjects that are fundamental in programming. In this case the talk was about the architecture of an application. The focus: clean coding. I thought, Perfect! I want to learn how to code clean and never code differently. I want my application to be readable to others and I want whoever will come across my code to be able to understand it fully. I sometimes think, I want it to be easy understood even by someone who does not code.
What are my key takeaways from this event?
Naming matters! As after a person read a Class name, they will straight away have some vision of what the code that is inside that class should do / represent. It’s crucial you name your classes, methods, fields, everything well. Can you name a function that has 500 lines of code, properly? Most likely not, so keep things short, simple, well named and on point while creating code.
Good architecture is not something that is being achieved in one grand meeting where architect lays his vision for the code. It’s simply not possible to achieve and be done once for all with good architecture in code. It needs to be enforced. Somehow ingrained into developers ways of doing things. It needs to be communicated and created by developers constantly. When the business objectives change, the code needs to change accordingly and therefore the infrastructure is in a constant flux. So it’s rather a way to code, than it is a structure or a blueprint only.
It is crucial while creating good clean code to focus on the smallest pieces of code, like methods, and construct them with a thought of grand architecture in the background. This way you end up creating a good architecture. So the idea is to think about building and maintaining simple architecture from the smallest components of an application and therefore keep the application simple and on point.
Talking from a newbie perspective, It’s good to understand that there are things like
cohesionin coding practice. I personally have not yet dealt with them yet but I certainly have a better understanding about what those keywords mean now. In short I know I have to focus on maximizing loose coupling between pieces of code and focus on creating highly cohesive code. Which means it is sorted and “packaged” together well, in a way that’s understandable and reasonable.