Blockly 是一个基于 Web 的可视化编程工具, Google 旗下的一个开源项目. 用户不需要敲代码, 可以通过拼装积木的方式构建应用程序. 目前支持生成 JavaScript, Dart 和 Python 代码. 我也跟风搭建了一个: Blocky 图形编程面板.
事实上我已经 out 了, 迷宫在发布当天就被玩烂了. 这里附一篇文章《Google Blockly Maze Solved!!》, 没走通的朋友可以偷瞄几眼.
这次我再用 Blockly 从新做了一遍, 速度奇快, 导出来的代码可用, 简单修改即可套用. 其中 <> 代表可点击页码, () 代表不可点击的页码. 从 Blockly 导出的 XML: build-pagination.xml (备用地址)
貌似 Google 除了作为教育工具也没想到 Blockly 的其他用途, 并呼吁用户可以尽情地把玩 Blockly, 并给予反馈和新奇的点子. 作为开源项目, 我猜测 Google 也希望有人拿去做做二次开发, 如扩展积木 (添加更多组件), 模拟工具 (如迷宫游戏) 之类.
Blockly 例子
官方提供了几个例子, 其中包括一个迷宫游戏. 这里做了大量封装, 在用户看来和益智游戏没什么区别. 我一直在想有没有办法可以创造一个完美的算法, 可以走通任何有通路的迷宫, 因为不能设标记, 最终也没搞定.事实上我已经 out 了, 迷宫在发布当天就被玩烂了. 这里附一篇文章《Google Blockly Maze Solved!!》, 没走通的朋友可以偷瞄几眼.
Blockly 试用
几个月前, 我做过一次代码重构, 做的是 JavaScript 生成翻页导航结构. 我用了构建模式的思路, 将一段写成 4 层判断的代码改成了 1 层判断, 虽然代码效率没多大提升, 但大大提升了代码可读性.这次我再用 Blockly 从新做了一遍, 速度奇快, 导出来的代码可用, 简单修改即可套用. 其中 <> 代表可点击页码, () 代表不可点击的页码. 从 Blockly 导出的 XML: build-pagination.xml (备用地址)
结语
我觉得挺新奇的, 玩了半天, 总觉得差了点什么. 比如: 函数 (Procedure) 不能带参数, 没有 Map, 对象等类型, 因为不支持复制粘贴而多次重复输入也让人十分郁闷. Blockly 是 6 月中旬才发布的项目, 不完善也正常, 貌似开发小组已经有了一系列的改进计划. 短期的计划有如下几点.- 更完善的文档.
- 更多积木 (比如: 子字符串).
- 带参的函数.
- 剪切, 拷贝和粘贴.
貌似 Google 除了作为教育工具也没想到 Blockly 的其他用途, 并呼吁用户可以尽情地把玩 Blockly, 并给予反馈和新奇的点子. 作为开源项目, 我猜测 Google 也希望有人拿去做做二次开发, 如扩展积木 (添加更多组件), 模拟工具 (如迷宫游戏) 之类.