国产日本精品久久久久_国产精品一级AV毛片_欧美性爱在线观看视频_亚洲成av人片在www_国产好吊妞看视频在线观看_免费人妻中文不卡无码_成人无码亚洲精品啪啪网站_在线上看三级av黄片_午夜激情欧美日韩_亚洲国产日韩a视频

更多>>
當前位置 > 新聞咨詢行業(yè)觀點
web框架模塊設計三國演義篇

從事web開發(fā)已經(jīng)10年時間,近幾年也一直從事微博應用產(chǎn)品的研發(fā)。從原生php寫網(wǎng)站到使用cms bbs整合的大型站點,從使用各種流行的開源開發(fā)框架到成熟穩(wěn)定的平臺級框架下做研發(fā)。這期間對應用型web開發(fā)框架設計有一些自己的理解和見解,在這里和大家一起分享交流一下。南寧網(wǎng)站建設


為了讓大家對框架的各個模塊有較深的理解,我對模塊職能角色匹配了三國人物,在這里純屬為了增加大家的趣味性理解,如有不同見解可以在后面使勁得拍磚:)。


一個較成熟的框架圖如下:

blob.png

三國人物和各個模塊角色匹配如下:


一、單一入口(index.php---門神關羽


blob.png

一夫當關、萬夫莫開。這也是為啥諸葛亮把關羽安排在荊州這個戰(zhàn)略要地的原因。因為所有的請求都得經(jīng)過它。它對請求安全、框架整體型起到至關作用。


二、路由(Router)--引路人徐庶


blob.png

徐庶的成名之作就是把諸葛亮引薦給了劉備,從此使劉備的事業(yè)蒸蒸日上。其實這里最主要說說他的“引路”的作用。一個項目的代碼往往要承載各種的業(yè)務職能(PC、H5、Api、Manage等等)需要。部署肯定是只有一個物理目錄,只不過需要配置不同的主機頭和別名,或者同一個域名下Uri 需要映射到不同規(guī)則的Controler。引路的路由模塊對系統(tǒng)的遷移升級和適應業(yè)務擴展起到關鍵作用。但同時提醒一下,這個地方也是經(jīng)常是因為變更而導致線上故障問題點。所以設計時保持大模塊劃分下,細節(jié)盡量保持簡單


三、控制層(Controler)--掌柜曹操


blob.png

曹操就不需要過多文字對他畫像了。識人、決策、控制這些是Controler工作職能三要素。首先它要對所有的(GET、POST)傳入?yún)?shù)做驗證,安全過濾、合法性(識人品),然后進行業(yè)務判斷(決策)、需要調(diào)用哪個業(yè)務方法(控制),最后響應按不同格式輸出(json、html、二進制)?;靖蛇@些活就夠了。大體上就是客戶帶著買賣來了,掌柜的先看看人咋樣,人靠譜、具備買賣達成的條件、前柜收錢后柜出貨,買賣成交。這一層注意的地方就是不要有太多的業(yè)務邏輯在里面否則后柜的業(yè)務模型層的諸葛亮會很尷尬,搞的自己一堆業(yè)務邏輯在里面,代碼看起來很混亂,基本是自己找累。所以設計控制層一定要明確自己的三個職責。


四、業(yè)務模型層(Business Model)--勞模諸葛亮


blob.png

Business Model 這個職能非諸葛亮莫屬,諸葛亮在三國演義中絕對是一位日理萬機的勞模。整個項目的業(yè)務里外大小事務均得有它來完成,所以這一層需要對各種的業(yè)務需求有深刻理解后再進行代碼編寫,寫好的類與函數(shù)既要抽象可重用也要滿足不同的業(yè)務場景需要。對于這一層雖然抽象和重用很重要,但是最重要的是條例清晰閱讀性好。產(chǎn)品需求變更和開發(fā)人員的變化在這一層體現(xiàn)非常明顯。


五、表示層(View--戰(zhàn)神呂布


這一層基本是模板渲染了,有很部分框架使用smart模板,也有部分框架使用自己的模板語法。微博目前使用的是yaf框架模板引擎,它書寫語法是和原生php編寫是一樣的,書寫起來直接簡單,性能也超優(yōu),值得推薦給大家使用。


六、異步處理(Queue、Cron--幕后英雄趙云


blob.png

大型網(wǎng)站特別是像微博這樣高并發(fā)請求的產(chǎn)品。異步處理肯定是必要的,運行方式有兩種:1、隊列處理、2、定時任務執(zhí)行。趙云經(jīng)常是在諸葛亮授意下默默的去完成一些看不見但又是絕對重要的任務。這塊應該有注意二點:隊列監(jiān)控、日志收集。它們對線上提前發(fā)現(xiàn)問題和解決問題提供有力的保障。


七、接口層(Api--外交官魯肅


blob.png

一個平臺級產(chǎn)品在技術支撐上部門和人員需要拆解,每個部門和每個業(yè)務都會有自己獨立的服務模塊。他們之間是需要相互依賴、相互調(diào)用的,友好、橋梁這就是魯肅外交官的作用,同是也是接口層(Api)設計的理念和原則。作為項目自身Api層的編寫需要內(nèi)接口聲明和注釋說明清晰、對外需要保證雙方的調(diào)用穩(wěn)定性。孫、劉兩家聯(lián)合據(jù)曹魯肅功不可沒。


八、數(shù)據(jù)層(Data--后方夏侯敦


blob.png

兵馬未動,糧草先行。在我每次啟動新項目研發(fā)時有個習慣:就是首先把數(shù)據(jù)層設計封裝好。存儲類型選擇(mysqlredis、其它),如何分庫、分表,緩存的策略和命中率評估、crud接口設計。數(shù)據(jù)層質(zhì)量高低對以后需求變更和系統(tǒng)擴容影響很大,同時它也是強有力的后方保障層。


九、緩存層(MC--良將張遼


blob.png
張遼是一位不可多得良將正如Memcach讀寫性能一樣。這一層基本和數(shù)據(jù)層統(tǒng)一做設計和規(guī)劃,除了數(shù)據(jù)庫數(shù)據(jù)緩存、也可以做接口緩存、業(yè)務數(shù)據(jù)緩存。但每份緩存最好有統(tǒng)一的更新和清除接口,雖然多謝幾行代碼但管理起來很方便。


十、通用類庫(Class Library--謀士郭嘉


blob.png

郭嘉也算是謀士智囊團的代表人物。各種的類庫都可以放在里面例如:DB、MCHTTP、字符串處理、安全過濾、類型轉(zhuǎn)換、登錄驗證等等。


經(jīng)過了人物演義后形成如下陣型結(jié)構(gòu):


陣容隊形精英組合在三國打天下也無敵了,哈哈......

聊完了演義,最后還想和大家分享一下我對一款優(yōu)秀的WEB開發(fā)框架特性理解和期待,總結(jié)有幾點:

1.框架結(jié)構(gòu)清晰、書寫代碼簡單易上手

2.框架定義規(guī)范,降低出錯的概率

3.良好的可運維性

4.對第三方友好兼容

5.性能優(yōu)越

6.強大功能集成


總之,“人力”和“電力”是互聯(lián)網(wǎng)公司最大的成本,一款優(yōu)秀的開發(fā)框架可以把這兩個指標降到最低,并且讓每位程序員工作身心愉悅、編程能力神速提升,同時公司方面也能有很多的技術沉淀和積累。一舉多得、各方受益,豈不美哉。

關閉

其他產(chǎn)品服務中心

  • 微信好幫手微信朋友圈文章轉(zhuǎn)發(fā) 微信公眾號圖文代發(fā)
  • 微信好營銷投票、砍價、助力、大轉(zhuǎn)盤、刮刮卡
  • 天祺科技高端網(wǎng)站定制開發(fā)品牌 手機APP開發(fā) 平臺商城建設

關于我們

關于我們 公司動態(tài) 應用服務 建議反饋 網(wǎng)站地圖

電話
7x24小時咨詢熱線
0771-6796911
南寧網(wǎng)站建設

官方公眾號
掃一掃輕松體驗

  • 0771-6796911