美文网首页
前端工程化介绍--模块化、组件化、规范化、自动化

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

作者: allen_6e1c | 来源:发表于2019-03-16 20:48 被阅读0次

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

相关文章

  • 前端自动化构建工具,前端工程化,前端模块化,前端组件化

    前端自动化构建,前端工程化,模块化,组件化, 1:前端自动构建工具webpack等,是为了前端的规范化,模块化,提...

  • 前端项目工程化

    什么是前端工程化 前端工程化是使用软件工程的方法来解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要...

  • 前端工程化:构建、部署、灰度

    前言 前端项目的工程化,不只是对开发层面的组件化、模块化、规范化等,更涉及到构建、部署的工程化和自动化。工程化的一...

  • Web 前端工程化

    今天说一说前端的工程化,工程化大概包括模块化,组件化,自动化,规范化。在项目的启动之前,我们做好这一系列的工程...

  • TS + React 工程化实践

    1. TypeScript工程化开发 前端工程化就是通过流程规范化、标准化提升团队协作效率 通过组件化、模块化提升...

  • webpack基础笔记

    webpack基础 1.前端工程化 实际的前端开发: 模块化:(js的模块化,css的模块化,资源的模块化) 组件...

  • react

    一、 前端开发考虑的的问题1、规范化2、组件化 模块化 UI 层面 代码层面3、自动化4、性能 reac...

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

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

  • webpack最简洁版配置模板

    当前的前端开发已经工程化、自动化、组件化和模块化,所以在开发工程项目时,需要结合webpack打包工具对项目进行一...

  • 模块化、组件化、工程化

    前端工程化是一个高层次的思想,而模块化和组件化是为工程化思想下相对较具体的开发方式,因此可以简单的认为模块化和组件...

网友评论

      本文标题:前端工程化介绍--模块化、组件化、规范化、自动化

      本文链接:https://www.haomeiwen.com/subject/ekflmqtx.html