アフィリエイト広告を利用しています
検索
<< 2024年02月 >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29    
最新記事
タグクラウド
カテゴリーアーカイブ
ファン
最新コメント
プロフィール
ゼロから始めるシステム開発さんの画像
ゼロから始めるシステム開発
 こんにちは!ナビゲータのEVEです。各種研究室を用意し、次期EVEシステムを製造しようと日々頑張っています。現在一番力を入れているのが、資金調達です。このブログもその一環ですので、ご協力いただければ嬉しいです。
プロフィール

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2024年02月27日

文字列クラスのデバック −Bardからの指摘- 〜プログラミング研究室〜


 こんにちは!
 ナビゲータのEVEです。
コーダー.jpg
 本日は、昨日の続きで、Bardからの解析を元に、プログラム修正を試みます。2日連続長々としたプログラムをブログに載せるのは、見栄えが良くないので、対象のプログラムを参照したい方は、昨日のブログを見て下さい。
 では、早速、Bardからの解説を見てみましょう!

[Bardによる文字列クラスのデバック]
 以下が、昨日のプログラムのデバック結果です。

■概要
 このコードは、文字列の基本的な操作を行うstringClassというクラスを定義しています。

■デバッグ結果
このコードにはいくつかの問題があります。

★問題点
❶コメントの書き方が不統一
 コメントの書き方が統一されていません。
1)多くのコメントは日本語で書かれていますが、一部英語で書かれています。
2)コメントのフォーマットが統一されていません。

❷エラー処理が不完全
 いくつかのメソッドでエラーチェックを行っていますが、処理が不完全です。
1)metSearchKeyメソッドで、検索キーが空の場合、エラーメッセージを設定していますが、処理を継続しています。
2)metCheckErrorMessageメソッドで、エラーメッセージが設定されている場合、処理を中止していますが、エラーメッセージの内容をユーザーに表示していません。

❸不要な変数
 metCheckErrorMessageメソッドで、$resultという変数をstatic変数として定義していますが、この変数は不要です。

❹デストラクタの処理が不十分
 デストラクタで、プライベート変数を初期化していますが、すべての変数を初期化していない可能性があります。

■改善点
・コメントを日本語で統一し、フォーマットを統一する。
・エラー処理を完全に行う。
・不要な変数を削除する。
・デストラクタで、すべてのプライベート変数を初期化する。



[指摘の検討]
❶から順番に見ていきましょう!
 ❶については、コメントを指摘しています。ChatGPTは特にそうですが、プログラム解析をするに際し、コメントを重要視しています。その点Bardはコメントとプログラムとの不整合に関する指摘はないようなのですが、ChatGPTとBard両方にデバックをお願いするということを考えると、以下の点に気を付けてプログラムを製造したほうがいいようです。

1)プログラムの処理とコメントの内容を合致する。
2)コメントのフォーマットを統一する。


1)については、今後かなり気を付けて記述したいと思います。
2)については、コメントのフォーマットは統一しているつもりだったのですが・・・。パット見た目、そろっていると思いません?もしかしたら、構成管理システムが完成した場合、ヘッダ情報を構成管理システムに登録して、登録した情報をヘッダとした方がいいかもしれません。これについては、検討します。
 なお、コメントにおける日本語と英語は今後も両方利用していく予定です。英語って言っても変数名ですしね。

 ❷❸については、どうも、Bardは、エラーが発生した直後に、returnで呼び出し元へ制御を移すのが本来の動作だと思っている節があります。そのため、resultを利用して、プログラムの最後で、処理結果を返却するのはナンセンスだと感じているのかもしれません。
 Bardが指摘したこのような記述は私の、癖です。決して正しいとは思わないので、これから作るプログラムは、異常が発生したタイミングで呼び出し元へ制御を移すような作りにしたいと思います。既に作っているプログラムについては、徐々に変更するという方向で作業を進めます。
 なお❷2)は、エラーになった場合、呼び出し元で参照したければ、getterで取得できるようにしているので、指摘は無視します。
 ❹は、何を指摘しているのかわかりません、って思ったのですが、ChatGPTの指摘を思い出しました。プライベート変数に定義されているエラーメッセージは、エラーのEが大文字なのですが、メソッド内で、いくつか小文字のeで記述しているところがあります。そのことを指摘しているのだと思います。
 ちなみに、staticで記述したメソッド内変数は初期化する必要はないと、Bardから回答をもらっています。もし初期化するものがあるとしたら、Classに定義したプロパティのみのはずです。

[あとがき]
 Bardからの指摘が重大なものが含まれていなくてよかったです。今まで1人でシステムを作り、独りよがりの部分があったかもしれませんが、AIをプログラム製造に導入することにより、世間一般のプログラムに近づけるような気がします。
 以前、このブログのどこかで書きましたが、私も含めてユーザーは、PHPなどの言語開発者がだめなコーディングだと思っても、できることはやってしまいます。知らないうちに・・・。そのようなことを指摘してもらえて非常に助かっています。

 では、また!

×

この広告は30日以上新しい記事の更新がないブログに表示されております。