最近になってVIPERアーキテクチャの案件にアサインしていただき、
遅ばせながらアーキテクチャがどんなものなのか、初めて知りました。
そんな初心者がアーキテクチャについて調べてみた内容をまとめます。
間違い等あるかもしれませんが勉強中なので悪しからず。。。。。
アーキテクチャとは
直訳すると「「「建築」」」
調べてみると。。。。「コンピュータシステムの論理的構造」
うーん、、、難しい、、(ソモソモ ヨコモジ ムズカシイ。。。。。)
要するに、「プロジェクト自体の構造、とか構成」とかっぽい!
もうちょっと調べてみると
「アプリケーションを綺麗に実装するための設計方法」
わかりやすい!!!
アーキテクチャのメリット・デメリット
●メリット
- テストがしやすい
- アサインされた時にどこに何が書いてあるのかが分かる
etc....
●デメリット
- クラスの肥大化
- 役割分担がしにくい
- どこになにが書いてあるのかすぐにわからない
etc....
アーキテクチャの種類:いっぱいあるようです!
●GUI Architecture:サブsystemが対象
- (1979~) MVC
- (2009~)DCIArchitecture(MVCっぽいもの)
- (1999~)MVC Model2
- (1990~) MVP(Supervising Controller)
- (2006~) MVP(Passive Views)
- (2009~)MVVM
→Microsoft発祥 - (2014~)Flux
→Facebook製のデータフローモデル
●System Architecture:system全体が対象
- Layered Architecture
- (2008~)Onion Architecture
- (2012~)Clean Architecture
- (2013~)VIPER
- (2014~)MVA
- (2016~)MVVM-C
参考URL
https://medium.com/@rockname/clean-archirecture-7be37f34c943
https://qiita.com/hicka04/items/09534b5daffec33b2bec
https://qiita.com/star__hoshi/items/f28095542f56a1b05e34
個人的にオススメ、すごく面白い。。。わかりやすい↓
https://speakerdeck.com/takasek/10fen-tezhen-rifan-rusohutoueaakitekutiyafalseli-shi-2017