Software Architecture Design Guidelines
Post Date : 2022-10-05T09:59:19+07:00
Modified Date : 2022-10-05T09:59:19+07:00
Category: cheatsheet
Tags:
Lời nói đầu, trong bất kì một hoạt động sản xuất kinh doanh nào, không chỉ ngành IT nói riêng, mà trong thực tế hoạt động của nhiều ngành nghề khác. Việc xây dựng hệ thống là cực kì quan trọng.
Trong phạm vi của bài viết này, tôi xin chia sẻ những gì đúc kết được trong quá trình xây dựng hệ thống cho các dự án với các quy mô khác nhau. Tuy rằng về mặt quy mô có khác biệt nhưng về mặt bản chất, thì các bước cần thiết để xây dựng 1 hệ thống là một.
Trình tự thiết kế kiến trúc và phát triển 1 dự án Single Page App ( SPA ) trong thực tế
- Create a Sitemap
- Check the design and choose a proper UI Framework. Such as: TailwindCSS(Atomic CSS Framework), Ant Design(Atomic CSS Framework included built-in ReactJS Components), Material, Bootstrap, Bulma, …
- Create the relevant page routes
- Apply code clean standard
- Breakdown design into smaller components: global styles, components
- Create page details : collect bricks and build a fully page with fake data
- Create page interaction : handle user’s interaction
- Integrate with API : they can be http request, websocket and they can be restful api or graphql. Should write test for your api integration ( use mocks & stubs if needed)
- Think about the infrastructure and setup your continuous deployment process
- Test your application
- Write tests for your application and setup your continous integration process
- Create blueprint for developers: overview source code architecture, component usage guidlines, developer’s guidelines
Trình tự thiết kế kiến trúc và phát triển 1 dự án API ( Resftful API ) trong thực tế
- Brainstorm : analyze requirements and list all relevant entities
- High level design: components and interation between them
- Group into modules: design and breakdown the system in individual module for development
- Details for funtionality in each module
- Create database schema: dataset, field definitions, constraints, database schema
- Create API contract-first approach
- Design the global architecture: choosing between monolith and microservices
- Design codebase architecture: for development, testing, deployment. Eg: DDD(domain driven design), Clean Architecture, Rapid (everything stay inside controller )
- Apply clean code standard
- Codefirst with API: create API contracts: request, response, dtos - accuracy, consistency, latency
- Business Layer: service and external resources - write unit test (use mocks vs stubs if needed)
- Persistence Layer: repository, database entities, data migration, adjust db depends on usecases for optimizing performance
- Connect all layer into fully feature
- Test your final API
- Document your API
- Setup your continous deployment process on your infrastructure: dev, test, uat, production
- Setup your continous integration process on your CI infrastructure: test, coverage report, automatically report,…
- Create blueprint for developers: overview source code architecture, code re-use guidelines, developer’s guidelines