Dựa trên video hướng dẫn của Dev Tips Channel
Bạn đang tìm cách tối ưu hóa quy trình phát triển phần mềm của mình? Mình hiểu rằng việc tối ưu workflow là một thách thức lớn, đặc biệt khi làm việc với các dự án .NET theo Clean Architecture.
Trong bài viết này, mình sẽ chia sẻ cách mình áp dụng Cursor và Cursor rules để tự động hóa quy trình làm việc, giúp tiết kiệm thời gian và tập trung vào những việc quan trọng hơn như thiết kế và xây dựng kiến trúc. Let’s dive in!
Nội Dung Chính
Giới thiệu về Cursor và lưu ý khi sử dụng
Cursor Composer và Cursor Rules là hai công cụ đã giúp mình tiết kiệm được rất nhiều thời gian trong quá trình phát triển phần mềm. Thay vì tốn thời gian vào những công việc lặp đi lặp lại, mình có thêm thời gian để nghĩ về ý tưởng mới, thiết kế và xây dựng các component cần thiết.
Điểm Chính:
- Cursor Composer và Cursor Rules giúp tối ưu quy trình phát triển
- Tiết kiệm thời gian để tập trung vào thiết kế và kiến trúc
- Cần cân nhắc kỹ khi sử dụng Cursor
Ý Kiến Của Mình:
Mình nghĩ việc sử dụng Cursor giống như một dạng “vibe coding” – bạn không trực tiếp viết code mà chỉ kiểm tra kết quả và đầu ra xem có đúng với yêu cầu không. Điều này phụ thuộc vào dự án và quan điểm cá nhân của mỗi người, nên hãy cân nhắc kỹ trước khi áp dụng nhé!
Ba quy tắc chính trong Cursor
Trong quá trình sử dụng Cursor, mình đã xây dựng ba quy tắc chính giúp tối ưu hóa quy trình làm việc. Những quy tắc này tương tự như các bước bạn vẫn thường làm khi nhận một yêu cầu triển khai tính năng mới.
Ba quy tắc chính:
- Technical Design Document Rule: Tạo tài liệu kỹ thuật và thiết kế
- Breakdown Tasks Rule: Phân chia công việc thành danh sách chi tiết
- Implementation Rule: Quy định cách triển khai code
Ý Kiến Của Mình:
Việc định nghĩa các rules này cho Cursor giống như việc viết documentation cho các developer đằng sau. Cursor hoạt động như một đồng nghiệp ảo giúp bạn làm việc nhanh hơn dựa trên các quy tắc bạn đã định nghĩa. Điều này đặc biệt hữu ích cho các dự án có tính lặp lại cao!
Technical Design Document Rule
Rule đầu tiên là Technical Design Document (TDD), mình yêu cầu Cursor hiểu rõ về request đang được nhắc đến và codebase của dự án.
Nội dung của TDD Rule:
- Hiểu rõ yêu cầu cần triển khai
- Nắm vững cấu trúc codebase hiện tại (CQRS pattern, Domain-Driven Design…)
- Tạo ra tài liệu thiết kế kỹ thuật chi tiết
- Định nghĩa rõ các class, component cần thiết
Ý Kiến Của Mình:
Mình thấy việc Cursor hiểu được codebase là cực kỳ quan trọng. Trong trường hợp của mình, mình đã viết một overview structure cho project Clean Architecture với CQRS pattern, DDD, các class và thành phần cần thiết. Nếu bạn define được cấu trúc project của mình rõ ràng, Cursor sẽ tạo ra TDD sát với thực tế hơn rất nhiều đấy!
Breakdown Tasks Rule
Quy tắc thứ hai là Breakdown Tasks, giúp phân chia công việc thành các nhiệm vụ nhỏ hơn, dễ quản lý.
Đặc điểm của Breakdown Tasks:
- Tạo ra checklist với format rõ ràng
- Đánh dấu các nhiệm vụ đã hoàn thành
- Giúp kiểm soát tiến độ và không bỏ sót công việc
- Cho phép Cursor tiếp tục làm việc từ điểm dừng trước đó
- [x] Task 1: Create Domain Entities
- [x] Task 2: Define Value Objects
- [ ] Task 3: Implement Repositories
- [ ] Task 4: Create Application Services
Ý Kiến Của Mình:
Mình thấy checklist này cực kỳ hữu ích vì sau mỗi lần chạy, Cursor sẽ đánh dấu những task đã hoàn thành. Khi chạy tiếp, nó sẽ dựa vào những công việc chưa hoàn thành để tiếp tục. Đây là cách tuyệt vời để theo dõi tiến độ và đảm bảo không bỏ sót bất kỳ công việc nào, đặc biệt là với các project lớn!
Implementation Rule
Quy tắc cuối cùng là Implementation Rule, định nghĩa cách Cursor sẽ triển khai code dựa trên TDD và Task Breakdown đã tạo.
Nội dung Implementation Rule:
- Sử dụng Task Document (breakdown tasks) làm input
- Đọc kỹ Technical Design Document
- Viết code theo coding style đã định nghĩa
- Thêm comment và docstrings đầy đủ
- Cập nhật checklist sau mỗi task hoàn thành
- Thực hiện commit sau mỗi task (đang thử nghiệm)
Ý Kiến Của Mình:
Implementation Rule là bước quan trọng nhất, nơi “phép màu” thực sự xảy ra. Mình thấy phần commit chain vẫn đang thử nghiệm và chưa hoạt động hoàn hảo, có lẽ cần thêm MCP server của GitHub. Nhưng nhìn chung, khả năng tự động triển khai code dựa trên các quy tắc đã định nghĩa là điểm mạnh nhất của Cursor!
Demo thực tế và những điều kiện cần
Trong phần demo, mình đã cho thấy cách Cursor tự động triển khai các entity và value objects cho một dự án web truyện (manga/novel platform) theo kiến trúc đã định nghĩa.
Điều kiện cần:
- Nắm vững cấu trúc project
- Hiểu rõ hệ thống đang làm việc
- Biết chính xác các thành phần có sẵn và cách chúng hoạt động
- Hoạt động tốt nhất với Claude Agent & Claude 3.5
Ý Kiến Của Mình:
Mình nhận thấy Cursor giống như “con dao hai lưỡi” hay “thuốc kháng sinh liều cao” – có thể fix được vấn đề ngay lập tức nhưng nếu không nắm vững hệ thống, bạn có thể phải trả giá về sau. Claude Agent và Claude 3.5 Sonnet hoạt động tốt nhất cho use case này, còn Claude 3 Mini hay Claude-3 Opus thì… hơi ngáo ngơ! 😂