Đơn vị 3 / 12

Đọc mã, giải thích và tương thích với cơ sở mã mới

Lợi nhuận:

  • Khả năng ánh xạ lớp cơ sở mã nước ngoài theo lớp bằng AI và theo dõi tính năng từ đầu đến cuối
  • Khả năng giải thích từng bước các chức năng phức tạp và giám sát luồng dữ liệu
  • Khả năng xem mô tả AI dưới dạng giả thuyết và xác minh các tuyên bố quan trọng trong mã

Các nhà phát triển đọc mã thay vì viết mã. Khi bạn bắt đầu một công việc mới, tiếp quản một dịch vụ do người khác để lại hoặc đóng góp cho một thư viện nguồn mở, nhiệm vụ đầu tiên của bạn là "chuyện gì đang xảy ra ở đây?" là tìm câu trả lời cho câu hỏi. AI có thể giảm nhiệm vụ khám phá này xuống hàng giờ thay vì hàng tuần - nhưng chỉ khi được sử dụng với câu hỏi phù hợp và phản xạ xác minh.

Trong đơn vị này, chúng ta học cách sử dụng AI giống như một “hướng dẫn mã”: ánh xạ cơ sở mã nước ngoài, dịch một hàm phức tạp sang ngôn ngữ đơn giản, theo dõi luồng dữ liệu và tìm ra cách sử dụng thư viện. Nguyên tắc vàng ở đây là lời giải thích về AI chỉ là một giả thuyết; bạn xác minh nó bằng chính mã đó.

Tại sao chú thích mã mạnh mẽ nhưng có rủi ro?

LLM rất giỏi trong việc đọc một đoạn mã và dịch nó sang ngôn ngữ của con người, chẳng hạn như "chức năng này làm mới mã thông báo phiên của người dùng"; bởi vì nó đã học được các mẫu từ hàng triệu ví dụ tương tự. Đây là một cách tiết kiệm thời gian rất lớn, đặc biệt là với các hàm dài và lồng nhau.

Đây là rủi ro: mô hình đôi khi cho biết mã dường như làm gì chứ không phải nó thực sự làm gì. Nếu tên biến là isAdmin nhưng logic bên trong bị đảo ngược, mô hình có thể nhìn vào tên và trích xuất nội dung tóm tắt sai. Do đó, trước khi đưa ra tuyên bố làm cơ sở cho các quyết định quan trọng của mình, bạn nên kiểm tra trực quan hành vi bị cáo buộc trên các dòng liên quan. Mô tả sẽ đưa bạn đến đúng nơi; Mã có tiếng nói cuối cùng.

Thận trọng: Đừng coi bản tóm tắt "mã này thực hiện X" của AI chỉ là bằng chứng trong một quyết định liên quan đến an ninh hoặc dòng tiền. Bản tóm tắt là một bản đồ hiển thị nơi cần tìm; Bạn đưa ra xác nhận trong mã.

Các bước để lập bản đồ cơ sở mã nước ngoài

  1. Bắt đầu ở cấp cao nhất. Đầu tiên, hãy làm quen với cấu trúc thư mục và các điểm vào (chính, khởi chạy ứng dụng, bộ định tuyến tại nhà). Hỏi AI "các lớp của ứng dụng dựa trên cấu trúc thư mục này là gì?" hỏi.
  2. Theo dõi một tính năng từ đầu đến cuối. "Những tập tin nào được kích hoạt và thứ tự khi người dùng đăng nhập?" — xem một luồng duy nhất mang tính hướng dẫn nhiều hơn là đọc toàn bộ kiến ​​trúc.
  3. Bản địa hóa các thuật ngữ. Hỏi AI về các khái niệm dành riêng cho dự án ("người thuê", "sổ cái", "người thực hiện công việc") và tìm những từ tương đương trong mã.
  4. Bạn đã đơn giản hóa hàm phức tạp. Giải thích từng bước một hàm dài, sau đó đánh dấu các bước đó trong mã.
  5. Xác minh. Thực hiện một thay đổi nhỏ và chạy thử nghiệm để kiểm tra sự hiểu biết của bạn; Bài kiểm tra sẽ cho bạn biết ngay nếu hiểu biết của bạn sai.

Ba hộp nhỏ

Trường hợp 1 - Dịch vụ kế thừa đã giảm từ 2 ngày xuống còn 3 giờ. Một nhà phát triển đã tiếp quản dịch vụ đối chiếu thanh toán 4.000 dòng từ một đồng nghiệp đã rời đi. Có AI tóm tắt các mô-đun và theo dõi luồng thanh toán từ đầu đến cuối; Ông đã đích thân xác minh hai chức năng quan trọng trong mã. Việc khám phá, ước tính mất 2 ngày với phương pháp "đọc mù" cổ điển, đã được hoàn thành trong khoảng 3 giờ với phương pháp AI đã được xác minh.

Trường hợp 2 - Bẫy tên gây hiểu lầm. Một chức năng được gọi là validAndSave nhưng bản tóm tắt AI cho biết "trước tiên hãy xác thực, sau đó lưu". Khi nhà phát triển nhập mã, anh ta thấy rằng việc lưu đã được thực hiện trước khi xác minh và việc xác minh chỉ được ghi vào nhật ký. Đây thực sự là nguyên nhân sâu xa gây ra lỗi trong quá trình sản xuất. Nếu không có xác nhận trong mã, bản tóm tắt sai sẽ che giấu lỗi.

Trường hợp 3 - Việc học ở thư viện mới được tăng tốc. Nhóm dự định tích hợp một thư viện hàng đợi tin nhắn mà họ chưa quen. Tôi hỏi AI "làm cách nào để thiết lập người tiêu dùng trong thư viện này, làm cách nào để thử lại trong trường hợp có lỗi?" Họ yêu cầu và cho sản xuất một mẫu; Sau đó, họ so sánh ví dụ này với tài liệu chính thức và khắc phục sự khác biệt (API phiên bản cũ). Thời gian học giảm đi một nửa.

Bốn mẫu có thể sao chép

Ánh xạ cơ sở mã:

Dưới đây là danh sách thư mục/tập tin của một dự án. 1) Trích xuất các lớp của ứng dụng (đầu vào, logic nghiệp vụ, truy cập dữ liệu, v.v.). 2) Liệt kê hành trình tệp có thể có của yêu cầu "{{example property}}". 3) Đánh dấu những phần bạn không chắc chắn là "phải được xác minh". {{danh sách_thư mục}}

Mô tả chức năng (từng bước):

Chia chức năng này thành các nhóm hàng và giải thích bằng tiếng Thổ Nhĩ Kỳ đơn giản về công việc của mỗi nhóm. Cuối cùng: liệt kê đầu vào, đầu ra, tác dụng phụ (cơ sở dữ liệu/tệp/mạng) và các trường hợp có thể xảy ra. Thu thập các hành vi mà bạn không chắc chắn dưới tiêu đề RIÊNG "phải được xác minh".{{function}}

Theo dõi luồng dữ liệu:

Giá trị "{{variable/data}}" đến từ đâu, nó trải qua những biến đổi nào, nó được viết ở đâu? Tạo chuỗi quy trình bằng cách sử dụng tên hàm trong mã. Mã liên quan: {{code_segments}}

Học cách sử dụng thư viện:

Tôi muốn tạo {{mục đích}} bằng {{thư viện}}. Đưa ra một ví dụ tối thiểu và hiệu quả. Đảm bảo rằng mọi chức năng bạn sử dụng đều thực sự thuộc về thư viện này; nếu bạn không chắc chắn, hãy đánh dấu vào "xác minh từ tài liệu chính thức". Phiên bản: {{version}}.

Dấu nhắc yếu / Dấu nhắc mạnh

Yếu: "Giải thích mã này." (Bạn đang thắc mắc điều gì? Ở cấp độ nào? Bạn sẽ làm gì?)
Strong: "Tôi đang đảm nhận chức năng này và tôi sẽ thay đổi logic thử lại trong đó. Giải thích từng bước chức năng, đặc biệt khi có lỗi, nêu rõ bạn thử lại bao nhiêu lần và trong khoảng thời gian nào; đánh dấu những phần bạn không chắc chắn là 'phải được xác minh'. [code]"

Phiên bản mạnh mẽ thể hiện ý định của bạn (tôi sẽ thay đổi logic thử lại) và trọng tâm; để lời giải thích không phải là một bản tóm tắt chung chung mà là một hướng dẫn hữu ích.

Nhiệm vụ

AI làm tốt

Hãy chắc chắn để xác minh

Tóm tắt kiến trúc chung

Xóa lớp

Trình tự cuộc gọi thực tế

hàm phức tạp

Giải thích từng bước

Logic ngược, tác dụng phụ

luồng dữ liệu

Soạn thảo chuỗi

Các nhánh có điều kiện, đường dẫn bị bỏ qua

sử dụng thư viện

Tạo mẫu

Tính xác thực và phiên bản của API

Không có sự thay thế cho sự hiểu biết của con người

Mô tả AI không thể thay thế cho việc học; nó tăng tốc nó lên. Để thực sự “sở hữu” một cơ sở mã có nghĩa là xây dựng một mô hình tinh thần về nó và mô hình đó chỉ phù hợp khi bạn đọc mã, thực hiện các thay đổi nhỏ và xem kết quả. Sử dụng AI giống như người cố vấn sẽ nói với bạn “hãy nhìn vào đây, điều này quan trọng” - nhưng hãy đọc ở nơi bạn tận mắt nhìn thấy nó.

Mẹo: Khi bạn cho rằng mình hiểu một chức năng, hãy yêu cầu AI “tóm tắt nó trong một câu”; Sau đó so sánh nó với câu của chính bạn. Nếu hai câu mâu thuẫn với nhau, thì bạn hoặc mô hình đã bỏ sót điều gì đó — và bạn giải quyết vấn đề đó trong mã.

Những lỗi thường gặp

  • Hãy coi bản tóm tắt là bằng chứng. Đưa ra quyết định về mã mà không xác minh mô tả có nghĩa là rơi vào bẫy của những cái tên gây hiểu lầm.
  • Dán các mảnh quá lớn. Tóm tắt 2.000 dòng cùng lúc cho kết quả hời hợt và dễ mắc lỗi; chia thành từng mảnh.
  • Không nói rõ mục đích. Nếu bạn không nói "bạn sẽ làm gì" thì phần mô tả vẫn chung chung và không tập trung vào doanh nghiệp của bạn.
  • Không xác nhận phiên bản thư viện. Mô hình có thể gọi API lỗi thời hoặc không tồn tại; So sánh với tài liệu chính thức.
  • Cho đi tất cả việc học tập. Chỉ làm việc với các bản tóm tắt mà không hề đọc cơ sở mã sẽ khiến bạn bất lực trước sai lầm thực sự đầu tiên.

Tóm lại

AI là một hướng dẫn mạnh mẽ trong việc khám phá cơ sở mã nước ngoài: lập bản đồ kiến trúc, đơn giản hóa các chức năng phức tạp, theo dõi luồng dữ liệu, hướng dẫn cách sử dụng thư viện. Nhưng mọi lời giải thích đều là một giả thuyết. Hãy làm rõ quan điểm của bạn, chia nhỏ nó ra và xác minh trong mã cũng như kiểm tra mọi xác nhận quan trọng mà mô hình cho biết (và không) "phải được xác minh". Hướng dẫn là AI; Bạn là người đọc bản đồ và chịu trách nhiệm.

Nhiệm vụ ứng dụng

Chọn một mô-đun mà bạn không quen thuộc hoặc bạn vừa kế thừa. Đầu tiên, trích xuất các lớp và hành trình tệp của một đối tượng địa lý bằng mẫu "ánh xạ cơ sở mã". Sau đó, giải thích từng bước chức năng quan trọng nhất của tính năng đó bằng mẫu "giải thích chức năng". Cuối cùng, hãy tự mình kiểm tra mã ít nhất hai xác nhận mà mô hình đã đánh dấu là “phải được xác minh” và lưu ý xem chúng đúng hay sai.

danh sách kiểm tra

  • [ ] Tôi coi tuyên bố AI như một giả thuyết và xác minh nó bằng mã.
  • [ ] Trong khi giải thích mã, tôi thêm mục đích và trọng tâm của mình vào lời nhắc.
  • [ ] Tôi tóm tắt cơ sở mã lớn bằng cách chia nó thành nhiều phần.
  • [ ] Tôi kiểm tra trực tuyến các tuyên bố quan trọng để tìm các bẫy logic ngược/tên gây hiểu lầm.
  • [ ] Tôi so sánh các ví dụ của thư viện với tài liệu và phiên bản chính thức.
  • [ ] Tôi sử dụng AI như một hướng dẫn để tăng tốc việc học chứ không phải để thay thế cho việc học.