- Introduction
- Project Organization & Dependencies
- Project Expectations
- Coding Conventions
- Coding Principles
- Source Control
- Secure Coding
- Appendix
The goal of this document and these standards are to ensure any engineer is provided with an equal baseline to use as their foundation at space150. The purpose is to provide consistency and best practices so that our projects are maintainable by each other and to maximize efficiencies. This guide is not intended to dictate all aspects of programming and it is our intent to ensure engineers have the freedom to develop without unnecessary mandates.
When a project adheres to common standards many good things happen:
- Programmers can go into any code and figure out what’s going on, so maintainability, readability, and reusability are increased. Code walk throughs become less painful.
- New people can get up to speed quickly.
- People new to a language are spared the need to develop a personal style and defend it to death.
- People new to a language are spared making the same mistakes over and over again, so reliability is increased.
- People make fewer mistakes in consistent environments.
- Idiosyncratic styles and college-learned behaviors are replaced with an emphasis on business concerns - high productivity, maintainability, shared authorship, etc.
It is in space150's founding DNA to continually evolve, and as such, these standards are provided as a repository, one that can be tracked and modified. As an organization, we are continually improving and adopting new programming languages, frameworks and practices. As an engineer reading this document, it is your responsibility, not only to understand and follow the guidelines set forth here, but also to contribute to the evolution of this document by bringing forward new suggestions and challenging areas that may have fallen out of modern practice or are unclear.