Closed minhhy2801 closed 5 months ago
@LeHoDiep @minhhy2801 Dạ tụi em chỉ mới làm được vầy ạ, do tụi em còn đang thi và chưa có kinh nghiệm nên tụi em chưa làm hoàn chỉnh. Mong chị feedback cho chúng em ạ. Qua tuần sau thi xong tụi em sẽ làm hoàn chỉnh ngay ạ. Em cảm ơn chị ạ
IMPORTANT: Làm sao dễ Maintain nhất
IMPORTANT: KHÔNG VIẾT BIẾN, FILE & FOLDER CÓ 's' ở bất cứ đâu
bads: users, products, ...
good: user, product, ...
or : userArray, userList, userCollection, ... (kiểu dữ liệu trả ra)
NOTE: trong toàn bộ src không tồn tại tên biến gạch ngang exp: customer-report
Dùng Eslint Typescript format suggestion https://typescript-eslint.io/getting-started/
Dùng Prettier
Dùng Husky
Thư mục chứa Component phải có tên giống với tên Component và là phải PascalCase
bads: header, headerComponent, header-component
good: folder Header, file Header.tsx
Bad
// Filename: userlogin.js
export const UserLoginNew = () => {}
Good
// Filename: UserLogin.jsx
const UserLogin = () => {}
export default UserLogin;
bad: <UserLogin user_name="John Doe" />
good: <UserLogin userName="John Doe" />
{
entityProperty: 'value'
}
good
{
entity_property: 'value'
}
exp
{
"status": 200,
"message": "success",
"data": {
"user_id": "123",
"user_name": "John Doe",
}
}
bad: User, User-Report, User_Report, UserReport
good: user, userReport, userReport
bad: Users, products.Controller, ...
good: user.middleware.ts, userReport.middleware.ts, product.controller.ts
bad: user, userReport, user_report
good: User, UserReport
bad: user_id, user_name, user-name
good: userId, userName
export enum UserRole {
Admin,
Staff,
Student
}
export type UserType = {
userId: string
userName: string
}
export interface IUser {
userId: string
userName: string
}
bad: get_user, get-user
good: getUser
good
const getUser = () => {
// logic
}
bad
function getUser() {
// logic
}
/**
* Kiểm tra xem một số có phải là số nguyên tố hay không.
* @param {number} num - Số cần kiểm tra.
* @returns {boolean} - True nếu số nguyên tố, false nếu không phải.
* @example isPrime(5)
* @description
* Hàm này kiểm tra xem số được cung cấp có phải là số nguyên tố hay không.
* Số nguyên tố là số chỉ chia hết cho 1 và chính nó.
* @author [Tên tác giả]
* @version 0.0.1
*/
function isPrime(num) {
// Logic kiểm tra số nguyên tố ở đây
// ...
}
/*
desc: add new course
method: POST
path: /course/add-new-course
headers: {
params: ... (có hoặc không)
query: ... (có hoặc không)
Authorization: Bearer <access_token>
}
body: AddNewCourseReqBodyType (syntax feature+ReqBodyType)
*/
courseRouter.post(
'/add-new-course',
accessTokenValidator,
checkRole([UserRole.Admin]),
addNewCourseMiddleware,
addNewCourseController
)
export default courseRouter
Tạo branch mới từ develop
Tên branch phải có dạng: <category>/?<reference>/<description-in-kebab-case>
feature
, bugfix
, hotfix
, refactor
, style
, test
, doc
issue/ticket
, pr
, no-ref
-
vd: git branch feature/issue-42/create-new-button-component
vd: git branch bugfix/issue-342/button-overlap-form-on-mobile
vd: git branch bugfix/pr-42/fix-button-component
Commit code lên branch mới
Tên commit phải có dạng: <category: do something; do some other things>
feat
, fix
, refactor
, chore
feat
is for adding a new feature
fix
is for fixing a bug
refactor
is for changing code for performance or convenience purpose (e.g. readability)
chore
is for everything else (writing documentation, formatting, adding tests, cleaning useless code etc.)
vd: git commit -m "feat: add new button component; add new button components to templates"
vd: git commit -m 'fix: add the stop directive to button component to prevent propagation'
vd: git commit -m 'refactor: rewrite button component in TypeScript'
vd: git commit -m 'chore: write button documentation'
Please help add your code convention of FE and BE side Here is an example in FE for you to have a look: