为 “醋” 包 “饺子”:图形化编程桌面的诞生之旅

简介: 本文介绍了一家专注无人仓业务软件的公司,为解决低代码、零代码平台后端代码难读的问题,历经三年自主研发图形化编程桌面的过程。通过精心设计“饺子馅”并采用树形结构替代传统流程图,最终推出的产品在多个项目中取得了良好效果,并于今年9月上线官网,期待用户反馈。

导读:
本文讲述了一家专注于无人仓业务软件产品的公司,为解决低代码平台、零代码平台中后端业务代码难以阅读的问题,开启了一场创新探索之旅。从 19 年项目中遭遇的困境引出问题,经过团队头脑风暴,确定以图形化编程为方向。详细介绍了自主研发图形化编程桌面的过程,包括 “饺子皮” 选用成熟低零代码平台,“饺子馅” 的精心设计及遇到的难题与解决方案,如采用树形结构替代传统流程图等。历经三年努力推出产品,并在多个项目中取得良好效果,今年 9月官网上线,期待大家提出宝贵意见。

正文:

在软件编程的世界里,我们常常会为了一个难题而绞尽脑汁,就如同为了一口醋,努力去包一顿饺子。而今天,我要讲述的就是我们公司为了解决低代码平台、零代码平台中后端业务代码难以阅读的问题,所经历的一场独特而精彩的探索之旅。

我们公司多年来专注于无人仓业务软件产品,为 AGV 厂家做配套。这本是一条安稳的发展之路,无需在激烈的 To B 市场中拼杀,也无需过多操心商务事宜。看着挺美是不是?
image.png
然而,问题总是在不经意间出现。
回忆起 19 年的那个项目,印象深刻至极。当时为一家大型物流公司做无人仓系统,这还只是个定制化项目。可就在上线阶段,项目团队的核心成员生病了,而他所做的功能与业务需求仅有一点点偏差。于是,另一位同事顶上去修改功能,生病的同事则远程支持。这位顶替的同事连续奋战 36 小时,两天一夜未合眼,却仍未成功。公司其他同事因在业主现场保生产而无法抽身,毕竟业主三班倒,公司安排了十几个人陪产。最终,这位同事又花了两天时间重写了这套功能,整个项目才得以正常运行。这一小小的功能修改,竟耗费了公司十几个人整整一周的人力代价,大家都疲惫不堪。
image.png
尽管项目结果令人满意,AGV 厂家和业主方都给予了高度评价,但我们也清楚,照这样的方式做产品,大规模推广是不可能的。于是,公司组织大家对这个项目进行复盘,总结出了几个关键问题:代码个性十足,过度依赖特定开发人员;前期业务调研虽仔细,但代码实现仍有偏差;后期改代码不改文档,管理压力大且成本高;在繁杂的代码中寻找业务规律犹如大海捞针。
image.png
有了 “醋”,就得思考包什么样的 “饺子”。公司团队针对这些问题展开了一场激烈的头脑风暴。各种声音此起彼伏,有人提议从架构突破,有人主张从规范注释入手,有人建议换低代码平台,有人呼吁上微服务,还有人提出从加强管理方面尝试。而我提出了一个关键问题:如果传统解决方案能解决无人仓业务软件问题,市面上早就有成熟产品了,我们也就没有机会了。这意味着我们必须跳出传统思维,寻找问题的根本原因。
image.png
经过深入讨论,我们明确了方向:程序部分必须简单易懂,测试要高效,不能一改程序就重启服务。显然,传统代码编程无法满足这些要求,图形化编程成为了我们的目标。

接下来,我们开始准备 “包饺子” 的原料。“饺子皮” 方面,市面上已有很多低零代码平台,对一些常见功能的封装相当成熟,我们可以直接拿来用。而 “饺子馅” 却成了难题。寻找能替代传统代码开发的图形化编程工具并非易事,网上的工具要么无法体现业务关系,要么在复杂程序下图形布局混乱,开发效率低。看来,这 “饺子馅” 只能自己做。
image.png
我们精心设计了 “饺子馅”,包括菜单区域、快捷键提示区域、架构管理与自定义组件区域、工作槽位区域、组件属性区域、日志区域和返回值区域,还内置了标准组件面板和自定义组件面板。我们借鉴传统 IDE 的布局,符合人们的视觉习性,同时全力避免页面跳转和减少弹框次数,以防止繁杂操作打断开发者的编程思路。
5.png
在选择图形化编程的表达方式时,我们经过多次内部实验,发现传统流程图存在诸多问题,如程序逻辑复杂时图形超出屏幕范围、组件摆放连接耗时、信息密度低、多程序嵌套展示困难等。最终,我们决定采用树形结构的方式进行图形化编程。
image.png
为了在界面上呈现更复杂精细的程序逻辑和抽象理念,我们在元素设计阶段采用了小图标和小文字。虽然看起来图标和文字小了点,但在高分辨率环境下,对于编程平台来说,能展示足够多的信息密度才是关键。我们的图文混编效果,在单屏幕上呈现出远超传统代码编程的信息密度。
image.png
我们还设计了快捷键,让开发者可以用全键盘搭建图形化程序,提高搭建效率,专注实现编程思路。同时,考虑到程序员经常晚上加班,我们增加了各种主题风格,让程序世界变得更加美观,为程序员带来更好的心情和体验。

“饺子馅” 做好后,“包饺子” 就简单了。只需将图形化编程桌面集成到喜欢的低零代码平台上即可。我们在多个项目中进行了试用,效果非常稳定。将以前的程序代码图形化后,阅读和理解变得极其容易,项目的升级迭代也更加方便。

历经三年的执着坚持与潜心探索,我们怀着敬畏之心,谨慎地推出了这款图形化编程桌面。它与传统低零代码平台紧密融合,成功替代了复杂业务的后端代码编写工作。我们的图形化编程桌面(优树搭)已经为众多大型生产制造业的线边生产系统注入了强大的高效与稳定能量,实现了 7×24 小时不间断运行。今年9月,官网(youshuda.cn)与大家见面,让我们共同期待它带来更多的震撼与精彩。

最后,我想问大家,我们为了这口 “醋” 包的 “饺子” 值得吗?我们花费了大量时间研发 “饺子馅”,期待大家品尝后提出宝贵意见,让我们把这 “饺子馅” 改良得更加美味。

相关文章
|
3月前
|
安全 持续交付 数据安全/隐私保护
在云端编程:我的远程开发之旅
随着云计算技术的飞速发展,远程工作已从一种趋势转变为常态。本文将通过个人视角,探讨在云端编程的实践经验和挑战,以及如何高效利用云资源进行软件开发。文章将分享作者在适应远程工作环境、利用云服务、保障代码安全及与团队高效沟通方面的心得体会,旨在为同样在云端工作的开发者提供实用的建议和启示。
43 3
|
3月前
|
开发工具 Android开发 iOS开发
从零开始学 Xamarin 开发,新手教程全攻略,安装环境、创建项目、设计界面,轻松开启开发之旅!
【8月更文挑战第31天】Xamarin是一种高效的跨平台移动应用开发工具,迎合了日益增长的移动应用需求。本文为Xamarin新手提供了一套详尽的入门指南,涵盖开发环境搭建、项目创建与配置、用户界面设计及功能实现等关键步骤。通过具体示例,帮助初学者快速上手Xamarin开发,开启移动应用创作之旅。
47 0
|
3月前
|
人工智能 搜索推荐 安全
操作系统的演变之旅:从命令行到图形用户界面
在数字时代的浪潮中,操作系统作为计算机硬件与软件之间的桥梁,经历了从简单到复杂、从专业到普及的转变。本文将带领读者回顾操作系统的发展历程,探讨其技术演进背后的哲学思考,并展望未来操作系统可能的发展趋势。通过深入浅出的语言,我们将一同探索操作系统如何影响我们的工作和生活,以及它如何在不断变化的技术环境中适应和进化。
|
4月前
|
NoSQL Linux 开发工具
【linux】在linux操作系统下快速熟悉开发环境并上手开发工具——体验不一样的开发之旅
【linux】在linux操作系统下快速熟悉开发环境并上手开发工具——体验不一样的开发之旅
|
6月前
|
开发框架 数据可视化 编译器
Qt的魅力:探索跨平台图形界面开发之旅
Qt的魅力:探索跨平台图形界面开发之旅
148 1
|
6月前
|
Ubuntu 数据库 C++
百度搜索:蓝易云【【嵌入式Qt开发入门】在Ubuntu下编写C++教程。】
请注意,这只是一个入门教程,Qt开发涉及到更广泛的主题和概念,例如信号与槽机制、界面设计、数据库操作等。建议参考Qt官方文档和教程,以深入了解和掌握嵌入式Qt开发。
171 0
|
Linux
【实用工具合集】建议部署小工具设计
【实用工具合集】建议部署小工具设计
95 0
|
数据采集 开发者 iOS开发
向 Windows 高级用户进阶,这 5 款效率工具帮你开路
工欲善其事,必先利其器。作为全球最多人使用的桌面操作系统,Windows 的使用效率与我们的工作学习息息相关。今天,小编就为大家整理了 10 款提高效率的利器,让你的 Windows 更具生产力。
235 0
向 Windows 高级用户进阶,这 5 款效率工具帮你开路
|
缓存 Java 测试技术
移动设备交互应用 实验一 熟悉Android编程开发环境
移动设备交互应用 实验一 熟悉Android编程开发环境
313 0
移动设备交互应用 实验一 熟悉Android编程开发环境
|
Rust 资源调度 JavaScript
桌面端开发(Tauri)开启第一篇
桌面端开发(Tauri)开启第一篇
1223 0
桌面端开发(Tauri)开启第一篇