- Deployment: process of new code live
- Local sandbox (development server or dev): See how code works and iterate on it
- May have a lot of fake data
- Build/compile code
- Test-driven development (TDD): Write test code before the associated code
- Catch bugs maybe but mostly prevent future code from breaking this code
- Beta server/staging server for loading tests → Production server
Managing Code
- Version control system such as git or github: Keep track of changes
- Master branch: Central copy of all the code
- Local repository: Copy of the code in local machines
- Feature branch: When working on a new feature
- Features flag: Toggle to turn feature on or off
Committing Code
- To commit is to save changes back to version control system
- Merge branch → Pull Request (PR) or change list → Shows diffs (changes made)
- PR is then sent for code review → If accepted, merge into local branches
- Merge conflict is when two people try to edit the documents at the same time