翻訳者 |陳俊 レビュー | Chonglou 「ペアプログラミング」という概念を聞いたことがありますか? Wikipedia によると、これは 2 人のプログラマーがチームを組んで協力し、ソフトウェアを開発する方法です。 1 人のプログラマー、つまり「ドライバー」がコードを書き、もう 1 人のプログラマー、つまり「オブザーバー」または「パイロット」が、入力されるコードの各行を確認します。さらに、2 人のプログラマーは頻繁に役割を交換します。レビュープロセス中、「オブザーバー」は作業の「戦略的」方向性も考慮し、改善点や将来取り組むべき問題を提案します。その目的は、「観察者」の指示に基づいて、「ドライバー」が現在のタスクを完了するための「戦術的」側面にすべての注意を集中できるようにすることです。 過去 2 週間、私は人工知能 (AI) とのペア プログラミング方式で、まったく新しい言語とフレームワークを使用して、奇妙な開発環境で古いブログを再構築してきました。以下では、この再構築プロセスで AI を活用した私の経験をいくつか紹介します。 背景この再構築において AI が重要な役割を果たすようにするために、私は次の 2 つのルールを定めました。
言い換えれば、AI は、この開発と学習のプロセスにおいて、私の主な情報源、パートナー、アシスタントになったのです。ある意味、このようなコラボレーションは、冒頭で述べた、人工知能がパートナーの役割を果たす「ペアプログラミング」に似ています。そこで私は、プロセス全体を通して、 GitHub Copilot 、 ChatGPT 、 Claude 、 Warp (AIアシスタント)などのサービスを使用し、それらを重要なプログラミング「パートナー」とみなしました。 テクノロジースタックの選択テクノロジースタックを選択する際には、主にChatGPTとClaudeに頼りました。自分の技術的背景や具体的な要件などの詳細な情報を提供し、複数回のコミュニケーションを通じて、必要なプログラミング言語、フレームワーク、エディターが徐々に明確になっていきました。 ご存知のように、人工知能との会話は自由に流れることもあれば、発散することもあります。 AIが提案やプロンプトを出すたびに、対応する方向性や詳細を掘り下げ、定期的に自分の理解をまとめ、再度AIに確認します。数か月前と比べると、 GPT-4とClaude 2 は質問者に盲目的に応じることはなくなり、代わりに私の理解と要約の誤りを迅速かつ丁寧に指摘し、私が間違った道に進むのを効果的に防いでくれます。最終的に、ブログのリファクタリングに必要な技術として、 TypeScript 、 Astro 、 TailWindCSS 、 VSCode を選択しました。 この段階では、AI が貴重な情報を効率的に提供し、迅速な意思決定を支援してくれました。その理由は次のような点にあると考えています。
開発環境の設定私はVSCodeを使用したことがありますが、メインの開発ツールとして使用したことはありません。また、 Node.js のインストールとNPMの使用に関する私の経験は比較的限られています。この点、 AIは開発環境の構築を詳細に支援してくれました。 AI がコマンドライン操作のプロセスに応答する点は注目に値します。 Warpを搭載した AI アシスタントは非常に使いやすいため、エラーが発生した場合は、稲妻 ( ⚡️ )ボタンをクリックするだけで、AI アシスタントが関連するコマンドと出力をコンテキストとして人工知能に自動的に送信します。対照的に、 GitHub Copilotでは、完全なコンテキストを確保するために、解釈する出力を手動で選択する必要がありました。このタスクを完了するには、右クリック メニューの人工知能オプションまたはショートカット コマンド@workspace/explain #terminalSelectionを使用できますが、 Warpほど便利ではありません。 Xcodeの統合テスト環境とは異なり、 VSCodeでは、開発者は使用する言語とフレームワークに基づいて適切なテスト フレームワークとプラグインを選択する必要があります。このプロセス中にいくつかの困難に遭遇しました。最初はAI の提案に基づいてJestをインストールしようとしましたが、開発環境とAstroとの互換性の問題で失敗しました。 AI との話し合いが何度かうまくいかなかったため、検索エンジンに頼りましたが、それでも解決策は見つかりませんでした。最後に、オンラインの記事で、私が AI に伝えたことのない知識のポイントと、その構成に関する背景情報が紹介されていました。これを基に、人工知能の指導のもと、 Jestフレームワークの構成を実装することに成功しました。 しかし、その後の単体テストで、 Jest はAstroのランタイム環境では動作できないことがわかりました。 Astroの公式ドキュメントを参照すると、実際にはViTestの方がAstroに適したテスト フレームワークであることがわかりました。さらに、 ViTestのインストール プロセスは非常に便利で、 Astroコードのテストを完璧に実行できます。 そのため、このプロジェクトでは、 Astro固有のテストにはViTestを使用し、その他のテストにはJest を使用するという 2 つのテスト フレームワークを構成することになりました。 また、設定の問題なのか分かりませんが、 GitHub Copilotがショートカットコマンドを通じて生成するデフォルトのテストコードはJestをベースにしています。 ViTestに適したテスト コードを生成するには、AI に話しかけてこの要求を明示的に行う必要があります。 上記の経験を通して、人工知能や検索エンジンの助けがあっても、最も権威のある情報源は依然として公式文書であることに気づきました。つまり、AI はこれらの文書をよく理解していますが、重要な情報を見逃してしまうことがあります。公式文書はかけがえのない権威を持ち、私たちにとって依然として優先的な情報源であることがわかります。 コードを読んで新しい言語を学ぶ私はAstroが提供する公式テンプレートを読んでAstroについて学びました。これはTypeScript を学ぶ最良の方法でもあります。同様に、この段階では人工知能が決定的な補助的な役割を果たします。学習効率が大幅に向上しました。 Astroプロジェクトでは、 AstroファイルにTypeScript 、 JavaScript 、 HTML 、 CSS 、特定のAstroタグや使用法などのさまざまな要素が含まれる場合があります。当然のことながら、関連する経験のない私のような人にとって、人工知能の助けなしにどこから始めればよいかを知ることは難しいでしょう。 Astroは他のフレームワークよりも新しいものですが、AI の知識ベースはすでに Astro を十分に理解しており、コードのさまざまな部分の意味を明確に指摘できます。人工知能による具体的なコードの詳しい説明を通じて、コードの構造やロジックが徐々に理解できました。わからないことがあっても、必要に応じてさらに説明してくれます。 AIとの議論では、他のプログラミング言語やフレームワークに関する知識を人工知能との会話の参考にフル活用しました。同時に、私は定期的に自分の理解を要約し、誤解があれば人工知能に訂正を依頼します。さらに、議論が深まるにつれて、記録のためにAIに以前の議論の結論を定期的に提供するよう依頼します。 この段階に関連するコードの解釈と議論は主にGitHub Copilotで行われます。 GitHub Copilot は全体的にパフォーマンスは良好ですが、使用中に注意する必要がある点がいくつかあります。たとえば、
プログラミング練習プロンプトに基づいてコードを自動的に生成することは、開発者が人工知能のパワーを体験するための最良の方法の 1 つです。最近開発者コミュニティで熱い議論が巻き起こり、上記でも触れたGitHub Copilotは、開発者の意図を理解して高品質なコードをリアルタイムに生成する機能を持っています。ブログのリファクタリング プロジェクトでは、新しいブログを作成するだけでなく、その過程で新しい言語やフレームワークを学習して習得したいと考えていました。この点、 GitHub Copilotを有効にした後は、十分なヒントとコメントを提供すれば、 Copilot は対応するコードをすぐに生成できます。 最初はこれで良いと思っていましたが、使っていくうちに、短期間で人工知能にプログラムコードを尋ねる習慣がついてしまったことに気づきました。これにより、特定のコードの実装概念よりも、コード生成に対する注釈の影響に重点を置くようになります。これは明らかに、リファクタリングを通じて新しい言語を習得したいという私の願望と矛盾しています。人工知能によって出されたコード結果を見ると、まるで自分がその言語を習得したかのような錯覚さえ覚えました。 これに気付いてからは、コードを独自に実装できないときのみ、 GitHub Copilotのリアルタイムコード生成機能を有効にするようになりました。つまり、どんなにうまく書かれていても、まずは自分で書いてみて、その後人工知能に問題発見を手伝ってもらい、徐々にコードの読みやすさや使いやすさを向上させていくのです。このプロセスでは、人工知能に文法の詳細を尋ね、 TypeScriptに沿ったプログラミング パラダイムとより適切なコード実装方法を使用するようにガイドしてもらいます。 同じ機能のコードが複数回作成されるため、事前にユニットテストを作成することが非常に重要です。 VSCodeでは、 JestでもViTestでも、コードが変更されるとすぐにテストが実行されるように自動テストを有効にすることができます。 Xcodeでも同様の機能が提供されれば良いと思います。結局のところ、コードを絶えず変更する過程では、最適化やエラー修正が必要になる状況が頻繁に発生します。テストを通じてのみ、問題をタイムリーに発見することができます。 まとめこの間、AI 製品に深く関わっていくうちに、AI を効果的に活用しながらも、個人の技術的成長と自立した思考を維持することの重要性を徐々に認識するようになりました。止められないほどの急速な発展の傾向に直面して、人工知能は間違いなく私たちの将来の生活と仕事のあらゆる側面に大きな影響を与えるでしょう。 AI がコードを素早く記述する能力を持つようになった今、多くの開発者は AI に置き換えられるのではないかと多かれ少なかれ心配しています。開発者として、置き換えられないようにするための鍵は、常にスキルを向上させ、人工知能では置き換えられない独自の価値を示すことだと私は信じています。つまり、人工知能に過度に依存することで、確かにいくつかの側面で作業効率が向上したり、これまでは不可能だった成果を達成したりできる可能性があるのです。しかし、長期的には、開発者は徐々に自らの優位性を失い、最終的には人工知能ツールのユーザーから人工知能ツールのアシスタント、つまり人間のプロンプト生成者へと変化する可能性があります。もちろん、全体として、人工知能は、私が学習し、再構築する上で、確かに大きな驚きをもたらしてくれました。今後は、AIをもっと仕事に取り入れていきたいと思っています。 翻訳者紹介51CTO コミュニティの編集者である Julian Chen 氏は、IT プロジェクトの実装で 10 年以上の経験があります。社内外のリソースとリスクの管理に長けており、ネットワークと情報セキュリティの知識と経験の普及に重点を置いています。 原題: AI によるペアプログラミング、著者: fatbobman |
<<: OpenAI、中小企業向けChatGPTチームサブスクリプションサービスを開始、月額料金は1人あたり30ドル
新興テクノロジーは何千もの業界に影響を及ぼしています。近年、AI+自動化はますます多くの企業や組織で...
ホワイトハウスの関係者らが人工知能チャットボットが引き起こす可能性のある社会的危害を懸念する中、シリ...
01.人間は日々、環境、社会、他の人々、物と密接に関わっています。このタイプの接続は、一方向、双方...
ある研究者が、MITのコンピューターサイエンスの学位の宿題や試験問題を解くことができると主張するチャ...
CISO は、日常的なタスクを排除し、従業員がより価値の高い仕事に集中できるようにするために、ロボ...
医療画像解析に機械学習 (ML) を実装することは新しいことではありません。放射線科医は、自動化ツー...
適切なコンサルタント チームが、優れたアプリケーションを選択して AI のメリットを発見できるようお...
世界中の開発者は長い間、OpenAI モデルの価格に悩まされてきました。ロイター通信は、11月6日に...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
GoogleがモバイルファーストではなくAIファーストを語り、テンセントがAIをあらゆるものに取り入...
Transformer などの主流のテキスト生成アルゴリズムの単語単位の生成は、並列計算に適した ...
10月12日、ブルームバーグは昨夜、グーグルとDiscordが共同で自社のAIチャットボット「Bar...
最近、NPJ—Computational Materials誌に研究論文が掲載されました。この論文は...
強化学習 (RL) とディープラーニングの組み合わせは、一連の印象的な結果をもたらし、(ディープ) ...