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

Professional Practices | Craftsmanship Training | Part 2

Professional Practices | Craftsmanship Training | Part 2

Second part on iHub craftsmanship series on how to become a professional in the software industry.

This section gives a general roadmap of best practises in the industry with resources on where to learn them

Jacob Chencha

October 29, 2015
Tweet

More Decks by Jacob Chencha

Other Decks in Programming

Transcript

  1. The primary directive Managing complexity is the most important technical

    topic in software development. In my view, it’s so important that Software’s Primary Technical Imperative has to be managing complexity - Steve Mcconnell, Code Complete
  2. Package level - Microservices - An application is a set

    of collaborating services each service implementing a set of related functions - E.g OAuth for authorization, S3 for storage, Google Cloud SQL for data - Hexagonal design - Application only interacts with outside services via adapters - Component based architecture - Application made of components - Buy don’t build
  3. SOLID | Class level - Single Responsibility - Open/Closed principle

    - Liscov substitution - Interface segregation principle - Dependency inversion
  4. Design patterns | Class level - A pattern language is

    an interconnected set of solutions to common problems in a specific domain - Creational patterns: Singleton, Factory - Behavioral patterns: Chain of responsibility, Commander - Structural patterns: Adapter, Decorator
  5. Scope of routines | Function design - Argument length: Monadic,

    Dyadic, Triadic - Do one thing only - Eliminate flags - No side effects - Command query separation
  6. Structured Programming | Function design Every function, and every block

    within a function, should have one entry and one exit - Edsger Dijkstra, Structured Programming The principles - Only one return per function - No break - No continue
  7. Where to find me - Follow me on Twitter @jchex

    - Subscribe to my blog blog.chenchatech.com