JeffreyZhao/wind

快速入门是否可以更快速一些呢?

Closed this issue · 8 comments

文档里的快速入门那个排序动画,只写了怎么改写函数体,但是执行需要用start方法却没有提。我花了不少时间才从代码里发现,原来要start一下,这所有的一切才会动起来。但这关键的一点在文档里却丝毫没有提及。

另外我不是很明白为什么示例代码要使用编译后的compareswap

// 异步比较元素
var r = $await(compareAsync(array[j], array[j + 1]));
// 异步交换元素
if (r > 0) $await(swapAsync(array, j, j + 1));

而把sleep放在for循环中,似乎也可以达到同样的效果,却只需要编译一个排序函数:

$await(Wind.Async.sleep(compareCost));
var r = compare(array[j], array[j + 1]);
$await(Wind.Async.sleep(updateCost));
if (r > 0) swap(array, j, j + 1);

我知道这个 demo 里有好几个算法,编译compareswap可以复用。但对于快速入门来说,这个由 demo 的代码复用产生的需求,却会让的入门文档本身显得不够快。每一个试图使用Wind.js的人,在看这份文档时,都不得不首先面对eval$await,里面又是一层eval$await这样看起来很“吓人”的代码。原本使用eval心理代价就很高了,这样无疑是雪上加霜……

我想象中的够快的文档应该是:告诉我只需要编译一次,然后sleep,我想要的动画就完成了,magically!

上面就是我今天尝试使用Wind.js时,遇到的问题和阅读文档时的感觉,虽然我不怕用eval……


今天给老早前写的一个坐标平面点排序算法demo做了动画。相比于传统的代码被拆得稀烂的setTimeout法,用Wind.js实现的结果非常简单,只动了三行代码,完全不触及原有的结构。

代码写得烂,语文也不好,老赵随便拍……

真是谦虚

@myst729 原因有两点,一是演示异步函数可以组合,二是想让bubbleSort方法可以与之前结构保持一致。

你的示例似乎很有意思,能不能写一篇文章,参加征文呀?我希望可以多些这样的案例,多谢!

可以啊,算法早就写过blog,加动画应该写起来费不了多少事……

@myst729 多谢了,稍微写的详细点哟,例如算法看上去很普通,之前多么复杂,现在多么简单之类的,呵呵。

@JeffreyZhao 其实省了多少事,看代码就一目了然了啊……setTimeout那叫一个乱……

@myst729 所以你得写出来啊,否则就没人知道……

我觉得快速入门里面还是有必要提一下start方法的调用。

@myst729 好,会加上的……