前端工程化介绍--模块化、组件化、规范化、自动化

一、模块化的目的,就是便于多人协作开发,对于项目后期便于功能的扩展和修改
1、ES6的到来,使JS可以模块化的组织代码。
2、CSS 可以使用CSS Moudle技术来模块化代码。

二、组件化的目的,就是方便把复杂的页面分割到每个组件中去实现,用分而治之的方式去解决问题。
用React视图库,就会很方便的用组件的方式搭建页面。

三、规范化,模块化和组件化确定了开发模型,就需要规范去落实。

  • 目录结构的制定
-- src                        # 源码目录
   |__ index.js               # 项目入口,注入store, 调用render方法
   |__ App.js       # 应用入口,页面整体布局,处理页面路由
   |__ App.less      # 全局共用样式文件
   |__ theme.less      # 项目主题文件
   |__ Components
       |__ ActiveChart        # [组件ActiveChart ]
           |__ index.js       # 组件实现源码文件
           |__ index.less
       |__ AxisTitle       # [组件AxisTitle]
            |__ index.js       # 组件实现源码文件
            |__ index.less
   |__ routes    定义应用的页面容器组件                 
       |__ Cockpit              # [页面1]
           |__ index.js       # 页面具体业务代码
           |__ indes.less
           |__components   页面的私有组件
       |__ WorkSpace              # [页面2]
             |__ index.js       # 页面具体业务代码
             |__ indes.less
   |__models
       |__ index.js           # 导出封装后的所有store,以及初始化saga
       |__ request.js         # 封装网络请求,比如所所有的方法进行拦截(inspector)
       |__ model1            # [模块1]store基于具体业务模块来编写,方便多页面调用
           |__ actionTypes.js 
           |__ actions.js     
           |__ reducer.js    封装业务逻辑
       |__ model2           # [模块2]
 |__services
      |__model1.js   封装接口请求
      |__model2.js   封装接口请求
 |__common 公用的工具库
      |__chartUtil
      |__arrayUtil
      |__constants
  • 编码规范
    加入ESLint,让工具帮我们约束代码

  • 前后端接口规范
    参考地址

  • Git分支管理
    master-作为主分支,存储已发布版本的源码,不能在此分支上进行开发,只能合并release和hotfix分支。在master分支上构建生产版本,发布完之后打包tag。
    hotfix-热修复分支,用来修复线上紧急的bug,以线上版本对应的主分支为基础新建。
    test-预发布分支,也可以称为提测分支,可以在此分支上修复bug,以develop分支为基础新建或者合并develop分支。
    dev-作为开发分支,用于汇总各feature分支,只能在此分支上进行合并,不能进行开发,这个分支一般上项目负责人使用。
    current feature-当前版本迭代功能的分支,业务人员均在feature分支上进行开发。
    future feature-未来版本迭代功能的分支,比如某个非常重要的功能需要在几个版本之后开放,且开发耗时比较长,所以需要提前投入开发。如果项目中没有类似场景,可忽略此分支。

  • Commit描述规范
    <type>(<scope>): <subject>
    <BLANK LINE>
    <body>
    <BLANK LINE>
    <footer>
    标题行: 必填, 描述主要修改类型和内容
    主题内容: 描述为什么修改, 做了什么样的修改, 以及开发的思路等等
    页脚注释: 放 Breaking Changes 或 Closed Issues

分别由如下部分构成:
type: commit 的类型
1.feat: 新特性
2.fix: 修改问题
3.refactor: 代码重构
4.docs: 文档修改
5.style: 代码格式修改, 注意不是 css 修改
6.test: 测试用例修改
7.chore: 其他修改, 比如构建流程, 依赖管理.
scope: commit 影响的范围, 比如: route, component, utils, build...
subject: commit 的概述
body: commit 具体修改内容, 可以分为多行
footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接.

  • 定期CodeReview
    定期CodReView,可以保证代码的质量,并且发现一些测试人员不易发现的问题

四、自动化
前端工程化的很多脏活累活都应该交给自动化工具来完成。

持续集成 将开发人员提交的代码进行快速集成,并且实现自动化构建和测试

持续交付 在持续集成的基础上,将集成并自动构建、测试通过的代码自动部署到测试或者仿真生产环境中。

持续部署 在持续交付的基础上,进一步自动化,将部署生产环境的工作自动完成。

目前项目中使用gitlab搭配jenkins进行持续集成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349