No Design =

==>shock wirecnn1.jpg & Messmess

Programming Styles:

Sequential:

292334_telephone_pole.jpg

Structured:

electricpole.jpg

OO

signboard.jpg

Rules of Design:

Optimal solution, not best. There are tradeoffs.

Lots of Common sense. Remember - nothing is intuitive, programming is not a primal instinct but people do as trained ( I struggled to eject CD from a MAC - who said they are more intuitive than windows). Dont expect VB programmers to apply OO principles by default.

Important principles

Single Responsibility Principle:

A class should have only one Responsibility, or only one reason for change.

 

 Multiple responsibility

= Confusion

 

and greater impact of maintenance 

(Imagine, if this stone was in Europe and needed signs as well - this will require changing the unchanged sign as well - to get space.

Interface Seggregation principle

Many, specific interfaces are better than one generic.

  is better than  

Why? One change has greater impact (  remoulding)

Addition can be tricky - Imagine 8 interfaces -you cant insert it!!.

Avoid Duplicate code.

Duplication = maintenance nightmare, chances of mistakes. 

Open Close Principle:

Open for extension, closed for modification.

If not, each change will have ripple effect.

Dependency Inversion Principle.

Abstraction should not depend on detail.

= Isolation of layers = maintenability.

Acyclic dependancy.

Anti-Patterns

Silver bullet / swiss Army knife.

Remember:

Re-factoring is easy. So Prototype, build , improve. Dont attempt to tick features off in one step.

Agile methodology says: Dont design for Unknown Future Requirements.

Keep it simple!

Leave a Reply