Performance + BP + Interop IPR


Performance High-Levels

  • Keeping IO Async
  • Keeping request time < 200ms

Performance Q3 Dev Action

  • TASK: Add an artillery profiling test
  • TIME: 2-3hours
  • (Ben task) -- add script to measure artillery coverage (2d)
  • (Ben task) -- add bunyan framework to app (3d)

Performance Q3 Goal

  • Have 20% of routes covered by artillery

Best Practices

BP: Server

  • Continue the TypeScript Migration
    • Last Quarter, we moved from ~5% TS to ~18% TS coverage in the app.
  • Goal: Reach 30% TS coverage in Q3
  • (Ben task): Improvements to tyranid-tdgen (2d)

BP: Server Actions

  • All new logic files should be in TS
  • Continue migration of individual JS files to TS
    • Areas to tackle: lots of controllers + services on the server are still in JS
  • Dev Time: varies, between 5 minutes - 2hrs depending on complexity of file. Each dev should shoot for a 0.5% increase in TS coverage each refactor monday.

BP: Server Actions (continued)

  • Usage of any only when manipulating completely arbitrary objects, otherwise should use existing or new interface
  • Prefer simple functions to classes / interfaces to types.
  • Add doc-block comments for functions / interfaces

BP: Client

  • Same TS percentage, and new file policy as server
  • Migrate any existing JS components / directives to TS
  • Goal: (same TS percentage as mentioned in server)
  • (Ben task): Client-side tyranid-tdgen improvements (2d)
  • Optional: Begin view migration for React
    • (more info on this to come on monday BB)

BP: Client Action

  • Migrate a JS angular component to TS
  • Dev Time: ~1-2hrs


Interop: High-Levels

  • Keeping Tyranid Schema Clean + Documented for public api.
  • Keeping code isomorphic if possible.
  • Using open standards where possible.

Interop: Dev Actions

  • Add documentation on tyranid models (notes for properties).
  • Time: ~20minutes.
  • (Ben Task) -- add tyranid logic for measuring documentation coverage. (2d)
  • (Ben Task) -- add JSONSchema generator for tyranid (3d)

Interop: Goals

  • Have 50% of collections properties documented.