# 68: Lưu giữ mọi thứ bằng version control

Hãy lưu tất cả các dự án của bạn bằng version control. Mọi tài nguyên của bạn đều đã có sẵn, như là Subversion, Git, Mercurial, và CVS; không gian lưu trữ lớn, server mạnh mẽ và hoàn toàn miễn phí, mạng lưới toàn cầu, và gồm cả dịch vụ project-hosting. Sau khi bạn đã hoàn tất cài đặt version control, tất cả mọi thứ bạn cần làm để lưu trữ công việc vào kho riêng là thực hiện một vài dòng lệnh cơ bản tại nơi chứa code của bạn. Và chúng chỉ có hai thao tác cơ bản bạn cần phải học là: xác nhận những sự tinh chỉnh trong code với kho lưu trữ và bạn phải cập nhật phiên bản cũ của dự án của bạn trong kho.

Một khi bạn đã lưu trữ dự án bằng version control, bạn có thể xem lịch sử của nó một cách trực quan, xem rằng ai đã viết đoạn code đó, và tham khảo các phiên bản của tệp tin hoặc dự án bằng một định danh duy nhất. Quang trọng hơn nữa, bạn có thể mạnh dạn thực hiện những thay đổi mà không cần comment trừ khi bạn thực sự cần nó trong tương lai, bởi vì mọi phiên bản chỉnh sửa sẽ được lưu trữ một cách vô cùng an toàn. Bạn còn có thể( nên) gán một bản chương trình hoàn thiện bằng một cái tên gợi nhớ để trong tương lai bạn có thể truy xuất chính xác phiên bản mà khách hàng của bạn sử dụng. Hơn nữa bạn còn có thể tạo ra thêm các nhánh chương trình song song để phát triển. Hầu hết các project đều có một nhánh phát triển chính cùng với nhiều nhánh là các phiên bản được phát hành và hỗ trợ.

Version control giảm thiểu tối đa sự thiếu tương tác giữa những nhà phát triển. Khi các lập trình viên làm việc trên các mảng độc lập với nhau và tất cả những mảng ấy được kết hợp lại như được thực hiện bởi “ma thuật”. Khi họ thực hiện thao tác cùng một lúc, hệ thống sẽ nhận ra và cho phép họ sắp xếp những sự mâu thuẫn ấy. Đồng thời khi chúng ta thực hiện thêm một vài thiết lập đặc biệt, hệ thống sẽ có thể nhận biết tất cả nhà phát triển với từng sự thay đổi, giúp ta thiết lập sự theo dõi chung về tiến độ của dự án.

Khi chuẩn bị cho dự án của bạn, đừng trở nên keo kiệt: hãy đặt tất cả chúng dưới sự bảo quản của version control. Tách biệt khỏi source code, kể cả tài liệu, dụng cụ, bản kế hoạch, test case, nghệ thuật, và cả thư viện. Cùng với sự bảo mật chặt chẽ, do thường xuyên backup, kho lưu trữ của bạn khiến cho khả năng bị mất dữ liệu trở nên không đáng kể. Chính vì thế mà việc thiết lập một môi trường phát triển mới trên một thiết bị mới vô cùng tiện lợi và đơn giản như kiểm tra dự án từ kho lưu trữ. Điều này giúp tối giản sự phân phối, xây dựng, và kiểm tra code trên các nền tảng khác nhau. Và trên mỗi thiết bị chỉ với một lệnh cập nhật đơn giản sẽ đảm bảo cho dự án luôn ở phiên bản mới nhất.

Một khi bạn đã thấy được sự tiện khi làm việc với version control, chỉ cần thực hiện theo một số quy tắc cơ bản sau đây sẽ giúp cho bạn và team làm việc hiệu quả hơn:

  • Xác nhận mọi sự thay đổi hợp lý trong một hoạt động riêng biệt. Kết hợp nhiều sự thay đổi cùng lúc chỉ với một lệnh xác nhận sẽ khiến chúng trở nên khó để tách rời khi cần thiết trong tương lai. Điều này cực kỳ quan trọng khi bạn tiến hành tải bản hay thay đổi kiểu cách của toàn bộ code, điều mà rất dễ gặp khó khăn trong quá trình thay đổi.
  • Kèm theo mọi sự xác nhận thay đổi là một tin nhắn giải thích lý do. Chí ít là nội chính của sự thay đổi ấy nhưng nếu bạn muốn ghi chép lý do của sự thay đổi ấy thì đây chính là nơi hoàn hảo.
  • Cuối cùng, tránh xác nhận sự thay đổi code mà khiến cho cả dự án của bạn sụp đổ, hoặc bạn sẽ bị xa lánh bởi các nhà phát triển khác.

Cuộc sống khi có version control là quá tốt để bị phá huỷ bởi các lỗi có thể tránh được.