Thursday, July 23, 2020

Introduction to Design patterns

what exactly are design patterns and principles?

One of the most important aspects of software development is that the code must be very much extendable without causing critical problems and also it should be easily maintainable. but not many of us focus on developing a software with these two aspects in our mind. we just plan to meet the deadline and somehow get the software working according to customer requirements. But little do we realize that the changes in requirements will give us a hell of time in changing our code.

This in turn will become a cycle. we spend such a lot of time reworking on the same thing even for some minor change in the requirement. (also called as "Technical Debt")

welcome "design patterns and design principles" !!!!  these two will reduce the "one hell of a time" which we are spending here and lets us focus on other important things like quality and testing.



we all know About the software development life cycle. we know how important design is in the development of a software. one small mistake and the whole software is in the docks.
so we will have to be very careful in design phase.
but this is the phase where in we can never recognize that we are going wrong.
this phase requires a long foresight into the problem which may be faced in the future. we should design in such a way that we can always add new features to the software without modifying the existing design and then adding some new design to the existing design(this is known as "open close principle").

design patterns and principles do enable the same. these are the guidelines which have been identified by many design gurus. people have made some mistakes in the past about designing a software and later realized that they were going wrong, but they also found out that there are some common solutions which can be followed for such design problems and so evolved design patterns and design principles.

but one thing which we all have to remember is that design patterns should not be used to impress people, it has to be used to make software maintainable.
it really does not make sense to use all the design patterns in design if they are not really needed.

so lets make sure that we use these to the fullest extent and with proper discretion and make our software design extendable.

wait for my posts on specific design patterns.

The problems for which the design patterns are used are also unique.

No comments:

Post a Comment