AI 生成コードがコードを加速させる クソ山の悪夢?

現在、多くのプログラマーが AI を使用してプログラミングを支援することを選択していますが、AI ソフトウェア開発の急速な普及に伴い、コードの品質に対する懸念がますます顕著になっています。長年コード研究に従事してきたアダム・トーンヒル氏は、AI支援プログラミングが直面する主な課題は、記述する必要のない大量のコードを簡単に生成できることだとかつて語った。

最新の研究によると、その結果は確かに憂慮すべきものです。度重なる改変によりコードが削除される問題に加え、重複コードの割合もますます深刻になっています。

GitHub Copilot はベータ版の公開以来、すぐに AI コーディング分野を席巻しました。同社の CEO である Thomas Dohmke 氏によると、このソフトウェアは 100 万人以上の有料サブスクリプション開発者を魅了し、開発タスクの速度が効果的に 55% 向上しました。さらに、Copilot 対応ファイルのコード量の 46% は人工知能によって生成されます。

開発者分析会社 GitClear の調査によると、1 億 5,000 万行の変更されたコードに関するデータを収集した結果、データの 3 分の 2 は民間企業によって匿名で共有されたデータからのものであり、データの 3 分の 1 は Google からのものであることが判明しました。 Facebook や Microsoft などのテクノロジー大手によるオープンソース プロジェクト。

この研究は、GitClear によって事前に定義された「ノイズ」 (同じコード部分が複数のブランチに送信される、空行、その他の無意味なアーティファクトなど) を除去しながら、変更、更新、削除、コピー、移動されたコードを処理することに焦点を当てています。 . コード行。

しかし、GitClearの調査ではコードの量ではなくコードの品質に焦点を当てており、AIアシスタントは主に「コードの追加提案」を提供するものの、コードの更新、移動、削除の提案はほとんど提供しないことが判明しました。

コードの品質を正確に測定するのは簡単ではありません。研究者らは、コードの追加、削除、更新、コピー/ペーストの量が大幅に増加したが、コードの移動の割合が減少したことを示すいくつかの傾向を発見しました。また、コード重複率が 2020 年の 3.3% から現在 7.1% へと大幅に増加していることも発見しました。

一般的に、コードの移動は開発者にとってコードをリファクタリングする際の重要な基準です。具体的には、元の機能が変更されないようにしながら、コードの設計と構造を改善する必要があります。

研究者らは、この傾向が AI コーディング技術の急速な普及に関連しているのではないかと予備的に推測していますが、具体的な理由についてはまださらなる検証が必要です。彼らは、コピー&ペーストコードの過度の使用による悪影響を厳しく批判し、「AIが生成したコードのこの無分別な使用は、コードの長期的な保守性に悲惨な影響を与えるだろう」と述べた。

ただし、コピー&ペーストに過度に依存することは新しい問題ではありません。開発者は、既存のコードを調整して再利用する必要がなく、単にコピーして貼り付ける方が速くて簡単であるため、これを行う場合があります。あるいは、複数の開発者間のコミュニケーションの齟齬、あるいは開発例やコーディング Q&A Web サイトからの過度の盗用が原因である可能性があります。

GitClear の研究者らは、発見した問題の解決方法について具体的には議論せず、代わりに「追跡調査の質問」に目を向けました。しかし、彼らはまた、エンジニアリングリーダーが「提出されたデータを監視し、それが将来の製品メンテナンスに及ぼす影響を考慮する」べきであるとも提案しています。

この研究は、人工知能ツールに取って代わられることを懸念する開発者をなだめる何らかの方法で役立つかもしれない。コード分​​析会社CodeSceneが実施した最近のAIコードリファクタリング調査でも、「人工知能はコーディング環境において人間に取って代わることには程遠い」と結論づけている。

しかし確かなことは、AI コーディング アシスタントは決して消えることはなく、それどころか、他のすべての新しいツールと同様に改良され続け、開発者はそのアイデアを最適化し、その効率を向上させる方法を学ぶことになるでしょう。実際、今日の開発者はコード品質の重要性を認識し始めています。GitHubとWakefield Researchの調査レポートによると、調査対象となったプログラマーのうち、「人工知能を積極的に活用する際にどのような指標に従って評価すべきか?」という質問に対し、「コードの品質」が最も重要な質問と考えられています。

最近の調査では、コード品質がビジネスに与える悪影響は無視できないことがわかっています。これらの調査によると、通常、企業の開発者は技術的負債と貧弱なコードにより、平均して 23% ~ 42% の時間を無駄にしています。この結果は私たちの注目を集めるのに十分です。さらに、技術的負債によるソフトウェア開発者の生産性低下に関する調査では、企業が新機能などの短期的な利益のためにコードの品質を犠牲にしてきたため、開発者はしばしば新たな技術的負債を導入しなければならないことが指摘されています。

したがって、コードの可読性と保守性を向上させ、コードの堅牢性とパフォーマンスの最適化に重点を置き、コードのセキュリティを確保します。命名規則、注釈規則、統一されたコード スタイルなどの規範とベスト プラクティスへのコードの準拠は、開発者が依然として克服する必要がある問題です。これらの要件を満たすために、開発者は確かなコーディング スキル、優れたチームワーク精神を持ち、適切な AI コーディング アシスタントを使用して高品質のコード出力を効率的に達成できる必要があります。

Feisuan が立ち上げた FuncGPT (Hui Function) を例に挙げると、長年にわたる現場のビッグデータのプログラミングを統合し、数百万行のコードトレーニングを経て、開発者が自然言語を通じて高品質で高品質な関数をリアルタイムに生成できるようにします。読み取り可能な Java 関数コード。生成されたコードは IDEA に直接コピーできます。コード品質の面では、FuncGPT (Hui Function) は強力な自然言語処理能力を備えているため、ユーザーの関数の説明や要件を正確に理解することができ、開発コミュニケーションコストと理解の難しさを軽減することができます。コーディングや大規模なマシン共同トレーニングでは、人間の過失や文法エラーによって引き起こされるバグが軽減されるため、生成されるコードの品質が保証されます。複数の内部テストにより、市販されている ChatGPT などの大規模モデルと比較して、FuncGPT (FuncGPT) によって生成されたコードの品質が高く、開発者が直接使用しやすいことが示されています。

現時点では、企業が「コスト削減と効率向上」を実現するために人工知能補助ツールを導入することは理解できますが、利点を最大限に発揮し、欠点を回避するために慎重に使用する必要があります。AI 支援プログラミングをより適切に開発者に提供するには、すべての関係者が協力して取り組む必要があります。

Google、RustとC++の相互運用性向上のためRust財団に100万ドル寄付 Mozillaが放棄したWebエンジンプロジェクト「Servo」が2024年に復活 Go言語の父が成功要因を総括:マスコット jQuery 4.0 .0 ベータ版がオープンソース毎日リリース : 「小さいけど美しい」Tauri が Android と iOS をサポート; Apple のオープンソース Pkl Google Bard が Gemini に名前変更、無料の独立アプリ Vite 5.1 が正式リリース、フロントエンド構築ツール ギャラリー システムPicHome 2.0.1 リリース Java ツールセット Hutool-5.8.26 リリース、ご多幸をお祈りします 534 言語をサポートする大型オープンソース モデル MaLA-500 リリース
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4868096/blog/11013335