Monday, August 24, 2015

Best Practices in Software Development


References

Code Integrity

  1. Automated builds
  2. Continuous integration
  3. Unit testing and test-driven development
  4. Code consistency and agreed standards for quality

Best Practice to Continuous Delivery

  • Don’t build the binaries at each stage of the deployment pipeline, create them once an reuse them.
  • The capacity testing environment should be as similar as possible to the production environment.
    • increase frequency of deployment
    • iterative monitor, measure, and improve the code
  • Script everything!
  • Don’t let builds that fail unit or acceptance test into production
  • Put all the configuration in version control (network, firewall, OS, etc)
  • Automate everything
    • automate code testing
    • automate work-flows
    • automate infrastructure

Git dos and don’ts

The dos:

Write useful, readable commit message
use topic branches locally
small, logical commits
do choose a workflow

The don’ts:

Don’t rebase public commits
Don’t delete unmerged remote branches
Don’t more than 1 project per repo.
Don’t create a very large repo.

Labels: , , , , , , , ,

Friday, August 21, 2015

Software Design

  • Contain Changes
  • Re-usability
  • Design and Development Principles
    • SOLID - Object Oriented Design Principle
      • Single Responsibility: a class should have only a single responsibility
      • Open-Closed: “ be open for extension, closed for modification.”
      • Liskov substitution: objects should be replaceable, design by contract
      • Interface segregation: many client-specific interfaces are better than one general-purpose interface
      • Dependency inversion: Depend upon Abstractions. Do not depend upon concretions
    • DRY - Don't Repeat Yourself
    • KISS - Keep it simple, stupid
    • If it ain't broke, don't fix it
    • GRASP - OO Design.

Labels: , , ,