こんにちは!
ナビゲータのEVEです。
昨日から再びクラス、メソッド、プロパティの製造にはいっています。
先日は、配列クラスと文字クラスを作っており、文字クラスは作っている途中という話をしましたが、まだ文字クラスは完成していません。
しかし、今回はそれに加えて、数値クラスの製造に入っています。理由は、文字列内において文字の長さを求め、それが想定通りかどうか判定するところがあります。そのとき、長さを引数で数値で渡しているのですが、それが本当に数値かどうか確認するために製造しました。作った後なんですが、よく考えると、PHP8って引数を渡すとき型宣言するんですよね?もしか、そこで判定できるかもしれません・・・・。
ただ、いつかは作らなくてはいけないモノなので、そのままにして次に行きます。
[Prototype EVEとEVEシステムの相違点]
今回クラスを製造していて、Prototype EVEとEVEシステムにおいて大きく違う点があります。それは、Prototype EVEのフレームワークでは、PHPから提供されている関数以外利用しないという規約がありました。そのため、Prototype EVEフレームワーク内において、自分が作った関数はほとんどの場合再利用していませんでした。しかし、EVEシステムではその規約をなくすことにしました。それは、関数の取り込み方法を、requireからrequire_onceに変更したことが最大の理由です。
Prototype EVEでは、資源不足を懸念していました。そのため、同一アプリケーションから同一の関数を呼び出さないという方針がありました。だから、同一アプリケーションで利用する関数は、呼び出し元のアプリケーションですべて定義していました。しかも、現在文字クラスと定義している関数も複数のファイル、今数えると10以上のファイルに分割されており、使用するときは使用する関数以外取り込まないという方針で製造していました。
開発から20年目を来年迎えるに際し、20年前とは大きく違う運用環境の状況からそのような製造方針としています。
[ちょっとあやしい関数]
20年前と言えば、活気盛んではありましたが、現在と比較すると技術的にまだまだという部分はいなめないと思います。Prototype EVEのフレームワークは、最初に作ったということもあり、そんな雰囲気を強く感じます。
関数には、製造年月日を入れているのですが、その製造年月日とロジックを見ながら、これ次期システムでも利用しようかどうか悩むのですが、めんどくさいので、今回すべてEVEシステムで実現し、使用してみて使えなかったら廃棄するという方針としています。
[クラス・メソッド・プロパティの規約]
現在決まっている規約は以下の通りです。
・コメントは70桁目から(Prototype EVEでは55桁目から)
・メソッドからの返却値はすべてクラスのプライベート変数として保持する
但し、getterは、現時点製造していません。
・メソッド内で使用している変数はすべて定義する(Prototype EVEでは不徹底)
・すべてのロジックにコメントを入れる(Prototype EVEでは不徹底)
・異常時の返却値はfalseに統一する(Prototype EVEではケースバイケース)
・異常時のコメントは後で閲覧できるようにクラス内のプライベート変数に保持し適時閲覧できるようにする
・プライベート変数の先頭にpriと付記する
・パブリック変数の先頭にpubと付記する
・クラスの最後にClassと付記する
・メソッドの先頭にmetと付記する
・newで作成したオブジェクトの最後にObjectを付記する
・コンストラクタで取得した変数は、原本を管理するのと同時に編集用のプライベート変数に転記する
※赤字は2023年12月23日に追加
こんな感じでしょうか?文字として規約を起こすのは本日初めてなので、以上が全てかどうか怪しいところはありますが、気づいたら、適時、本日2023年12月21日のブログに追記していきます。
[あとがき]
とりあえず、怪しい関数もメソッドに変換するという方針を立ててからは迷うことなく、とりあえず作業を進めています。このような作業で一番時間がかかるのは迷うところです。その迷う部分をできるだけ軽減するというのが、作業をスピーディーにするコツと言えるでしょう?
年末のまでのスケジュールが1.5日遅れという状況です。これから挽回できるでしょうか?
では、また!
【このカテゴリーの最新記事】