0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Xây Dựng Contextr: Công Cụ CLI Đóng Gói Ngữ Cảnh Repository

Đăng vào 7 tháng trước

• 4 phút đọc

Chủ đề:

KungFuTech

Giới Thiệu Về Dự Án Contextr

Trong buổi học tuần này, chúng tôi đã được giao một nhiệm vụ thú vị, mô phỏng cách mà các dự án mã nguồn mở phát triển trong thực tế. Thử thách là phát triển một công cụ CLI có khả năng thu thập ngữ cảnh của bất kỳ repository nào và chuẩn bị nó cho các mô hình ngôn ngữ lớn (LLMs).

Ý tưởng của dự án này thật đơn giản nhưng mạnh mẽ: khi chúng ta, những lập trình viên, muốn hỏi một LLM về một codebase, chúng ta thường gặp khó khăn trong việc cung cấp đầy đủ ngữ cảnh. Một công cụ như thế này giúp đóng gói các thông tin của repository theo cách có cấu trúc để LLM có thể hiểu và trả lời hiệu quả hơn.

Tôi quyết định xây dựng phiên bản của mình bằng Python 👉 contextr.


Cảm Nhận Thực Tế Của Dự Án

Điều làm cho nhiệm vụ này nổi bật là giáo sư của chúng tôi không cung cấp hướng dẫn chi tiết từng bước. Thay vào đó, chúng tôi chỉ nhận được yêu cầu cơ bản và sau đó được yêu cầu tự quyết định—chọn công nghệ, thiết kế tính năng và lập kế hoạch kiến trúc.

Sau khi hoàn thành phiên bản ban đầu, giáo sư đã yêu cầu chúng tôi khám phá repository của nhau, báo cáo vấn đề và tham gia vào các đánh giá mã—giống như tham gia đóng góp vào một dự án mã nguồn mở.


Đánh Giá Repository Của Bạn Học

Tôi đã có cơ hội đánh giá dự án của bạn học: repo-context-packager.

Đánh giá mã, tôi nhận ra, là một con dao hai lưỡi. Một mặt, thật thú vị khi thấy mọi người tiếp cận cùng một vấn đề theo những cách khác nhau. Mỗi dự án là một phản ánh của tư duy và mức độ thoải mái kỹ thuật của lập trình viên. Mặt khác, có thể hơi khó hiểu khi phong cách của ai đó hoàn toàn khác so với bạn.

Nhưng chính tại đây, việc học diễn ra.

Đánh giá mã giúp bạn tiếp xúc với các mẫu, kiến trúc và công nghệ mới mà bạn có thể chưa nghĩ tới.


Một Vấn Đề Quan Trọng Tôi Báo Cáo: Mismatch Giấy Phép

Trong quá trình đánh giá, tôi đã phát hiện bốn vấn đề đáng chú ý, nhưng một vấn đề nổi bật: sự không khớp giữa giấy phép của repository và tệp package.json (Vấn đề #3).

Ban đầu, điều này có thể có vẻ như một vấn đề nhỏ nhặt. Là sinh viên, chúng tôi thường bỏ qua các vấn đề như giấy phép, nghĩ rằng chúng không thực sự quan trọng cho các dự án nhỏ. Nhưng trong thế giới mã nguồn mở, giấy phép là một vấn đề lớn:

  • Chúng xác định cách mà người dùng có thể sử dụng dự án của bạn
  • Chúng quyết định liệu người khác có thể sửa đổi, phân phối hoặc thậm chí kiếm tiền từ dự án hay không
  • Sự không khớp làm cho dự án trông không chuyên nghiệp và có thể tạo ra vấn đề tuân thủ pháp lý

Vì vậy, trong khi có thể cảm thấy không cần thiết trong bối cảnh lớp học, những chi tiết như thế này là rất quan trọng trong thế giới thực.


Những Bài Học Từ Việc Kiểm Tra và Đánh Giá

Thông qua quá trình xây dựng, kiểm tra và đánh giá, tôi đã rút ra được một số bài học quan trọng:

  1. Chú Ý Đến Chi Tiết Là Quan Trọng – ngay cả những vấn đề nhỏ cũng có thể ảnh hưởng đến sự tín nhiệm của dự án.
  2. Đánh Giá Mã Là Vàng Học Tập – bạn sẽ được tiếp xúc với những cách suy nghĩ khác nhau.
  3. Hợp Tác Xây Dựng Phần Mềm Tốt Hơn – làm việc theo phong cách mã nguồn mở không đồng bộ rất linh hoạt, nhưng đòi hỏi kỷ luật.
  4. Chuyên Nghiệp Trong Các Dự Án – mã tốt chỉ là một phần; giấy phép, tài liệu và cấu trúc cũng quan trọng không kém.

Kết Luận

Dự án này đã trở thành một trải nghiệm hơn cả một bài tập trong lớp học. Nó cho tôi cảm giác về việc đóng góp mã nguồn mở—tự do để xây dựng, trách nhiệm để đánh giá và sự hợp tác để phát triển.

Giờ đây, tôi nhìn nhận giấy phép, tài liệu và cấu trúc dự án với một sự tôn trọng mới. Và quan trọng nhất, tôi đã nhận ra rằng việc đánh giá mã của người khác cũng quan trọng như việc viết mã của chính mình.

👉 Nếu bạn tò mò, hãy kiểm tra công cụ CLI của tôi tại đây: contextr.

✨ Đó là tất cả cho bây giờ — sẽ có nhiều câu chuyện và bài học đến với bạn sớm thôi!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào