【轉載】做者:曾健生,公衆號ID:appbackendsql
比目科技:http://click.bmob.cn/?sid=752c854d8a91772b828a後端
app架構,一個聽起來高大尚的名字,不少小夥伴聽到這個詞語感受很迷茫,不知道架構具體說的是啥?在q羣裏,"app後端應該怎麼架構"這個問題被問了無數次。經過閱讀本文,根據本人提出的一個通用的架構設計的框架,幫你踏入架構的大門!服務器
在百度百科中,對架構的定義是:網站架構,通常認爲是根據客戶需求分析的結果,準肯定位網站目標羣體,設定網站總體架構,規劃、設計網站欄目及其內容,制定網站開發流程及順序,以最大限度地進行高效資源分配與管理的設計。網絡
看到上面的解析,估計不少新手都會搞暈。架構
根據本身5年的互聯網開發經驗,爲了幫助新手快速入門,特意提煉出一個通用的架構設計的框架:app
1. 有什麼業務框架
2. 遇到什麼問題運維
3. 有什麼可行的技術解決方案nosql
掌握了以上架構設計的框架,有什麼好處呢?網站
(1)不怕被別人的架構文章搞暈
當在網絡上看到別人的架構分享時,套用這個架構的框架,問本身這3個問題:做者講是在什麼業務邏輯上,遇到哪些問題,採用了哪些技術解決方案。經過這個框架,能幫助你快速提煉出別人架構的核心點,掌握這個架構的精髓。
(2)能快速地整理合適的架構
當在設計app的架構時,根據架構的框架,可採用下面的4個點設計app架構:
1. 根據app的設計,梳理出app的業務流程,把每一個業務流程列出來
2. 把每一個業務流程中會遇到的問題整理出來
3. 根據整理出的問題,探討可行的技術解決方案
4. 把3中的全部的技術解決方案有機融合,就是一個app的架構了。
另外,從對架構的框架上可看出,架構設計上的如下特色:
(1)架構是和業務緊密相關的
每一個app都有獨自的業務邏輯,遇到的問題也不會同樣的,解決方案也不同,所以架構也不盡相同。
常常在qq上被人問到:"app後端應該採用什麼價格?"大哥,我不瞭解你的業務邏輯,不知道你會遇到哪些問題,怎麼知道你須要使用哪些技術方案,架構根本無從談起。
(2)架構的演變是由業務驅動
當app處於不一樣的發展階段,架構上也須要作變化。
例如,驗證用戶的token,一開始沒啥用戶的時候,可能直接在用簡單的sql查詢語句就能搞定,但隨着用戶的增加,服務器的壓力愈來愈大,查詢速度愈來愈慢,可能就要遷移到nosql中驗證。
但同時要考慮一個問題,若是初期架構上的不合理,到了後期,由於業務的發展須要改變架構是很困難.可是初期要弄一個好的架構,又可能耽誤後端的研發進度,使整個app的上架時間推遲,這時又要面對巨大的資金和時間壓力,具體怎麼取使,要各位小夥伴認真考慮,馬虎不得。
(3)架構不是爲了炫耀技術
架構是爲了知足業務的需求而設計的,技術人員不該過分設計,學了一堆最新最炫的技術,都把它放進架構,而不是根據實際的需求來作。
技術是爲了知足業務而存在的,過分設計,不但延誤了整個app的研發週期,也可能給運維帶來了不少沒必要要的麻煩。
總結:
在app成長的過程當中,後臺的架構也須要不斷成長。技術人員,也須要跟上這個成長的步伐。