前端工程化

什么是工程化

前端工程化是指遵循一定的流程和规范,通过工具去提高效率,降低成本的一个手段。

日常开放中可能会面临的问题

  1. 想要使用 ES6+ 新特性,但是兼容有问题
  2. 想要使用 Less / Sass / PostCSS 增强 CSS 的编程性,但是运行环境不能直接支持
  3. 想要使用模块化的方式提高项目的可维护性,但运行环境不能直接支持
  4. 部署上线前需要手动压缩代码及资源文件,部署过程需要手动上传代码到服务器
  5. 多人协作开发,无法硬性统一大家的代码风格,从仓库中拉回来的代码质量无法保证
  6. 部分功能开发时需要等待后端服务接口提前完成

工程化主要解决的上述问题所代表的情况,主要为:

  1. 传统语言或语法的弊端
  2. 无法使用模块化/组件化
  3. 重复的机械工作
  4. 代码风格统一、质量保证
  5. 依赖后端服务接口支持
  6. 整体依赖后端项目

工程化的体现

一切以提高效率、降低成本、质量保证为目的的手段都属于工程化

 比如,在创建项目的过程中使用脚手架工具来完成项目基础结构的搭建,技术选型这些;开发时统一规范(代码规范、git规范、项目规范、UI规范),自动格式化代码,自动校验代码风格这些;预览环节可以使用mock数据,热更新这些;在提交环节用 git hook 自动化在代码提交之前做项目检查(质量检查,代码风格检查,git log 格式限制等)

技术选型

简单来说,三个框架选一个。可以按照以下特点来选择:

  1. 选你或团队最熟的,保证遇到棘手问题时有人能填坑
  2. 选市场占有率高的。

以下是个人私货,仅供参考:

如果对上述两条不是很苛求,那么,如果你的项目是一个对 复杂性UI 需求更大的项目的话,我建议选 react 。相对于 VUE 的模板语法,JSX 应对 复杂性UI 的场景会更舒服,本身 JSX 就更灵活,用 VUE 来应对这样的场景的话就会出现大量的 slot,写的时候一时爽,看的时候火葬场,对于新加入的员工更是如此。

反之,如果项目是个 常规性UI 或者用户会有大量 I/O 的项目的话,那就选择 VUE。VUE 的双向数据绑定比 react 的手动绑定(说的就是你 setState)要舒服太多了,不然的话就会遇到写 setState 写到想吐的情形。

至于 Angular,我只能说,个人可以学一下,写几个 DEMO 玩玩就好了,招不招到人那就是看天意。。。


统一规范

代码规范

统一代码规范的好处有以下几点:

  • 规范的代码可以促进团队合作
  • 规范的代码可以降低维护成本
  • 规范的代码有助于 code review(代码审查)
  • 养成代码规范的习惯,有助于程序员自身的成长

如何制定好的代码规范

找一份基础的代码规范,在此基础上根据团队的需求进行客制。github 上一些比较高星的规范有 Airbnb,standard 等等。CSS的规范有 styleguide 等。通过 eslint + stylelint + vscode 来检查代码规范。

git规范

git规范分 分支管理规范 和 git commit 规范,分两头说

分支管理规范

git 提供多种分支管理策略,可以根据不同的开发场景创建和合并不同的分支,如feature分支、release分支、hotfix分支等。一般情况下分主分支(master)、开发分支(develop)其他分支。成员想要开发新功能或者修改BUG时,就从 develop 开一个新分支进行开发,等开发测试都完成后,就合并进 develop,再合并进master分支。这时候有人会说,这 master 分支的作用不是跟 develop 分支的作用一样了吗?其实不然。在我看来,master 永远只存放你们需要发布的最高版本的代码,而 develop 则可以存放你们开发的最高版本。比如说,你们项目的当前版本是V1.1,那master就是存放V1.1的代码,而你们开发到V1.6甚至V2.0的代码则放在 develop,这样对于项目的线上版本的控制会比较方便。但这也只是我的一家之言,如果你们觉得你们的版本控制的方法更适合你们公司,那就用你们自己的方式。

commit规范

一句话概括,<type>[number](content)

type:此次提交的类型

  • feat: 新功能、新特性
  • fix: 修改 bug
  • perf: 更改代码,以提高性能
  • refactor: 代码重构(重构,在不影响代码内部行为、功能下的代码修改)
  • docs: 文档修改
  • style: 代码格式修改, 注意不是 css 修改(例如分号修改)
  • test: 测试用例新增、修改
  • build: 影响项目构建或依赖项修改
  • revert: 恢复上一次提交
  • ci: 持续集成相关文件修改
  • chore: 其他修改(不在上述类型中的修改)
  • release: 发布新版本
  • workflow: 工作流相关文件修改

number:对应的 bug 编号或者需求编号,也可以直接贴链接

content:对于此次提交的主题描述

举个例子

<feat>[114514]新增用户管理功能


项目规范

主要是项目文件的组织方式和命名方式。

/**
以vue举例

    |-public(公共资源,不会被 webpack 处理)
    |-src(源码)
        |-api(接口)
        |-assets(静态资源)
        |-components(公共组件)
        |-styles(公共样式)
        |-router(路由)
        |-utils(工具函数)
        |-views(页面)
    |-test(测试代码)

*/

UI规范

UI 规范需要前端、UI、产品沟通,互相商量,最后制定下来,建议使用统一的 UI 组件库。

制定 UI 规范的好处:

  • 统一页面 UI 标准,节省 UI 设计时间
  • 提高前端开发效率

接下来的测试、部署这方面就不细说了,测试的话可以用jest、jsamine、karma等,部署的话Jenkins,github actions、Travis CI 等,网上可以找到相应的配置教程。还有一个模块化跟组件化值得一提,会单独开坑。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值