0
0
Lập trình
Admin Team
Admin Teamtechmely

Xây Dựng Gitcom: Trợ Lý Commit AI Từ Kiro

Đăng vào 3 tuần trước

• 6 phút đọc

Xây Dựng Gitcom: Trợ Lý Commit AI Từ Kiro

Chúng ta đều từng trải qua những khoảnh khắc khó chịu trong quá trình phát triển, chẳng hạn như:

  • Quên chia nhỏ các thay đổi thành các commit riêng biệt, dẫn đến việc tạo ra một "mega-commit" mà trong đó vừa sửa lỗi, vừa thêm tính năng và cập nhật README.
  • Viết những thông điệp commit mơ hồ, vô nghĩa như "cập nhật file" hoặc "sửa lỗi" không để lại ý nghĩa gì cho chính mình trong tương lai hay cho nhóm.
  • Lãng phí thời gian để staging và commit thủ công, phá vỡ dòng chảy công việc và biến lịch sử phiên bản thành một nhiệm vụ nhàm chán thay vì một nhật ký hữu ích.

Đó là những thói quen xấu mà tôi muốn phá vỡ, vì vậy tôi đã quyết định xây dựng Gitcom—một tiện ích mở rộng trợ lý commit được hỗ trợ bởi AI cho Kiro. Điều đặc biệt là tôi đã sử dụng chính Kiro làm lập trình viên cặp, đối tác thiết kế và quản lý dự án trong suốt hành trình này.

Cách Kiro Giúp Tôi Xây Dựng Gitcom

Một trong những phần thú vị nhất của dự án này là việc học cách xây dựng với Kiro như một người bạn đồng hành. Tôi không chỉ đơn thuần viết mã—tôi đã hợp tác với các công cụ và đại lý của Kiro ở mỗi giai đoạn:

🔗 Tự Động Hóa Công Việc với Agent Hooks

Tôi đã sử dụng agent hooks để ghi lại những cuộc hội thoại với Kiro. Điều này đã cung cấp cho tôi một dòng thời gian về những quyết định của tôi, những ý tưởng mà chúng tôi đã thảo luận và sự phát triển của dự án.

💬 Trò Chuyện Với Kiro

Cách tiếp cận của Kiro theo hướng trò chuyện giống như việc brainstorming với một đồng đội. Tôi bắt đầu bằng cách khám phá ý tưởng về một trợ lý commit, thảo luận về:

  • Các công nghệ tôi có thể cần
  • Các phụ thuộc như simple-git
  • Cách cấu trúc tiện ích mở rộng

Sự trao đổi này đã làm rõ tầm nhìn của tôi và hướng dẫn tôi trong việc chọn công nghệ.

📜 Quản Lý Độ Phức Tạp với Phát Triển Dựa Trên Spec

Đây là nơi Kiro thực sự tỏa sáng. Nó đã tạo ra một spec cho tôi mang tên "intelligent-commit-generator". Spec này bao gồm:

  • Tổng quan thiết kế
  • Các yêu cầu
  • Các nhiệm vụ phân chia thành từng bước

Từ đó, tôi lần lượt thực hiện các nhiệm vụ. Đến cuối, Kiro đã tạo ra gần như toàn bộ dự án. Nó thậm chí còn đề xuất các nhiệm vụ tăng cường hiệu suất để tinh chỉnh codebase.

Thử Thách Tự Đặt Ra: Cuộc Di Chuyển Lớn Sang TypeScript

Tôi muốn thử thách Kiro xem nó có thể thích ứng tốt như thế nào. Vì vậy, tôi đã đặt ra thử thách:

  • Tạo Gitcom bằng JavaScript
  • Di chuyển Gitcom sang TypeScript

Kiro đã xử lý cả hai, nhưng theo những cách khác nhau—thỉnh thoảng bằng cách tự động ánh xạ các file JS sang TS. Thay vì hoàn toàn dựa vào điều đó, tôi đã quyết định tự mình chuyển đổi dự án JS sang TypeScript. Thêm các giao diện phù hợp và đảm bảo kiểu dữ liệu nghiêm ngặt, tôi buộc phải hiểu rõ mục đích của từng biến và hàm. Việc này không chỉ giúp tôi sở hữu mã mà còn giúp tôi giải quyết vấn đề "cập nhật file" của mình với một công cụ thực sự mạnh mẽ.

Thử thách này không chỉ liên quan đến mã—nó cũng giúp tôi hiểu:

  • Cách Kiro làm sạch các file (đôi khi để lại mã không sử dụng)
  • Nơi tôi cần can thiệp và tinh chỉnh mọi thứ
  • Cách đánh giá mã được tạo bởi AI một cách nghiêm túc

Phần làm sạch thực sự rất khó khăn—Kiro đã cố gắng thực hiện khi được yêu cầu, nhưng không phải lúc nào cũng theo cách mà tôi mong đợi. Việc làm sạch thủ công đã trở thành một trải nghiệm học tập tuyệt vời và giúp tôi hiểu sâu hơn về cấu trúc của dự án.

Những Gì Tôi Đã Xây Dựng: Gitcom

Cuối cùng của hành trình này, tôi đã có một tiện ích mở rộng Kiro hoạt động: Gitcom – Trợ Lý Commit AI.

✨ Tính Năng Nổi Bật

  • Phân tích git diff với simple-git
  • Giao diện người dùng tương tác để xem xét và chỉnh sửa các commit
  • Các thao tác commit theo nhóm cho việc staging

Điều Gì Tiếp Theo Cho Gitcom

  • Tiếp tục phát triển Gitcom vượt ra ngoài hackathon
  • Thêm một CLI tương tác hoạt động liền mạch trên các nền tảng.
  • Nhiều phong cách commit: Conventional, Semantic hoặc Tùy chỉnh
  • Gợi ý commit AI ở 3 mức độ chi tiết (ngắn/nghiêm túc/cụ thể)
  • Tích hợp PR GitHub/GitLab.

Những Điều Tôi Đã Học Được

  • Kiro không chỉ là một công cụ: Nó giống như một đồng phát triển giúp bạn khám phá, thiết kế và xây dựng các dự án nhanh hơn.
  • Spec giúp bạn tập trung: Quy trình làm việc dựa trên spec đã phân chia độ phức tạp thành các nhiệm vụ dễ quản lý.
  • AI chưa hoàn hảo (chưa phải bây giờ): Việc làm sạch và cập nhật mã đã để lại một số mã không sử dụng, có nghĩa là tôi phải can thiệp. Nhưng điều này hóa ra lại là một điều tốt—nó đã thúc đẩy tôi hiểu sâu hơn về dự án được tạo ra.
  • Thách thức AI giúp bạn phát triển: Bằng cách yêu cầu Kiro tái tạo bằng các ngôn ngữ khác nhau và so sánh kết quả, tôi đã học được nhiều hơn so với việc chỉ viết mã thủ công.

Kết Luận

Việc xây dựng Gitcom là một hành trình tuyệt vời, không chỉ vì những gì tôi đã tạo ra mà còn vì cách tôi đã tạo ra nó—với Kiro bên cạnh.

Kiro đã giúp tôi brainstorm, lập kế hoạch và thậm chí tạo ra nhiều phần của dự án. Nhưng nó cũng đã thách thức tôi, đặc biệt là khi cần làm sạch và tinh chỉnh. Đó là nơi tôi đã phát triển nhất với tư cách là một lập trình viên.

Liên Kết

Github Repo

Thực Hành Tốt Nhất

  • Luôn viết các thông điệp commit rõ ràng và cụ thể để dễ theo dõi.
  • Tận dụng các công cụ hỗ trợ như Kiro để tối ưu hóa quy trình làm việc.

Những Cạm Bẫy Thường Gặp

  • Quên cập nhật spec khi có thay đổi trong dự án.
  • Không kiểm tra kỹ mã được tạo tự động bởi AI.

Mẹo Hiệu Suất

  • Sử dụng các công cụ kiểm tra tự động để giữ cho mã luôn sạch sẽ và hiệu quả.

Khắc Phục Sự Cố

  • Nếu Kiro không tạo mã như mong đợi, hãy xem xét lại các yêu cầu trong spec.

Câu Hỏi Thường Gặp

1. Gitcom có thể tích hợp với các công cụ nào?
Gitcom có thể tích hợp với GitHub và GitLab để quản lý PR.

2. Có thể phát triển Gitcom bằng ngôn ngữ nào khác không?
Có, Gitcom có thể được phát triển bằng nhiều ngôn ngữ khác nhau như JavaScript và TypeScript.

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