2023年04月30日
システムのバージョンアップの難しさ [プログラム開発研究室]
こんにちは!
ナビゲータのEVEです。
本日は、開発に関する話題をお届けします。時事ネタにする予定でしたが、開発中のストレスがたまっているため、開発の話をしたいと思います。
[本日の問題点]
本日は、Insert関連の修正を完了しました。時間がかかりました。理由は、EVEシステムのDB関連クラスのプログラムソースを見た方なら分かるかもしれませんが、私が作るシステムの特徴は、DBへの接続開始、トランザクション、コミット、ロールバックなどのデータベース処理の全体を一元で管理することです。EVEシステムでは、クラスのプロパティで実施していますが、PHP5で動いているPrototype EVEでは、セッションで管理しています。最初作ったときは整合性は取れているのは当然なのですが、数年後プログラムを修正等した場合、どのような状態で、各関数が利用されるなんて、分かったものではありません。プロジェクトで開発をする場合は当然のことですが、1人で作っている場合でも同じ心配があります。そこで、当初からDBに関する関数は、セッションに設定されているデータベースの接続状況を見て、その挙動をいくつか用意しておきました。Prototype EVE内で完結している場合はそんなに大変ではありませんが、今回はPrototype EVE、New Prototype EVE、そしてEVEシステムという3階層でシステムを構成しています。現在、そのシステム構成が問題になっています。
[当初はセッションで管理をしなくて大丈夫だと思っていた]
当初は、セッションで管理していなくても問題ないと思っていました。それは、EVEシステムのプロパティのフラグで管理しているからです。しかし、複数の関数を修正してみた結果、うまく動くか分からなくなってきました。それは、Prototype EVEのアプリケーション群を修正しない前提があるためです。何回か検討を重ねた結果、旧システムやPrototype EVEシステムのシステム構成を踏襲することに決めました。最初からそうすべきだと思ったのですが、現在の3階層になったシステム構造がシステム修正を難しくしています。
[こつは掴んだかな]
今日、Insert文を修正してみたところ、やっとコツを掴んだような感じがしました。まあ、気のせいかもしれませんが・・・・?ただ、このような制御をしているのはDB関連関数だけなので、この難所を乗り越えれば、後は修正が容易になると考えています。
PHP4からPHP5へのバージョンアップも大変でしたが、今回のPHP5からPHP8へのバージョンアップは、DBに関する接続方法が変わり、構造化プログラミングからオブジェクト指向プログラミングに変更しようとしているため、挑戦がより難しくなっています。
もし、業務システムでPHPシステムのバージョンアップをしたシステムエンジニアやプログラマの方がこのブログを読んでいる場合、昔話のように聞こえるかもしれません。もしよろしければ、その時の苦労話などを聞かせてください。
では、また!
■Prototype EVE変更プログラム進捗状況
★DB関連関数以外
修正ファイル本数 5/29本(0本ファイル修正)
修正箇所 192/396