まえがき
こんにちは。ko-tarou です。
今回は、意外と説明するのが難しい 「 アーキテクチャ 」 について、まとめました。
「アーキテクチャって何?」 「なぜ必要なの?」
という疑問を持っている方の参考になれば幸いです。
アーキテクチャとは
一言で言うと、アーキテクチャとは 「システムの構造のこと」 です 。
現在コーディングしている方は、
「 ファイルをどう分けるか? 」
と言うことを想像していただければわかりやすいかと思います。
上の図のように、
- 「 単一のファイルで書く 」
- 「 フロントとバックで分ける 」
- 「 ページごとに分ける 」
など、このような構造も アーキテクチャ の一つです。
広い視点でのアーキテクチャ
先ほど述べた例はあくまで、アプリ内のアーキテクチャです。
しかし、アーキテクチャはもっと広義であり、以下のような種類があります。
- アプリ全体
- サービス全体
- クラウド
- API・DB
- 人材配置
など、多様な場面でアーキテクチャは使用されます。
なぜアーキテクチャが必要なのか?
一言で言うと、「 開発効率のため 」 です 。
もう少し具体化すると、以下の 2 つです。
- 拡張しやすくするため
- 共通認識を持つため
それぞれ説明します。
拡張しやすくするため
きちんと構造化されていると、
新しい機能を追加するときに、迷うことなく実装することができます。
また、適切な共通化を行うことで、拡張する上での負荷を減らすことができます。
共通認識を持つため
チーム開発では、全員が同じ認識を持つことが非常に重要です。
しかし、細かいコードの処理内容まで共有しすぎると、効率が落ちてしまいます。
アーキテクチャと言う 「 良い抽象度 」 の共通言語があることで、
システムの全体像をチームに共有できます。
アーキテクチャに入門するには?
「具体的に何を勉強すればいいの?」と思った方へ、入門方法を紹介します。
まずは、気軽に有名なキーワードで検索し、Qiita を漁ることをお勧めします。
以下はお勧めのキーワードです。
- 全般・思想
- SOLID
- Clean Architecture
- 4c-model
- Web
- SPA
- Flux
- MVC
- BFF
- モバイル
- MVVM
- TCA
- Flux
- MVC
また、本格的に学びたい方には、オライリー・ジャパンの以下の書籍がおすすめです。
『ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ』
あとがき
この記事をお読みいただきありがとうございます。
まずは自分の興味のある分野で、
よく使われているアーキテクチャ名を調べてみることをお勧めします。
この記事だどなたかの一助になれば幸いです。
