8th Module: SOLID Snake
The article given for this week, while highly concise and
technical, provides an outlook for quality in Object-Oriented design and
programming. While some might argue that there is no universal principle for
quality in software and every case and system must be carefully considered in order
to balance everything out, I think there are some general ideas or heuristics
that we can adhere to in order to aim for quality even in doubt or if we don’t
have a true idea of our system. I was also surprised to discover that the
software world can be very small, as these set of ideas were proposed by “Uncle
Bob”, writer and/or participant in various other articles of which this blog is
thankful for.
According to my experience, when I learned about OOP, even
without a class or lecture dedicated to these concepts, one seems to tend
towards these practices. What I mean by this is that carefully using all the
capabilities and features of languages such as Java or C#, certain patterns such
as Single Responsibility Principle, Liskov Substitution Principle or Dependency
Inversion Principle. This leads me to believe that most of the errors or faults
committed in these languages or paradigm are because of abuse of these
practices. After all, most if not all of the Principles mention inheritance in
one way or another as examples of bad practices.
I can mention from work that using these principles can save
a lot of work and make maintenance bliss. Once I had to migrate a company
framework to a new version. Because of the coupling between classes, it took
twice the estimated resources, just over a couple of months. This was a real
inconvenience, since many teams required the new framework ASAP. This goes to
show that a little effort at the beginning of a software development cycle can
save a lot of time, money and headaches.
Comentarios
Publicar un comentario