CodeGym /Các khóa học /C# SELF /Tạo sản phẩm: cách các sản phẩm CNTT hiện đại ra đời

Tạo sản phẩm: cách các sản phẩm CNTT hiện đại ra đời

C# SELF
Mức độ , Bài học
Có sẵn

1. «Người ta không sinh ra, họ được nuôi dưỡng»

Thôi nào, vì bạn còn ở đây, chúng ta tiếp tục nhé. «Và tôi sẽ cho bạn thấy độ sâu của hang thỏ» © 🐇

Để tôi kể cho bạn nghe quá trình phát triển sản phẩm diễn ra như thế nào — chúng ta sẽ đi qua các bước từ cấp độ toàn cầu cao nhất đến cấp độ thấp nhất — viết mã. Chắc chắn sẽ có vài điều thú vị để khám phá…

Sản phẩm CNTT hiện đại không còn được viết nữa, chúng được tạo ra. Chúng được lắp ghép từ các thư viện, framework, phần mềm và sản phẩm của bên thứ ba hoặc thậm chí sử dụng các dịch vụ internet trả phí hoặc miễn phí từ xa 🧩.

Sản phẩm hiện đại là một vườn thú gồm nhiều công nghệ, dịch vụ, giải pháp và quy trình. Một phần công việc do con người làm, phần khác tự động hóa, còn lại 90% thậm chí chạy trên các dịch vụ đám mây trong các data center ☁️. Thế giới đã khác xưa rồi.

Nhưng điều đầu tiên bạn sẽ chú ý là sự thay đổi liên tục. Bạn không còn viết chương trình nữa, bạn thực hiện các thay đổi vào chúng.

2. Thay đổi liên tục

Bạn đến nơi làm việc và gia nhập một đội gồm 20 người, đã làm việc với sản phẩm này 5 năm rồi. Hiện tại, người dùng đã có thể dùng phiên bản thứ 7 của nó. Nhiệm vụ của bạn là thực hiện các thay đổi vào sản phẩm này. Nhỏ thôi để không làm mất lòng các người dùng hiện tại đang hoạt động tích cực.

Và điều này sẽ không dễ đâu, vì sản phẩm đã hoạt động rồi. Nó có khách hàng, và họ trả tiền 💰. Vì vậy, không thể phá hỏng gì cả. Việc thay đổi một sản phẩm đã hoạt động còn khó hơn nhiều so với tạo mới. Có các tiêu chuẩn, quy trình migration và utility đặc biệt để làm điều này. Nhớ lại một câu chuyện cười:

Hai người bạn cũ gặp nhau: một người trở thành mechanic, người kia là bác sĩ phẫu thuật... Mỗi người có cuộc sống, lo toan, niềm vui riêng... Họ kể cho nhau nghe mọi thứ, rồi nói về lương bổng. Thợ máy nói: "Tôi kiếm 30 triệu một tháng và rất hài lòng, còn bạn thì sao?". Bác sĩ phẫu thuật nói: "Tôi khoảng 100 triệu cho một ca phẫu thuật...". Thợ máy tò mò: "Lạ thật, sao lại chênh lệch lớn thế? Cùng làm một việc mà - thay thế phụ tùng". Bác sĩ nói: "Thôi, đi xem xe nào, khởi động đi...". Thợ máy khởi động xe, bác sĩ mở nắp capo và nói với thợ máy: "Thấy chưa, động cơ chạy rồi? Thay đi!". 😂

Ngay cả khi có phép màu xảy ra, và đội của bạn đã viết sản phẩm từ đầu trong một năm rồi mới release, bạn biết chuyện gì sẽ xảy ra tiếp theo không? Nếu sản phẩm của bạn thành công, chủ sở hữu sẽ muốn phát triển nó. Phát hành phiên bản mới, thêm chức năng mới. Hoặc ít nhất là thử nghiệm một vài thứ. Và bạn biết chuyện gì sẽ xảy ra sau đó? Thay đổi 🙈

3. Giá trị của sản phẩm

Theo quan điểm phát triển hiện đại, chỉ có mã đã được release và tính năng mà người dùng đang sử dụng mới mang lại giá trị. Nếu bạn viết mã, nó còn lưu trữ ở đâu đó, chạy được, nhưng không ai dùng, thì giá trị của nó gần như bằng không. Vì vậy, toàn bộ mã phải càng sớm càng tốt được đưa lên production 🚀

Mã của bạn phải trải qua các giai đoạn sau:

  • ✔️ Bạn viết xong và đảm bảo nó hoạt động.
  • 🔍 TeamLead của bạn review và merge vào branch chính trong Git.
  • 🧪 Các tests trong quá trình build cho thấy bạn không làm hỏng thứ gì quan trọng.
  • 🧩 Các integration tests xác nhận sản phẩm hoạt động đúng như mong đợi.
  • 🛡️ Người kiểm thử (tester) kiểm tra mã này và chấp thuận để release.
  • 📦 Sau đó, cần build phiên bản mới của sản phẩm và release nó lên server.
  • 🐳 Phiên bản mới cần đóng gói trong Docker Images và release.
  • 🗄️ Có thể cần chạy migration scripts và cập nhật database hoặc các dịch vụ bên thứ ba khác.
  • 📊 Tiếp theo, cần thu thập logs trên server để đảm bảo mọi thứ hoạt động đúng.
  • ⏪ Trong trường hợp khẩn cấp, nếu có lỗi, cần rollback build, khôi phục trạng thái cũ của database và giữ nguyên các hành động của người dùng trong khi họ dùng phiên bản không ổn định của sản phẩm.

Trong hầu hết các công ty, các bước này đã được tối ưu hóa: quy trình mới được thiết lập, người chuyên trách được tuyển dụng, các quy trình bảo mật và kiểm soát chất lượng được đưa vào. Công ty càng lớn, thời gian từ viết mã đến khi nó lên production và trở thành giá trị, mang lại lợi ích cho người dùng càng ngắn.

Trong nhiều công ty, mã đi qua con đường này trong vòng hai tuần. Tuy nhiên, có những công ty release hàng tuần hoặc thậm chí hàng ngày. Những đặc biệt hơn nữa là vài lần trong ngày.

Mã đã viết không có giá trị gì. Chỉ có mã chạy trên production mới mang lại giá trị.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION