大家好,我是立东,一名专注于 Java 与 Vue 技术栈的全栈工程师。我长期深耕于工作流业务领域,积累了丰富的实战经验。
从 2023 年到 2025 年,我陆续开源了多个与工作流相关的核心项目,包括:
- 工作流设计器
- 工作流引擎
- 工作流管理系统
- mldong快速开发框架
这些项目旨在帮助开发者更高效地构建复杂业务流程系统,提升开发效率与系统可维护性。
此外,我也在 B 站持续分享技术成长之路,至今已发布超过 600+ 个免费教学视频,并推出了 10 余门付费课程,覆盖后端开发、前端进阶、系统设计等多个方向。
欢迎访问我的个人网站了解更多信息:
🔗 www.mldong.com
也欢迎关注我的 B 站主页,一起学习、共同进步:
🔗 space.bilibili.com/1395438398
第一阶段:初识全栈 —— 技术起点与方向选择
编程入门经历
我于2012年步入大学,就读于广西大学_计算机科学与技术_,选择进入这个行业其实并没有太多曲折的故事,更多是一种顺其自然的选择,当然也不乏一点“运气”的成分。相比大多数同学在入学后才第一次接触编程,我算是幸运地提前迈出了第一步。
我是在广西大学就读期间接触到编程的。当时学校里有一个名为“空谷校园网”的学生社团,它是一个专注于校园网站建设与运营的学生组织。我在大一就加入了这个社团的技术部,主要负责网站的技术支持与前端开发相关的工作。
在那里,我第一次接触到了网页设计,也就是现在所说的前端开发。从最初的 HTML 和 CSS 到后来尝试使用 JavaScript 实现交互效果,我在实践中逐渐建立起对编程的兴趣与理解。那段边做项目、边学习的日子虽然稚嫩,但充满热情,也为我日后走上全栈开发之路打下了坚实的基础。
更特别的是,在这个团队中还有一种独特的“传承”机制:大一的时候是由大二的学长手把手地带我们入门;等我们升入大二,就开始带着新的大一同学一起做项目。这种“一边自学提高,一边教学输出”的模式,让我很早就意识到“讲清楚”比“自己懂”更难,也更有价值。
正是在这样的环境中,我不仅提升了技术水平,也开始锻炼沟通能力和项目协作能力。这种早期的教学经历,为我后来在 B 站持续进行技术分享埋下了种子。
为何选择Java与Vue
其实说到为什么选择 Java 和 Vue 这两个技术栈,倒没有什么特别“高大上”的理由,更多是顺势而为、按需学习的结果。
Java 是我们大二时的一门专业必修课。在那之前,我已经有了一些前端开发的基础,算是“能写出像样页面”的水平。但对后端,说实话,那时还是一头雾水,完全没概念。所以当得知 Java 可以用来做后端开发时,我对这门课程就格外重视,学得也非常认真。
后来,随着项目经验的积累,Java 逐渐成了我后端技术的主力语言。特别是在大学期间,我们主要使用的是 JSP 和 Freemarker 这类传统的模板渲染方式,前后端并没有真正分离。当时我还挺擅长用这些技术做出完整的功能模块,甚至可以独立完成一个小系统的开发。
真正让我接触到“前后端分离”这个概念,是在毕业前的 2016 年。那时候我才第一次听说 Vue.js。坦白说,刚接触的时候对它的理解也不深,只是觉得这种数据驱动的方式比传统的 DOM 操作要优雅很多。
随着对 Vue 的深入学习,我也逐渐意识到前后端分离所带来的优势:更高的协作效率、更好的可维护性、更清晰的职责划分……于是,我的技术栈也开始从传统的 JSP + Java 转向现代的 Java(Spring Boot)+ Vue 的组合模式。
这并不是一个突然的转变,而是一个自然而然的演进过程。也正是在这个过程中,我逐步形成了自己的全栈开发思维,开始关注前后端协同、接口设计、系统架构等更高层次的问题。
初期的学习路径与踩坑经历
毕业后我选择留在南宁这座二线城市工作,并没有像很多人那样奔赴一线“深造”。而且说实话,我也没有真正参与过什么“大型项目”,但为什么现在看起来好像经验还挺丰富的呢?
我想,可能是因为我接触的项目类型多、涉及的业务场景也比较广。正是在这样一个不断尝试、持续积累的过程中,我的技术视野和实战能力逐步得到了提升。
刚入行的时候,我接触的第一个方向是内容管理系统(CMS),这让我对网站搭建的整套流程有了非常清晰的认识。从需求分析、页面设计到功能开发、部署上线,我都亲历亲为,打下了不错的全栈基础。
之后陆续参与的项目大多以管理类系统为主,这类系统虽然不算“高并发”,但胜在业务复杂、流程多变,对前后端协同开发、权限控制、数据建模等方面都有一定的挑战性。
直到后来接触到工作流引擎,我才真正开始深入思考流程自动化、状态流转、任务分配等核心问题。也正是这些积累,促使我后来写下了关于工作流引擎的一系列文章、视频,并最终决定开源自己的工作流项目。
当然,除了这些,我也做过公众号开发、小程序、甚至是移动端 App,商城、订单、支付等常见业务场景也都一一接触过。虽然不是每个领域都做到极致深入,但这些经历让我具备了快速理解业务、灵活应对变化的能力。
总的来说,我的学习路径并不算“科班式”的进阶,更像是在各种项目中摸爬滚打出来的“野蛮生长”。过程中踩了不少坑,但也因此收获了宝贵的经验。
第二阶段:技术深耕 —— 构建能力模型与实战积累
全栈能力的理解
我对“全栈能力”的理解其实很简单:当你脱离了公司、平台的支持,是否还能独立完成一个产品的设计、研发、部署与上线全流程?
很多人说“全栈”就是前后端都会写,但我觉得这还不够。真正的全栈,是哪怕没人配合你,你也能一个人把事儿从头做到尾。
说得通俗一点,就是:“被扔到荒岛上也能搭个网站。”
这种能力不是为了炫技,而是为了不被限制。你不需要在每个领域都成为专家,但你得知道整个链条是怎么跑通的——前端怎么调后端接口、数据库怎么建模、服务器怎么配、域名怎么绑定……这些事情你都得能自己搞定。
这并不意味着你要一个人干掉整个团队的活,而是你在没有现成框架或成熟平台支持的情况下,依然能用有限的技术手段把事情做成。
对我来说,这种“闭环能力”是在一次次独立开发项目中慢慢培养出来的。那些年我既是产品经理、又是UI设计师;既要写代码,又要配服务器……虽然累,但也正是这些经历让我建立起了一种“端到端”的思维方式。
现在回头看,全栈不是一种技术标签,而是一种解决问题的能力。别人问我会什么?我说我就是那种“能从0到1把产品做出来的人”。
核心技能的构建(前端、后端、部署、运维等)
谈到全栈工程师的核心技能,很多人可能会首先想到具体的技能点:前端框架是否熟练?后端架构设计能力如何?数据库管理、系统部署与运维又掌握到什么程度?然而,真正的核心在于能否独立完成一个产品从概念到上线的全过程。
以“从0到1把产品做出来”为目标,这种导向性学习方式会自然地促使你掌握所需的各项技能。举例来说,在开发一个管理系统时,你需要设计用户界面,这就要求你熟悉前端技术如Vue.js或React。同时,为了处理用户的登录、数据展示和权限控制等功能,你还需要掌握后端开发,例如使用Spring Boot或Node.js来实现API接口。
随着项目的推进,当你准备将产品上线时,新的挑战随之而来:服务器的选择与配置、域名解析、Nginx反向代理设置以及Docker容器化部署等都是必须面对的问题。此时,你会发现自己不得不深入学习Linux命令行操作、CI/CD流水线搭建以及性能调优等运维相关知识。
因此,所谓的“全栈技能树”,并不是通过孤立地记忆知识点而形成的,而是在解决实际问题的过程中逐步积累起来的。每一个新问题的解决,都意味着你在某一领域的能力得到了提升。这一过程不仅提高了学习效率,还使得所学知识能够在实践中得到验证和巩固。
这正是全栈工程师成长的真实路径:在实践中构建知识体系,在需求中驱动技术深度。最终,你能够独立承担起一个项目的所有环节,成为一个真正意义上的“能落地”的开发者。
工作流系统的开发历程与技术难点
市面上的工作流引擎并不少,比如 Activiti、Flowable 等,它们功能强大但相对“重量级”,在修改和扩展上并不够灵活。也正是出于这样的痛点,我后来接触到了 Snakerflow,一个轻量且可定制性较强的工作流引擎,也成为我前几年主要使用的技术方案。
不过,Snakerflow 自 2016 年后就停止了更新,缺乏后续维护。这也促使我在近两年开始思考:是否可以基于它的设计理念,进行一次重构,并以开源的形式持续迭代?
于是,我开始了尝试——从最初的流程设计器入手,逐步构建出一套完整的工作流管理系统。最终,这个项目不仅成功落地,也获得了社区的认可,在码云(Gitee)平台上的 star 数已超过 9.8k。
整个项目的起点,其实是一系列名为《工作流引擎设计与实现》的 32 篇原创技术文章。这些文章详细记录了我对工作流系统的设计思路与实现过程,而文章中所附的源码,也逐渐演变成了我工作流引擎的核心部分。
随后,我把这套引擎集成进了我自己的快速开发框架 mldong 中,并在后续版本中不断打磨和优化,提升其稳定性、易用性和扩展能力。
值得一提的是,我的工作流引擎并没有作为一个独立项目单独维护,而是作为 mldong 快速开发框架 的一部分持续演进。这种集成方式,既保证了功能之间的高度协同,也降低了开发者的学习和使用成本。
第三阶段:项目沉淀 —— 开源与社区影响
开源项目的动机与过程
最开始,我并没有想过要开源一个工作流引擎或者快速开发框架。我只是出于技术总结和分享的目的,写了《工作流引擎设计与实现》这一个系列的文章,一共32篇。这些文章记录了我对工作流系统从零开始的设计思路和实现过程。
但写着写着我发现一个问题:纯文字的形式很难把流程设计、任务处理、审批流转等核心功能讲清楚。虽然我能写明白每一行代码的逻辑,但读者理解起来仍然存在门槛。
于是我就在想:如果能把这些功能用一个完整的项目呈现出来,是不是会更有助于大家理解和学习?
就这样,我萌生了一个想法——做一个具备完整工作流功能的快速开发框架。这样一来,像流程设计、流程定义、发起流程、我的流程、我的待办、我的已办、我的抄送等关键功能,就能以可视化的形式直观展示出来。
这个想法最终促成了 mldong 快速开发框架中的工作流模块诞生。
值得一提的是,在选择基础框架时,我并没有采用若依(RuoYi)这类已有开源方案,因为我本身就已经有一套类似的开发框架,只是之前从未对外公开。这次借着工作流开源的机会,我也将这套框架一并进行了整理和开源。
这种“边写边做、边做边开”的方式,让整个开源过程显得自然且有条不紊。它不是一次刻意的策划,而是一个水到渠成的结果。
- 开源并非最初目标,而是源于知识传播的需求;
- 从文字表达转向工程落地,提升学习效率;
- 框架自主开发,非依赖现有开源方案;
- 整个开源过程是“写作 → 实践 → 共享”的良性循环
社区反馈与持续迭代
说实话,这个项目的社区反馈并不多——无论是 Issues 还是 Pull Request 都相对安静。
一开始我还挺纳闷:是不是我写得不够好?还是项目关注度不高?
后来我想明白了,可能有两个原因:
- 一是我在《工作流引擎设计与实现》系列文章里已经讲得太清楚了,读者看懂之后能直接上手使用;
- 二是整个代码结构和命名规范做得比较到位,降低了理解门槛,也让开发者更容易自行扩展。
总之,用户用得顺,自然也就没什么问题要提。
那项目是怎么持续迭代的呢?
其实主要靠我自己在公司项目中的实战打磨。每次遇到新场景、新需求,我都会思考:这个功能是否具有通用性?能不能集成到框架中去?
于是就这样一边开发业务系统,一边反哺开源项目,不断优化流程引擎、完善管理界面、增强易用性。
这种“以用促建”的方式,让我在不依赖外部反馈的情况下,也能保持项目的生命力和成长性。
对技术生态的贡献
作为一名持续输出的技术爱好者,我在推进 mldong 快速开发框架演进的同时,也在多个方向上为技术社区做出了自己的贡献。这些贡献不仅体现在代码层面,还延伸到了知识传播、跨语言实践以及开发者教育等多个方面。
1. 推动流程设计器开源共建
我基于 LogicFlow 开源了一款适配 Snakerflow 的流程设计器,并录制了《基于LogicFlow的工作流设计器开发最佳实践》系列课程。该课程帮助开发者掌握流程设计的核心思想,产出的新版开源设计器代码规范、扩展性强,进一步丰富了国内低门槛流程设计工具的选择。
2. 深化前端快速开发体系建设
在前端领域,我主导将快速开发框架升级为 Vben5(Ant Design Vue 版),并在其中实现了工作流管理模块的高度可扩展架构。虽然整个工作流系统尚未完全开源,但已开源了系统管理模块和元数据管理模块,供开发者参考学习和集成使用。
同时,我还推出了多门相关课程:
- 《Vben5快速入门·Ant Design版》
- 《从0~1搭建前端快速开发框架VbenAdmin篇》
这些课程帮助更多开发者掌握现代化前端工程化实践。
3. 实现跨语言技术沉淀
为了验证技术理念的普适性,我将其拓展到了不同语言生态中:
- 推出了 mldong-python 版本,采用 Flask 实现,并发布了《工作流引擎设计与实现(Python 版)》系列文章;
- 完成了 Python 版本的工作流管理系统,验证了跨语言复用的可能性。
这不仅拓宽了我的技术视野,也为 Python 社区提供了新的参考样本。
4. 构建全栈快速开发知识体系
围绕“从0到1搭建快速开发框架”的主题,我推出了一系列实战课程,覆盖主流后端语言和开发模式:
- 《从0~1搭建SpringBoot快速开发框架》
- 《从0~1搭建GoFrame快速开发框架》
- 《从0~1搭建NestJS快速开发框架》
这些课程以“手把手实操+原理讲解”的方式,帮助开发者建立起完整的全栈开发能力,提升他们的工程化思维与落地效率。
5. 打造工作流方向完整学习路径
为了让更多人理解并掌握工作流系统的底层逻辑,我不仅开源了项目,还配套整理出一套完整的学习路径:
- 连载文章《工作流引擎设计与实现》(32篇)
- 视频课程《全栈工程师带你从0~1设计实现轻量级工作流引擎》
- 多语言版本对照实现(Java / Python)
这套体系让初学者可以从理论到实践,逐步掌握流程设计、任务流转、权限控制等核心概念,最终具备独立开发工作流系统的能力。
第四阶段:知识分享 —— 从写代码到教别人写代码
开始做视频的契机
2020年5月2日,我在掘金平台上发布了人生中的第一篇技术文章。那时候的我,并没有太多“知识分享”的宏大目标,只是单纯地想把学习过程中的一些思考和经验记录下来,方便日后回顾。
随着时间的推移,我发现写作虽然能很好地梳理思路,但在表达一些具体操作、流程演示和技术细节时,还是存在一定的局限性。很多东西光靠文字描述,读者理解起来依然有门槛。
于是,在2021年8月1日,我决定迈出新的一步——将内容形式从文字扩展到视频,并在 B 站上传了我的第一个教学视频。这个决定的背后,主要有两个原因:
- 一是视频可以更直观地展示技术细节,比如代码调试、界面操作、流程演示等,能让观众更容易看懂、跟着做;
- 二是视频形式更利于互动与反馈,观众可以通过弹幕、评论等方式实时交流,这种即时性的互动感是文字所难以替代的。
就这样,我正式开启了“写文章 + 录制视频”双线输出的技术分享之路。
教学对技术理解的提升
我现在录制的很多课程,其实都是基于我过去积累的实际项目经验。正因为真正用这些技术做过项目,我才敢直接打开录屏软件,几乎不需要专门备课。
那这些经验是怎么来的呢?很简单——我是先用了,才敢讲。
比如我要录《VbenAdmin 快速开发框架》的课程,那一定是我在实际项目中已经使用过 VbenAdmin;同样地,当我讲解 Vben5 的时候,也是因为我已经在生产环境中验证过它的能力。
而对于像 NestJS、GoFrame 这些跨语言的技术栈,虽然我不是一开始就熟悉,但我也能做到“现学现教”。为什么?因为我已经有了一套自己的快速开发思维模型 —— 来自于我对 mldong 快速开发框架 的长期打磨和沉淀。
这套思维模型让我能够快速抓住一个框架的核心结构和设计逻辑,从而在短时间内掌握并输出成系统化的教学内容。这不仅提升了我的学习效率,也反过来加深了我对各类技术底层原理的理解。
换句话说,教别人的过程,其实是在逼自己把模糊的理解变得清晰、把零散的知识变成体系。
教学不是单向输出,而是双向成长。
内容创作带来的成长与收获
从开始写作到录制视频,再到持续输出课程,内容创作已经成为我技术成长的重要推动力。而在这个过程中,我也收获了许多意料之外的成果。
- 技术视野的拓宽
持续输出倒逼深入学习。为了讲清楚一个知识点,我需要把模糊的地方彻底理清,这个过程让我对技术的理解更加系统和深入。尤其是在讲解不同框架(如 NestJS、GoFrame)时,我不仅掌握了它们的设计理念,还反向提升了自己在 Java 领域的认知。 - 结识志同道合的朋友
通过文章评论、B站弹幕、课程交流群等方式,我认识了一大批热爱技术、愿意分享的朋友。大家彼此交流经验、互相启发,这种社区氛围让我觉得做技术是一件很温暖的事情。 - 粉丝的增长与认可
一路走来,我的内容也逐渐积累了一批忠实的读者和观众。他们中有人跟着我学搭建框架,有人用我开源的项目落地业务,还有人主动参与贡献代码。这些反馈让我感受到坚持输出的价值。 - 内容变现的初步尝试
随着内容质量的提升和粉丝基础的扩大,我也开始探索内容变现的路径:
总结与展望
对未来的规划
说实话,我现在才刚刚起步。技术这条路,越走越觉得“活到老,学到老”这句话真不是客套话。虽然我已经输出了不少内容,从文章到视频,再到开源项目和课程体系,但这些只是我技术旅程的一个开始。
一直以来,我的内容更多是出于热爱和分享的心态在坚持,并没有做过太多主动推广。现在回头看,其实很多作品已经具备不错的传播价值,只是缺乏一个更系统的表达和展示平台。
所以接下来,我希望通过自媒体的方式,更好地梳理和推广自己的作品:
- 将已有内容进行系统化整理,打造更具结构化的学习路径;
- 借助 B 站、公众号、掘金、知乎等多个平台扩大影响力;
- 探索更多形式的内容输出,比如直播答疑、实战项目拆解、知识星球等;
- 同时也希望通过技术分享,影响更多刚入门的同学少走弯路,更快成长。
我不是大厂背景出身,也没有特别耀眼的履历,但我相信一点:只要持续输出有价值的内容,就一定能被看见。
未来,我会继续在这条路上走下去,边学边教,边做边分享
给读者的鼓励与建议
说实话,我也不确定自己能不能给出什么“高明”的建议。毕竟每个人的成长路径都不一样,我也还在不断摸索的路上。但如果非要说一点经验之谈,那就是:
万事开头难,但别怕开始。
学习这件事,从来不是等你准备好了才开始,而是开始了才能慢慢准备好。遇到不懂的地方就查资料、写代码、动手试,不要停留在“想学”阶段,而要尽快进入“在学”状态。
执行力真的很重要。很多人卡在“要不要学”、“从哪开始学”,其实答案很简单——现在就开始,边做边调整。
如果你的技术路线和我比较相似(前端+后端+全栈方向),那我的视频课程或许可以帮你少走一些弯路。我讲的内容覆盖了主流前后端技术栈,也有从零搭建框架、集成工作流系统的实战经验,适合希望系统性提升工程能力的同学。
当然,最重要的还是你自己愿意迈出第一步,并坚持走下去。