JavaScript製造の方向性を考える ~プログラム研究室~


 こんにちは!
 ナビゲータのEVEです。
プログラミング.jpg
 昨日ブログをアップロード後なのですが、考え方が変わりました。
 昨日のプログラムはChatGPTからの提案だったのですが、気に入りません。特に、インスタンスグローバル変数として定義するところ・・・。
 昨日の調査までは、html内にfunctionで定義し、そこからclassを呼び出す仕様にしようと考えていました。しかし、一般的な方法として、ChatGPTから昨日のようなロジックを教えてもらいました。ただ、繰り返しになりますが、グローバル変数としてインスタンスを定義するところが、何がどう悪いと断言できるモノではないのですが、気持ち悪く感じます。ここで決めた方針で今後製造していくことになるので、もうちょっと、考えた方が良いようです。

[オブジェクト指向言語の開発]
 昨日のプログラムだと、class1に対して、複数の文字列を処理することになります。ただ、現在開発中のEVEシステムは、PHPになりますが、1インスタンスに対して1文字列を処理することにしています。この場合、どのインスタンスがどの文字列を処理していることが一目で分かり、プログラム終了までその内容を保持し、そこで処理された内容を再利用することが可能です。やっぱり、画面の機能を提供するJavaScriptは、HTML内でfunction定義し、classを利用した方がいいような気がします。

[自分の考えが実行できるかプログラミングしてみる]
 いいな~っと思うのですが、その想像しているプログラムが動作するかどうか分かりません。早速、自分の頭に浮かんだプログラムを作ってみました。

<!DOCTYPE html><html lang="ja"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script src="testscript0001.js" defer></script><script>function test() {// グローバル変数としてクラスのインスタンスを作成window.getString = new stringClass("abcde");alert(getString.getLength());}</script></head><body><button onclick="test();">Click Me</button></body></html>
//testscript0001.js**************************************************【クラス名 】文字列クラス*【製 造 者】EVE*【製造年月日】2024年8月19日*【更新年月日】2024年8月20日*【リリース日】*【バージョン】0.1*【 概 要 】* 文字列に関する機能を提供する*************************************************/class stringClass {//グローバル変数を定義static proString;static proStringLen;/**************************************************【メソッド名】コンストラクタ*【 引 数 】なし*【返 却 値】なし*【製 造 者】EVE*【製造年月日】2024年8月19日*【更新年月日】*【リリース日】*【バージョン】*【 概 要 】* 初期の処理を実施する*************************************************/constructor(str) {//グローバル変数の設定this.proString    = str;this.proStringLen = str.length;}/**************************************************【メソッド名】文字列長取得*【 引 数 】なし*【返 却 値】* 正常時:文字列長*【製 造 者】EVE*【製造年月日】2024年8月20日*【更新年月日】*【リリース日】*【バージョン】*【 概 要 】* 文字列の長さを取得する*************************************************/getLength() {return this.proStringLen;}}

正解が分かっていないので、こんなに短いプログラムなのですが、かなり時間がかかってしまいました。ただ、想定していたようなプログラム開発は可能だということが、本日の調査からわかりました。

[一般的なプログラムと本日のプログラムどっちがいい?]
 昨日ChatGPTに紹介してもらったプログラムなのですが、一般的なプログラムらしいです。1人でプログラムを作っていて、この一般的という言葉に非常に弱いです。なぜかというと、通常、プログラムなどが変わって行く方向は、大多数によるからです。
 そこで、ChatGPTに昨日のプログラムと、私が作りたいプログラムどちらがいいのか聞いてみました。

■結論
 本日のプログラム(functionを外部ファイルに分けたもの)をお勧めします。
■理由
・一貫性とモジュール化
 関数とクラスが分かれていることで、プロジェクト全体の構造が一貫しており、開発者がどのファイルに何が定義されているかを簡単に理解できます。
・拡張性
 プロジェクトが大きくなった場合でも、各モジュールが独立しているため、機能の追加や変更が容易です。

但し条件があって、HTML内に記述したプログラムを外部ファイルに出すことが条件だそうです。まっ、製造時は、HTML内に記述して、リリースするときに外部に出すという流れになりそうです。回答の中身を吟味すると、一般的ではないが、比較検討するとお勧めできるということらしいです。っということは、そのうち一般的になるかもしれません。

[あとがき]
 本日は、朝起きて、昨日のことが気になって、いきなりプログラムを作り始めましたが、実は昔は起きた瞬間からプログラムを作るという生活だったような気がしますし、そんな生活を今まで推奨していました。っというのは、朝はボケボケで目の調子も悪く何をしてもうまくいきません。ただ、プログラム開発を始めると、最初はいつも通りボケボケなのですが、通常の生活より早くしゃっきりとするのです。
 また、以前推奨していた生活にもどして、生活のリズムを変えてみたいと思った、本日のプログラム開発でした。
 では、また!

コメント