1.分布式链路追踪 SkyWalking 源码分析 —— DataCarrier 异步处理库
2.bpmn-js 交流群附属资料(文档及开源库)
3.基于FastGPT和芋道源码挑战一句话生成代码
4.用了这么久 IDEA,芋道源码源你竟然不知道有个功能叫自动补全!源道源
分布式链路追踪 SkyWalking 源码分析 —— DataCarrier 异步处理库
本文基于 SkyWalking 3.2.6 正式版,主要分享 SkyWalking Collector Remote 远程通信服务,析下用于 Collector 集群内部通信。载芋Remote Module 应用于 SkyWalking 架构中,芋道源码源素火源码实现跨节点的源道源流式处理。
本文从接口到实现顺序解析 SkyWalking Collector Remote 的码解码资项目结构和组件,包括 RemoteModule、析下RemoteSenderService、载芋RemoteClientService、芋道源码源RemoteClient、源道源CommonRemoteDataRegisterService、码解码资RemoteDataRegisterService、析下RemoteDataIDGetter、载芋RemoteDataInstanceCreatorGetter、RemoteSerializeService、RemoteDeserializeService。淘宝瀑布流源码RemoteModule 实现 Module 抽象类,定义服务如 RemoteSenderService、RemoteDataRegisterService,创建 RemoteClient 实现远程通信。CommonRemoteDataRegisterService 用于注册数据类型对应的远程数据创建器和获取数据协议编号。
接着,本文深入探讨基于 Google gRPC 的远程通信实现,包括 RemoteModuleGRPCProvider、GRPCRemoteSenderService、GRPCRemoteClientService、GRPCRemoteClient、RemoteCommonServiceHandler、GRPCRemoteSerializeService、GRPCRemoteDeserializeService。RemoteModuleGRPCProvider 提供基于 gRPC 的组件服务实现类,实现远程发送服务、客户端选择器和远程客户端服务。淘口令导航源码GRPCRemoteClient 实现基于 gRPC 的远程客户端,支持异步发送消息。
最后,本文提及 SkyWalking Collector Remote 也支持基于 Kafka 的远程通信实现,但目前暂未完成。为了进一步学习 SkyWalking 的分布式链路追踪和远程通信机制,读者可以关注公众号芋道源码,获取 Java 源码解析、原理讲解、面试题、学习指南,回复「书籍」领取 Java 从入门到架构的 本书籍,加入技术群讨论 Java、后端、架构相关技术。
bpmn-js 交流群附属资料(文档及开源库)
目前成都的"小学生"大佬和作者共同开发了 Flowable 流程引擎组件,其中包含了前端设计器和后端流程引擎。内涵段子源码程序
该组件与 Flowable 流程引擎深度结合,针对实际业务场景和使用方式,对属性编辑面板进行了重新设计,提升了用户体验。新增了符合业务场景的流程校验与进度预览功能,引入了富文本编辑器和代码编辑器。结合后端引擎,可以直接嵌入系统中使用。
详情请访问:bpmport.com/products。
设计器预览:
1. 编辑器:[designer](designer.bpmport.com/de...)
2. 预览与模拟:[viewer](designer.bpmport.com/vi...)
3. DMN决策设计器:[dmn](designer.bpmport.com/dm...)
一、bpmn-js 中文文档
以下是社区开发者提供和编写的文档,暂无官方中、英文文档。
1. 霖呆呆 - 全网最详bpmn.js中文教材/文档
bpmn-js 中国区启蒙导师~ 多种自定义组件讲解
github.com/LinDaiDai/bp...
juejin.cn/post/...
2. MiyueFE - bpmn.js 中文进阶专栏
需要了解部分源码,文章稍微枯燥,内容丰富
juejin.cn/column/...
3. 选型建议(logicflow,bpmn-js)
具有少量个人倾向
juejin.cn/post/...
4. 运维咖啡吧
稍微基础,wy网络验证源码有部分API说明
blog.ops-coffee.cn/bpmn
5. YuJianghao(GitHub)
刚刚开始的源码解析
yujianghao.github.io/bp...
6. 官方论坛(英文,支持 GitHub 登录和订阅)
forum.bpmn.io/
二、bpmn-js 改造开源案例
仅编辑器部分
1. 官方案例
github.com/bpmn-io/bpmn...
demo.bpmn.io/s/start
2. MiyueFE
两个开源版本,有细节不够完美,但已经有多个团队和公司基于此项目进行二次开发,例如若依、橙单等
(Vue2 + js):github.com/miyuesc/bpmn...
(Vue3 + ts):github.com/moon-studio/...
三、仿钉钉风格流程编辑器开源案例
1. 蔡晓峰(Vue3 完整版):支持侧边栏配置与流程编辑
钉钉风格,配置较丰富,可结合后端项目进行 json 通信与 xml 转换
gitee.com/cai_xiao_feng...
2. 蔡晓峰(仿钉钉JSON转XML,Java端)
gitee.com/cai_xiao_feng...
3. MiyueFE(Vue3 基础示例):最基础的流程配置
没有实现侧边栏,需要自己实现;通过链表结构实现顺序固定
miyuesc.github.io/usefu...
四、admin system 系统开源案例
包含完整的后台管理系统模板
1. 蒜蓉辣椒酱(Vue3 + ts + flowable)
gitee.com/L1yp/van
2. cto-kevin(Vue3 + ts + camunda)
gitee.com/ctokevin/vue-...
3. 芋道源码(若依Pro)(Vue3/2 + ts/js + flowable)
gitee.com/zhijiantianya...
五、bpmn-js 开源工具仓库
1. 自动布局(官方,不支持泳道等)
github.com/bpmn-io/bpmn...
2. 自动布局(开发者修复案例,不支持泳道等)
github.com/marstamm/bpm...
3. 适配缩放的自定义配置网格背景(MiyueFE)
github.com/miyuesc/diag...
4. 支持官方 camunda 与 zeebe 引擎的属性面板汉化(MiyueFE)
GitHub - miyuesc/bpmn-js-in-zh: Chinese internationalization resources for bpmn-js
5. 更美观的上下文菜单(MiyueFE)
github.com/miyuesc/diag...
六、闭源项目
1. MiyueFE (Vue3 + ts) 多个自定义功能实现
实现了垂直泳道、多种自定义、activiti、flowable、camunda 三种流程引擎的属性配置;好东西,就是没开源。。。
vue-bpmn-process-designer.vercel.app
七、其他相关项目
1. didi/logic-flow - 专注于业务自定义的流程图编辑框架
github.com/didi/LogicFl...
2. didi/epage - 一款基于schema的可视化页面配置工具
github.com/didi/epage
3. FormMaking - 基于Vue的可视化表单设计器
github.com/GavinZhulei/...
基于FastGPT和芋道源码挑战一句话生成代码
芋道源码在编程社区中广为人知,为了解决代码生成问题,我们尝试通过FastGPT实现芋道框架的自动化代码生成。芋道的代码生成功能依赖于数据库表字段,因此,我们的目标在于借助GPT技术自动生成数据库表结构。一旦数据库表结构确定,相应的代码便能随之生成。实现这一需求的关键在于利用FastGPT的高级编排功能。编排的核心逻辑如下:
首先,通过FastGPT的高级编排,我们设计了一个流程,用于解析数据库表字段。这个流程可以接收数据库表字段信息作为输入,然后利用GPT模型生成相应的代码模板。这样的设计使得生成的代码高度符合数据库表的结构,从而保证了代码的准确性和可用性。
接下来,我们构建了一个示例,展示了如何使用FastGPT与芋道源码结合生成自定义接口。在示例中,我们首先定义了数据库表结构,然后利用FastGPT的解析功能将其转化为代码生成的输入数据。通过GPT模型,我们生成了符合数据库表结构的自定义接口代码。这个过程不仅简化了代码开发流程,也极大地提高了代码生成的效率。
通过将FastGPT与芋道源码相结合,我们不仅实现了数据库表结构到代码的自动化生成,还为开发者提供了一种高效、便捷的编程方式。这种方法不仅能够显著提升开发效率,还能够确保生成的代码质量,为开发者节省了大量时间和精力。在未来,随着FastGPT功能的进一步优化,我们期待它在代码生成领域的应用能取得更大的突破。
用了这么久 IDEA,你竟然不知道有个功能叫自动补全!
IDEA 隐藏着一个强大功能,即后缀补全,许多开发者竟不知其妙用,仍手动敲代码。此功能通过代码补全实现模板式补全,如遍历循环(for、foreach)、String.format()字符串包裹、类型转化表达式包裹、根据条件生成 if 语句、使用 instanceOf 生成分支判断语句等。 使用方法简单,只需在表达式后输入点号 .,接着输入提示或选择候选,常见候选配有 GIF 动画示例。操作如下:var 声明
null 判空
notnull 判非空
nn 判非空
for 遍历
fori 带索引的遍历
not 取反
if 条件判断
cast 强转
return 返回值
通过这一功能,开发者可大大提升编码效率,减少错误,实现更高效编程。了解更多知识,欢迎关注微信号(ID:芋道源码),获取Java源码解析、原理讲解、面试题、学习指南。回复书籍可获取本Java从入门到架构推荐书籍,技术群则可加入Java、后端、架构专业讨论群。快来提升技能,加入编程大家庭吧!