1TM platform tech stack
Cyril Yu
Overall Tech Stack
- Frontend: ReactJS, NextJS.
- Backend: Golang, gin
- Database: MariaDB, Elastic
- Log/Error tracking: ELK, SENTRY
- Version Control: Gitlab
- Serverless: AWS lambda
- CI/CD: Gitlab CI
- Git hook: Husky, pre-commit
- Containerized: Docker, Kubernets
What is Software Engineering
-
Systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. — IEEE, in its standard 610.12-1990
-
The practical application of scientific knowledge to the creative design and building of computer programs. It also includes associated documentation needed for developing, operating, and maintaining them. — Barry W. Boehm
Introduce Software Development Life Cycle
SDLC consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software.
The life cycle defines a methodology for improving the quality of software and the overall development process.
Examples of SDLC in Action
- Waterfall Model
- Agile Model
- Iterative Model
- Spiral Model
- V-Shaped Model
Model | Pros | Cons |
---|---|---|
Waterfall | 1. Document driven 2. Everyone gets up to speed quickly |
1. Longer delivery time 2. Potential lack of flexibility |
Agile | 1. More flexible 2. Product get to market faster. 3. Better communication |
1. Hard to predict 2. Final product is not released first 3. Documentation gets left behind |
Comparison
How git works in SDLC
To know about git
-
Distributed Version Control Systems
-
Using Object Database ( Blob, Tree, Commit, Tag )
-
Snapshot, not differences
Git commit best practice
-
Make small commits
-
Commit complete and well tested code
-
Write good commit messages
Reference
-
Software Engineering: https://en.wikipedia.org/wiki/Software_engineering
-
Gitbook: https://git-scm.com/book/en/v2
- Version Control: https://en.wikipedia.org/wiki/Version_control
Q & A
Copy of Sharing: Software Engineering
By Cyril Yu
Copy of Sharing: Software Engineering
- 709