I've published a collection of best practices for web application developers
The recommendations are based on real-life experience, enabling teams to consistently deliver high-quality products, be more productive and less frustrated. Topics range from architecture to code formatting.
Are you looking to level-up your skills and create applications faster, with fewer bugs, in a maintainable way? I think you'd appreciate this new best practices document available on GitBook. It's written for small to medium-sized teams working on non-trivial, long-life enterprise applications using TypeScript or JavaScript.
I firmly believe that successful teams have a robust, detailed set of best-practices from the very beginning. Making things up as we go is not enough. Figuring out the answers to problems as they happen is wasteful and reactive. A solid baseline, on the other hand, provides confidence and productivity to the team.
You only want to worry about problems that are truly unique to you and your product. I think one way to do that is to pick up an off the shelf reference and adapt it to your situation.
The recommendations are all based on real-life experience: these are the ones that worked well in multiple projects, with diverse teams and products. The ideas themselves are not new; what I've tried to do is to present them pragmatically, in the context of modern enterprise web app development.
Topics include:
- Principles
- Architecture
- Naming
- TypeScript
- Monorepo
- Monolith
- Versioning
- Code formatting
- Folder structure
- Configuration
- Logging
- Testing: E2E, integration, unit tests
- Using Git
Hopefully, the synergy of the ideas leads you into the "Pit of Success": to be able to consistently deliver high-quality products, be productive and less frustrated in your day to day job.
You can read the GitBook at https://thekarel.gitbook.io/best-practices/
I have been working on this collection for some time and keep it up-to-date with the latest ideas, insights and remarks from the developer community. Please reach out if you have any comments: I'd appreciate your feedback. PRs are welcome on GitHub!