Khi code của hệ thống trở nên quá tởm, một trong những giải pháp hay được lựa chọn là … “đập đi làm lại”.
Cách này ban đầu nghe có vẻ khá hợp lý:
Tuy nhiên, cách này có những nguy cơ tiềm ẩn:
Gương điển hình ở đây là Netscpae. Vì quyết định viết lại code của trình duyệt Netspace 4.0, Netscape đã mất tới 3 năm để ra phiên bản mới, mất khá nhiều thị trường vào tay các trình duyệt khác.
Vì các lý do trên, đa phần các công ty thường không muốn viết lại từ đầu, mà chỉ cần bảo trì và thêm chức năng vào code cũ.
Là một developer, chúng ta phải làm sao để làm việc hiệu quả với chúng?
Document đầy đủ sẽ giúp bạn hiểu rõ kiến trúc của hệ thống, coding convetion, cách setup môi trường để code và build.
Lúc này, cách hay nhất là túm đầu một bác senior hay đã theo dự án lâu năm để hỏi. Hoặc bạn cũng có thể xin phép ngồi pair programming với họ, bạn sẽ học được rất nhiều thứ từ hệ thống hiện, coding convention cho đến qui trình làm việc.
Chúc mừng bạn, bạn xui vkl! Lúc này, điều duy nhất bạn có thể làm là mò mẫm cách build và chạy code, sau đó đọc code và tìm hiểu xem code đươc chạy như thế nào!
Việc fix bug sẽ giúp bạn hiểu được chương trình gồm những phần nào, chúng hoạt động ra sao. Trong các công ty lớn, các lập trình viên mới vào cũng hay được giao task fix bug để tìm hiểu hệ thống rõ hơn.
Tất nhiên, phòng bệnh hơn chữa bệnh. Như mình đã nói, nếu không có các biện pháp phòng chống, code sẽ tởm dần đều, technical debt của dự án cũng sẽ tăng dần đều theo thời gian.
Vậy làm sao để ngăn chặn những điều đó? Những bác lập trình viên thế hệ trước đã chia sẻ vài kinh nghiệm “xương máu” cho chúng ta:
Bạn không cần viết document cho từng file hay dòng code, hãy tập trung viết về architecture và các module của dự án, các flow hay gặp, cách setup và deploy là được rồi.
Hãy nghĩ tới những người sẽ phải hốt shit cho bạn về sau. Có khi người đó là chính bạn đấy!
Ngoài ra, nhờ có unit test, ta sẽ tự tin hơn khi refactor code, không lo tạo thêm bug cho phần mềm.
Tin mình đi, khi viết code và biết rằng sẽ có người review, bạn sẽ viết cẩn thận, có tâm và… chất lượng hơn nhiều!
Bản chất của “phần mềm” là mềm mại, uyển chuyển, dễ thay đổi. Bạn sẽ không thể nào xây dựng architecture, viết code hoàn hảo ngay từ lúc bắt đầu project. Một architecture tốt phải dễ dàng tiến hóa, biến đổi cho phù hợp với những thay đổi đó.
Từ góc nhìn của người dùng, họ không hề quan tâm đến chất lượng code. Họ chỉ quan tâm đến chất lượng sản phẩm, thời gian xây dựng. Xét cho cùng, thứ mang lại giá trị chính là sản phẩm tạo ra từ code, chứ không phải là chất lượng code!
Một sản phẩm code hơi lởm nhưng được vài chục, vài trăm người dùng sẽ đem lại lợi nhuận cho công ty nhiều hơn một hệ thống thiết kế hoàn hảo nhưng trễ deadline tận 3 năm, không ma nào thèm sử dụng.
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE