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

Atomic Commits

Barun Singh
December 11, 2012

Atomic Commits

Keep your codebase healthy without acting like the thought police.

Presenting a process for collaborative software development that yields high quality code, preserves developer flexibility, and fosters communication and learning.

Barun Singh

December 11, 2012
Tweet

More Decks by Barun Singh

Other Decks in Programming

Transcript

  1. Atomic Commits Keep your codebase healthy without acting like the

    thought police Barun Singh Founder/CTO Boston Ruby Group, 11 Dec 2012
  2. Laws ought to protect the commons, but preserve individual liberty

    codebase developer flexibility Your team’s process
  3. Your team’s process ought to: protect the codebase preserve developer

    flexibility encourage clear communication foster learning
  4. Your team’s process ought to: protect the codebase preserve developer

    flexibility encourage clear communication foster learning
  5. Git Branching Strategy master is always deployed All changes are

    mage on branches that are merged master in-progress feature
  6. Do whatever you want on your branch, but follow group

    norms for master And what if I don’t? Nothing, we just won’t accept your pull request.
  7. Rules of the commons 1. Every commit must make sense

    on its own 2. Every commit must do something meaningful 3. No commit may break the build 4. Every commit must include thorough tests for all code changes Every commit must be atomic
  8. Why? 1. Every commit must make sense on its own

    Communication and clarity 2. Every commit must do something meaningful Less noise == less frustration 3. No commit may break the build Reliability (part I) 4. Every commit must include unit & acceptance specs for all code changes Reliability (part II)
  9. The final process Formulate an approach Write your code &

    tests Organize your branch Present code for review Iterate based on feedback QA & merge into master