AutloabJS Coding Standards

Adherence to the following coding standards would be good.

  1. What counts finally are the Tested Features in Use.
  2. Three values of any software are: features, simple design and feedback. Testing is the only way to simplify the design. So consider improvement in all the three values.
  3. A stable release is mandatory for stable and predictable end-user installation.
  4. Design and code should clearly articulate the interactions / stories / metaphors of the problem domain. PRACTICE DESIGN and IMPLEMENTATION in DOMAIN.
  5. Adherence to java script coding standards as prescribed by eminent authorities.
    1. Java Script : The Good Parts, Douglas Crockford / Eloquent Javascript, Marijn Haverbeke.
      Before each commit, a committer runs ESLint, JSHint and JSLint Errors on the code-base and fixes all the error and warning messages.
    2. Shell scripts : Shell script coding standard by Kfir Lavi and Robert Muth. Before each commit, a committer runs shellcheck on the code-base and fixes all the error and warning messages.
  6. All the new code commits shall have at least the unit tests. For JS, use mochai and chai. For shell script, use Bats.
  7. Creation and adherence to coding standard checklist. At the moment, we are following the project checklist from MIT course, 6.170 Software Studio
  8. An issue reported should have a detailed bug report that can help replicate the problem.
  9. Always maintain clean separation of coding, testing, integration, deployment and production stages.
    1. NEVER EVER CODE ON THE PRODUCTION SYSTEM.

References

  1. RTF : A Metric Leading to Agility, Ron Jeffries.
  2. Measuring Agile Projects Using Running Tested Features Metrics, Priyanjana Deb and Abhik Datta
  3. The Joel Test: 12 steps to Better Code, Joel Spolsky
  4. Brian W Kernighan on Testing
  5. Worse is Better History
  6. Twelve-factor apps
  7. Agile Manifesto
  8. Software project best practices checklist, Kristóf KOVÁCS
  9. Development process - Mike Perks @ IBM
  10. JB Rainsberger - An introduction to Agile Software Development, Economics of Software Design
  11. CI best practices check list - Piotr Oktaba