Quy tắc và quy định phát triển phần mềm BM
1. Cấu trúc dự án & môi trường làm việc
Ngoài các thư mục mặc định của suiteCRM khi thiết lập dự án thì cần lưu ý một số thư mục custom sau:
- logs: Lưu trữ thông tin log hệ thống. Bao gồm log cuộc gọi, log cảnh báo từ hệ thống
- sessions: Lưu trữ thông tin sessions hiện tại trên hệ thống. Phiên làm việc
- archives: Thư mực lưu trữ tài nguyên (Lưu trữ file ghi âm, file mp3, text transcript, …)
- ……….
Công cụ quản lý công việc: Dùng op.quantri.online để quản lý task, cập nhật tiến độ theo ngày.
- Mỗi task cần có: Tiêu đề rõ ràng, mô tả chi tiết, người thực hiện, deadline, độ ưu tiên.
- Luồng xử lý code:
- Lập task trên hệ thống.
- Tạo nhánh Git tương ứng: [username]_[
feature]_[optional], [hotfix]_[issue_name],hotfix_... - Code, viết tài liệu và test.
- Tạo Merge Request (MR) lên nhánh
develop. - Code phải được review kỹ càng trước khi được merge vào main.
2. Chuẩn code (Coding Standards) và Tài liệu hóa
- Tên biến, hàm: đặt theo camelCase.
- Tạo module cú pháp: Đặt tên tiếng anh (viết hoa chữ đầu, cách nhau bằng dấu “_”) Key (Prefix): BM (viết hoa). Phải có mô tả là module gì.
- Luôn comment đủ cho class, function và logic phức tạp.
- Các folder như: js, css, language, metadata, tpls, views,… thì điều chỉnh trực tiếp trong folder gốc modules/. Ngoại trừ trường hợp như logic_hook thì điều chỉnh trong folder custom/modules/
- Tối ưu hóa code cũ. Hạn chế hardcode.
- Mỗi module phải có tài liệu cấu trúc, hướng dẫn sử dụng hoặc tích hợp.
- API phải có docs (Swagger/Postman/Redoc).
- Ghi chú cách deploy, migrate DB, cấu hình cronjob nếu có.
- Ghi log truy cập và hành vi người dùng nếu liên quan đến thông tin quan trọng.
3. Giao tiếp và phối hợp nhóm
- Sử dụng Telegram nội bộ để trao đổi nhanh.
- Review tuần/tháng để tổng kết vấn đề, chia sẻ kinh nghiệm.
- Hạn chế nhắn tin riêng khi trao đổi công việc.
Lưu ý:
- Không push thông tin nhạy cảm lên Git (Api key/Token/Password).
- Tối thiểu phải có test thủ công cho các chức năng chính.
- Không sửa code của người khác mà không thông báo.
- Luôn backup trước khi chỉnh sửa những phần quan trọng.
- Tôn trọng thời hạn, tránh trễ task mà không báo trước.
- Chủ động cập nhật trạng thái task, tránh để bị “treo”.
- Hỗ trợ đồng đội, tránh giữ kiến thức riêng.
- Đề cao tinh thần tự học và cải tiến liên tục.