# 31: Đừng sửa đoạn code đó

Điều này sẽ diễn ra với bất cứ ai tại một thời điểm nào đó. Code của bạn đã được chuyển đến Server cho hệ thống kiểm tra và quản lí trả lời lại rằng nó có lỗi. Phản ứng đầu tiên của bạn là “Nhanh lên, để tôi fix nó, tôi biết sai ở đâu mà!”.

Nhìn rộng ra, sai lầm ở đây là với tư cách một developer, bạn nghĩ rằng bạn có quyền truy cập vào máy chủ kiểm thử (staging server).

Trong hầu hết các môi trường được phát triển dựa trên nền web, cấu trúc có thể được chia nhỏ như sau:

  • Phát triển cục bộ (local development) và đơn vị kiểm tra (unit testing) trên máy của developer.
  • Máy chủ phát triển (development server) là nơi được tạo ra bởi việc tích hợp kiểm tra thủ công và tự động.
  • Máy chủ kiểm thử (staging server) là nơi mà team QA và người dùng tiến hành việc kiểm tra.
  • Máy chủ ứng dụng (production server)

Vâng, có nhiều máy chủ và dịch vụ được cài vào hệ thống như là kiểm soát source code và dịch vụ mua bán (ticketing). Nhưng bạn biết đó, sử dụng mô hình này, với một developer — thậm chí là một senior developer — cũng không bao giờ có quyền truy cập vào máy chủ phát triển. Hầu hết các quá trình phát triển được thực hiện trên máy cục bộ của developer bằng cách sử dụng hỗn hợp các IDE, máy ảo và thậm chí là cả “ma thuật huyền bí” (black magic) để có được may mắn.

Sau khi được đăng ký vào SCC, dù là tự động hay thủ công, việc này nên được chuyển đến máy chủ phát triển, nơi mà nó có thể được kiểm tra và điều chỉnh nếu cần thiết để đảm bảo mọi thứ hoạt động tốt. Tuy vậy, bắt đầu từ thời điểm này, developer chỉ có nhiệm vụ theo dõi quá trình đó.

Quản lý của staging cần nén và gửi code đến máy chủ staging cho team QA. Cũng giống như các developer, QA và người dùng không cần phải truy cập vào máy chủ phát triển. Nếu đã sẵn sàng thử nghiệm, hãy tạo và gửi một bản đi, đừng yêu cầu người dùng “Chỉ nhìn những thứ chạy thật nhanh” trên máy chủ phát triển. Hãy nhớ rằng, trừ khi bạn đang tự code một dự án, những người khác cũng đang code, không ai rảnh để xem người dùng thấy sao về sản phẩm.

Người quản lí phát hành chỉ là một người mà làm cả hai việc đó.

Trong mọi trường hợp, đôi khi là tất cả, một developer nên có quyền truy cập vào máy chủ của ứng dụng. Nếu có vấn đề gì đó, nhân viên hỗ trợ nên khắc phục hoặc yêu cầu bạn khắc phục nó. Sau khi được đăng ký vào SCC, họ sẽ gửi bản vá đi. Một số thảm họa lập trình tồi tệ nhất mà tôi từng gặp phải là khi ai đó ho ho các kiểu đã vi phạm quy tắc cuối cùng này. Nếu quy tắc này bị bỏ qua, sản phẩm sẽ không còn có thể sửa chữa được.