× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Viết mã với AI: Mẹo và phương pháp hay nhất từ ​​các nhà phát triển

12/07/2023 01:20

Lập trình với sự hỗ trợ AI có thể là giấc mơ của lập trình viên hoặc cơn ác mộng trong quá trình thực hiện. Chín nhà phát triển thảo luận về cách họ đang sử dụng AI tổng quát ngày nay

AI sáng tạo đã thu hút trí tưởng tượng phổ biến và bắt đầu một cơn sốt vàng công nghệ mới. Mặc dù nhiều sự chú ý đã tập trung vào các công cụ AI tạo ra văn xuôi bằng ngôn ngữ tự nhiên và nghệ thuật thị giác, nhưng trong giới công nghệ, AI đang ngày càng được quan tâm nhờ khả năng mã hóa của nó. Bạn có thể mô tả một chương trình mà bạn muốn cho một chatbot AI và nó sẽ trả về mã thực thi cho bạn trong vòng vài giây, một điều vừa gây tò mò vừa khiến lập trình viên bình thường lo lắng.

Triển vọng của lập trình dựa trên AI đã dẫn đến một số dự đoán khá hoành tráng về tương lai của ngành công nghiệp phần mềm, đặc biệt là từ các nhà điều hành C-suite, chuyên gia tư vấn và các chuyên gia theo dõi họ. Nhưng còn những lập trình viên và nhà quản lý làm việc với các công cụ AI hàng ngày thì sao? Chúng tôi đã hỏi một số người đang lập trình với AI tổng quát xem tính năng này hoạt động như thế nào đối với họ cho đến nay. Điều chúng tôi học được là AI thực sự đang thay đổi cách con người làm việc—nhưng máy móc sẽ không sớm thay thế các lập trình viên của con người.

AI giúp các lập trình viên như thế nào

Hai công cụ AI tổng quát được các nhà phát triển mà chúng tôi nói chuyện thường sử dụng nhất là ChatGPT —bot trò chuyện AI được biết đến rộng rãi từ OpenAI—và GitHub Copilot , tích hợp vào Visual Studio và các IDE khác. Mặc dù cả hai công cụ đều có thể tạo mã dựa trên các truy vấn ngôn ngữ tự nhiên, Copilot và công cụ kế thừa thử nghiệm của nó, Copilot X , có thể vượt xa mô hình đàm thoại một bước, hoạt động như một loại IDE tự động hoàn thiện cải tiến dự đoán những gì nhà phát triển đang làm.

Vanessa Freudenberg, đồng sáng lập và kiến ​​trúc sư trưởng tại Croquet.io, nói rằng cô ấy sử dụng GitHub Copilot trong quá trình viết mã hàng ngày của mình với Visual Studio Code. Cô giải thích làm thế nào nó hoạt động.

Nếu tôi viết dòng:


    let x = this.leftMargin + this.width / 2;
nó sẽ tự động gợi ý dòng tiếp theo:

    let y = this.topMargin + this.height / 2;

Và nó biết rằng nó cần thay thế "width" và "left" bằng "height" và "top". Điều đó giúp tôi tiết kiệm rất nhiều đánh máy.

Panickos Neophytou, đồng sáng lập và CTO tại NetBeez, cho biết anh ấy sử dụng Copilot X và ChatGPT bất cứ khi nào anh ấy viết mã. Anh ấy mô tả hai cách tiếp cận khác nhau để vượt qua tính năng tự động hoàn thành với các công cụ này. Đầu tiên là có hệ thống. Ông nói: “Mô tả một chức năng được xác định rất rõ ràng với các đầu vào cụ thể, các ví dụ về đầu ra dự kiến ​​cũng như các mô hình dữ liệu liên quan, bao gồm các bảng cơ sở dữ liệu với các liên kết ngầm”. "AI thường có thể suy luận các liên kết. Yêu cầu nó thực hiện nó bằng một ngôn ngữ cụ thể và các cách cụ thể. 'Nhiệm vụ' được xác định trong các công cụ quản lý dự án nên được xác định là loại lời nhắc này."

Anh ấy cũng nghĩ rằng một kỹ thuật trò chuyện và bình thường hơn có thể mang lại kết quả tốt. Ở chế độ này, anh ấy nói, "trong khi thực hiện một nhiệm vụ, bạn đặt ra những câu hỏi nảy ra trong đầu về cách thực hiện một số việc nhất định. Điều này giống như có một kỹ sư giàu kinh nghiệm bên cạnh trả lời các câu hỏi của bạn và hướng dẫn bạn hoàn thành nhiệm vụ."

Cho dù bạn sử dụng kỹ thuật nào, học cách nhắc AI một cách chính xác là một nghệ thuật. Shanea Leven, người sáng lập kiêm Giám đốc điều hành của nhà cung cấp phần mềm CodeSee, cho biết: “Tôi sử dụng lời nhắc theo chuỗi suy nghĩ để đảm bảo tôi có được động từ chính xác để bắt đầu và tinh chỉnh lời nhắc của mình. "Chọn đúng động từ và được mô tả là thực sự quan trọng để tạo ra một lời nhắc tốt."

Thế mạnh mã hóa của AI

Các nhà phát triển mà chúng tôi đã nói chuyện đã đưa ra nhiều trường hợp sử dụng khác nhau trong đó các công cụ AI giúp họ hoàn thành công việc. Đây là những gì nổi bật.

Tạo tài liệu từ mã

Tài liệu phần mềm là một định dạng có cấu trúc khá chặt chẽ, đây là lĩnh vực mà AI phát triển mạnh. "Tôi thích sử dụng ChatGPT để viết tài liệu [hoặc] nhận xét trong mã của mình," Chris Love, người sáng lập công ty tư vấn web Love2Dev cho biết. "Điều đó tốn rất nhiều thời gian để làm bằng tay. Nhưng khi tôi hoàn thành một chức năng, tôi có thể cung cấp cho nó chức năng đó và có một trang tài liệu đẹp mắt được viết trong một hoặc hai giây. Tôi thích điều đó ! "

...và ngược lại

AI cũng có thể tạo mã dựa trên nhận xét hoặc tài liệu. Freudenberg của Croquet.io đã đưa ra một ví dụ đơn giản về Copilot tạo mã chỉ từ một dòng nhận xét, trong đó nhận xét sau:


    // get file name from our url

sản xuất đầu ra này:


    let fileName = window.location.pathname.split("/").pop();

"Tôi có thể đã viết điều này theo cách khác - tôi là một cô gái regex - nhưng đó là một giải pháp hoàn toàn đơn giản và dễ đọc hơn, vì vậy tôi sẽ chấp nhận nó," cô nói. "Nó không chỉ giúp tiết kiệm thời gian rất nhiều mà đôi khi nó còn dạy tôi những thành ngữ mà bản thân tôi có thể không khám phá ra."

Giải pháp cho các vấn đề đã giải quyết

Các nhà phát triển biết rằng một phần của lập trình là liên tục phát minh lại bánh xe. Bạn có thể cảm thấy khó chịu khi giải quyết một vấn đề mà bạn biết ai đó, ở đâu đó, đã giải quyết xong. Jeff Wills, trưởng nhóm thực hành kỹ thuật tại công ty phát triển phần mềm Rise8, coi đây là một lĩnh vực chín muồi để hỗ trợ AI. “Giả sử tôi tạo ra một phương pháp tính khoảng cách giữa hai điểm trên một mặt cầu,” anh ấy giải thích. "Phi công phụ sẽ tự động đi ra ngoài và tìm thuật toán Haversine và tạo ra tất cả mã đó."

Wills nhận thấy trường hợp sử dụng này đặc biệt hữu ích trong trường hợp giải pháp thay thế cho mã do AI tạo ra là thêm một thư viện lớn vào ứng dụng của anh ấy. "Giả sử tôi không muốn đưa toàn bộ thư viện hình học vào mã của mình và làm phình to cơ sở mã," anh ấy giải thích. "Tôi thực sự chỉ cần một thuật toán đó. Có lẽ tôi sẽ tự viết và đưa nó vào—hoặc sử dụng ChatGPT hoặc Copilot để giúp tôi tạo ra thuật toán đó. Đó chính là nguồn sống của AI ngay bây giờ."

Cập nhật hoặc dọn dẹp mã

Chris Love của Love2Dev nhận thấy ChatGPT đặc biệt hữu ích để cập nhật mã mà anh ấy đã viết. Anh ấy nói: “Tôi đã giải quyết việc cập nhật các mô-đun Node.js cũ mà tôi chưa cập nhật chỉ vì thời gian cần thiết để nhập mã lâu hơn giá trị của nó. "Tình huống phổ biến nhất mà tôi tìm kiếm là chuyển đổi các hàm dựa trên lời hứa cũ hơn để sử dụng async/await. Cú pháp thứ hai là một cú pháp rõ ràng hơn, nhưng không phổ biến khi tôi viết mô-đun. Tôi cũng sử dụng nó để sử dụng các cú pháp hiện đại hơn như phá hủy và chuyển đổi các khai báo biến từ var sang const và let."

Mã hóa nhanh hơn (có thể)

Nhiều nhà phát triển mà chúng tôi đã nói chuyện đã nói rằng làm việc với Copilot hoặc ChatGPT khiến họ cảm thấy như họ có thể thực hiện công việc của mình nhanh hơn, mặc dù họ thừa nhận rằng họ không nhất thiết phải định lượng điều đó. "Điều tôi nghĩ cuối cùng là giúp tôi viết mã tốt hơn nhanh hơn một chút," Love nói. "Thật khó để nói bao nhiêu phần trăm nhanh hơn, nhưng nó là hữu hình đối với tôi."

Source: Inforworld