Languages and Codebases

Languages and Codebases

Languages

  1. We use Java, Clojure, JavaScript, PHP, Perl and some Python and Ruby.
  2. We will write new code in Java, Clojure, JavaScript, Python.
  3. We should try to use the same or equivalent tools and approaches across languages. Not everything translates directly.

Codebases

  1. Each codebase is defined as Legacy or Greenfield.
  2. We can’t fix Legacy codebases but we can gradually improve them.
  3. All Greenfield projects will meet the standards described in this document from the start.
  4. Greenfield code bases will be open source unless there’s a specific reason. Don’t put anything there that you don’t want to be public, whether it’s sensitive data or words.
  5. Each new codebase should follow the template for the language.
    1. Java / Spring Boot starter project
    2. Python / Django starter project
  6. Each project should have CI builds for test runs, running tests and packaging and building in Docker. If you follow the ‘starter project’ this should be set up.