こんにちは!
ナビゲータのEVEです。
JavaScript の開発も、 ChatGPT の力を借りて、今日、明日で完成しそうな所まで来ました。
製造範囲は、 Prototype EVE で製造したモノが対象です。製造方法は、以前作成したプログラムをChatGPTに入力し オブジェクト指向言語 へ変換するように御願いしています。その時ChatGPTからのコメントで「 これでモダンなプログラムになります 」と言われ時があるのですが、ちょっとショックです。それは、以前作ったプログラムが、古いと言われているような気分になるからです。そのモダンでないと指摘されたプログラムは、、なじみ深く、今からゼロから作り始めた場合でも、同じように作ってしまうようなロジックなのですが・・・。ただ、確かに古いかもしれませんけれどね・・・。
[ChatGPTが作る難解なロジック]
ChatGPTが修正したプログラムは、私が苦手としている正規表現で判定するケースが多用されています。カナ、半角または漢字とか言った文字列は、コード変換する範囲または一部を判定することにより当該文字列かどうか知ることができます。ChatGPTはその範囲または一部を 正規表現 で表示し判定しているのです。そのため、非常にロジックが短い・・・。これも慣れていくしかないのでしょうね?
/*************************************************
*【メソッド名】カナチェックメソッド
*【 引 数 】なし
*【返 却 値】
* 正常時:true
* 異常時:false
*【製 造 者】EVE
*【製造年月日】2024年8月30日
*【更新年月日】
*【リリース日】
*【バージョン】
*【 概 要 】
* 対象文字列に仮名が含まれているかどうか判定する。
*************************************************/
kanaCheck() {
// 正規表現カナのコード範囲を指定する
const hankakuKanaPattern = /^[\uFF61-\uFF9F]+$/;
//カナが含まれているかどうか判定し呼び出し元へ制御を移す
return hankakuKanaPattern.test(this.#priString);
}
他になれていない点があるとすると、 三項演算子 を多用してきます。これも短いからロジック全体がスッキリしていいのだけれど、作り慣れていないので、 保守性 で疑問を感じて最初普通のif文に変更していましたが、諦めました・・・。今後三項演算子を多用することにします。特に、判定することにより、変数を取得する場合などに利用すると、プログラムの 可読性 を高めることができそうです。
let result = (a > b) ? 'a is greater' : 'b is greater';
それと、 オブジェクト指向の関数が増えましたよね ・・・。これからオブジェクト指向のプログラムを作ろうとしていて何ですが、やはり、従来のプログラムの方が分かりやすいです。まっ、メソッドを従来の関数と見立てて作ればいいのですが、なかなか慣れません。加えて、JavaScriptの古いオブジェクト指向のロジックはさらにわかりにくくさせています。ただ、他人のプログラムを解析することがあることを考えた場合、その能力ぐらいは付けた方がよさそうです。ただ、自分が新規で作るプログラムは、一般的なオブジェクト指向の方式で作っていきたいと考えています。
[あとがき]
DX の方が一区切りしたので、現状のJavaScript開発について書かせていただきました。今までおもちゃっぽい言語だと思っていましたが、そうで無くなったという印象をもつことができた開発期間でした。
来週から、 PHP の開発を再開するのですが、JavaScriptの開発方法を踏襲したいと思います。PHPの開発では、いろいろな プロパティ 、 メソッド が関連しているため、最後に一気にデバックしようとしていましたが、今回のJavaScriptの開発を通して、 メソッド単体でも十分デバックできる ことを確認できました。 フレームワーク の完成まで一気に作っていきます!
では、また!!!