こんにちは!
ナビゲータのEVEです。
本日から、Prototype EVEシステムとEVEシステムとのインターフェースの製造に入ります。ただ、その前に、まずは、問題がないか検討をしてから製造に入ります。
[Prototype EVEの特長]
開発したPHPプログラム、Prototype EVEの特長について考えてみたいと思います。
❶オブジェクト指向プログラムではない。
❷インポートファイルをすべて、requireで定義している。
❸生産性を優先している。
❹関数への引数をすべて文字列として引き渡している(すべての関数ではない)。
開発した当時PHP4で、以下の本を片手に開発をはじめました。
この本にCD-ROMが添付されており、環境はOS、メール以外は、CDから構築しています。
【中古】 標準MySQL RDBの理解からWebアプリケーションの開発と運用 / 田中 ナルミ, 阿部 忠光, ソフトエージェンシー / ソフトバ [単行本]【メール便送料無料】【あす楽対応】 価格:744円 |
今そのバージョンを確認してみると、PHPはPHP4.2.3で、MySQLは、MySQL2.0.14でした。この両ソフト、PHPは、セッション管理はできず、MySQLはトランザクションは使用できず、業務で利用するのはかなり無理のあるソフトだったと記憶しています。当然、オブジェクト指向で開発できるわけもなく、プログラムはベタ打ちでした(❶)。ただ、生産性はよかったです。変数の型を考える必要はなく、作ったプログラムはすぐに動作したといった記憶があります。そのため、集中できれば、当時数千行のプログラムをコーディングをしていました。
誤解を招かないようにセッション管理について、解説を付け加えさせていただくと、C言語で作られているPHPの一部を変更すれば、セッション管理は利用できたようです。そういった情報を見ました。ただ、当時の私のスキルでは対応できませんでした。しかし、トランザクションは、そういった記事を見たことがないので、無理だったんじゃないかな?って思っています。
❷については、誤解から始まっています。require_onceはリソースを消費する・・・。そんなことを、当時のブログに書いたような気がします。同じ処理において同じ関数を格納したファイルを、複数回定義するのがいやで、1つの処理(呼び出し元プログラム、呼び出し関数を通して・・・)は、1度しかよばないというルールを自分に課していました。そのため、すべてのプログラムのインポートは、requireで統一しています。その設計思想は、当時システム運用環境はかなり脆弱で、そういう部分まで気を使いながら開発しなければならないという側面もありました。しかし、現在は、違います。今回は、クラスを作った後は、使い時に使いたい関数を定義し、利用しようかな?って考えています。特に関数側なのですが、便利な関数を作ったのに、呼び出し元で利用しているため、呼び出し先の関数では利用できないということはたびたびありました。それにより生産性を落とし、ロジックが冗長的になりました。今、昔のプログラムソースを見ながら、そう感じています。
❸ですが、明日から、Prototype EVEとEVEシステムとのインターフェースの部分を作っていこうと考えていますが、生産性を重視したプログラムから紹介していきたいと思います。生産性を重視したため、プログラムの作りがひどいと思う方もいるかと思いますが、使用してみると分かりますが、想像したほど処理が重くありません。前回のPrototype EVEは、多くの人に使ってもらっていないからなのかもしれませんが、作った当初そう感じたため、生産性を重視したシステムを開発しています。Xserver上のシステムを、New Prototype EVEと言ったらいいでしょうか?New Prototype EVEでは、その設計思想を当初はひきずっています。それについては、リリース後、徐々に書き換えていこうと考えています。
❹は、直近のブログの中で触れましたが、Prototype EVEは、引数はすべて、文字列で渡すようにしています。文字列を受け取った関数では、PHPのマニュアルに書かれている引数の型に変換し利用するという作りになっています。
2016年ぐらいから始めたことなので、すべての関数が対応できているわけではありません。この開発方針にした理由は、PHP側で用意している関数の引数の型がマニュアルに厳格に定義されているから、っというのが理由です。
プログラマだと自分を定義したとき、以上のプログラムの作りはエラーにはならないのですが、違った型の引数をPHPで用意している関数に渡すのがいやになってしまったのです。
この方式を導入することにより、今まで通りの生産性を維持できるとともに、自己満足もできるようになりました。なお、EVEシステムでは、PHP8を利用して、オブジェクト指向でプログラムを作ろうとしていますが、クラスまたはメソッドでは、引数の型を指定する必要があります。クラス、メソッドで定義している型と呼び出し元でセットしたデータの型に相違がある場合、エラーが出ます。そのため、今までのような苦労はしなくてよくなりました。
価格:3,740円 |
[あとがき]
以上のPrototype EVEの特徴を踏まえて、かつ、「独習PHP」をよく読み、EVEシステムとのインターフェースを作っていきます。
もうひとつ考えなければいけないのが、EVEシステムで実際にどんなセキュリティ、どんなシステムにするのかということ・・・。それが、まだ検討が終わっていません。こういう状態で開発を進めると、作った後作り直しっていうことが多いのですよね・・・。今までの経験上・・・。
とりあえず、オブジェクト指向言語の開発になれる意味でも作り始めます。以前書いたブログの中で、分析麻痺症候群の話をしましたが、そのような状態にはなりたくありませんので・・・。
では、また!!!
【このカテゴリーの最新記事】