前端工程化介紹--模塊化榕暇、組件化蓬衡、規(guī)范化、自動化

一彤枢、模塊化的目的狰晚,就是便于多人協(xié)作開發(fā),對于項目后期便于功能的擴展和修改
1堂污、ES6的到來家肯,使JS可以模塊化的組織代碼龄砰。
2盟猖、CSS 可以使用CSS Moudle技術(shù)來模塊化代碼。

二换棚、組件化的目的式镐,就是方便把復(fù)雜的頁面分割到每個組件中去實現(xiàn),用分而治之的方式去解決問題固蚤。
用React視圖庫娘汞,就會很方便的用組件的方式搭建頁面。

三夕玩、規(guī)范化你弦,模塊化和組件化確定了開發(fā)模型,就需要規(guī)范去落實燎孟。

  • 目錄結(jié)構(gòu)的制定
-- src                        # 源碼目錄
   |__ index.js               # 項目入口禽作,注入store, 調(diào)用render方法
   |__ App.js       # 應(yīng)用入口,頁面整體布局揩页,處理頁面路由
   |__ App.less      # 全局共用樣式文件
   |__ theme.less      # 項目主題文件
   |__ Components
       |__ ActiveChart        # [組件ActiveChart ]
           |__ index.js       # 組件實現(xiàn)源碼文件
           |__ index.less
       |__ AxisTitle       # [組件AxisTitle]
            |__ index.js       # 組件實現(xiàn)源碼文件
            |__ index.less
   |__ routes    定義應(yīng)用的頁面容器組件                 
       |__ Cockpit              # [頁面1]
           |__ index.js       # 頁面具體業(yè)務(wù)代碼
           |__ indes.less
           |__components   頁面的私有組件
       |__ WorkSpace              # [頁面2]
             |__ index.js       # 頁面具體業(yè)務(wù)代碼
             |__ indes.less
   |__models
       |__ index.js           # 導(dǎo)出封裝后的所有store旷偿,以及初始化saga
       |__ request.js         # 封裝網(wǎng)絡(luò)請求,比如所所有的方法進行攔截(inspector)
       |__ model1            # [模塊1]store基于具體業(yè)務(wù)模塊來編寫爆侣,方便多頁面調(diào)用
           |__ actionTypes.js 
           |__ actions.js     
           |__ reducer.js    封裝業(yè)務(wù)邏輯
       |__ model2           # [模塊2]
 |__services
      |__model1.js   封裝接口請求
      |__model2.js   封裝接口請求
 |__common 公用的工具庫
      |__chartUtil
      |__arrayUtil
      |__constants
  • 編碼規(guī)范
    加入ESLint萍程,讓工具幫我們約束代碼

  • 前后端接口規(guī)范
    參考地址

  • Git分支管理
    master-作為主分支,存儲已發(fā)布版本的源碼兔仰,不能在此分支上進行開發(fā)茫负,只能合并release和hotfix分支。在master分支上構(gòu)建生產(chǎn)版本,發(fā)布完之后打包tag乎赴。
    hotfix-熱修復(fù)分支忍法,用來修復(fù)線上緊急的bug,以線上版本對應(yīng)的主分支為基礎(chǔ)新建置吓。
    test-預(yù)發(fā)布分支,也可以稱為提測分支缔赠,可以在此分支上修復(fù)bug衍锚,以develop分支為基礎(chǔ)新建或者合并develop分支。
    dev-作為開發(fā)分支嗤堰,用于匯總各feature分支戴质,只能在此分支上進行合并,不能進行開發(fā)踢匣,這個分支一般上項目負責(zé)人使用告匠。
    current feature-當前版本迭代功能的分支,業(yè)務(wù)人員均在feature分支上進行開發(fā)离唬。
    future feature-未來版本迭代功能的分支后专,比如某個非常重要的功能需要在幾個版本之后開放,且開發(fā)耗時比較長输莺,所以需要提前投入開發(fā)戚哎。如果項目中沒有類似場景,可忽略此分支嫂用。

  • Commit描述規(guī)范
    <type>(<scope>): <subject>
    <BLANK LINE>
    <body>
    <BLANK LINE>
    <footer>
    標題行: 必填, 描述主要修改類型和內(nèi)容
    主題內(nèi)容: 描述為什么修改, 做了什么樣的修改, 以及開發(fā)的思路等等
    頁腳注釋: 放 Breaking Changes 或 Closed Issues

分別由如下部分構(gòu)成:
type: commit 的類型
1.feat: 新特性
2.fix: 修改問題
3.refactor: 代碼重構(gòu)
4.docs: 文檔修改
5.style: 代碼格式修改, 注意不是 css 修改
6.test: 測試用例修改
7.chore: 其他修改, 比如構(gòu)建流程, 依賴管理.
scope: commit 影響的范圍, 比如: route, component, utils, build...
subject: commit 的概述
body: commit 具體修改內(nèi)容, 可以分為多行
footer: 一些備注, 通常是 BREAKING CHANGE 或修復(fù)的 bug 的鏈接.

  • 定期CodeReview
    定期CodReView型凳,可以保證代碼的質(zhì)量,并且發(fā)現(xiàn)一些測試人員不易發(fā)現(xiàn)的問題

四嘱函、自動化
前端工程化的很多臟活累活都應(yīng)該交給自動化工具來完成甘畅。

持續(xù)集成 將開發(fā)人員提交的代碼進行快速集成,并且實現(xiàn)自動化構(gòu)建和測試

持續(xù)交付 在持續(xù)集成的基礎(chǔ)上往弓,將集成并自動構(gòu)建疏唾、測試通過的代碼自動部署到測試或者仿真生產(chǎn)環(huán)境中。

持續(xù)部署 在持續(xù)交付的基礎(chǔ)上函似,進一步自動化槐脏,將部署生產(chǎn)環(huán)境的工作自動完成。

目前項目中使用gitlab搭配jenkins進行持續(xù)集成缴淋。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末准给,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子重抖,更是在濱河造成了極大的恐慌露氮,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钟沛,死亡現(xiàn)場離奇詭異畔规,居然都是意外死亡,警方通過查閱死者的電腦和手機恨统,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門叁扫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來三妈,“玉大人,你說我怎么就攤上這事莫绣〕肫眩” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵对室,是天一觀的道長模燥。 經(jīng)常有香客問我,道長掩宜,這世上最難降的妖魔是什么蔫骂? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮牺汤,結(jié)果婚禮上辽旋,老公的妹妹穿的比我還像新娘。我一直安慰自己檐迟,他們只是感情好补胚,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锅减,像睡著了一般糖儡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怔匣,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音桦沉,去河邊找鬼每瞒。 笑死,一個胖子當著我的面吹牛纯露,可吹牛的內(nèi)容都是我干的剿骨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼埠褪,長吁一口氣:“原來是場噩夢啊……” “哼浓利!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钞速,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤贷掖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后渴语,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苹威,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年驾凶,在試婚紗的時候發(fā)現(xiàn)自己被綠了牙甫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掷酗。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窟哺,靈堂內(nèi)的尸體忽然破棺而出泻轰,到底是詐尸還是另有隱情,我是刑警寧澤且轨,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布糕殉,位于F島的核電站,受9級特大地震影響殖告,放射性物質(zhì)發(fā)生泄漏阿蝶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一黄绩、第九天 我趴在偏房一處隱蔽的房頂上張望羡洁。 院中可真熱鬧,春花似錦爽丹、人聲如沸筑煮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽真仲。三九已至,卻和暖如春初澎,著一層夾襖步出監(jiān)牢的瞬間秸应,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工碑宴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留软啼,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓延柠,卻偏偏與公主長得像祸挪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贞间,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349