0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Kinh nghiệm sử dụng công cụ CLI Repo-snapshot

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

• 5 phút đọc

Giới thiệu

Repo-snapshot là một công cụ CLI cho phép đóng gói các kho GitHub để chia sẻ với các Mô hình Ngôn ngữ Lớn (LLMs). Bài viết này sẽ chia sẻ kinh nghiệm của tôi khi phát triển công cụ này, từ ý tưởng ban đầu đến quá trình thực hiện và những công nghệ tôi đã sử dụng.

Nguồn gốc ý tưởng

Ý tưởng phát triển Repo-snapshot bắt nguồn từ trải nghiệm của một kỹ sư phần mềm trong quá trình lập trình. Tôi đã sử dụng một công cụ AI để hỗ trợ tiến độ làm việc, nhưng thường thì khi hỏi các công cụ AI như ChatGPT, Gemini hay Claude, câu trả lời không phải lúc nào cũng chính xác. Chính vì lý do này, tôi quyết định phát triển một công cụ giúp các lập trình viên dễ dàng chia sẻ mã nguồn với các mô hình AI.

Tại sao chọn TypeScript?

Tôi đã chọn TypeScript vì trước đây tôi đã làm việc trong một dự án nhóm sử dụng JavaScript cho cả frontend và backend. Tôi cũng đã phát triển một dự án frontend kinh doanh bằng TypeScript trong đội trước, và tôi nhận thấy TypeScript giúp lập trình viên nhận diện các vấn đề trong mã. Điều này khiến tôi cảm thấy TypeScript là một ngôn ngữ kiểu mạnh mẽ hơn JavaScript, điều cũng là lý do mà bạn bè tôi khuyến khích tôi học nó. Sau khi sử dụng, tôi đã quyết định sẽ tiếp tục sử dụng TypeScript.

Thực hiện dự án

Khi bắt đầu dự án này với TypeScript, tôi ban đầu không biết phải làm gì. Tuy nhiên, sau khi nghiên cứu, tôi đã tìm ra giải pháp bằng cách sử dụng các thư viện như commander, simple-gitglob.

Sử dụng thư viện Commander

Commander là một thư viện phổ biến để xây dựng các giao diện dòng lệnh (CLI). Nó giúp đơn giản hóa việc phân tích các đối số dòng lệnh, định nghĩa các lệnh và tùy chọn, cũng như tự động sinh ra thông tin trợ giúp và cách sử dụng. Tôi đã sử dụng commander kết hợp với glob để lọc các tệp mà người dùng muốn bao gồm hoặc loại trừ.

Thư viện Simple-git

Simple-git là một thư viện Node.js nhẹ cung cấp giao diện dễ sử dụng để chạy các lệnh Git một cách lập trình mà không cần gọi trực tiếp CLI của Git. Trong dự án này, tôi đã sử dụng thư viện này để lấy thông tin Git như commit, branch, authordate.

Công cụ Glob

Glob là một tiện ích giúp khớp các đường dẫn tệp bằng các mẫu ký tự đại diện giống như shell, còn được gọi là "glob patterns". Nó giúp tìm các tệp và thư mục trong hệ thống tệp phù hợp với các mẫu cụ thể, rất hữu ích cho các tác vụ như tìm kiếm tệp, lọc và xử lý hàng loạt. Tôi đã sử dụng glob để lọc các đối số includeexclude.

Chức năng của công cụ CLI

Công cụ CLI này không chỉ kiểm tra các tệp và thư mục trên GitHub mà còn đóng gói dự án, giúp người dùng dễ dàng tải lên các tệp cho trợ lý AI bằng cách sử dụng tham số -o hoặc --output.

Trải nghiệm sử dụng

Sau khi hoàn thành phiên bản đầu tiên của công cụ CLI này, tôi đã cảm thấy rất hài lòng với khả năng sinh ra cấu trúc dự án và hiển thị mã nguồn đã bao gồm. Công cụ này đã giúp tôi rất nhiều trong quá trình lập trình.

Kế hoạch tương lai

Tôi đang nghĩ đến việc bổ sung thêm nhiều chức năng cho dự án này để làm cho việc lập trình của tôi dễ dàng hơn trong tương lai. Vì vậy, tôi muốn tiếp tục cải thiện nó với nhiều tính năng hơn và tiếp tục sử dụng nó.

Thực hành tốt nhất

  • Lập kế hoạch trước khi phát triển: Trước khi bắt đầu, hãy xác định rõ mục tiêu và chức năng của công cụ.
  • Sử dụng thư viện đã được kiểm chứng: Sử dụng các thư viện như commander, simple-git, và glob đã giúp tôi tiết kiệm thời gian và công sức.
  • Đảm bảo mã nguồn rõ ràng và dễ hiểu: Viết mã với các chú thích rõ ràng để các lập trình viên khác có thể dễ dàng hiểu và sử dụng.

Những cạm bẫy thường gặp

  • Quá phụ thuộc vào thư viện bên ngoài: Đảm bảo rằng bạn hiểu rõ cách hoạt động của từng thư viện bạn sử dụng.
  • Thiếu kiểm tra lỗi: Luôn đảm bảo rằng bạn xử lý các trường hợp lỗi để cải thiện độ tin cậy của ứng dụng.

Mẹo hiệu suất

  • Tối ưu hóa việc sử dụng bộ nhớ: Khi làm việc với các tệp lớn, hãy chắc chắn rằng bạn không tải toàn bộ tệp vào bộ nhớ.
  • Sử dụng các kỹ thuật đa luồng: Nếu có thể, hãy sử dụng các kỹ thuật đa luồng để cải thiện tốc độ xử lý.

Khắc phục sự cố

  • Không thể tìm thấy tệp: Kiểm tra đường dẫn và đảm bảo rằng các tham số includeexclude được thiết lập chính xác.
  • Lỗi khi chạy lệnh Git: Đảm bảo rằng bạn đã cài đặt Git và nó đang hoạt động bình thường.

Câu hỏi thường gặp (FAQ)

1. Repo-snapshot có hỗ trợ nền tảng nào?

Repo-snapshot hỗ trợ tất cả các hệ điều hành có cài đặt Node.js và Git.

2. Làm thế nào để cài đặt Repo-snapshot?

Bạn có thể cài đặt Repo-snapshot bằng cách sử dụng npm:

bash Copy
npm install -g repo-snapshot

3. Tôi có thể tùy chỉnh các tham số đầu vào không?

Có, bạn có thể sử dụng các tham số -o--output để tùy chỉnh đầu ra của công cụ.

Kết luận

Repo-snapshot là một công cụ hữu ích cho những lập trình viên muốn chia sẻ mã nguồn một cách dễ dàng với các mô hình AI. Hy vọng rằng những chia sẻ trong bài viết này sẽ giúp ích cho bạn trong việc phát triển các công cụ CLI của riêng mình. Hãy thử nghiệm và cho tôi biết ý kiến của bạn!

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