本文主要记录工作中,企业对开源项目Superset(https://github.com/apache/incubator-superset)的改进与改造,以及个人对此项目的一些总结。当然也欢迎评论、赐教,若有转载可评论或联系我。
要点如下图:
注: 上图用了processon, 未采用思维导图重画
1. 开发工作流程和基础
1.1 开发环境
local 本地,dev 开发环境,pro 生产环境;当然主要是确保上线代码后功能的正确性,所以是本地测试ok,然后提交代码上测试环境,测试主要是模拟线上,确保上线前的准确;最后上了生产也要测试,不然需要立马回滚,重新遵循本地->测试->生产
的上线流程。
多人开发,git的一些基础操作,必不可少;会有冲突,或者临时的一些hotfix等情况。
1.2 框架
Superset采用了很传统的后端模板渲染前端的做法,只有少部分前端分离,在开发中也遇到了很多问题,如下列举了一些我在公司开发过程中遇到的困难和可改进之处:
-
Flask Appbuilder
的英文文档学习不方便,使得很多前端交互优化,某些时候变得困难。 -
Flask
框架的角色管理:Admin
,Alpha
等确实提供了不少有效的权限管理,但是很多时候增改权限,容易忘记,这个也需要理解;在上线过程中,这里也犯过不少错误。 -
由于前后端不分离,导致很多时候开发比较麻烦,比如在进行性能优化上,前后端对接上。很多时候,前端需要理解不必要的后端,后端需要考虑前端,合作中沟通成本很大,也造成分工不明确,后端要写js,r