diff --git "a/\345\274\200\346\272\220\346\225\205\344\272\213/img/dolphinscheduler.png" "b/\345\274\200\346\272\220\346\225\205\344\272\213/img/dolphinscheduler.png" new file mode 100644 index 0000000000000000000000000000000000000000..58edda866281a8f24c0a7130856a2eeac326a134 Binary files /dev/null and "b/\345\274\200\346\272\220\346\225\205\344\272\213/img/dolphinscheduler.png" differ diff --git "a/\345\274\200\346\272\220\346\225\205\344\272\213/img/dss.png" "b/\345\274\200\346\272\220\346\225\205\344\272\213/img/dss.png" new file mode 100644 index 0000000000000000000000000000000000000000..318f4880a01b86bdf394ad0516c6af98785efc6a Binary files /dev/null and "b/\345\274\200\346\272\220\346\225\205\344\272\213/img/dss.png" differ diff --git "a/\345\274\200\346\272\220\346\225\205\344\272\213/img/linkis-component.png" "b/\345\274\200\346\272\220\346\225\205\344\272\213/img/linkis-component.png" new file mode 100644 index 0000000000000000000000000000000000000000..541a705883f4b30053cd4b66e11e0841a2b34599 Binary files /dev/null and "b/\345\274\200\346\272\220\346\225\205\344\272\213/img/linkis-component.png" differ diff --git "a/\345\274\200\346\272\220\346\225\205\344\272\213/img/visualis.jpg" "b/\345\274\200\346\272\220\346\225\205\344\272\213/img/visualis.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..74c52867042d7ac42a9bd933132fb066a3d3ad03 Binary files /dev/null and "b/\345\274\200\346\272\220\346\225\205\344\272\213/img/visualis.jpg" differ diff --git "a/\345\274\200\346\272\220\346\225\205\344\272\213/\345\217\202\344\270\216\345\274\200\346\272\220-\346\210\220\351\225\277\344\272\244\345\217\213\344\270\215\344\272\214\344\271\213\351\200\211.md" "b/\345\274\200\346\272\220\346\225\205\344\272\213/\345\217\202\344\270\216\345\274\200\346\272\220-\346\210\220\351\225\277\344\272\244\345\217\213\344\270\215\344\272\214\344\271\213\351\200\211.md" new file mode 100644 index 0000000000000000000000000000000000000000..c7c707fda230344a6069e173dcd94948177181b5 --- /dev/null +++ "b/\345\274\200\346\272\220\346\225\205\344\272\213/\345\217\202\344\270\216\345\274\200\346\272\220-\346\210\220\351\225\277\344\272\244\345\217\213\344\270\215\344\272\214\344\271\213\351\200\211.md" @@ -0,0 +1,61 @@ +# 开源 +`开源`总是会和`分享`,`奉献`,`利他`,`自由`这些关键词走在一起。 + +而这也是为什么一定要参与开源社区的最好说明! + +我们只有按自己的意志去参与一件事情,才能饱含激情,一路不畏艰难,并且走到最后不管结果如何都能保持心怀喜悦。 + +# 起源 +2020年由于投身大数据相关的系统建设,调度器技术选型后选择了Dolphinscheduler,数据应用集成平台选择了WeDataSphere。 + +# 参与 +* 国内社区现在真的做的挺好,github和微信机器人的webhook特别有效,社区或不活跃看每天微信动态就能知道。 +* WebDataSphere是微众开源的数据应用集成平台,系统架构超级庞大,架构也极其复杂,这样的系统不参与一下和他一起升级成长也是遗憾! +* 赞一下Dolphinscheduler社区,github actions实现CICD做的很好,对代码质量有严格控制,必须自动化的代码质量,代码风格,单元测试都跑过,且开发者人工+2过了codereview才能merge到dev分支。这样的社区不参与一下太可惜! + +于是: +* 加开发者微信群,加开发者们微信; +* 梳理系统架构,和开发者沟通确认; +* 开始关注issue,尝试提pr; +* 参与开发者社区的迭代讨论会议; + +所以按照这个流程,分别参与了[Apache Dolphinscheduler](https://github.com/apache/incubator-dolphinscheduler)社区和[WebDataSphere](https://github.com/WeBankFinTech/WeDataSphere)的社区的社区建设。 + +其中对于一个开源项目值不值得参与,应用到实际工作中,可以按自己做UML软件设计的流程来逆向分析; +* 官方功能体验:切身感受产品的用户体验 +* 社区活跃度评估:参与社区群 + * 影响后期维护难度 +* 产品架构分析:功能模块列表及模块间依赖 + * 输出产品组件图 +* 源代码分析:中粒度功能模块找到对应源码,每个模块承担的角色,确认可靠性:代码质量,注释,单元测试 +* 存储模型分析:中粗粒度分析表结构,确认每个模块对应哪些表,判断数据模型设计是否清晰, + * 输出ER图 +* 物理架构分析:粗粒度确认有哪些进程,是否有高可用,依赖哪些第三方服务,从CICD角度分析:是否支持容器化,高可用,是否容易与第三方系统集成 + * 输出部署图 +* 逻辑架构分析:细粒度梳理组件间关系,确认每个系统角色之间的依赖关系 + * 输出组件图 +* 系统核心流程分析:细粒度梳理主流程时序,状态机的梳理 + * 输出时序图 + +# 感谢 +参与过程中,特别感谢 +* WebDataSphere社区的[peacewong](https://github.com/peacewong), +所有梳理的技术架构图都帮我一一过目指正, +* Dolphin Scheduler社区的[4dailidong](https://github.com/dailidong)帮助熟悉社区,[felix-thinkingdata](https://github.com/felix-thinkingdata)帮助解决入门时的拦路虎 + +# 成长 +参与过程中 +1. 认识很多有趣的人,同行和朋友; +2. 了解其他行业/企业的代码质量,对自己当前水准也有个认知,好的赶紧学起来,烂的有时间可以参与重构; + +# 分享 +分享一点参与社区时的截图成果 +* dolphinscheduler +![dolphinscheduler](img/dolphinscheduler.png) +* dss +![dss](img/dss.png) +* linkis +![linkis-component](img/linkis-component.png) +* visualis +![visualis](img/visualis.jpg) +