從結親網 jieqin8.com 的架構談起,談什麼架構, 我理解的架構 java
什麼是架構?
程序員
什麼是架構,談下你項目中用的是什麼樣的架構?!! web
What?這個問題怎麼熟悉!!原來是在面試的時候常常面試官會問出這個問題。 面試
而後,程序員們開始侃侃而談,我用的是三層架構,我用的是MVC架構,我用的是WebApi架構,我分業務層,我分數據訪問層,我分實體層,等等。。。。 redis
而後彷佛面試官也很滿意你的回答。。。。。 sql
那麼架構真的是這樣子嗎?mongodb
樓主我的對架構的理解,它應該是這樣子的: api
架構應該是整個項目體系全部思惟過程的總稱。安全
下面以結親網(jieqin8.com)爲例,講解怎麼理解這話的意思呢? 微信
一、架構選型
結親網的客戶羣體是誰?
結親網的一段時間內的客戶訪問量會多少?
結親網的理想市場客戶數會有多少?
結親網須要用到什麼主要技術?
結親網是否須要手機版本?
團隊目前或短期內可以擁有的資源有哪些?
咱們具有什麼的人才體系和技術力量程累?
咱們的資金及實力資源有哪些?
..........
基於更多的,相似於這些問題的思考,就會影響咱們的架構選型,到底咱們是用java仍是C#,用oracle仍是sqlserver,用mongodb仍是redis等等。
最終咱們會選擇出最適合本身的架構選型。
那麼,結親網用的是C#,webapi,sqlserver
二、業務架構
項目的實施是爲了解決實際問題。因此,對於業務的瞭解和深刻及精通,這整個探討過程,我稱之爲業務架構。
業務架構主要的成果是思惟上和文檔上進行體現。
那麼針對結親網,分析整個網站的業務需求,與市場的對應關係,要解決的業務問題,就是咱們平常要思考和探討的話題,整個交互過程,最終要造成文字性的需求文檔,甚至demo。
三、系統架構
針對系統選型,以及業務模塊的分析,那麼系統架構就呼之欲出。
咱們要怎麼劃分系統的底層模塊?
咱們要怎麼創建各個子系統之間的聯繫?
咱們要怎麼控制連接安全?
咱們要怎麼傳輸數據和訪問數量?
。。。。。。
通過一系列的思考,就會得出咱們的業務構架模式。
以結親網爲例,咱們的系統架構是這麼搭建的。
子系統分爲OA內部系統、外部全站的jieqin8.com系統、WCF框架、微信支付寶等接口模塊、系統的經過核心框架,以及你們常見業務層、數據訪問層、實體層等模塊。
四、技術架構
技術架構水到渠成。
業務構架中,咱們已經對業務總體進行了分析,那麼,業務既然分析出來了,那總要使用代碼去實現吧?!
so,技術架構應該在俯視全局的基礎上,作好面向對象的業務抽象,爲整個網站作好擴展和解耦基礎。
結束寄語
架構是項目系統實施的整個思惟過程。他不是一件容易的事。
須要架構師可以充分把握業務需求,對行業及項目具備前瞻性的眼光,對抽象思惟有精深的能力,應對變化有足夠的反應,這樣才能夠把一個項目架構作好。
程序之路漫長,祝你們財源滾滾。