ç¾å ´ã®ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã®è©±ã‚’ã—ã¦ã¿ã¾ã›ã‚“ã‹ï¼Ÿ

概è¦

DevLove関西主催ã®å‹‰å¼·ä¼š

変化ã¨ä¾å­˜

architecture2
・UIã¯ç†è§£ã—ã‚„ã™ãã€å¤‰åŒ–ã—ã‚„ã™ã„
é¡§å®¢ã®æ‹…当変更ã«ã‚ˆã‚Šç°¡å˜ã«ä»•様ãŒå¤‰ã‚る。
DBã®æ§‹é€ ç­‰ã¯å¤‰ã‚らãªã„。
・Dataã®å¤‰æ›´ã¯Logic・UIã«å½±éŸ¿ã™ã‚‹
UIã®å¤‰æ›´ã¯Logic・UIã«å½±éŸ¿ã™ã‚‹ã¨ã¯é™ã‚‰ãªã„
・çµè«–ã€ãƒ‡ãƒ¼ã‚¿ã€ãƒ“ジãƒã‚¹ãƒ­ã‚¸ãƒƒã‚¯ã‹ã‚‰é–‹ç™ºã—ã€UIã¯æœ€å¾Œã«ä½œã‚‹ã¨ã€
手戻りãŒå°‘ãªã„開発ãŒè¡Œãˆã‚‹ã€‚
・データã€ãƒ“ジãƒã‚¹ãƒ­ã‚¸ãƒƒã‚¯ã€UI層を分化ã—ã€
UIã®å¤‰åŒ–ãŒä»–ã«å½±éŸ¿ã—ãªã„構造を作る
「レイヤードアーキテクãƒãƒ£ãƒ¼ã€å‚ç…§

åˆ¤æ–­ãƒ¬ãƒ™ãƒ«ã®æŽ¨ç§»

architecture

アーキテクãƒãƒ£å“²å­¦

・アーキテクãƒãƒ£ã¯é¸æŠžã®é›†åˆä½“
・アーキテクãƒãƒ£é­‚ï¼è‡ªåˆ†ãªã‚‰ã‚³ã‚¦ã™ã‚‹
ã—ã‹ã—åˆ¤æ–­ã®æ ¹æ‹ ãŒå¿…è¦ã€‚ç«‹å ´ã€å½¹å‰²ã€ç›®çš„æ¯Žã«
「アーキテクãƒãƒ£ã®åˆ¤æ–­æŒ‡æ¨™ã€å‚ç…§
・トレードオフãŒå¿…è¦ã€‚
ã—ã‹ã—å¹³å‡ç‚¹ã¯é«˜ããªãã¦ã‚‚良ã„。
一部ã®é‡ç‚¹é …ç›®ãŒè‰¯ã‘れã°ä»–ã¯è¦æœ›ã‚’満ãŸã—ã¦ãªãã¦ã‚‚良ã„å ´åˆã‚‚ã‚ã‚‹
・目ã®å‰ã®è¦æ±‚ã«æƒ‘ã‚ã•れãªã„
・未æ¥ã«å…±æ„Ÿã›ã‚ˆ
・アーキテクãƒãƒ£ã®ç›®çš„ã¯ä¼ãˆã‚‹äº‹(未æ¥ã¸ã®ãƒãƒˆãƒ³)
アーキテクãƒãƒ£ã§ç”¨ã„る図ã§ã¯ï¼‘ã¤ã®è¦–点ã«é›†ä¸­ã™ã‚‹
ä»–ã®è¦–点ã¯ä»–ã®å›³ã§è¡¨ã™

ãƒ»ãƒªã‚¹ã‚¯ã«æ•感ã«ãªã‚Œã€‚ã—ã‹ã—リスクをæã‚Œãªã„
・未æ¥ã‚’感ã˜ã‚。誰も教ãˆã¦ãれãªã„。
ãƒ»è‡ªåˆ†ã§æ„Ÿã˜ãŸæœªæ¥ã‚’ä¿¡ã˜ã‚

レイヤードアーキテクãƒãƒ£ãƒ¼

※ï¼ãƒ¬ã‚¤ãƒ¤åŒ–~/階層化~/多層~
処ç†ã‚’分類ã™ã‚‹
例
・OSIå‚照モデル
・MVC
MVCモデルã«ãŠã„ã¦ã¯
×:Controller > Model
○:Controller < Model
ã ãŒå…¨ã¦ã‚’Modelã«æ›¸ãã¨å¤§è¦æ¨¡ãªã‚¢ãƒ—リケーションã§ã¯çµå±€åˆ†ã‹ã‚Šé›£ããªã‚‹ã€‚
å„層ã®è²¬å‹™(ルール)を決ã‚ã‚‹
↓↑View(Routing)
 ※(1)ルーティング/èªè¨¼/フィルタリング
↓↑Controller
 ※(2)HTTPリクエスト/レスãƒãƒ³ã‚¹/ãƒãƒªãƒ‡ãƒ¼ã‚·ãƒ§ãƒ³/Serviceã®å®Ÿè¡Œ
↓↑Service
 ※(3)ビジãƒã‚¹ãƒ­ã‚¸ãƒƒã‚¯å†…容ã§ã®æ¤œè¨¼/ビジãƒã‚¹ãƒ­ã‚¸ãƒƒã‚¯
↓↑Model
 ※(4)DBアクセス
・処ç†ã‚’分離ã™ã‚‹
(1)~(2)ã§ã¯æ–‡å­—ã®ä¸æ­£æ¤œè¨¼ç­‰ã®ã¿ã‚’行ã„ã€
(3)ã§ã¯ãƒ“ジãƒã‚¹ãƒ­ã‚¸ãƒƒã‚¯ã¨ã—ã¦ã®æ¤œè¨¼ã‚’行ã†(åœ¨åº«æ•°ã‚„ç¤¾å“¡åœ¨ç±æœ‰ç„¡ç­‰)

・æµã‚Œã‚’一方å‘ã«å›ºå®šã™ã‚‹
・クラス/メソッドåã¯ãƒ‰ãƒ¡ã‚¤ãƒ³ç”¨èªž
・ドメイン毎ã€ãƒ“ジãƒã‚¹ãƒ­ã‚¸ãƒƒã‚¯æ¯Žã«åå‰ç©ºé–“を分ã‘ã‚‹
・サービスã‹ã‚‰ä½œã‚‹(ãã®å¾Œâ†’テスト→UI)

アーキテクãƒãƒ£ã®åˆ¤æ–­æŒ‡æ¨™

 セキュリティ   性能   å¯ç”¨æ€§ã€€  発展性 
 機能   ✔   ✔   ✔   ✔ 
 情報   ✔   ✔   ✔   ✔ 
 並行性   ✔   ✔   ✔   ✔ 
 開発   ✔   ✔   ✔   ✔ 
 é…置   ✔   ✔   ✔   ✔ 
 é‹ç”¨ã€€  ✔   ✔   ✔   ✔ 

Follow me!