Scope la phan tuy chon nam trong dau ngoac (), xac dinh module/file/module cu the bi anh huong.
Danh sach scope khuyen nghi cho du an Clean Architecture
Scope
Layer/Module
Vi du
domain
MyNewProjectName.Domain
feat(domain): add Order entity
app
MyNewProjectName.Application
feat(app): add CreateUserCommand
infra
MyNewProjectName.Infrastructure
feat(infra): configure EF Core DbContext
api
MyNewProjectName.WebAPI
fix(api): resolve CORS issue
admin
MyNewProjectName.AdminAPI
feat(admin): add dashboard endpoint
contract
MyNewProjectName.Contracts
feat(contract): add UserDto
test
MyNewProjectName.UnitTest
test(test): add UserService tests
auth
Module xac thuc
feat(auth): implement JWT refresh token
cache
Module caching/Redis
feat(cache): add Redis caching layer
db
Database/Migration
feat(db): add migration for User table
docker
Docker/Container
chore(docker): update docker-compose
deps
Dependencies/NuGet
chore(deps): update MediatR to v12
Quy tac scope
Viet thuong toan bo
Ngan gon, 1-2 tu
Phai nhat quan trong toan du an
Co the bo qua neu thay doi anh huong nhieu module
5. Quy Tac Viet Description
Nen lam
Quy tac
Chi tiet
Vi du
Viet hoa chu dau
Chu dau tien cua description viet hoa
feat: Add login page
Duoi 50 ky tu
Giu description ngan gon
fix: Resolve null reference in UserService
Dung dong tu menh lenh
Bat dau bang dong tu (add, fix, update, remove...)
feat: Add user authentication
Khong dau cham cuoi
Khong ket thuc bang dau .
docs: Update README
Mo ta "lam gi"
Tap trung vao ket qua, khong phai qua trinh
fix: Resolve 404 on login redirect
Khong nen lam
Quy tac
Vi du sai
Vi du dung
Khong viet chung chung
fix: Fix bug
fix(auth): Resolve token expiration error
Khong qua dai
feat: Add new user authentication with JWT and refresh token and role-based access control
feat(auth): Add JWT authentication
Khong dung qua khu
feat: Added login page
feat: Add login page
Khong ghi ten file
fix: Fix UserService.cs
fix(app): Resolve null ref in user creation
Khong dung tieng Viet trong type
feat: Them trang dang nhap
feat: Add login page
Danh sach dong tu khuyen dung
Dong tu
Khi nao dung
Vi du
add
Them moi
feat: Add payment gateway
remove
Xoa bo
refactor: Remove unused imports
update
Cap nhat
docs: Update API documentation
fix
Sua loi
fix: Fix null reference exception
resolve
Giai quyet
fix: Resolve race condition in checkout
implement
Hien thuc
feat: Implement search filter
refactor
Tai cau truc
refactor: Refactor UserRepository
optimize
Toi uu
perf: Optimize query performance
configure
Cau hinh
chore: Configure Serilog logging
migrate
Di chuyen/migration
feat: Migrate user table schema
replace
Thay the
refactor: Replace raw SQL with EF Core
rename
Doi ten
refactor: Rename UserDto to UserResponse
move
Di chuyen
refactor: Move validators to shared folder
simplify
Don gian hoa
refactor: Simplify error handling logic
extract
Tach ra
refactor: Extract email service interface
6. Commit Message Voi Body Va Footer
Khi commit phuc tap, can giai thich them, su dung body va footer:
Format
<type>(<scope>): <description>
<-- dong trong bat buoc
<body>
<-- dong trong bat buoc
<footer>
Vi du 1: Commit co body
feat(auth): Add JWT authentication
Implement JWT-based authentication using IdentityServer.
Include access token and refresh token flow.
Configure token expiration to 15 minutes for access token
and 7 days for refresh token.
Vi du 2: Commit co body va footer (lien ket ticket)
fix(api): Resolve 500 error on user creation
The API was returning 500 when creating a user with an existing email.
Added proper validation check before inserting into database.
Return 409 Conflict instead of 500 Internal Server Error.
Resolves: PROJ-1234
Vi du 3: Breaking change
feat(api)!: Change response format for all endpoints
BREAKING CHANGE: All API responses now follow the new standard format:
{
"success": true,
"data": {},
"message": "",
"errors": []
}
Previous format with flat response body is no longer supported.
Clients must update to handle the new wrapper format.
Resolves: PROJ-5678
Footer keywords
Keyword
Muc dich
Vi du
Resolves:
Dong issue/ticket
Resolves: PROJ-1234
Closes:
Dong issue tren GitHub
Closes: #123
Related:
Lien quan den issue khac
Related: PROJ-5678
BREAKING CHANGE:
Thay doi khong tuong thich nguoc
BREAKING CHANGE: API response format changed
Co-authored-by:
Dong tac gia
Co-authored-by: Name <email>
Reviewed-by:
Nguoi review
Reviewed-by: Name <email>
7. Bang Vi Du Day Du
feat - Them tinh nang moi
feat(auth): Add Google OAuth login
feat(api): Add pagination support for product list
feat(domain): Add Order entity with value objects
feat(app): Add CreateUserCommand with validation
feat(infra): Add Redis caching for product queries
feat(admin): Add dashboard statistics endpoint
feat(contract): Add OrderResponseDto
fix - Sua loi
fix(api): Resolve 404 error on login redirect
fix(auth): Fix token expiration calculation
fix(infra): Resolve database connection timeout
fix(app): Fix null reference in GetUserQuery
fix(domain): Fix value object equality comparison
perf(infra): Optimize database queries with projection
perf(api): Add response compression middleware
perf(cache): Reduce Redis round trips with pipeline
test - Them/sua test
test(app): Add unit tests for CreateUserCommand
test(domain): Add tests for Order entity validation
test(infra): Add integration tests for UserRepository
test: Increase code coverage to 80%
build: Upgrade to .NET 8 SDK
build: Add Directory.Build.props for shared config
build: Configure multi-stage Docker build
ci - CI/CD
ci: Add GitHub Actions workflow for PR checks
ci: Configure automatic deployment to staging
ci: Add SonarQube code analysis step
8. Vi Du Thuc Te Trong Du An
Luong lam viec mot feature hoan chinh
Gia su lam task PROJ-101: Them tinh nang dang nhap
# 1. Tao branch
git checkout -b feature/PROJ-101-add-login
# 2. Them entity va domain logic
git commit -m "feat(domain): Add User entity with email and password"# 3. Them command/query
git commit -m "feat(app): Add LoginCommand with FluentValidation"# 4. Them infrastructure
git commit -m "feat(infra): Implement UserRepository with EF Core"
git commit -m "feat(infra): Add password hashing service"# 5. Them API endpoint
git commit -m "feat(api): Add AuthController with login endpoint"# 6. Them test
git commit -m "test(app): Add unit tests for LoginCommand handler"# 7. Cap nhat tai lieu
git commit -m "docs(api): Add Swagger docs for auth endpoints"# 8. Push va tao PR
git push origin feature/PROJ-101-add-login
Luong sua loi
# 1. Tao branch
git checkout -b bugfix/PROJ-202-fix-login-error
# 2. Sua loi
git commit -m "fix(auth): Resolve incorrect password validation logic"# 3. Them test cho truong hop loi
git commit -m "test(auth): Add test for invalid password scenario"# 4. Push va tao PR
git push origin bugfix/PROJ-202-fix-login-error
Luong hotfix khan cap
# 1. Tao branch tu main
git checkout main
git checkout -b hotfix/PROJ-303-fix-sql-injection
# 2. Sua loi
git commit -m "fix(infra): Sanitize SQL parameters to prevent injection
The raw SQL query in SearchRepository was concatenating user input
directly into the query string. Replaced with parameterized query
using EF Core's FromSqlInterpolated method.
Resolves: PROJ-303"# 3. Push va tao PR vao main
git push origin hotfix/PROJ-303-fix-sql-injection
9. Nhung Loi Thuong Gap
#
Loi sai
Vi du sai
Vi du dung
1
Message qua chung chung
fix: Fix bug
fix(auth): Resolve token expiration error
2
Khong co type
Add login page
feat: Add login page
3
Dung qua khu
feat: Added new feature
feat: Add new feature
4
Qua nhieu thay doi trong 1 commit
feat: Add login, register, forgot password
Tach thanh 3 commit rieng
5
Commit file khong lien quan
Commit ca file config lan feature
Chi commit file lien quan
6
Message tieng Viet
feat: Them trang dang nhap
feat: Add login page
7
Dau cham cuoi
feat: Add login page.
feat: Add login page
8
Khong co scope khi can thiet
fix: Fix null reference
fix(app): Resolve null ref in GetUserQuery
9
Type sai
feat: Fix bug
fix: Resolve login error
10
Description qua dai
100+ ky tu tren 1 dong
Giu duoi 50 ky tu, dung body cho chi tiet
10. Checklist Truoc Khi Commit
Commit message co dung format <type>(<scope>): <description> khong?
Type co chinh xac khong? (feat, fix, docs, style, refactor, perf, test, chore)
Scope co phan anh dung module bi anh huong khong?
Description co duoi 50 ky tu khong?
Description co bat dau bang dong tu menh lenh khong? (add, fix, update...)
Description co viet hoa chu dau khong?
Khong co dau cham cuoi trong description?
Moi commit chi chua 1 thay doi logic duy nhat?
Commit co lien ket ticket ID khong? (trong scope hoac footer)
Neu la breaking change, da danh dau ! va them BREAKING CHANGE: trong footer?
Tom Tat Nhanh
Format: <type>(<scope>): <description>
Type: feat | fix | docs | style | refactor | perf | test | chore | build | ci | revert
Scope: domain | app | infra | api | admin | contract | test | auth | cache | db | docker | deps
Vi du:
feat(auth): Add Google OAuth login # scope = "auth" (module authentication)
fix(api): Resolve 404 error # scope = "api" (API endpoints)
docs(readme): Update install guide # scope = "readme" (file/module cu the)
feat: Them tinh nang moi (VD: feat(login): Add Google OAuth).
fix: Sua loi (VD: fix(api): Resolve 404 error).
docs: Cap nhat tai lieu.
style: Doi format/UI khong anh huong logic.
refactor: Tai cau truc code.
perf: Toi uu hieu nang.
chore: Thay doi nho (VD: chore: Update dependencies).
Quy tac:
- Type va scope viet thuong
- Description viet hoa chu dau, duoi 50 ky tu
- Dung dong tu menh lenh (add, fix, update, remove, implement...)
- Khong dau cham cuoi
- 1 commit = 1 thay doi logic
- Lien ket ticket ID khi co the