-
Notifications
You must be signed in to change notification settings - Fork 1
Philosophy
Dev Speed is most important, Dev friendly, Strong but Lean, Durable, Re-usable, Magicless.
- The right tool for the job means you need a Toolbox
- As a codebase ages, its natural for non-relevant or reusable code to be refactored into their own, specific, codebases.
- A stack can significantly slow down a developer if:
- Its difficult to configure or understand how to modify
- hot rebuild times are more than 300ms
- coding style is inconsistent
- coding style is convoluted or bulky
Starter-Kits/Templates/Boilerplates - an organization’s architects should be able to modify a/this third-party Toolbox to set a standard for development teams. The third-party toolbox (TGR-stack) can be kept as an upstream to get some updates until they diverge too much.
- vscode extension: code-snippets
- vscode extension: suggested-extensions
- git formatted commit prompt: commitizen with emojis (cz-emoji w/ gitmoj)
- advanced package scripting: nps
- Extensive documentation and wiki
- Examples for the majority of cases
- StackOverflow w/ TGRStack in question title for long-term Q&A
- Slack server for community support and contributor coordination
Perfection is not adding as much as possible, but when nothing can be taken away
Durability goals should be set per project. Note that some durability improvements, namely testing, add incremental weight to code changes. Define your projects durability by how long will the project fulfill its purpose without any updates, refactoring, etc.
Two principles are very important to make reusable codebases:
- modularity championed by NPM
- microservice architecture championed by Netflix.
Create a modular heirarchy so that services, apps, modules, and components are in separate repositories and each one can standalone.
At first glance TGRstack appears to hide all of its internals but instead of wrapping everything up into a react-scripts package (popularized by Create React App), all the knobs are at your disposal by disabling the 'hidden' flags in the workspace vscode configuration (.vscode/settings.json). This is equivalent to a project running react-scripts eject which most advanced devs use as a matter of course.