Upgrade to Pro — share decks privately, control downloads, hide ads and more …

All Tools and no SOLID makes Jack/Jill a dull p...

All Tools and no SOLID makes Jack/Jill a dull programmer

Learning and using tools are fantastic but to develop an optimal solution it's important that we implement these tools using best programming practices.

A tool is like the driver of a rally car and good programming practice is the co-driver providing the navigation. To win the race they both need to understand and support each other.

Avatar for Ashesh Bharadwaj

Ashesh Bharadwaj

December 22, 2018
Tweet

More Decks by Ashesh Bharadwaj

Other Decks in Technology

Transcript

  1. They are all Tools  They address specific area of

    a problem  They keep evolving, sometimes drastically  Most of them have equally good alternatives  They are usually domain specific
  2. Programming Principles  The guiding force to optimize the implementation

    of the tools.  They are stable and universal.  Programming principles complement the tools
  3. Change is inevitable  If there was to be only

    one version of an app  The principles and practices we follow is to prepare for the change  Change is welcome but it’s also a gateway for bugs to creep in  Minimize the impact by limiting the scope
  4. SOLID Principles  SOLID programming principles for object oriented programming

    was introduced by Robert C. Martin in 2000  Single Responsibility Principle (SRP) Tom DeMarco, Meilir Page-Jones and others (1980s)  Open/Closed Principle (OCP) Bertrand Meyer (1988)  Liskov Substitution Principle (LSP) Barbara Liskov (1988)  Interface Segregation Principle (ISP) Robert C. Martin (1996)  Dependency Inversion Principle (DIP) Robert C. Martin (1996)
  5. Dependency Inversion Principle (DIP)  High-level modules should not depend

    on low-level modules. Both should depend on abstractions.  Abstractions should not depend upon details. Details should depend upon abstractions.