CodeGym /Khóa học Java /Python SELF VI /Tạo sản phẩm

Tạo sản phẩm

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

1.1 «Người ta không còn sinh ra nữa, họ được nuôi dưỡng»

Ừ thì, nếu bạn vẫn ở đây, hãy tiếp tục nhé. «Và mình sẽ cho bạn thấy độ sâu của cái hố thỏ» ©

Để mình kể cho bạn cách diễn ra quá trình phát triển sản phẩm — chúng ta sẽ đi từ mức độ toàn cục nhất đến mức độ chi tiết nhất — viết code. Mình nghĩ, bạn sẽ thấy có vài điều thú vị đấy…

Sản phẩm IT hiện đại không còn được viết mà được tạo ra. Chúng được ghép từ các thư viện, frameworks, phần mềm và sản phẩm 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à cả một vườn thú của 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 thực hiện, phần khác đã được tự động hóa, và phần còn lại có đến 90% được thực hiện bởi các dịch vụ đám mây trong các trung tâm dữ liệu. Thế giới không còn như trước đây nữa.

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

1.2 Sự thay đổi liên tục

Bạn sẽ đến làm việc và tham gia vào một đội ngũ 20 người đã làm việc trên sản phẩm này trong 5 năm. Hiện tại, người dùng có thể sử dụng phiên bản thứ 7 của nó. Và nhiệm vụ của bạn là mang lại những thay đổi cho sản phẩm này. Những thay đổi nhỏ, để không làm mất lòng những người dùng hiện tại.

Và điều đó sẽ không dễ dàng, vì sản phẩm đã hoạt động. Nó có khách hàng và họ trả tiền. Vì vậy, không thể phá vỡ bất cứ gì. Thay đổi một sản phẩm đã hoạt động khó gấp nhiều lần so với một sản phẩm mới. Để làm điều đó có các tiêu chuẩn đặc biệt, giao thức di cư và tiện ích. Lúc này mình nhớ đến một câu chuyện hài:

Hai người bạn già gặp nhau: một người trở thành thợ máy, người kia là bác sĩ phẫu thuật... Mỗi người có cuộc sống riêng, những lo toan, niềm vui riêng... Họ kể cho nhau về mọi thứ, rồi câu chuyện chuyển sang vấn đề lương bổng. Thợ máy nói: "Ừm, mình nhận được 30 mỗi tháng và mình rất hài lòng với điều đó, còn bạn thì sao?". Bác sĩ phẫu thuật tim nói: "Ừ thì, mình nhận khoảng 100 K cho mỗi ca phẫu thuật...". Thợ máy bỗng thấy hứng thú: "Lạ thật, tại sao lại có sự chênh lệch lớn như vậy? Chẳng phải chúng ta cũng làm cùng một việc - thay đổi linh kiện sao?". Bác sĩ nói: "Ừm, hãy đến xe, khởi động nó...". Thợ máy khởi động xe, bác sĩ mở nắp capo và nói với thợ máy: "Thấy không, động cơ đang chạy? Hãy thay đổi nó đi! :)"

Ngay cả khi có phép màu, và đội của bạn đã viết sản phẩm từ đầu cả năm và chỉ sau đó mới phát hành, bạn biết điều gì sẽ xảy ra tiếp theo không?

Nếu sản phẩm của bạn trở nên thành công, chủ sở hữu sản phẩm sẽ muốn phát triển nó. Phát hành phiên bản mới, thêm chức năng nào đó. Hoặc ít nhất là thực hiện một số thí nghiệm. Và bạn biết điều gì sẽ xảy ra theo sau đó không? Thay đổi.

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

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

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

  • Bạn đã viết nó và đảm bảo rằng nó hoạt động.
  • TeamLead của bạn đã review nó và thêm vào nhánh chính trong Git.
  • Các bài test trong quá trình build chương trình cho thấy bạn không làm hỏng bất kỳ điều gì quan trọng.
  • Các bài test tích hợp cho thấy sản phẩm hoạt động như mong muốn.
  • Người kiểm tra đã kiểm tra code này và cho phép phát hành.
  • Sau đó cần phải build phiên bản sản phẩm mới và phát hành trên server.
  • Phiên bản sản phẩm mới cần được đóng gói trong Docker Images và phát hành.
  • Có thể phải chạy các script di cư và thực hiện thay đổi trong cơ sở dữ liệu và/hoặc các giải pháp bên thứ ba khác.
  • Sau đó cần phải thu thập logs trên server để đảm bảo rằng mọi thứ hoạt động như mong muốn.
  • Trong trường hợp có tình huống khẩn cấp, nếu bạn làm hỏng điều gì đó, cần phải rollback build, khôi phục lại trạng thái trước của cơ sở dữ liệu và không mất những hành động mà người dùng thực hiện khi sử dụng phiên bản không ổn định của sản phẩm.

Trong phần lớn các công ty, các nhiệm vụ này đã được giải quyết: các quy trình mới được xây dựng, những người chuyên biệt được thuê, các giao thức an ninh đặc biệt và tiêu chuẩn kiểm soát chất lượng được đưa vào.

Công ty càng lớn, thời gian từ khi viết code đến khi nó xuất hiện trên production và trở thành giá trị — bắt đầu mang lại lợi ích cho người dùng càng ngắn.

Trong phần lớn các công ty, code đi qua con đường này trong vòng hai tuần. Nhưng có những công ty thực hiện phát hành mỗi tuần, hoặc thậm chí mỗi ngày. Những người đặc biệt — vài lần mỗi ngày.

Code đã viết không có giá trị gì. Giá trị chỉ được mang lại bởi code đang chạy trên production.

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