Source control là chương trình quản lý source code cho lập trình viên. Hiện giờ có 2 chương trình thông dụng nhất là git và svn.
Source control giúp cho chúng ta dễ dàng quản lý source code hơn, như là:
– Xem lại file code đã thêm/xóa/sửa dòng nào
– Biết ai đã sửa để quy trách nhiệm 😀
– Biết được các version phần mềm đã có lịch sử thêm bớt tính năng gì
…
Do lập trình chỉ cần thiếu 1 dấu chấm dấu phẩy là không compile được. Do đó việc sử dụng source control trong lập trình là bắt buộc.
Các trường hợp sử dụng thực tế
Việc sử dụng source control bắt buộc cả khi lập trình 1 mình. Trong dự án có những file config chính chứa thông số của cả chương trình. Chỉ cần chúng ta sai 1 chút thôi là tìm lại rất khó khăn, do đó phải dùng để tiết kiệm thời gian. Khi sai chỉ cần revert lại là xong, code lại chạy bình thường.
Dự án tạm ngưng thời gian đảm bảo chúng ta sẽ quên chính chúng ta code cái gì. Có những dự án để lâu một vài năm mới có yêu cầu sửa đổi, lúc đó đọc log sẽ nhớ lại chúng ta làm gì.
Có những dự án sử dụng Auto build machine để build source code thành chương trình cho khách hàng. Cách này hay ở chỗ code luôn sạch, không ảnh hưởng đến công việc dở dang nếu build thủ công.
Và làm việc nhóm thì phải có 1 repository tập trung. Tóm lại, đã code thì phải có source control, bất kể dự án quy mô thế nào.
So sánh các tool
Đầu tiên, các cloud drive như Google drive, Dropbox, OneDrive,… vẫn có thể xem là source control. Bởi vì chúng ta có thể xem được các version của file, tuy nhiên chỉ xem được 30 ngày do đó không nên dùng.
Git là phổ biến nhất, cả thế giới đang sử dụng nên có rất nhiều trang web free. Có vài trang web phổ biến như:
– BitBucket: free chỉ có 1GB dung lượng, phù hợp sử dụng cá nhân hoặc dự án nhỏ
– GitHub: là trang chia sẻ code của cộng đồng mã nguồn mở. Tuy nhiên source code default là public, muốn giữ bí mật source code phải trả tiền.
– GitLab: đây là công cụ tuyệt vời nhất. Vừa không giới hạn dung lượng, vừa bí mật, vừa nhanh và có chia sẻ mã nguồn của Gitlab. Tức là bạn có thể deploy 1 trang web riêng của mình giống Gitlab.
– Tự tạo VPS riêng để host source code: dành cho các team lớn, dự án lớn có quy định riêng
SVN hiện tại bản thân mình vẫn sử dụng, tùy theo dự án mà lựa chọn. Git không tự động update external nên mình sẽ lựa chọn linh hoạt theo từng dự án.
Các nguyên tắc phải nắm
Đây là các nguyên tắc chung, còn nguyên tắc của mỗi chương trình mình sẽ viết riêng.
– Commit phải theo tính năng: thêm 1 button thì phải commit các file design, code xử lý khi click button đó,…
– Ghi log phải rõ ràng: không được ghi “update file” mà phải ghi rõ “add button to delete sql record” chẳng hạn
– Nếu commit file nặng thì nên chia ra nhiều lần commit, mỗi lần khoảng 30MB. Còn nếu 1 file lớn hơn thì đành chịu
Khi làm việc luôn luôn suy nghĩ mình viết log, viết ghi chú như vậy người khác có hiểu không. Luôn luôn nghĩ đến việc người khác hiểu được công việc mình làm là rất quan trọng. Điều đó nằm trong các kỹ năng làm việc nhóm mà bất cứ ai cũng phải nắm.