熱脳しゃちょのブログ -20ページ目

熱脳しゃちょのブログ

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

お題目はどーでもいい。

マイクロサービス化しないといけないほどデカくて複雑なシステムと、TODOリストレベルのCRUDアプリを同じ基準でやろうってのが間違い。

規模がデカくなるとか、複雑度が上がるとかいう可能性があるなら、商用サービスならそういう成長を予定しているのなら、そちらにスイッチできるようにしておくだけの話で、その上でマイクロサービスでやるとかモジュラーモノリスだとかは手段としてとるものであって、目的ではない。

加えて、形式的にそれっぽくできていればいいんじゃなく、それらの概念なり手法が目的とするものが機能すれば、コピペのような見た目同じである必要はない。

というか、Webとかでの解説は、紙面の関係等で要素部分だけを抜き出してるので、有効な形ではない場合が多い。

本人による解説であれば、事前条件が全然足りない場合もあるし、言葉足らずの場合も多い。

どこかのWeb記事で書いてあったのを、聞き齧りでまとめてドヤ顔する類の似非エンジニアの手によるものだと、全く間違ってる、おかしな内容に歪んでたりすることは、本当に多い。

それを実施して、期待された効果が発揮されているか、ちゃんと確認した方がいい。

「最新の関数型プログラミングで……」

「マイクロサービス化していて、実装済みが70個で、90くらい設計完了、最終的には120くらいになります」

「ドメイン駆動開発で……」

って説明されて、実物見て、「この人ら、なんでこんな苦行なだけの苦行に喜んでるんだろう?」って思うことがとても多い。

 

例えば「ドメイン駆動開発を採用し、ドメインごとにマイクロサービス化して疎結合にし、各ドメインごとにチーム分けを行い……」って説明されたあるプロジェクトがあるのだが、「業務ドメインごとにマイクロサービス化」して、「画面、帳票単位で」必要なテーブル、APIを設計しそれぞれ1 Taskとして登録、消化、完了率を持って進行度とし、プロジェクトは順調と報告()。業務ドメインを跨ぐデータは「マイクロサービス越しにやりとり」つまりチーム間で修正点をやり取りして辻褄を合わせ、修正が入るたびに両岸のマイクロサービスをタイミングを合わせてリリースしなければいけない。それぞれの自動テストは可能だが、連携は自動テストでは行わず、E2Eテストで行われ、すべてのパターンが外から突いて網羅できるわけもなく、ちょいちょいエラーを吐いて、調査困難。手数が足りなくなったのでAI 使って物量を稼ぐが、むしろ辻褄合わせが困難になって、プロジェクト後半、対応会議の時間の方が長くなる。

って、「君ら何のためにドメイン駆動開発とかマイクロサービスとか採用しますとか言うたん?」と小一時間問い詰めたくなる状態になってる。

なんかドメイン駆動開発はだめだとか、マイクロサービスじゃなくモジュラーモノリスでやるべきだったとか、見当違いな反省をしているように聞くが、ダメだったのは「君らのおつむ」だって結論に、なぜたどりつかないか、さっぱり理解できない。
全部間違えて適用してるから、ダメだっただけ。
参考にしたWebの記事がそもそも間違えてるし、そこからさらに読み取ったことも輪をかけて間違えてただけ。

 

楽にならない、リリースのたびの不具合が減らない、変更が困難。
になる時点で間違えてるんだよ。

 

民の幸せのためなんだから、納税して当然じゃね?

それとも、カンダタよろしく、一般人は足蹴にして自分だけ助かろうと、贅沢しようとしてる?

こういう時に潰れそうな地方の小さな寺院を紹介してくるけど、酒池肉林してる連中を宗教家とか、ないわ〜。