Tạm biệt Autocomplete cùi bắp: Cursor AI và 'Nội quy' thần kỳ giúp code Ruby on Rails chuẩn chỉnh!
Lê Lân
1
Cursor AI và Quá Trình Chuẩn Hóa Viết Code với AI trong Dự Án Ruby on Rails tại Linkana
Mở Đầu
Ngày nay, trí tuệ nhân tạo (AI) đang trở thành trợ thủ đắc lực trong việc hỗ trợ phát triển phần mềm. Bên cạnh các tính năng tự động hoàn thành đoạn mã (autocomplete) quen thuộc, AI còn có tiềm năng lớn trong việc tạo ra mã nguồn chất lượng, nhất là khi được cung cấp bối cảnh phù hợp. Tuy nhiên, AI vẫn được xem như một lập trình viên mới vào nghề xuất sắc, đôi khi tạo ra các đoạn mã phức tạp hoặc mang theo lỗi tinh vi khó nhận diện. Bài viết này sẽ chia sẻ kinh nghiệm ứng dụng Cursor AI — một công cụ AI mới nổi thay thế VSCode trong một số trường hợp — để giúp duy trì tính nhất quán và chuẩn hóa mã nguồn Ruby on Rails trong công ty Linkana.
Cursor AI: Giới Thiệu và Tính Năng Nổi Bật
Cursor AI là gì?
Cursor AI là một công cụ hỗ trợ lập trình dựa trên trí tuệ nhân tạo, cung cấp khả năng tự động hoàn thành mã, giải thích đoạn mã, đồng thời hỗ trợ tạo ra các quy tắc (rules) giúp AI "học" cách vận hành theo phong cách lập trình riêng biệt của từng dự án.
Ưu điểm của Cursor AI so với các công cụ truyền thống
Hoàn thành mã thông minh và bám sát quy tắc dự án
Giúp phát triển tiêu chuẩn hóa code nhanh chóng và hiệu quả
Có thể tạo và áp dụng các quy tắc riêng biệt cho từng phần của codebase
Giải thích, làm rõ chức năng mã giúp lập trình viên mới dễ dàng hiểu
Việc làm chủ các quy tắc cho phép AI hành xử như một thành viên trong nhóm, giúp bảo đảm chất lượng và đồng nhất toàn bộ dự án phần mềm.
Định Nghĩa Quy Tắc với Cursor AI – "Rules for AI"
Cấu trúc thư mục lưu trữ quy tắc
Để chuẩn hóa quy trình kiểm thử tự động, nhóm Linkana xây dựng các quy tắc riêng biệt dựa trên từng ngữ cảnh, ví dụ như mô hình Rails, bộ test, hoặc phần điều khiển:
.cursor/rules/
├── rails8.mdc
├── models/
│ ├── active_record.mdc
│ ├── tests.mdc
│ └── postgresql.mdc
├── controllers/
│ ├── api.mdc
│ └── tests.mdc
└── views/
├── phlex.mdc
└── components.mdc
Nội dung chi tiết ví dụ files models/tests.mdc
Mục
Nội dung
description
""
globs
test/models/**/*.rb
alwaysApply
true
Nội dung quy tắc chủ yếu tập trung vào:
Cấu trúc và tổ chức test:
Mỗi model có file test riêng biệt (ví dụ: user_test.rb)
Thư mục chứa test phản ánh cấu trúc ứng dụng (như test/models)
Sử dụng require "test_helper" ở đầu file test
Cách viết test với MiniTest:
Kế thừa từ lớp ActiveSupport::TestCase
Dùng test "miêu tả" do thay vì def test_miêu_tả
Tập hợp các test liên quan trong cùng nhóm
Khởi tạo dữ liệu test trong setup sử dụng factories
Quản lý factories:
Định nghĩa trong test/factories/
Sử dụng các phương pháp: create, build, build_stubbed
Sử dụng traits mô tả tính chất như :with_buyer, :not_clear
Nguyên tắc và kiểu dáng viết test:
Test cô lập và độc lập
Tránh dùng fixtures, ưu tiên factories
Data test rõ ràng, có ý nghĩa
Phủ các trường hợp thành công và thất bại
Tuân theo pattern "Arrange, Act, Assert"
Những quy tắc này vừa giúp AI hiểu cách viết mã đúng chuẩn, vừa đóng vai trò tài liệu nội bộ giúp đội nhóm duy trì phong cách code đồng nhất.
Thực Tiễn Ứng Dụng Cursor AI trong Tự Động Hóa Việc Chuyển Đổi Test
Bối cảnh chuyển đổi từ RSpec sang MiniTest
Linkana quyết định chuyển dần tất cả test từ RSpec sang MiniTest. Quy trình này rất chậm vì có hàng trăm file cũ, không được ưu tiên chuyển đổi ngay. Cursor AI giúp đẩy nhanh quá trình bằng cách:
Sử dụng các quy tắc đã thiết lập dựa trên pattern đường dẫn (test/models/**/*.rb)
Tự động nhận biết và áp dụng quy tắc phù hợp khi chuyển đổi từng file test RSpec sang MiniTest
Ví dụ thực tế và kết quả
Cursor AI nhận diện file cần chuyển đổi theo glob pattern
Tự động code lại test theo chuẩn MiniTest
Tạo Pull Request với chất lượng cao, chỉ cần chỉnh sửa rất ít, chủ yếu là về vấn đề ngôn ngữ (ứng dụng đang dùng tiếng Bồ Đào Nha, còn thông báo lỗi AI kỳ vọng tiếng Anh)
Nhờ vậy, quy trình chuyển đổi được rút ngắn và chuẩn hóa với khả năng duy trì chất lượng cao, giúp team phát triển tập trung vào các nghiệp vụ chính.
Tổng Kết và Kêu Gọi Hành Động
Cursor AI đã mở ra một hướng tiếp cận mới trong việc tận dụng AI để hỗ trợ viết code Ruby on Rails chuẩn và hiệu quả cho công ty Linkana. Việc phối hợp thiết lập quy tắc riêng biệt và cho AI nắm rõ bối cảnh kỹ thuật đã giúp giảm đáng kể khối lượng công việc tay chân, đồng thời giữ vững chất lượng và tính nhất quán cho toàn bộ dự án.
Nếu bạn là lập trình viên hoặc quản lý dự án, hãy cân nhắc thử nghiệm Cursor AI và tận dụng tính năng Rules for AI để hướng dẫn AI xây dựng, duy trì codebase theo phong cách, tiêu chuẩn riêng của bạn. Đây là bước tiến quan trọng để AI không chỉ là trợ lý "junior developer" mà còn là một cộng sự hiểu và làm việc hiệu quả trong môi trường chuyên nghiệp.