Tham gia vào một nhóm hiện có với một bộ mã lớn đã có sẵn có thể gây khó khăn. Cách tiếp cận tốt nhất là gì;Cách tốt nhất để làm quen với một codebase lớn là gì?
- Rộng; cố gắng xem tổng quan chung về cách mọi thứ liên kết với nhau, từ mã
- Thu hẹp; tập trung vào các phần nhỏ của mã tại một thời điểm, hiểu cách chúng hoạt động hoàn toàn
- Chọn một đối tượng địa lý để phát triển và tìm hiểu khi bạn đi dọc theo số
- Cố gắng lấy thông tin chi tiết từ sơ đồ lớp và uml, nếu có (và cập nhật)
- Có điều gì khác hoàn toàn?
tôi đang làm việc trên những gì hiện một khoảng 20k dòng C++ ứng dụng & thư viện (Edit: nhỏ trong chương trình lớn của sự vật). Trong ngành công nghiệp, tôi tưởng tượng bạn sẽ được giới thiệu bởi một lập trình viên có kinh nghiệm. Tuy nhiên, nếu đây không phải là trường hợp, bạn có thể làm gì để bắt đầu thêm giá trị càng nhanh càng tốt?
-
Tóm tắt các câu trả lời:
- Bước qua mã trong chế độ debug để xem cách nó hoạt động
- Pair lên với một ai đó quen thuộc hơn với các cơ sở mã hơn bạn, lần lượt là người mã hóa và người xem/thảo luận. Xoay đối tác giữa các thành viên trong nhóm để kiến thức được lan truyền xung quanh.
- Viết kiểm tra đơn vị. Bắt đầu với một xác nhận về cách bạn nghĩ mã sẽ hoạt động. Nếu nó xuất hiện như bạn mong đợi, bạn có thể hiểu được mã. Nếu không, bạn đã có một câu đố để giải quyết và hoặc một yêu cầu để thực hiện. (Cảm ơn Donal, đây là một câu trả lời tuyệt vời)
- Thực hiện các kiểm tra đơn vị hiện có cho mã chức năng, theo cách tương tự như trên
- Đọc UML, Doxygen tạo sơ đồ lớp và tài liệu khác để có được cảm nhận rộng về mã.
- Thực hiện các chỉnh sửa nhỏ hoặc sửa lỗi, sau đó từng bước xây dựng
- Ghi chú và không nhảy vào và bắt đầu phát triển; nó có giá trị hơn để dành thời gian tìm hiểu hơn là tạo ra mã lộn xộn hoặc không phù hợp.
bài này là một bản sao một phần của the-best-way-to-familiarize-yourself-with-an-inherited-codebase
Dòng 20K không phải là một cơ sở mã rất lớn. Khi chỉ có 20K dòng, tôi sẽ đọc nó. Một trong những điều tôi không học ở trường đại học là làm việc với các cơ sở mã lớn. – Paco
Thật vậy. 20k dường như không nhiều. Chúng tôi có các tệp C++ với hơn 10k dòng trong mỗi tệp. Tôi biết, nó là xấu, nhưng chúng tôi không có thời gian để dọn dẹp ngay bây giờ. (chỉ cần tưởng tượng tôi lăn mắt của tôi chỉ nghĩ về nó) Phần lớn các bloat là từ ý kiến mặc dù. –
Heh, quả thật vậy! Tôi không ngụ ý ngụ ý 20k là một cơ sở mã rất lớn (tôi chưa bao giờ nói nó), chỉ là tìm kiếm lời khuyên chung, có khả năng mở rộng. Câu trả lời tuyệt vời cho đến nay; rất nhiều điều để suy nghĩ. – RJFalconer