自研框架trick

1. 前端原生模块化框架,拒绝复杂工具链,要的是快速简单搞开发

         我们偏向于网页原生态开发,而并不推荐vue-cli、react-cli等脚手架工具,也没有介绍npm、路由、状态管理等一系列工具。(受到过时、淘汰、原生开发更加复杂的质疑,这些质疑源于违背了一部分人的基本认知,我们的问题不在于否定这些工具,而在于更加简单有效的解决方案。而这些简单的解决方案都汇集到自研前端原生模块化框架trick中)

2. 框架研发背景

        我们也使用过npm、脚手架、typescript、路由、状态管理等工具。

        早在2016年我们就开始使用typescript、angular2,当时这些工具只发布了几个月。之后几年间我们也调整过基础技术,尝试vue、react等全家桶。但是每个项目的结果都差不多,一开始开发较快,但一但进入优化阶段、性能调优阶段又或者需求变更阶段、ui改版时就会出现各种各样问题。很多代码都需要重写,一些问题甚至花很长时间都解决不了。

        一系列脚手架工具给前端带来更好的代码组织、开发方式的同时,也提升了学习难度。存在一大片代码盲区。而这些都会对项目造成影响,项目延期、成本超支。

        我们决定探索原生模块化框架是因为一个工程师的一句话,他说我本来就是一个搬砖的,本来完成功能就已经很赶了,还要按ui设计修改细节,加上Bug修正、功能变更。天天事情那么多,哪来时间深入学习这些工具,给你搞出来就不错了。(这提醒我们,生产就是生产,原生网页开发不是不好,只是缺少模块化的方式以及较优的代码组织方式。那么做一套这样的原生模块化框架不就好了吗)

3. Trick框架核心
3.1. 规整化工程结构
3.2. 让页面和模块分离,实现模块化
3.3. 其他事情

        比如组件工具箱,基础框架等工具都是可以自由修改替换的。我们默认采用了vue.js、Bootstrap.

        Trick工程无需复杂的环境安装。只需按照Nginx或者Apache服务即可(和普通前端原生开发一样)工程内无任何封装和不可见代码,所有的html都可打开运行。

        一个Trick工程包含三个部分。

3.3.1. 开发环境代码

        开发环境代码是开发人员编写的代码。

        其中分离了工程通用部分、页面部分、模块部分和接口请求相关部分。

        通用部分:存放主题、配置文件、图片资源、全局依赖等。

        模块部分是一个模块,模块拥有完整的html、css、Javascript空间。

        打开模块html文件即可单独运行。

        页面部分是一个个页面。页面只有三个职责,摆放模块、协调调用各个模块、以及与后端通信。

        接口请求部分是存放了多种请求相关的javascript工具方法

3.3.2. 生成环境代码

        生产环境代码是发不到服务器的代码(直接拷贝到服务器即可),生产环境是通过代码编辑器自动生成的,其实就是把开发环境的模块代码,自动拼接到页面代码中。最终的生成环境代码和纯原生开发是一样的,开发人员可直接理解或修改但一般不推荐这么做。如果搭建了Jenkins等自动发布服务,则开发人员无需关心生成环境代码。

        代码编辑器是提供一些服务的功能,如从模块库下载模块,编辑生成生产环境代码等。代码编辑器是ruby编写的,使用的话需要先按照ruby环境。Mac和linux是自带ruby环境的。当然只是修改代码的话,ruby环境是不必要的。

3.3.3. 模块开发

        这里的模块是指的是往期介绍的响应式布局中的模块城,主要是一个页面某个区域的布局。模块是独立的,可以单独运行它的html文件。我们统一了模块的编写方式和调用方式。这样有助于降低团队沟通成本,使用别人开发的模块,也不用沟通或者深入看代码。

        我们提供了官方模块库,开发人员可以直接下载。我们提供的模块是用Bootstrap和vue.js编写的。当然模块库其实就是一个git仓库。团队也可以快速搭建自己的模块库。默认情况下,我们约束单个模块在一个页面中只能被引用一次。因为我们默认模块的颗粒度是较大的。

        本人在此郑重声明,以上为本人学习时所做的笔记,如有侵权请联系删除!

        本人学习视频链接:停止重构的个人空间-停止重构个人主页-哔哩哔哩视频 (bilibili.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值