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

2019-03-16  本文已影响0人  allen_6e1c

一、模块化的目的,就是便于多人协作开发,对于项目后期便于功能的扩展和修改
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

分别由如下部分构成:
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 的链接.

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

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读