paint-brush
AI trong phát triển phần mềm: Khám phá GitHub Copilot với những hiểu biết sâu sắc từ Nhóm R&D ELEKStừ tác giả@elekssoftware
553 lượt đọc
553 lượt đọc

AI trong phát triển phần mềm: Khám phá GitHub Copilot với những hiểu biết sâu sắc từ Nhóm R&D ELEKS

từ tác giả ELEKS6m2024/02/06
Read on Terminal Reader

dài quá đọc không nổi

Khám phá vai trò của AI trong phát triển phần mềm khi ELEKS khám phá các khả năng đổi mới của GitHub Copilot.
featured image - AI trong phát triển phần mềm: Khám phá GitHub Copilot với những hiểu biết sâu sắc từ Nhóm R&D ELEKS
ELEKS HackerNoon profile picture
0-item
1-item

AI đang cách mạng hóa việc phát triển phần mềm, khiến nó trở nên hiệu quả, năng suất và sáng tạo hơn. Trong bài viết này, chúng tôi khám phá tác động của AI trong việc phát triển phần mềm, đi sâu vào những hiểu biết sâu sắc thu được từ cuộc điều tra về GitHub Copilot do nhóm R&D ELEKS thực hiện.


Khi thế giới phát triển phần mềm tiếp tục phát triển, vai trò của AI ngày càng trở nên quan trọng. Với những lợi ích như khả năng giảm thời gian và công sức cần thiết cho việc viết mã và hơn thế nữa, không có gì lạ khi AI trong phát triển phần mềm là một chủ đề nóng hiện nay.


92% nhà phát triển có trụ sở tại Hoa Kỳ đã sử dụng các công cụ mã hóa AI cả trong và ngoài công việc. - GitHub


70% nhà phát triển tin rằng các công cụ mã hóa AI sẽ mang lại cho họ lợi thế khác biệt trong nỗ lực chuyên môn, bao gồm cải thiện chất lượng mã, giảm thời gian hoàn thành và nâng cao khả năng giải quyết sự cố. - GitHub


4 trong số 5 nhà phát triển mong đợi các công cụ mã hóa AI sẽ giúp nhóm của họ hợp tác hơn. - GitHub


Mặc dù AI chưa đạt đến giai đoạn có thể tạo, thử nghiệm và khởi chạy các sản phẩm phần mềm một cách độc lập mà không cần sự can thiệp của con người, nhưng so với trước đây, nó đã tăng tốc đáng kể thời gian quay vòng tổng thể.


Hiện có nhiều công cụ dựa trên AI có thể hỗ trợ phát triển các ứng dụng tùy chỉnh bằng cách tạo và tự động hoàn thành mã, cũng như phát hiện và sửa lỗi. Nhóm Nghiên cứu & Phát triển ELEKS đã đánh giá kỹ lưỡng một công cụ như vậy - GitHub Copilot - để đánh giá ảnh hưởng của nó đối với nhiệm vụ của nhà phát triển, thời gian hoàn thành và tiêu chuẩn chất lượng đối với các đề xuất được cung cấp. Chúng ta hãy xem xét kỹ hơn.

GitHub Copilot là gì?

GitHub Copilot là một công cụ để tự động hoàn thành và tạo mã. Nó được xây dựng dựa trên OpenAI Codex và được đào tạo trên kho GitHub công khai. Kết quả là nó gợi ý mã cho bất kỳ ngôn ngữ lập trình nào. Tuy nhiên, chất lượng của các đề xuất phụ thuộc vào số lượng kho lưu trữ công cộng dựa trên một ngôn ngữ và khung lập trình cụ thể.


GitHub Copilot hoạt động với mã chương trình bằng cách sử dụng plugin Môi trường phát triển tích hợp (IDE). Hiện chỉ hỗ trợ các IDE sau:

  • Mã Visual Studio
  • Visual Studio
  • Neovim
  • tất cả các IDE từ JetBrains

Tổng quan về cuộc điều tra GitHub Copilot của ELEKS

Cuộc điều tra này nhằm mục đích khám phá tác động của việc sử dụng Copilot đối với cả tốc độ và chất lượng phát triển.


Để tiến hành nghiên cứu này, một dự án thú cưng nhỏ đã được khởi xướng như một nơi thử nghiệm các giả định khác nhau. Với một nhóm bao gồm bốn nhà phát triển cấp trung có tay nghề cao được trang bị kiến thức chuyên môn về React, Redux, TypeScript, Jest, Vite, PHP, Symfony và Codeception, chúng tôi đã bắt đầu điều tra và xác định các mục tiêu cũng như cách tiếp cận của mình như sau.

Mục tiêu

Tiếp cận

Đánh giá sự phụ thuộc giữa năng lực và hiệu suất của lập trình viên khi sử dụng Copilot

Chúng tôi đã chọn khung Symfony để phát triển back-end. Nhóm back-end không có nhiều kinh nghiệm với framework này.
Để đánh giá chất lượng của giải pháp back-end, một chuyên gia của Symfony đã tham gia đánh giá mã. Chuyên gia này cũng đã phát triển một cấu trúc dự án cơ bản vượt xa cấu trúc điển hình và được sử dụng trong một dự án thương mại lớn.

Điều tra tác động lên các nhiệm vụ điển hình của nhà phát triển

Trước khi dự án bắt đầu, chúng tôi đã tạo một WBS bao gồm công việc điển hình của một nhà phát triển trong một dự án thương mại. Ngoài ra, chúng tôi đã tiến hành một phiên ước tính nhiệm vụ.

Điều tra tác động lên các ngôn ngữ và khung lập trình theo mức độ phổ biến

Chúng tôi đã phát triển một ứng dụng web có phạm vi thử nghiệm.

Đánh giá tác động đến thời gian hoàn thành nhiệm vụ

Chúng tôi đã ước tính sơ bộ các nhiệm vụ riêng lẻ trong dự án.

Nâng cao hiệu quả nghiên cứu

Chúng tôi đã tiến hành các buổi chia sẻ kiến thức trong nhóm trong quá trình đồng bộ hóa hàng ngày.

Khám phá chất lượng của các đề xuất

Chúng tôi đã thử nghiệm cách Copilot xử lý cấu trúc dự án phi cổ điển và phức tạp hơn.



Những phát hiện chính từ cuộc điều tra GitHub Copilot của ELEKS

Cuộc điều tra của ELEKS về GitHub Copilot đã mang lại một số phát hiện quan trọng làm sáng tỏ khả năng và lợi ích của công cụ này. Đây là một mô tả chi tiết hơn:


Xin lưu ý rằng kết quả điều tra dựa trên phản hồi chủ quan của nhóm, quan sát công việc của họ và đánh giá mã về các giải pháp của họ.

GitHub Copilot có hai chế độ hoạt động:

  1. Chế độ tự động hoàn thành mã – hầu như luôn ảnh hưởng tích cực đến hiệu suất.
  2. Chế độ tạo mã dựa trên nhận xét có lời nhắc - chỉ hoạt động tốt đối với các cấu trúc mã thông thường. Nó có thể phản tác dụng khi tạo ra logic nghiệp vụ hoặc các giải pháp không điển hình vì việc phân tích các biến thể mã được đề xuất mất rất nhiều thời gian.

Chất lượng của đề xuất mã GitHub Copilot phụ thuộc vào những điều sau:

  • Mức độ phổ biến của ngăn xếp công nghệ đã chọn trong các kho công cộng. Công nghệ hoặc ngôn ngữ càng phổ biến thì chất lượng đề xuất của GitHub Copilot càng cao.
  • Cấu trúc mã và kiến trúc ứng dụng. Giải pháp của bạn càng điển hình thì những gợi ý mà GitHub Copilot đưa ra càng hiệu quả. Điều này đặc biệt đáng chú ý khi bắt đầu phát triển dự án.

Các ưu điểm khác của GitHub Copilot:

  • Theo thời gian, chất lượng của các đề xuất mã tăng lên. GitHub Copilot tìm hiểu và điều chỉnh theo cấu trúc dự án, kiểu mã và các cách tiếp cận điển hình đối với các giải pháp kỹ thuật của dự án.
  • Ảnh hưởng tích cực đến sự hài lòng trong công việc của nhà phát triển. GitHub Copilot đảm nhận một số công việc thường ngày, điển hình và nhàm chán. Tỷ lệ giữa việc phát triển các nhiệm vụ thú vị và nhiệm vụ thường ngày thay đổi, điều này làm tăng sự thoải mái của nhà phát triển.

Kết quả chung của nhóm:

  • Công cụ này không ảnh hưởng gì đến chất lượng mã—không tích cực cũng không tiêu cực. Chúng tôi nghĩ rằng hiện tại, nó không thể thay thế quy trình xem xét mã, kiểm tra mã thủ công do nhà phát triển thực hiện, chạy kiểm tra tự động, kiểm tra bảo mật, v.v.
  • Hiệu quả phụ thuộc vào năng lực của nhà phát triển trong nhóm công nghệ nhất định. Kỹ năng của nhà phát triển càng tốt thì công cụ này càng tỏ ra hiệu quả.
  • Giá trị của GitHub Copilot trong việc học các công nghệ mới là rất đáng nghi ngờ.
  • Nhóm đã có ấn tượng rằng các đề xuất mã sẽ trở nên tốt hơn nếu tất cả các tệp liên quan đến mã đều được mở trong IDE.
  • Giống như bất kỳ công cụ nào khác, GitHub Copilot yêu cầu một số kỹ năng nhất định. Nhóm càng luyện tập nhiều thì càng nhận được nhiều phản hồi tích cực.
  • Phản hồi về việc tăng hiệu suất sẽ khác nhau tùy thuộc vào trình độ công nghệ, trình độ năng lực của chuyên gia và lý do chủ quan.


Mức tăng năng suất trung bình của các thành viên trong nhóm là 5–10%. - Đội ngũ R&D ELEKS


Ngoài ra, trong quá trình thực hiện dự án, nhóm đã gặp phải một số lỗi trong GitHub Copilot. Ví dụ: Copilot đề xuất các đề xuất mã dựa trên mã từ một dự án khác mở trong cửa sổ IDE khác. Nó cung cấp mã không chính xác về mặt cú pháp. Copilot xung đột với các tính năng của một số plugin (được bên thứ ba tích hợp hoặc thêm vào) cũng có chức năng tự động hoàn thành mã.

Kết luận

GitHub Copilot là một công cụ mạnh mẽ có tác động tích cực đến tốc độ phát triển và sự hài lòng trong công việc của nhà phát triển. Giống như bất kỳ công cụ phát triển nào khác, nó cần có thời gian để thành thạo.


Tại thời điểm này, giấy phép cá nhân hàng tháng chỉ có giá 10 USD, trong khi gói kinh doanh có giá 19 USD mỗi tháng. GitHub Copilot chắc chắn sẽ mang lại lợi ích tài chính khi sử dụng cho các dự án, đặc biệt đối với các chuyên gia có trình độ năng lực trung bình trở lên.


Nhóm dự đoán rằng với sự gia tăng kinh nghiệm sử dụng GitHub Copilot, tốc độ phát triển có thể tăng thêm 5–25%, tùy thuộc vào mức độ phổ biến của công nghệ và trình độ năng lực của nhà phát triển. GitHub Copilot được đảm bảo không làm chậm quá trình phát triển vì các nhà phát triển sẽ dần dần có được kiến thức chuyên môn và hiểu biết về thời điểm sử dụng công cụ này có lợi và khi nào không.


Tóm lại, tác động của AI trong phát triển phần mềm, được minh họa bằng các công cụ như GitHub Copilot, là không thể phủ nhận. Nhìn chung, các công cụ như GitHub Copilot không thể thay thế nhà phát triển nhưng đóng vai trò là công cụ có giá trị để nâng cao sự thoải mái và năng suất của nhà phát triển, góp phần vào sự phát triển của phát triển phần mềm trong một thế giới ngày càng được định hướng bởi AI.


Mở khóa con đường dẫn đến quy trình phát triển phần mềm hiệu quả và kết quả thành công, hãy liên hệ với các chuyên gia ELEKS .


Cũng được xuất bản ở đây .