Bởi Brian Beach vào ngày 10 THÁNG 4 2025 trong Amazon Q Developer, Announcements
Sáng nay, Amazon Q Developer đã ra mắt tính năng trò chuyện trực tuyến (inline chat) trong Eclipse IDE (bản xem trước). Trong bài viết này, tôi sẽ hướng dẫn bạn cách tôi sử dụng tính năng mới mạnh mẽ này để tinh giản quy trình phát triển Java của mình, từ việc tái cấu trúc mã hiện có đến tối ưu hóa các phương pháp quan trọng về hiệu suất. Dù bạn là người dùng Eclipse kỳ cựu hay chỉ mới bắt đầu, bạn sẽ thấy các công cụ AI tiên tiến của Amazon Q Developer có thể giúp bạn tăng cường năng suất trong toàn bộ vòng đời phát triển phần mềm như thế nào.
Bối cảnh
Là một nhà phát triển Java lâu năm, tôi đã rất vui mừng khi Amazon Q Developer được tích hợp vào Eclipse năm ngoái. Tôi đã sử dụng Amazon Q Developer được một thời gian và nó đã hoàn toàn thay đổi quy trình phát triển của tôi. Khi Amazon Q Developer lần đầu tiên ra mắt tính năng gợi ý nội tuyến vào năm 2022, tôi đã vô cùng kinh ngạc trước khả năng tăng tốc các tác vụ lập trình của mình. Những việc bổ sung giao diện trò chuyện đầy đủ vào năm 2023 đã đưa mọi thứ lên một tầm cao mới. Sau đó, vào năm 2024, khả năng trò chuyện nội tuyến mới cho phép tôi chỉnh sửa và cấu trúc lại mã của mình ngay tại chỗ. Tuy nhiên, trò chuyện nội tuyến chưa có sẵn trong Eclipse cho đến tận hôm nay!
Giao diện trò chuyện trong Amazon Q Developer là nơi tôi tìm đến khi không chắc chắn về cách hoàn thành một nhiệm vụ cụ thể. Tôi thích việc có thể giải thích vấn đề tôi đang cố gắng giải quyết hoặc khái niệm tôi đang cố gắng hiểu, và nhận được những phản hồi chi tiết, theo ngữ cảnh giúp tôi đi đúng hướng. Các đoạn mã và giải thích do AI tạo ra rất hữu ích khi tôi đang học một điều gì đó mới hoặc giải quyết một thách thức phức tạp. Tuy nhiên, khi tôi biết cách hoàn thành một nhiệm vụ, tôi không cần lời giải thích mà chỉ cần mã nguồn.
Mặt khác, khi tôi đang làm việc trên một nhiệm vụ đã được hiểu rõ, tôi thích sử dụng các đề xuất nội tuyến của Amazon Q Developer hơn. Cách nó phân tích mã nguồn và chú thích hiện có của tôi để cung cấp các hoàn thành tùy chỉnh, phù hợp thật đáng kinh ngạc. Nó cho phép tôi làm việc nhanh hơn, tạo ra các chức năng mới mà không cần phải liên tục chuyển đổi ngữ cảnh hoặc tìm kiếm cú pháp phù hợp. Tuy nhiên, mặc dù các đề xuất nội tuyến rất hữu ích để tạo mã mới, nhưng tôi không thể sử dụng nó để chỉnh sửa mã hiện có.
Giờ đây, với tính năng trò chuyện nội tuyến mới trong Eclipse (bản xem trước), tôi có thể dễ dàng chỉnh sửa mã tại chỗ bằng Amazon Q Developer. Thay vì phải sao chép/dán mã từ một cửa sổ trò chuyện riêng biệt, tôi có thể mô tả những thay đổi tôi muốn thực hiện ngay trong trình soạn thảo, và Amazon Q Developer sẽ tích hợp liền mạch các bản cập nhật được đề xuất vào cơ sở mã của tôi dưới dạng một bản so sánh. Nó rất tuyệt vời cho việc tái cấu trúc, sửa lỗi và duy trì mã nguồn được ghi chép đầy đủ, dễ đọc. Chúng ta hãy xem một vài ví dụ để thấy tính năng trò chuyện trực tuyến hoạt động như thế nào trong Eclipse.
Tái cấu trúc
Hãy tưởng tượng tôi là thành viên mới nhất của một nhóm phát triển và được giao nhiệm vụ thêm các bài kiểm tra đơn vị vào lớp OrderProcessor. Tuy nhiên, khi tìm hiểu sâu hơn về cơ sở mã, tôi nhận ra rằng OrderProcessor được liên kết chặt chẽ với việc triển khai OrderRepository. Hãy chú ý đến việc khởi tạo OrderRepository ở dòng 2 trong hình ảnh sau. Điều này khiến việc viết các bài kiểm tra đơn vị trở nên khó khăn, vì tôi không thể dễ dàng hoán đổi trong một kho lưu trữ giả lập. Tôi biết mình cần phải tái cấu trúc mã để sử dụng dependency injection, nhưng việc thực hiện tất cả những thay đổi đó theo cách thủ công thật đáng sợ.

May mắn thay, với tính năng trò chuyện nội tuyến của Amazon Q Developer trong IDE Eclipse của tôi, tôi không phải tự mình xử lý việc tái cấu trúc này. Tôi đã chọn lớp Order Processor, gọi trò chuyện nội tuyến bằng phím tắt (CMD + SHIFT + I cho macOS và CTRL + SHIFT + I cho Windows). Sau đó, tôi mô tả thay đổi mình muốn: “Tái cấu trúc lớp này để sử dụng dependency injection để tôi có thể mô phỏng OrderRepository trong các bài kiểm tra đơn vị”. Lưu ý rằng tôi cũng có thể yêu cầu Amazon Q Developer tận dụng một framework DI cụ thể, chẳng hạn như Hibernate. Tuy nhiên, tôi sẽ giữ nguyên phần này trong bài đăng trên blog.

Amazon Q Developer đã nhanh chóng phân tích mã và đưa ra cho tôi một đề xuất thay đổi được hiển thị trong hình ảnh sau. Thay đổi này được trình bày dưới dạng diff để tôi có thể thấy Amazon Q Developer đang loại bỏ (màu đỏ) và thêm (màu xanh lá cây) những gì. Sau khi xem xét các thay đổi, tôi rất vui khi thấy Amazon Q Developer đã giới thiệu một hàm tạo sử dụng giao diện IOrderRepository, cho phép tôi truyền vào cả triển khai cụ thể hoặc một đối tượng kiểm thử kép. Điều này sẽ giúp việc viết các bài kiểm thử đơn vị toàn diện cho OrderProcessor trở nên dễ dàng. Chỉ cần nhấp chuột nhanh để chấp nhận các thay đổi, Amazon Q Developer đã cập nhật mã của tôi, giúp tôi tiết kiệm thời gian quý báu và đảm bảo tính năng mới được xây dựng trên một nền tảng vững chắc, có thể kiểm thử.

Trong ví dụ này, tôi đã chọn toàn bộ lớp. Tuy nhiên, tôi cũng có thể yêu cầu Q Developer xử lý một phần cụ thể của mã.
Tối ưu hóa
Khi làm việc trên lớp Order, tôi nhận thấy phương thức containsItem dường như chạy chậm, đặc biệt là trên các đơn hàng có số lượng mặt hàng lớn. Tôi quyết định phân tích mã và quả nhiên, phương thức đó là một điểm nóng, tiêu tốn một lượng lớn chu kỳ CPU. Tôi chọn phương thức containsItem, mở hộp thoại trò chuyện trực tuyến và hỏi Nhà phát triển Amazon Q: “Mã này chạy chậm, vui lòng tối ưu hóa nó.”

Amazon Q Developer đã nhanh chóng phân tích mã hiện có, vốn sử dụng vòng lặp for đơn giản để lặp qua danh sách các mục, và đưa ra một cách triển khai cải tiến. Như được thể hiện trong phần so sánh, Amazon Q Developer đề xuất thay thế vòng lặp for bằng một phương pháp hiệu quả hơn dựa trên luồng, sử dụng phương thức anyMatch để xác định xem mục đó có trong đơn hàng hay không. Thay đổi này đã cải thiện hiệu suất, đặc biệt là đối với các đơn hàng có số lượng mục hàng lớn. Tôi đã xem xét các thay đổi và chấp nhận các đề xuất của Amazon Q Developer.

Việc tối ưu hóa Amazon Q Developer không chỉ cải thiện hiệu suất của phương thức containsItem mà còn giúp mã dễ đọc và bảo trì hơn trong tương lai.
Kết luận
Việc tích hợp Amazon Q Developer vào Eclipse IDE (bản xem trước) đã cải thiện quy trình phát triển Java của tôi. Dù tôi đang học một khái niệm mới, tạo mã mẫu hay tối ưu hóa điểm nghẽn hiệu suất, bộ công cụ hỗ trợ AI của Amazon Q Developer đã trở thành một phần không thể thiếu trong quy trình phát triển của tôi. Đặc biệt, việc bổ sung tính năng trò chuyện trực tuyến đã giúp tôi dễ dàng tương tác trực tiếp với trợ lý, cập nhật mã nguồn một cách liền mạch mà không làm gián đoạn sự tập trung. Nếu bạn là người dùng Eclipse đang tìm cách tăng cường năng suất, tôi thực sự khuyên bạn nên cài đặt plugin Amazon Q Developer ngay hôm nay.