-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
易企秀H5项目架构梳理 #13
Comments
第一次重构的工作成果确实是非常让人肯定的, |
您好,请问你们的海报导出功能是如何实现的呢? |
@foroso 主要还是后端绘制的 不过目前没有完美的方案... 图片 svg 文字 字体 css 等 都有很多问题 |
@xiaoyu2er 你们现在是用chrome headless来生成图片吗?我在自己的服务器上测试使用的chrome的ppuppeteer工具,通过node跑起来后在客户端请求,同一个url用ab压测30个并发没问题,但是在项目里调用,同时用两部手机请求就会有问题,具体表现为:
测试环境如下:
在体验你们的海报导出功能时,只要1-2秒就好了,但是我这边需要5秒多,而且不稳定。想跟你们取取经,怎么优化提高截图的性能。这个也是困扰我很久了 |
@foroso 你加我微信吧 zongyanqi |
@xiaoyu2er 您好 请问易企秀微信网页中是 按照什么比例设计的? |
回顾
在上一篇易企秀H5项目重构总结 中, 笔者详细记录了重构项目的缘由, 技术选型及实践, 灰度及 bug 修复, 编辑器功能边界划分及模块化实践, code review 实践 及 总结.
距离上次总结已经过去了一年的时间, 在这段时期, 笔者又基于当初的项目架构, 横向扩展了 wap 编辑器和 混合模式编辑器, 其中 wap 编辑器在线上正常运营, 而混合模式则碰到了很多技术瓶颈, 虽达到测试上线标准, 但是最终夭折腹中, 没有正式上线; 除此之外, 我与明纯 共同重构了另外一项复杂业务: 组合, 图层和功能模板. 最近, 有关组合, 图层的设计和一些复杂的算法明纯会在他的博客分享, 敬请期待 :D
上图为 wap 编辑器
上图是组合的操作
回过头看上一篇总结, 有些思想和方法是非常具有前瞻性的, 有些决定则看起来缺乏魄力, 显得略显保守. 接下来, 笔者将会就第一次重构进行复盘, 对目前项目的构建过程, 核心组件库, 编辑器架构等方面做最后一次易企秀 H5 项目的架构梳理.
第一次重构复盘
第一次重构的正确选择:
第一次重构时保守的选择:
重新来过, 有哪些可以做的更好
架构梳理
构建方案
编辑器构建方案
所有编辑器都是相对独立的单页 app, 使用 webpack 进行构建
H5 预览构建方案
H5 浏览项目构建流程相对复杂, 采取 webpack 处理程序逻辑打包 + gulp 处理流程 的方式 进行构建
项目梳理
目录结构梳理
Core 核心组件库
核心组件库维护了所有易企秀H5的所有核心组件及其内在逻辑
核心类及继承关系
辅助类
H5 预览流程梳理
view预览步骤
易企秀 JavaScript 风格指南
编辑器架构
参考 易企秀H5项目重构总结 编辑器功能边界划分及模块化实践, 核心思想并未发生变化, 摘录如下
编辑器理念
为了保证编辑器和预览时组件渲染一致, 编辑器将所有和渲染相关的逻辑全部交由组件库.
笔者考虑到未来的团队合作, 希望尽早开始模块化的尝试, 参考了以下文章
Angular 1.x和ES6的结合 xufei/blog#29 Angular 1.x和ES6的结合
Angular1.x + ES6 开发风格指南 kuitos/kuitos.github.io#34 Angular1.x + ES6
笔者决定, 升级 ng1.2 至 1.5. 整个项目采用 ES6 + (webpack + gulp)+ 全指令的形式进行模块化的重构.
经过项目拆分, 笔者划定了项目的整个边界
包括 模板, 素材, 页面管理, 编辑, 场景设置, 设计师功能等.
其中涉及到编辑组件的功能边界如下
编辑器基本框架如下
编辑区基本框架如下
一个典型的模块及子模块(样式编辑-触发)的代码组织如下
后记
从2016年6月开始, 整个项目规模已经达到20w 行代码的规模, 作为易企秀的核心业务, 日 pv 稳定在1亿左右, 是个非常值得骄傲的成绩.
自2017年1月开始, 整个项目就按照当初设想的那样, core+多编辑器实例, 没有太大的变化, 至此笔者有些欣慰, 也有些忧伤.
欣慰的是一年多前的重构架构可以支撑后来一年的迭代, 说明笔者架构的整体思路没有太大问题. 忧伤的也正在此, 笔者知道, 这个架构还远远不够, 还有很多地方可以优化调整. 然而并没有很多大的改动.
当你看到这篇文章时, 笔者已经离开易企秀了, 希望后继者可以提出更加健壮的方案, 助力易企秀再上新台阶.
送给自己的话
在天地之间找一个自己的位置
The text was updated successfully, but these errors were encountered: