Spoj

Lần khác mình sẽ dừng tại điểm smack dab ở giữa một chức năng quan trọng, và tìm cách đi đến stack để hiểu cách làm sao mình đến được đó. Nếu bạn quyết định làm theo code một cách thủ công, nhớ thiết lập sẵn trình soạn thảo của bạn cho phép bạn sử dụng “go to definition” và “find all references” một cách nhanh chóng.

Bạn đang xem: Spoj

Đối với cấu trúc dữ liệu, xem lại loại dữ liệu và khi nào các biến chính được bật. Sử dụng trình gỡ lỗi để truy vấn những cấu trúc dữ liệu này vào những thời điểm quan trọng.

Ngoài các bài test tích hợp, cách tốt để tiếp cận một codebase mới chính là review lại các pull request quan trọng. PRs thường dễ hiểu hơn, vì chúng gói gọn trong một tính năng tách biệt. PRs cũng cung cấp nền tảng narrative ngoài lý do và cách bổ sung code.

Trong quá trình đào sâu này, mình mở 2 doc markdown. Doc đầu là “level up my coding” nơi mình liệt kê các cú pháp mới mà mình thấy và các mẫu code mình thích khi tự học (người khác gọi nó là bảng kê). Cái doc thứ 2 để liệt kê các câu hỏi quan trọng mình dành cho những lập trình viên của codebase mình đang đọc. Ở giai đoạn này, mình cũng thêm vào documentation khi tôi thấy gaps.

Quá trình deep dives này thường sẽ hiệu quả hơn nếu bạn thực hiện cùng với một người nào đó biết về code. Nếu mình chỉ có ít thời gian với một lập trình viên trên project, mình luôn để họ theo dõi mình qua các flow chính. Khi mình đã hiểu căn bản một ít dòng chính, sẽ dễ dàng hơn khi mình tự đào.

Write Code

Không giống trong văn chương, nơi đọc và viết là 2 cái tách biệt, một phần quan trọng của đọc code chính là viết code. Nếu không viết code, bạn không thể hiểu được một codebase. 2 cách tiếp cận dễ dàng để bắt đầu là viết test và giải quyết các feature/bug.


Viết test thử là một hình thức đọc tích cực, bắt bạn phải chú ý đến input và output của một tương tác cụ thể. Viết code giúp hằn sâu code trong đầu bạn – cái mà việc đọc không thôi thì không thể làm được.

Đối với mình, test từng phần là cách dễ dàng để bắt đầu. Khi mình thành thạo một số base, mình có thể chuyển sang test tích hợp để hiểu hơn về codebase. Thỉnh thoảng mình sẽ viết lại một test tích hợp đã có, để thử xem mình có hiểu cách một call quan trọng hoạt động hay không.

Một cách tiếp cận khác dễ dàng hơn đó là viết tính năng đơn giản hoặc address những lỗi dễ. Cả 2 cách này không yêu cầu bạn phải có kiến thức đầy đủ về codebase, nhưng vẫn bắt bạn phải “đối đầu” với code. Đóng góp cách sửa bug và tài liệu liên quan cũng là một cách dễ dàng để trả lại dependencies.

Những phương pháp này giúp bạn nhanh chóng hoàn thành khi bận đang cần. Bằng cách áp dụng RSDW nhiều hơn với một vài bài học mở rộng, việc đọc code sẽ đỡ khó khăn hơn nhiều.

Một vài tips đọc

Phương pháp RSDW không phải là duy nhất. Các engineer có thể tìm ra cách riêng mà họ thích để đào sâu vào một codebase mới (Quá trình đọc cũng thay đổi đáng kể tuỳ theo ngôn ngữ, các tool có sẵn và loại codebase bạn đang muốn)

Mặc dù vậy, phương pháp RSDW cũng là cách tiếp cận tốt khi bạn thấy code mới. Nó cũng kích thích sự thú vị khi đọc code, có thể là viết test hoặc chủ động sử dụng một trình gỡ lỗi để truy vấn cấu trúc dữ liệu. Quá trình đọc code khác xa so với quá trình đọc một cuốn sách.

Xem thêm: (2020) Nên Mua Iphone X Hay Xs Hay Xs Max Năm 2020? Sử Dụng Lâu Dài Nên Mua Iphone Xs Hay Iphone X

Bạn cũng sẽ tìm đọc code mới một cách hứng thú. Bạn lưu lại các dòng code và cố gắng giữ đồng thời hàng chục cấu trúc dữ liệu và chức năng mới trong đầu. Đừng ngại nghỉ giải lao 1 tí khi bạn gặp một codebase mới. Khi mình bắt đầu với 1 codebase mới, một vài giờ rảnh trong ngày để đọc là tất cả những gì mình cần để năng suất hơn.

Mặc dù nó rất quan trọng để phát triển các kỹ năng đọc tốt, nhưng cũng quan trọng không kém khi suy nghĩ về những gì bạn đã đọc.

Bạn nên đọc code gì?

Khi bắt đầu sự nghiệp, mình tin rằng 60% thời gian của bạn nên dành cho việc đọc code. Có thể 1/3 trong số đó là code khác với codebase bạn sẽ build. Chắc hẳn là phải tốn rất nhiều thời gian, vậy chúng ta nên đọc gì?


Cách dễ nhất để bắt đầu đọc, và với ROI cao nhất, là học các dependency của bạn. Nội bộ hoá cách dependency của bạn làm việc để bạn dễ debug hơn trên toàn bộ hệ thống.

Một cách khác giúp mang lại năng suất cao khác là chọn một hệ thống quan trọng ở công ty của bạn mà bạn giao tiếp, và thử đọc qua nó. Điều này không chỉ đem lại giá trị cho công việc của bạn, mà các codebase chuyên nghiệp thì khác với codebase nguồn mở.

Ngoài các hệ thống mà bạn tương tác trực tiếp, hãy luôn sẵn sàng để đọc nhiều hơn nữa. Những ngày đầu trong sự nghiệp của mình, mình khuyên các bạn nên dành 1 giờ đồng hồ mỗi sáng hoặc mỗi tối để đọc code ngoài công việc hằng ngày của bạn. Nghe khá đau đớn vì sau một ngày làm việc mệt mỏi rồi, nhưng hãy cố gắng lượm nhặt codebase bạn thích và đào sâu vào nó trong 1 tuần thử nhé.

Ví dụ, Redis là nguồn nổi tiếng để bắt đầu học C. Để dễ đọc hơn và đọc được nhiều codebase phức tạp hơn, cách đơn giản là bắt đầu đọc từ subsystem cụ thể.

Các dự án phụ cũng là một cách tốt để đọc code, vì chúng buộc bạn phải học một thế giới khác. Bạn sẽ cần đọc nhiều dependency mới và khám phá những codebase khác nhau để biết mình đang build cái gì. Mặc dù không có vẻ là đọc cho lắm, nhưng đó là dự án mà có thể bắt bạn chủ động đọc những thứ bạn sẽ dùng.

Ngoài công việc, bạn nên đọc nhiều tools khác với những gì bạn đang làm. Nếu bạn đã quen với abstraction level cao, hãy học 1 (hoặc 3) abstraction level thấp hơn. Nếu bạn đang làm việc với 1 ngôn ngữ, chọn một ngôn ngữ khác để đọc vào lúc rảnh.Nếu bạn luôn nghĩ về 1 constraint (vd: thời gian để làm mới màn hình tiếp theo trong graphics programming), tìm một constraint khác (vd: tiết kiệm tuổi thọ pin cho lập trình mobile).

Một cách tiếp cận tốt khác để đọc code đó là đọc và viết lại từ những coder và bạn yêu thích. Trường hợp của Didion hồi trẻ đã viết nên Hemingway hoặc Hunter Thompson viết Great Gatsby, hoặc code của antirez/ gaearon/ mrdoob bắt đầu với 1 thư viện đơn giản. Đọc code khác của họ. Luôn cập nhật công việc gần đây nhất của họ.

Stephen King nói với các nhà văn rằng: “Nếu bạn không dành thời gian để đọc, bạn sẽ không có thời gian (hoặc công cụ) để viết, đơn giản vậy thôi”. Cũng tương tự thế đối với các kỹ sư phần mềm, viết code sạch có lẽ là điều vui nhất, nhưng chủ động đọc code mới là điều khiến bạn bứt phá ra khỏi vỏ bọc trước giờ.

Bài viết về cách đọc code

Sách

Codebase để đọc

Bài viết gốc được đăng tải tại Hackernoon

Nổ hũ club online uy tín | link tải 567live app|W88 | ứng dụng qqlive download| tải mmlive apk | b52 club - Game đánh bài online hot nhất VN