Trong một thế giới lý tưởng, tất cả các mã được viết bởi một nhà phát triển nhất định sẽ được ghi lại tốt, có cấu trúc tốt và được kiểm tra toàn diện, cả với các công cụ tự động như kiểm tra đơn vị và sử dụng tập lệnh tình huống mà người dùng chạy qua để kiểm tra xem bạn có nhận được kết quả mong đợi hay không.
Tuy nhiên, điều đầu tiên bạn sẽ học là chúng ta không sống trong một thế giới lý tưởng!
Rất nhiều nhà phát triển không ghi lại mã của họ một cách chính xác, nếu có, họ trộn logic kinh doanh với mã không liên quan và thử nghiệm duy nhất họ làm là chạy nhanh qua những gì họ mong đợi là trường hợp sử dụng thông thường.
Khi làm việc với mã như thế này, điều đầu tiên bạn phải làm là thiết lập những gì nó có nghĩa là làm. Nếu có ý kiến họ có thể cung cấp cho bạn manh mối, nhưng đừng tin vào điều đó. Đó là kinh nghiệm của tôi rằng nhiều lập trình viên không giỏi tự giải thích và ngay cả khi họ để lại bình luận, họ có thể là vô nghĩa. Tuy nhiên, trừ khi bạn là lập trình viên duy nhất trong công ty, chắc chắn ai đó phải có ít nhất một ý tưởng cơ bản về mã này để làm gì và nó có nghĩa là gì. Hỏi xung quanh!
Nếu bạn có bài kiểm tra đơn vị, thì chúng sẽ khiến cuộc sống của bạn trở nên dễ dàng hơn rất nhiều. Nếu bạn không, thì một phần của việc học codebase có thể liên quan đến việc viết các bài kiểm tra đơn vị cho mã đã tồn tại. Thông thường, điều này không được coi là thông lệ tốt vì nếu bạn viết các bài kiểm tra đơn vị để phù hợp với mã hiện có, bạn sẽ kết thúc với các bài kiểm tra đơn vị nghĩ rằng mã hoạt động như vậy (chúng sẽ được viết để cho rằng hành vi đó thực sự là một lỗi đúng), nhưng ít nhất nó cung cấp cho bạn một đường cơ sở. Nếu sau đó bạn phát hiện ra rằng một số hành vi mà bạn cho là đúng thực tế là sai, bạn có thể thay đổi bài kiểm tra đơn vị để kiểm tra xem kết quả mong đợi là gì thay vì kết quả mà mã đưa ra bây giờ. Khi bạn có bài kiểm tra đơn vị, bạn có thể thực hiện các thay đổi và đánh giá tác dụng phụ nào mà bất kỳ thay đổi nào bạn thực hiện có.
Cuối cùng, tài nguyên tốt nhất bạn có khi giao dịch với một đoạn mã không có giấy tờ là hỏi người dùng cuối. Họ có thể không biết gì về mã, nhưng họ biết ứng dụng họ muốn làm gì. Thu thập yêu cầu là giai đoạn đầu tiên trong bất kỳ dự án nào và nói chuyện với người dùng tiềm năng của hệ thống sẽ được phát triển luôn là một phần quan trọng trong đó. Chỉ cần nghĩ về nó như đang thực hiện giai đoạn nắm bắt yêu cầu cho một dự án mới vừa xảy ra đã được xây dựng.
Hãy nhớ rằng ngay cả mã được viết và tài liệu tốt cũng có thể khó hiểu đối với người ngoài. Mã về cơ bản là một biểu hiện về cách người viết nó đã suy nghĩ vào thời điểm đó và mọi người đều có quá trình suy nghĩ độc đáo của riêng họ. Bạn sẽ phải học cách kiên nhẫn một chút và trở thành một thám tử. Có thể tham gia vào quá trình suy nghĩ của người khác là khó, nhưng đó là một kỹ năng thiết yếu cho một lập trình viên thực hiện bảo trì mã hiện có. Vì hầu hết mã hóa (khoảng 70%) có liên quan đến việc duy trì mã hiện có, đây là một kỹ năng quan trọng để học.
Ồ, và bây giờ bạn đã thấy nỗi đau mà mã tài liệu kém, chưa được kiểm tra và lộn xộn có thể gây ra, bạn sẽ không làm điều đó với nhà phát triển nghèo tiếp theo, phải không? :) Tìm hiểu từ những sai lầm của người tiền nhiệm, nhận xét mã của bạn tốt, đảm bảo rằng mọi mô-đun đều có trách nhiệm được xác định rõ ràng và tuân thủ và đảm bảo bạn có một bộ kiểm tra đơn vị toàn diện mà bạn viết trước (đối với phương pháp TDD) hoặc ít nhất là bên cạnh mã được phát triển.