Đọc source code một cách hiệu quả

Chúng ta dành phần lớn thời gian của mình để đọc source code có sẵn và cố gắng hiểu ý nghĩa của chương trình. Tiếp sau là chúng ta chỉnh sửa lại những dòng code có sẵn đó, và cuối cùng thời gian chúng ta phát triển những đoạn source code mới hoàn toàn là vô cùng ít ỏi trển tổng thời gian làm việc.

lap-trinh-vien-doc-code.png

Hiểu được cách source code làm việc luôn là một điều thú vị. Ngoài ra việc đọc mã nguồn có thể giúp kĩ năng lập trình của chúng ta trở lên tốt hơn (và nhanh hơn). Đọc và viết phần mềm bằng cách học hỏi từ những người khác và đôi khi cũng từ những sai lầm của họ, có thể giúp chúng ta tiến bộ rất nhanh.

Nếu bạn tham gia vào một công ty phần mềm mới hoặc một dự án mã nguồn mới, bạn có lẽ sẽ làm việc trên một codebase hiện rất lớn và do đó để bạn có thể hòa nhập được vào nó một cách nhanh chóng bạn có thể sẽ được giao các công việc như để thực hiện kiểm tra tính năng hoặc fix bug.

Mục tiêu chính của việc đọc source code luôn là để có thể suy nghĩ và suy luận về tất cả các khía cạnh của một hệ thống phần mềm. Bây giờ câu hỏi lớn đặt ra là: Làm thế nào để bạn đọc mã nguồn?

1. Chuẩn bị kiến thức cơ bản

Trước khi bạn bắt đầu lặn sâu vào nguồn mã của một dự án phần mềm, bạn nên chắc chắn phải có kiến thức cụ thể đủ để hiểu được đoạn cụ thể của phần mềm. Do đó, bạn nên bắt đầu bằng cách đọc tài liệu vể các lý thuyết cơ bản nhất (ví dụ như các ứng dụng Windows, Mac OS X và iOS, ứng dụng Android, hệ điều hành, mạng máy tính, các trình duyệt , công cụ tìm kiếm, cơ sở dữ liệu, vv). bạn không cần phải biết tất cả mọi thứ về chủ đề này, nhưng bạn phải hiểu được những khái niệm trừu tượng cốt lõi và các khối xây dựng cơ bản của nền tảng / sản phẩm phần mềm.

Và trước khi đọc source code của dự án, bạn hãy tìm hiểu qua về framework, các thư viện dự án thường sử dụng trước. Bước chuẩn bị đầu tiên này sẽ giúp công sức đọc hiểu code của bạn đỡ đi rất nhiều.

2. Xác định thành phần code trung tâm của dự án

Tất cả các hệ thống phần mềm hoặc ít nhất là tất cả các hệ thống con của hệ thống phần mềm khổng lồ sẽ có một số khối xây dựng cơ bản và trừu tượng hóa cốt lõi mà bạn sẽ thấy được sử dụng ở khắp mọi nơi. Các thành phần này (ví dụ như các class, mô-đun, các action, các cấu trúc dữ liệu, vv) cũng được biết đến như là trung tâm của dự án. Các trung tâm source code này mô tả các khía cạnh khác nhau hoặc là một hệ thống con của toàn bộ source code. Vì thế việc liệt kê ra các đoạn source code trung tâm này sẽ giúp hình dung ra hệ thống con và nó giống như thế giới nhỏ của toàn bộ dự án. Các đoạn source code này như là các đầu mối - Hub, giúp hình thành bối cảnh xung quanh mà các kỹ sư phần mềm xây dựng các kiến trúc phần mềmm, nó thực hiện khá nhiều trong những tính năng cốt lõi của hệ thống.

Khi các hệ thống phần mềm phát triển, ngày càng có nhiều thành phần khác sẽ phụ thuộc vào các khối trung tâm này. Do đó tìm kiếm các đoạn source code trung tâm và tìm hiểu về nó là việc đầu tiên bạn nên làm khi bắt đầu đọc source code. Thông thường, ngay cả các hệ thống phần mềm khổng lồ chỉ có một số lượng tương đối nhỏ của trung tâm. Do đó, bạn không cần phải lo sợ hàng triệu dòng mã nguồn bởi vì các đoạn source code trung tâm sẽ hướng dẫn bạn thông qua các source code của nó.

3. Tìm hiểu mô hình tương tác giữa các đoạn mã source code

Tiếp theo, sau khi xác định các trung tâm, bạn nên cố gắng hiểu các mô hình tương tác giữa các trung tâm . Các tương tác có thể dựa vào cơ chế khác nhau như gọi qua API hoặc sử dụng raise event, sử dụng message. Để có được bức tranh toàn cảnh các ý tưởng về cách các đoạn source code trung tâm phụ thuộc vào nhau, chúng ta có thể vẽ một số hình ảnh mô tả các đoạn source code sự phụ thuộc, tương tác giữa chúng.

4. Tiếp cận theo hướng từ dưới lên

Phương pháp tiếp cận từ dưới lên làm việc tốt nhất bằng cách bắt đầu với các đối tượng hoạt động (Object, action, method) chúng ta cần quan tâm và có nhiệm vụ phải hiểu được nó. Để có thể suy nghĩ và lập luận về một số đoạn mã nguồn mà bạn thực sự cần phải hiểu rõ môi trường hoạt động của chương trìnhm, và cố gắng tìm hiểu làm thế nào và khi nào thì các đoạn source code tương tác với nhau. Điều này sẽ giúp bạn đạt được những mục tiêu chính của việc đọc mã nguồn, mà là để có thể suy nghĩ và lập luận về tất cả các khía cạnh của source code của một hệ thống phần mềm .

Chúng ta có thể làm điều đó bằng cách thêm một số mã code để xác minh các giả định về hành vi của mã mà chúng ta nghĩ rằng nó sẽ làm việc như vậy. Phương pháp khác là để làm sửa đổi mã nguồn chỉ để kiểm tra như thế nào mã ứng xử trong hoàn cảnh mới. Phá vỡ hoặc làm hư hỏng các đoạn mã cũng có thể giúp bạn tìm hiểu về nó 😃. Trong khi đọc mã nguồn luôn tự hỏi mình: "Làm thế nào nó hoạt động?" và "Tại sao các nhà phát triển thực hiện nó theo cách đó?".

Summary

Tất cả mọi thứ bạn làm để có được một tư duy tốt hơn, suy nghĩ và lý luận về mã nguồn sẽ giúp bạn phát triển kĩ năng fix bug mạnh hơn và kỹ năng phân tích đó lần lượt cho phép bạn thực hiện các tính năng mới, sửa lỗi hay làm cho phép tái cấu trúc lại source code. Bằng cách suy nghĩ và phản ánh về các mã nguồn mà bạn đang đọc, bạn sẽ học được rất nhiều về cách viết các hệ thống phần mềm và các kiến thức nền tảng để xây dựng lên hệ thống. Bên cạnh đó, từ các đoạn mã xấu bạn cũng sẽ học những gì để tránh khi phát triển hệ thống phần mềm.