可视化编程工具 - Blockly

Blockly 是一个基于 Web 的可视化编程工具, Google 旗下的一个开源项目. 用户不需要敲代码, 可以通过拼装积木的方式构建应用程序. 目前支持生成 JavaScript, Dart 和 Python 代码. 我也跟风搭建了一个: Blocky 图形编程面板.

可视化编程工具 - Blockly

Blockly 例子

官方提供了几个例子, 其中包括一个迷宫游戏. 这里做了大量封装, 在用户看来和益智游戏没什么区别. 我一直在想有没有办法可以创造一个完美的算法, 可以走通任何有通路的迷宫, 因为不能设标记, 最终也没搞定.

Blockly 例子 - 迷宫

事实上我已经 out 了, 迷宫在发布当天就被玩烂了. 这里附一篇文章《Google Blockly Maze Solved!!》, 没走通的朋友可以偷瞄几眼.

Blockly 试用

几个月前, 我做过一次代码重构, 做的是 JavaScript 生成翻页导航结构. 我用了构建模式的思路, 将一段写成 4 层判断的代码改成了 1 层判断, 虽然代码效率没多大提升, 但大大提升了代码可读性.

这次我再用 Blockly 从新做了一遍, 速度奇快, 导出来的代码可用, 简单修改即可套用. 其中 <> 代表可点击页码, () 代表不可点击的页码. 从 Blockly 导出的 XML: build-pagination.xml (备用地址)

结语

我觉得挺新奇的, 玩了半天, 总觉得差了点什么. 比如: 函数 (Procedure) 不能带参数, 没有 Map, 对象等类型, 因为不支持复制粘贴而多次重复输入也让人十分郁闷. Blockly 是 6 月中旬才发布的项目, 不完善也正常, 貌似开发小组已经有了一系列的改进计划. 短期的计划有如下几点.

  • 更完善的文档.
  • 更多积木 (比如: 子字符串).
  • 带参的函数.
  • 剪切, 拷贝和粘贴.

这些确实迫切需要, 起码与我的想法切合. 但我找遍了中期和长期目标, 都看不到说要支持更多对象类型的, 如果用来写 JavaScript, 不支持 JSON 格式还搞个蛋, 坐等改进.

貌似 Google 除了作为教育工具也没想到 Blockly 的其他用途, 并呼吁用户可以尽情地把玩 Blockly, 并给予反馈和新奇的点子. 作为开源项目, 我猜测 Google 也希望有人拿去做做二次开发, 如扩展积木 (添加更多组件), 模拟工具 (如迷宫游戏) 之类.

version : 3.1.0.0 1、修改了选择不同窗体属性窗口不更新的BUG; 2、修改了只能打开一个ucGUIBuilder的功能,现在可以同时启动多个; 3、修复了拖放非ucfrm引起软件错误的Bug; 4、添加了控件ID自动增加功能; 5、添加了控件ID检查功能,控件ID有重复时会有警告; 6、添加了用户自定义字体功能; 7、支持中英文切换(但功能不够完善); 8、支持自动检查更新; 9、修改了不能保存用户自定义ID的BUG; version : 1.0.0.0 功能很不完善; 还有好多BUG; 目前只能生成资源表; 暂时不能生成其他代码; version : 2.0.0.5 优化了控件库; 修复了一些Bug; 可以生成完整的C文件(包括 资源表,初始化代码等); 修改了部分功能; version : 2.1.0.5 优化了控件库; 修复了一些Bug; 代码生成窗口中添加了C语言语法高亮显示功能; C文件模板做了部分修改; 支持设计的窗体保存为文件,并可以打开; 对所有控件属性添加了Description(在属性窗口最下面显示); 窗体布局可以保存,可以自定义为自己喜欢的窗体布局; 修改了部分功能; version : 3.0.0.0 重写了部分内核,运行更稳定; 支持窗体设计器的复制、粘贴、剪切、删除、撤销、等基本操作; 支持多控件,对齐、公共属性修改等基本操作; 支持将.ucfrm文件与ucGUIBuilder关联功能; 支持控件自定义ID; 添加了窗体预览功能; 添加了对控件事件的支持; 添加了在线检查更新功能; 等……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值