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

Good Software Practices

Good Software Practices

A discussion of good software practices across a range of topics.

Chris Ayers

October 20, 2018
Tweet

More Decks by Chris Ayers

Other Decks in Technology

Transcript

  1. Why? “How does a project get to be a year

    late?... One day at a time. ” -- Fred Brooks Brooks Law: "Adding manpower to a late software project makes it later!“ “No matter what the problem is, it's always a people problem.” --Gerald M. Weinberg
  2. Design Patterns • Observer Pattern • Strategy Pattern • Adapter

    Pattern • Builder Pattern • Singleton Pattern • Factory Pattern • Decorator Pattern
  3. Architectures • Layered (n-tier) architecture • Event-driven architecture • Microkernel

    architecture • Microservices architecture • Command and Query Responsibility Segregation • Event Sourcing
  4. Inversion of Control & Dependency Injection • Clarity • Modularity

    • Testability • Different Implementations
  5. Software Development “ If debugging is the process of removing

    software bugs, then programming must be the process of putting them in. ” - Edsger Dijkstra
  6. Source Control • Version Control System - (SVN/TFS/GIT) • Branching

    / Merging Standards • Feature Flags • Commit Message Standards • Check-in Policy • Continuous Integration
  7. Coding Standards • Spaces vs Tabs • EditorConfig • Naming

    Conventions • New Lines / Braces / Commas • Indenting • Comments • Magic Numbers
  8. Code Reviews Does the code build? Does it run without

    errors? Does it follow coding standards? Does it follow naming standards?
  9. Testing • Frameworks • Mocks and Fakes • Unit Testing

    • Integration Testing • Regression Testing • Automated UI Testing • Integration with Source Control
  10. Tools • Visual Studio / Eclipse / IdeaJ / Sublime

    • Resharper • Linqpad / Notepad • Command Line – NodeJs / Grunt / Gulp • Browsers – Modern.IE (Microsoft VMs) • Developer Tools / Page Speed
  11. Continuing Education • Blogs • RSS Feeds • Meetups •

    Books • Articles • Training Sessions • Code Camps • Coding at home