This year, I’ve decided to keep track of my thoughts, learnings and progress a bit more – I’ve decided to take note taking a bit more seriously. I feel that we lose a lot of knowledge over time, maybe not the big picture, but we definitely forget the important finer details.
Tag: General Programming
Quite some time ago, I’ve come across a question in stackoverflow by Jon Skeet.
What’s your most controversial programming opinion?
As Developer’s, there comes a point in our life where we start questioning a bit more, and you realise – these things that these guides and principles that we’ve been taught doesn’t quite work for our problems – this is an awesome moment, this is the moment that you have become more pragmatic with your approach, you’ve formed your own opinions based on your experience, and you know that it works.
Everyone eventually rewrites either a small piece of code, an entire application or framework or refactor their work, and this process is in a constant cycle. You notice this everywhere, from small applications, libraries, frameworks and even Enterprise Software. Should we be concerned? Why is this such a common theme?
For Applications, one of the primary reasons for refactoring or rewriting is technical debt, so let’s have a look at some common reasons for technical debt, and I attempt to propose some solutions to each point.
The process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics
The idea behind abstraction is to hide complexity – we try to hide away all the complex details. For example, you may want to persist some type of data – that’s the high level view of what we want to be able to do. Whether we’re storing that in a text file, a database or what not, we shouldn’t really care, that’s someone else’s problem, that is an implementation detail – one less thing to worry about, all we know is that our data will be persisted somewhere. We don’t really care where or how.