零、前言

美团有乐高, 京东有通天塔,阿里有飞冰,大厂都在尝试用自动化工具减少人工,看完这一篇,考虑给你的团队搭建一套自动化开发工具吧!

一、背景

笔者所在公司并非大厂, 发现一些痛点.

1.前端研发跟随业务, 不同部门技术栈五花八门, 同岗位支援困难.( react | vue | seek.js),

2.规范不统一, 跨部门开项目, 编辑器一片红海.standard Airbnb google.

3.组件复用困难, 过程蛮荒, 开发低效.基本停留在翻项目, 找代码, ctrl + c, ctrl + v , 再一通乱改.

二、开发思路

利用基础模板 + 物料(组件) 快速生成项目, 再二次开发

笔者在写react项目时, 用过vscode的插件generateReactComponents, 感觉十分方便, 考虑能不写成一整套耦合业务的组件, 高效复用快速生成项目? 用了大概3个月的闲暇时间做出目前的工具, joao-cli, 可达到如下效果.(录制的公司内部版, 开源版指令为joao)

点击可看joao cli 官网

joao主要用于vue项目, 如果你的项目基于react实现,建议使用阿里官方维护的fusion.design,并且阿里平台已经打通了物料库与UI层.

完成一个脚手架+物料库的大体思路是:

1.首先建立一个空项目

安装部门习惯用的,UI组件库, eslint, 加上业务线自己的工具库,字体库,等等...高度耦合业务即可.

这里笔者以github上的空项目为例, 点我查看

2.建立物料库

再建立一个仓库, 开发人员均可以参与, 固定规范, 维护通用组件, 可以在笔者github项目根目录的material文件夹中查看示例.

这里是物料库,内涵官网代码+物料库代码(物料不多仅供参考)

3.完善模板拉取,物料剥离与安装的工具

这就是joao-cli做的事情, 大家可以尝试用node写一套自己的, 利用commander + git clone可以完成代码拉取,抹掉.git

拉取物料库的物料,不管是components, 还是modules, 利用node的fs进行文件读取.然后安插到新项目的指定位置, 可以通过一些占位符完成私有属性的替换,笔者这里参照vscode的generateReactComponent, 用__className__为预设占位符,替换掉了modules的name.

最后利用git的coreconfig.sparse-checkcout完成物料库指定目录的更新.

由于node内容较多, 这里不再赘述, 这里挖一个坑 以后会完成joao-cli 的node教学,代码其实很简单, 甚至可以说low, 直接看不难.

三、joao-cli一些说明.

    // 安装joao-clinpm install joao-cli -g// 初始化项目joao init// 当前物料查看joao check// 物料库更新(从github物料库拉取)joao update// 组件安装 components 在项目根目录使用joao add -c 名称A 名称B  ...// 模块安装 (页面级内容) 在项目根目录使用joao add -p 随便起个页面名
复制代码

down一个自己玩玩大概就明白怎么回事了.

四、跟阿里飞冰, 美团乐高对比分析

首先笔者在写完此工具后, 去研究了一下大厂的成品项目,

美团乐高的思路好像是跟后端一起工程化, 很棒的思路, 现在掘金也有很多面向接口编程的分析不在赘述.

阿里飞冰想做到大而全,这种工具说穿了就是复用代码, 跟技术栈没什么捆绑,飞冰搞了小程序物料,vue物料, 都是社区帮忙做的, 人多就是力量大啊,而且还用electron写了app,可以说真的想用心做大了. 但是,耦合业务还得靠自己,飞冰自己玩玩够用,中型公司还是自己搞自己的吧.

阿里fusion.design做出了笔者梦中所想,物料库打通UI层,自动生成前端代码,真的棒,可惜笔者项目组全是vue,fusion的官方拥护react, 望洋兴叹, 阿里还是高屋建瓴~.

以上都是本屌丝梦中评价, 白天不负任何责任鸭.~(@^_^@)~

五、这样开发的好与坏

1.增强项目可维护性 统一模板意味着统一技术栈, 统一规范 .

2.增加组件可用性 统一物料库意味着, 维护n套代码与维护1套的差别

3.提升开发效率, 告别复制项目删删删与复制空项目粘粘粘的劳工生涯.

坏处

笔者在自家厂子里都没推动...只能自己干活的时候暗爽...目前觉得最大坏处就是编写物料成本高,毕竟只有自己复用嘛...左手换右手索然无味...

六、碎碎念

随着年龄越来越大, 想分享的欲望也日渐消沉,给自己上次的文章打个广告吧-->像阿里PAI一样搞机器学习平台

最后, 感谢看完.

joao cli 官网

转载于:https://juejin.im/post/5ca34a2de51d4516b72d50dd

前端工程化: 脚手架+物料库快速生成新项目相关推荐

  1. 前端工程化——脚手架及自动化构建

    定义 一切以提高效率.降低成本.质量保证为目的的手段,都属于工程化 前端工程化主要解决的问题 传统语言或语法的弊端 无法使用模块化/组件化 重复性的机械工作 代码风格统一.质量保证 依赖后端服务接口的 ...

  2. 如何快速上手新项目?

    如何快速上手新项目? 我觉得可以遵循以下几个步骤: 1. 获取项目相关信息 进入一家新公司后,如果遇到不负责任的同事呢,可能直接甩给你项目地址,然后就让你自己研究了.这就好比产品经理直接甩给你一个需求 ...

  3. 研发新人如何快速熟悉新项目和业务

    进入一家新公司后,最头疼的就是如何快速了解公司的业务和项目架构. 如果碰到一个特别热心的老员工,事无巨细地给你讲,随时在你身边答疑解惑,那可能还好.但很可惜,我没有碰到这样的人,在加入新公司后,带我的 ...

  4. 程序员快速熟悉新项目和业务逻辑的技巧

    很多新人进入一家新公司后或进入一个新的项目组,最头疼的就是如何快速了解公司的业务和项目架构,或者说不要求快速,即便有足够的时间,也很难在庞大的业务中整理出思绪.当然,如果你碰到一个特别热心的老员工,事 ...

  5. 反思快速在新项目中找字段的方法

    进入新项目中,很多字段不知道去哪里找 直接navicat导出所有表的结构,也不很耗费系统资源 以后需要哪个字段,直接在结构里面搜索即可!

  6. 调用后台接口返回报错前端隐藏提示_从零开始的Android新项目9 - 前端用后台接口设计...

    这回来讲讲后台接口的设计. 可能有同学会觉得后台的接口和我们大前端开发有什么关系?试想一下,在碰到一些不合理的接口设计的时候,你们开发是否觉得很别扭--需要为了坑爹的接口写很多脏代码引坑?甚至,这么开 ...

  7. 快速生成maven项目中pom文件

    由于原项目为web项目,目前需要转换为maven项目,由于项目中存在100+的jar,手动一个个处理很麻烦,使用下方代码可自动生成pom文件. 此代码来源于其他博客,具体博客地址忘了... impor ...

  8. 新人如何快速上手新项目?

    按楼主的经验和知识,本文总结了应用开发中的各种存储架构,从易到难,从起步到起飞.如有不对之处,欢迎留言. 1.单库 最简单的初始架构,适用于千万级以下的数据,并发量低的场景. 单库.单表 或单库.多个 ...

  9. Maven 快速生成Java项目结构

    Maven使用 archetype 来创建项目.要创建一个简单的 Java 应用程序,我们使用 maven-archetype-quickstart 插件.在下面的例子中,我们将创建一个基于Maven ...

最新文章

  1. 我什么时候应该使用结构而不是类?
  2. uni上传图片跨域_uni-app的项目实践心得
  3. sublime快捷键
  4. iOS内存优化及排查方法
  5. 吴军《态度》_如何提升你的定力?
  6. 运维工程师必备技能:网络排错
  7. 基于灰度变换的图像增强
  8. 自己写的一段预测双色球号码的Java代码
  9. 为什么读书了,还不如那些初中毕业的同学
  10. 字符的用意_北辰的符号意义 阅读答案
  11. Practice 10
  12. SQLServer2008设置开启INTERNET远程连接
  13. modbus串口调试工具_用modscan测试modbus协议离散仪表数据方法
  14. Web Audio介绍
  15. 【论文翻译笔记】A Systematic Evaluation of StaticAPI-Misuse Detectors
  16. GeoServer发布矢量地图服务
  17. 计算机无法识别语音输入,我的电脑每次启动语音识别总是显示“由于语言配置不受支持,无法启动语音识别”;...
  18. 深度学习开源数据集整理
  19. BCR-ABL融合基因及检测
  20. 去水印程序源码大全源码

热门文章

  1. kali linux 2022更改国内软件源 WSL适用
  2. 在计算机中这样切换大小英语字母,英文大小写转换器在线
  3. Microsoft Visual Studio 2010
  4. 用程序解密爱因斯坦经典难题
  5. 新任技术管理者应该怎样去开始帮助他人?
  6. 求会嵌入式软件的伙伴
  7. 2021-2027全球与中国电子束源市场现状及未来发展趋势
  8. TestDirector域或工程用户的管理
  9. 前端笔试常考设计模式,操作系统,数据结构,ACM模板,经典算法,正则表达式,常用方法
  10. 视频教程-网管转行linux运维并做到运维经理经验分享-Linux