5 Triển khai và kiểm thử
4.21 Mô trường dữ liệu của bảng Item
4.6 Quản lý mã nguồn 4.6.1 Git
Git là hệ thống quản lý mã nguồn phân tán trong đó server lưu trữ tất cả phiên bản thay đổi của mã nguồn, đồng thời mỗi client trong hệ thống cũng lưu trữ một bản sao chép
toàn bộ lịch sử thay đổi mã nguồn từ server.
Hình 4.70: Hệ thống mã nguồn phân tán [15]
File trong git tồn tại một trong ba trạng thái:
• Đã chỉnh sửa(Modified): file đã có thay đổi so với lần commit trước đó trong git.
• Sẵn sàng cập nhật (Staged): file sẵn sàng cho lần cập nhật tiếp theo. Sử dụng lệnh git add để chuyển file từ trạng thái chỉnh sửa qua trạng thái cập nhật.
• Đã cập nhật (Committed): file đã được cập nhật. Sử dụng lệnh git commit để cập nhật file từ trạng thái sẵn sàng cập nhật sang trạng thái đã cập nhật.
Hình 4.71: Các trạng thái của file trong Git [16]
4.6.2 GitFlow
GitFlow là một ý tưởng về cách sử dụng git. Ý tưởng bao gồm cách tạo các loại branchs và cách merge chúng lại với nhau.
• Nhánh master: Nhánh mặc định trong git, chứa mã nguồn khởi tạo của ứng dụng.
• Nhánh develop: Được tách từ nhánh master, dùng để merge code từ nhánh feature, sau khi đủ một vài tính năng code của nhánh master sẽ được merge vào nhánh release.
• Nhánh feature: Được tánh từ nhánh develop, dùng đế phát triển một tính năng mới, sau khi phát triển hoàn thiện tính năng code của nhánh feature sẽ được merge vào nhánh develop.
• Nhánh release: Được tách từ nhánh develop, dùng để kiểm tra lại các tính năng, sau đó code của nhánh release được merge qua nhánh master và develop.
• Nhánh hotfix: Được tánh từ nhánh master, dùng để sửa nhanh các lỗi trên sản phẩm, sau đó code của nhánh hotfix được merge qua nhánh release và nhánh master.
4.6.2.1 Service
• Cấu trúc thư mục gốc
STT Tên thư mục Mô tả
1 manage.py Chứa các command line giúp chạy chương trình thực hiện các tác vụ của admin
2 customer Thư mục chứa toàn bộ mã nguồn liên quan tới quản lý người dùng 3 realtime Thư mục chứa toàn bộ mã nguồn
liên quan tới quản lý vận đơn 4 delivery Thư mục chứa file cấu hình và định tuyến
trong chương trình 5 apiHelper Chứa các hàm dùng chung cho
toàn bộ chương trình
6 requirements.txt Chứa các thư viện dùng trong chương trình hỗ trợ quá trình triển khai trên server
7 Procfile Cấu hình giúp chạy web và hệ thống realtime khi triển khai 8 runtime.txt Cấu hình phiên bản python