メインサービス移行、舐めんなよ、マジで…… | 熱脳しゃちょのブログ

熱脳しゃちょのブログ

おせっかい焼SE兼プログラマ兼……の辛い日々と、思う事なぞ

「今動いてるんだから、簡単に別言語に移行できるでしょ」

 

とかいうノリ、マジ勘弁してくれ……。

 

「PHPからgolangに移行しようと考えてるんです」

 

ふむふむ。

まぁ、今時のプロジェクトだね。

 

「現行のPHP版、むっちゃ古くてセキュリティ的に不安だから移行したいんだけど、開くのに1分とかかかる管理画面とか出るようになっちゃったから、むちゃくちゃ速いっていうgolangにしたら一瞬で開くようになるんでしょ?」

 

……は?

開くのに1分……?

どうなってんのよ、中身?

 

ORM使ったO(n+1)の重ね重ねの無礼講。

普通のインスタンス変数のノリで、お手軽にあちこちでDB呼び出しが発生する。

いや、キャッシュされないのか?
同じ物なのに、呼び出し経路で別インスタンスになって増殖増殖。

インフラ層にいるはずのORMのDataAccessObjectが、プレゼン層のHtmlTemplateで乱舞乱舞。

なんでやねん!

「いや〜、クリーンアーキテクチャとか、採用してなかったんで」


おけ。
3億歩譲ってそれを飲むとして、これ、そのままgolangに移行……、

できるわけねぇだろ!

しかもこのDAO、いろんなところから参照されてて、参照元によってif文で複雑に構成されてて、どこから呼び出されたどういう条件がどうなってるんだか、全部あげるの一筋縄じゃいかないし、なんかの不具合解消のためか、空配列が追加されてたり、カオスカオス。
 

いや、遅いの、PHPのせいじゃないね。

で、今動いてるから、チャチャーっと言語移行?

できるわけねーでしょが!

PHPでフレームワークをモダナイズしつつ、DAOの突き抜けを解消したり、安易に使っちゃうからORMの廃止と……。
同一言語なら、DAOの突き抜け解消とORM廃止はパフォーマンス的に厳しくないところは一旦手を抜けるから……。
golang移行で想定される予算の4/1くらいにできそうかなぁ……?


と思ったら、その金額でも想定予算大幅オーバーって、どれくらいでいけると思ってたの?
何年もコツコツと積み上げてきたプロダクトでしょ?
段階的移行の手間考えたら、真っ当にやったらかけてきた人月金の3倍かかってもおかしくないんよ?
NHKの営業基幹システムとか、大変なことになってんの、聞いたことない?

ちゃんと動いていて、稼いでるプロダクトの移行は、規模等々、一筋縄じゃいかないんよ。

マンションと同じでさ、日々のメンテにも金出さないといけないし、大規模修繕も計画的定期的に行わないと、こういう時にやってなかった場合の数倍のお金と時間が必要になってしまう。
盆栽も同じやな。

SIer出身者には一度作ったプログラムは永遠に資産。作ったら終わり、って感覚かもしれないけど、日々機能追加だなんだ行うSaaSプロダクトとかは、常に形を整えてないと、すぐ腐っちゃうんだよ。

 

でさ、この辺りのメンテ、多分生成AIはうまく回し続けられないんじゃないかと思うんだよな。


大丈夫か? w