最近、何人かの人が私に Amway ChatGPT をくれて、「Lao Liu、ぜひ試してみてください。この製品は非常に強力なので、おそらく私たちプログラマーは全員職を失うでしょう。」と言いました。
最初はほんの少し笑ったのですが、どうしてそんなことが可能なのでしょうか?これまでの私の見解は、私が生きている限り、AI がプログラマーを殺すことは決してできない、というものでした。
でも、アムウェイを販売している人はたくさんいるので、アカウントを登録して覗いてみずにはいられません。
意外なことに、この製品は中国には公開されていません。ネット上に攻略法がいくつかあります。面倒なので、すぐに海外の仲の良い友人に電話して、登録を手伝ってもらいました。アカウント。
まずは、次のような単純な質問と回答をスキップすることにしました。
文字列を反転するにはどうすればよいですか?
HTTP 呼び出しを開始するにはどうすればよいですか?
なぜなら、無数のコードを読み込んだAIにとって、このようなことはあまりにも幼稚であり、その威力をテストすることは不可能だからです。
プログラマーの中核的な能力の 1 つは、要件を取得し、洗練されたデザインを作成できることです。この点についてテストしてみましょう。
まず簡単な質問をさせてください:
(クリックすると大きな画像が表示されます)
さすが、「朗読」が上手でした!
最後の原則は次のとおりです: 再利用を実現するには、継承の代わりに合成/集約を使用するようにしてください。これは確かにオブジェクト指向の重要な設計原則です。
ChatGPT はそのような原則を適用できますか?
まずは、デザインができるかどうか聞いてください:
それはとてもいいですね、始めましょう ズームインするには, 私はたまたま古典的なケースを持っています。それは、古典的な書籍「アジャイル ソフトウェア開発: 原則、パターン、実践」から抜粋された給与支払いです。
このケースの要件は次のとおりです:
システムは企業データベースと従業員関連データで構成されます。時間通りに更新される ルールに従って従業員に給与を支払う
従業員には 3 つのタイプがあります
1. 時給制の従業員。固定給が支払われます。 1時間当たりの賃金を毎日提出し、労働日と労働時間を記録したカードを提出し、1日8時間以上働いた場合は1.5倍の賃金が支払われます。毎週金曜日に給料が支払われます。
2. 月給制の従業員、給与は固定で毎月の最終勤務日に支払われます
3. 売上高給与は固定ですが、売上に応じて一定額の歩合給が支払われ、売上日と売上数量を記録した領収書を提出します。給料は隔週金曜日に支払われます。
従業員は支払い方法を選択でき、指定した住所に小切手を郵送したり、財務部門に保存しておいていつでも引き出すことができ、または直接入金をリクエストすることもできます。指定された銀行口座に振り込みます。
この要件を読んだ後の一般的な設計は次のようになります:
基本クラスとしての従業員、さまざまなタイプの従業員クラスが継承されます。
ただし、この要件は変更されます。顧客は、従業員のタイプを変更できることを要求しています (例: 時給従業員から月給従業員に)。そのため、上記の設計は次のようになります。うまくいかない。
現時点では、抽象化を作成し、PaymentClassification クラスを使用して支払い分類を表現し、Employee クラスにこのインスタンスを保持させます。 ##コンポジションは継承を置き換えます。
これは
トラップ と同等であり、私たちプログラマは識別することができます。抽象化ですが、このChatGPTは使えるのでしょうか?本当にちょっと興味があります。 最初に最初の要件について質問してください。ChatGPT の答えは次のとおりです:
(クリックすると拡大画像が表示されます)
言わないでください、これは本当に優れもので、要件を「理解し」、そこから名詞を抽出してクラスを設計し、クラスの継承関係を設計します。 オブジェクト指向設計の初級レベルに到達しました。 次のステップは、彼のために穴を掘ることです:##すごいですね、この人は実際に抽象化を学んだんです!
これが抽象化するタイプは EmployeeType と呼ばれ、PaymentClassification ほど正確ではありませんが、一般的な方向性は同じです。支払いルールを管理するには EmployeeType を使用します。従業員タイプが変更されると、Employee クラスは次のことを行います。変更する必要はありません。 正直、この結果を見たときは非常に驚きましたが、これはかなりのプログラマーを超えると言えるでしょう。
次に、
支払いサイクルにどう対処するかを尋ねました。
今回は、その抽象化がさらに強力であり、次のようになります。正確な名前:
PaymentSchedule、および関連する疑似コード!
また、支払いサイクルを変更する必要がある場合には、元の従業員クラスを変更せずに PaymentSchedule を変更するだけです。
結合は継承よりも優れており、これが再度反映されます。
これは本の例とほぼ同じです:
引き続き質問します支払い方法 処理方法:
予想どおり、そのデザインは依然として優れています: 実際、ChatGPT のデザインは最終バージョンに非常に近いです。本の中で 計画:
これを試してみると、少し残念で気が進まないのですが、この ChatGPT は非常に強力で、強力な設計能力を示しており、会話プロセスは非常にスムーズです。
人工知能は本当に要件を理解し、抽象化を学習し、美しいクラス構造を設計できるのでしょうか?プログラマーのコアコンピテンシーは入れ替わった プログラマーの危機は本当に来るのか? 私は別の質問をして、クラスを描画するように依頼しました。 ちょっと待って、なぜここのクラス名は前のクラス名と違うのですか?Union Member という新しい概念が登場するのはなぜですか?この会話中、私は #このコンセプトについては決して話しませんでした #!どこでそれを知ったのでしょうか? 最も可能性が高いのは、この男は私が伝えたニーズを理解していなかったということです。この事件は以前から研究されているはずでしたが、まだ学んだことを「暗唱」しており、時間がかかりました。私はそれを聞き出し、こうして真実を明らかにしました。
ChatGPT Web サイトを閉じ、再度ログインし、同じコンテンツを使用して再度操作したところ、今度は結果が完全に暴露されました。
今回は PaymentClassification/EmployeeType をまったく抽象化しておらず、実際にはプロセス指向のアイデアを推奨していることがわかりましたか? 、type 属性を追加し、switch を使用して問題を解決します。これは以前の計画よりもはるかに悪いです。
最後に感想をお話しましょう! ChatGPT は確かに非常に強力です。ChatGPT は膨大な量のデータを学習し、腹部に多くのものを持っているはずですが、まだ実際に理解する必要はありません。ChatGPT が教えてくれる答えは、既存の知識を洗練し、統合することです。まったく新しい分野の問題を投げかけると、おそらく混乱するでしょうが、実際のビジネス問題で遊ぶことができます。
つまり、ChatGPT は優れたヘルパーですが、完全に信頼したい場合は、注意深く比較検討する必要があります。以上がChatGPT の強力なプログラミング機能には冷や汗が出ました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。