Findyさんプレゼンツのセミナー「成瀬さん直伝!2024年最新アーキテクチャトレンドとユースケースを徹底解説」に参加しました。
ランチタイムに開催される勉強会ということで参加しやすくて助かりますね。感謝です。
なぜ参加したのか
エンジニア関連の情報を集める際に「マイクロサービス」とか「モノリス」なんて言葉が行き交っているもんですから、言葉の意味ぐらい知れないかなーというレベルの興味でした。 イベントページを見てみたら「ドメイン駆動設計入門」著者の成瀬さんがスピーカーでもありますし、未経験〜ジュニアレベルでざっくりとしたお話が出てくるんじゃないかと期待してました。
セミナーの内容、メモしたことを中心に
バックエンドのアーキテクチャ。 「ヘキサゴナルアーキテクチャ」はアプリのサービス層?とDBや入出力との間にアダプターを噛ませることでIOの仕様を問わずにアプリと外部の処理を構築できるアーキテクチャ。
この「処理の分離」はあとのアーキテクチャの話でもたびたび出ていたので重要な概念っぽい。
レイヤードアーキテクチャは階層型のアーキテクチャで、上流から下流に情報やデータが進む。逆方向はない。階層で分けることで処理を分離できる。
ヘキサゴナルアーキテクチャとレイヤードアーキテクチャは似ている、というよりもほぼ同様の概念と化している。
その後、クリーンアーキテクチャの話が出てきた。暇プロで聞いた「ボブおじさん」のやつ。成瀬さんもボブおじさんと言っていた。 この辺で一時離脱。
GUIサイドのアーキテクチャ。 「GUIのアーキテクチャ」としてMVVMとかMVCなんかの見知った言葉が出てきたけど「GUIのアーキテクチャ」という概念がよくわからなかった。Viewが絡むから、というだけなのかしら。 MVCはModel、View、ControllerのRailsでおなじみのやつ。起源はSmalltalkが使われていた1970年代あたりらしく、現在のMVCは当時よりも進んだ概念になっているらしい。名前失念(MVC2だったはず)。
MVVMはフロントエンドのフレームワークでよく使われてるやつ。ViewModelとViewのデータバインディングすることが特徴。
最終的にはMVW(Model View Whatever)ですよ、と成瀬さん。 MとVを以下にやり取りするかに腐心しているので、その2つがきちんと分離しつつやり取りができる構造になっていればいいんじゃねって概念がMVW。
サービスアーキテクチャ。 モノリスは一つのアプリにサービス(処理のまとまり?)が混在した状態。立ち上げ直後みたいな状態。
マイクロサービスはサービスで分離させて構築する。ユーザーからは一つのアプリに見えるけどサービス間ではHTTPでやり取りをする。
モジュラモノリスは一つのアプリの中にサービスを分離させて構築していく。一つのアプリケーションではあるので、データのやり取りにHTTPではく不要だけど、開発者が安易な依存関係を作り出さないようにコントロールする必要が生じる。
この辺で再離脱。終了。
参加した感想
目的通りの内容で非常に良かったです。アーキテクチャって何を指す言葉なんだろうってレベルで参加したので、ちょうど大枠で色々と知ることができました。
アーキテクチャってのはアプリの構造の話であり、その構造を目指していく開発方針的なニュアンスだと理解しましたが、これは開発者の理解が追いついてないとコードがその通りに作られないよな、と思いました。なんだかんだ必須の知識なんでしょうね。
あと、成瀬さんがやられているYouTubeチャンネル「なるセミ」が紹介されてたのでチャンネル登録しました。こちらも見て勉強していきます💪