#アーキテクチャってなんや?
アーキテクチャについて調べていたらゲシュタルト崩壊おこしたので、その言葉そのものの意味とIT分野で使用されるアーキテクチャとはなんぞやに紐づけて脳内整理するための記事。
##経緯
新しくアプリ開発を進めていく上で「ディレクトリ構成はどんなにすればええんやろか?」という疑問から調べていくと、「アーキテクチャ」という言葉がでてきた。「アーキテクチャ?なにそれ?おいしいの?」状態だったので、初学者なりに調べたのでアウトプット用にまとめてみます。
##アーキテクチャ(architecture)の語源ついて
古代ギリシアまで遡り「アルキテクトーン」という言葉が語源らしい。
##もともとは建築学で使用されていた言葉
建築様式のこと。建築様式とは「特定の特徴を持った建造物の様式」、またはその「建築手法」「構造」「対象物を特徴づける特定の建築手法」のこと。
これらの意味からIT分野でのアーキテクチャへ派生していったとされる。
##本題:IT分野において
情報システムの「設計方法」、「設計思想」、及びその「設計思想に基づいて構築されたシステムの構造」などのこと。
IT用語辞典BINARY
https://www.sophia-it.com/content/%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
ん~、なんとなくわかったような気になれる。。。
それぞれどういう意味かも調べてみよう。
設計方法
業務の仕組みやコンピュータ・ソフトウェアを開発するための手法。開発のやり方や考え方そのものを扱う大きい枠の設計方法から、細かい機能を実装していくか過程を決める設計方法など、様々な層の設計方法がある。
例:ウォーターフォール開発、アジャイル開発、スパイラル開発など
設計思想
プロダクトを設計する際に意識する理念。理念とはプロダクトのあるべき姿に関するものであり、プロダクトの特徴として現れる。
設計は、今までにないものを作り上げるため、設計することへの意味付けが必要とされる。そうでないと、無意味なプロダクトが世にあふれることになる。
例:こだわりや設計に対する要求や実現方法の選択における優先順位付け。
設計思想に基づいて構築されたシステムの構造
これは各々構築されるシステムごとに異なるので特定した意味づけをすることは不可。
アーキテクチャの種類
- ソフトウェアアーキテクチャ
- ソフトウェアを設計するときに、最も必要であるのが「機能」や「性能」の全体像と製品本体の構成要素のバランス。
- MVC、MVVMなど
- システムアーキテクチャ(略してSA)
- システムに求められることを効率良く行っていくために必要な機能や相互データの更新を定める枠組み。
- エンタープライズアーキテクチャ(略してEA)
- 組織や企業において目的を果たすために、業務手順や組織構成を含む情報システムを利用しやすいように適正化する手段。
- CUPのアーキテクチャ
- ハードウェア部分なので今回は触れない。
まとめ
IT分野における「アーキテクチャ」とはプロダクトを作るための方法だったり、何かを作る意味づけ、プロダクトの構造であることと理解した。
概念的な言葉なので一概にこれ!と同定することはできない言葉で、時と場合によって詳しい意味合いは変わってくるが、上記の意味は変わらないはず。
不足や間違いなどがございましたらご指摘していただけると幸いです。
#参考
wiki
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
アーキテクチャとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
https://wa3.i-3-i.info/word16015.html
IT用語辞典BINARY
https://www.sophia-it.com/content/%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
設計思想とは何か(pdfのダウンロードファイル)
https://sentankyo.repo.nii.ac.jp/?action=repository_action_common_download&item_id=18&item_no=1&attribute_id=22&file_no=1