Design Principles – 1

Introduction

A lot has been written and talked about design principles, yet, today a lot more people can code then people who can design. This is the most avoided topic in college curriculum with only a small chapter discussing the principles hidden somewhere in a large text book.

The programs developed during college, are tested for accuracy, never on the design of the code. This leads to a large gap when this habit gets transferred during enterprise development. The same could be said for any other developer who has learned development, and because code works predictably, its accuracy can be measured and improved. Not so much for design.

If you look around you would find a lot of enterprise code which works, yet understanding or making changes in it seems a humongous task. Many a times leaving unknown bugs elsewhere.

While everyone does understand the importance of a good design, and most of the people even understand the design principles, why does the translation not happen?

Few reasons :-

  • We do not have birds, car etc when writing code. Most of our understanding comes from examples that take real life objects, yet these objects never manifest in their original form at the time of development.
  • Using frameworks. The frameworks when interact with the code, skew the development towards a defined pattern.
  • Translation while development. You need to be aware of when you are in violation. Not only is it important to understand when you are designing properly, its equally important to know when you are not.

How do I intend to tackle this

My take is to provide examples which model regular development with tips to identify when going wrong. Also, as biology has taught us repetitiveness is the key, examples are followed by more examples.

Audience segment

The following articles are meant for everyone who is interested in designing code that has low maintenance overhead. A basic knowledge of programming is expected. The examples would be in Java / pseudo code, yet can be followed by a person having knowledge of any programming language.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website with WordPress.com
Get started
%d bloggers like this: