Wind.js 0.7.0版本正式发布

openkk 12年前
   <p> 作者:老赵</p>    <p> 经过<a href="https://github.com/JeffreyZhao/wind/issues?milestone=5&page=1&sort=updated&state=closed">周末整整两天的努力</a>,Wind.js 0.7.0 版本终于正式发布了!这次发布最重要的改进,便是类库的名称从 Jscex 修改为 Wind.js,搭建了博客,并启用了新的网站和域名。此外,还修复了一些 Bug,添加了更多的单元测试,并吸取了一部分<a href="/misc/goto?guid=4958522119563204420">玉伯的建议</a>简化了项目的使用方式。</p>    <p> <strong>关于 jscex.org 域名</strong></p>    <p> 之前 Jscex 项目使用的是 jscex.info 作为官方网站。上周玉伯为 Jscex 提出了一些建议,提到应该尽量使用 org 域名,这是开源项目的标配。其实我也想,只可惜 jscex.org 域名已经被他人所有。不过经玉伯这么一提起,我就打算试着去买回 jscex.org 域名。我尝试在 <a href="/misc/goto?guid=4958522119648375082">Sedo</a> 上向 jscex.org 的所有者提出了购买申请。</p>    <p> 我开价 100 美金。其实按我最初的想法,Jscex 这个名称除了我这个项目之外,应该无人在意才对,应该不该花多少钱。没想到的是对方很快就有所回应,要价 1000 美金。于是我逐步加到 200 美金,但对方死咬住 800 美金不松口,我只得取消交易。有趣的是,过了不久我收到对方的邮件,把价格降低到 679 美金,最后又提出了 479 美金的“超低价”。他在邮件里的说法是:</p>    <blockquote>     <p><strong>$479</strong> This is last chance.</p>    </blockquote>    <p> 这顿时让我有了一丝特别的感觉。因为对于一个英语国家的人,他一定会说“This is <strong>the</strong> last chance”,这里加上一个定冠词“the”才显得十分自然。之前我在微博上也提到我为 jscex.org 准备了 500 美金的预算,而此时我也已经放弃购买域名,并开始在微博上征集项目的新名字,但价格却突然降低至我的预算范围内。再加上那时已经是下午,但邮件回复依然十分迅速,除了说明对方与我的工作时区接近之外,似乎对方也非常想卖出这个域名。</p>    <p> 同时,根据 <a href="/misc/goto?guid=4958522119745879802">Whois 上查询的结果</a>,这个域名直到去年 10 月才被注册,那时候 Jscex 项目已经对外公开了相当长的时间,所以我认为这是在故意抢注想敲我一笔的可能性很大。这样更坚定了我项目改名的决心。</p>    <p> 可以这么认为:jscex.org 域名被抢注</p>    <p> <strong>新名字 Wind.js</strong></p>    <p> 对于新名字我始终把握不定。一开始我考虑到 Jscex 的读音是“J-Sex”,这导致我也曾经以“性感的 JavaScript”来宣传 Jscex 类库,因此顺水推舟改名为 SexJS 或是 SexyJS 似乎也是件挺有趣的事情。但是后来我感觉这名字似乎过于哗众取宠,容易引起反感,于是作罢。</p>    <p> 由于 Jscex 是一个流程控制(Flow Control)类库,因此我一直想围绕 Flow 这个词做文章。后来想到过 Flowless 这个名字,但是在注册了 flowless.org 域名之后,却悲催地发现 <a href="/misc/goto?guid=4958522119844512769">NPM 上已经有了同名的类库</a>。后来也考虑过 FancyFlow,Wonderflow,又从 Flow 联想到水流和气流,继而注册了 WaterJS.org,AirJS.org,AirflowJS.org 等域名,还有比较“通用”的 MagicJS.org 等等,但最终决定使用 WindJS.org 作为域名,项目名便取做 Wind.js。假如您需要以上这些域名干些正事,请随时跟我联系,我可以免费转让给您。</p>    <p> 从 Flow 联想到 Wind 自然不必解释,选择 Wind.js 的一个重要原因,便是它似乎还较为容易搜索出来。我曾经也考虑过 Air.js,但是发现已经有了 Adobe Air 这个与 JavaScript 关系相对较为紧密的东西,再取名叫做 Air.js 就会稍显不利。而 Wind.js 除了识别度较高之外,也显得比 Air 更有气势一些,四个字符看上去也长短适中。从周四晚确定了 Wind.js 到现在,我对这个名字的满意度越来越高。</p>    <p> 我甚至连 Logo 都已经想好了:就画上一阵风,吹得<code>callback</code>及<code>state</code>这种东西团团转吧!</p>    <p> <strong>Wind.js 0.7.0 版本的改进</strong></p>    <p> 既然项目名称从 Jscex 修改为 Wind,因此原本的根对象名也自然从<code>Jscex</code>变成了<code>Wind</code>。除了改名之外,Wind.js 0.7.0 还在使用上做了部分简化,这主要是采纳了玉伯的建议。</p>    <p> 首先,我减少了 Wind.js 中模块的数量。JavaScript 语言缺少一个统一模块机制,因此传统开发过程中的“模块化”实践会引起使用上的不便,这是一个相当严重的副作用。于是在 Wind.js 0.7.0 中:</p>    <ul>     <li>jscex-parser 和 jscex-jit 合并为 wind-compiler 模块,因为对用户来说几乎没有独立使用解析器模块的需求。</li>     <li>jscex-async 和 jscex-async-powerpack 合并为 wind-async 模块,因为考虑到异步增强模块本身也只有很小的体积,还不如并入异步模块来换取易用性。</li>    </ul>    <p> 此外,jscex 模块也改名为 wind-core,突出其“核心”模块的本质。于是,原本使用 Jscex 0.6.5 异步模块时需要引入 6 个模块:</p>    <div class="cnblogs_code">    <pre><span style="color:#0000ff;"><</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="jscex-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span> <span style="color:#0000ff;"><</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="jscex-parser-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span> <span style="color:#0000ff;"> <</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="jscex-jit-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span> <span style="color:#0000ff;"><</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="jscex-builderbase-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span> <span style="color:#0000ff;"><</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="jscex-async-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span> <span style="color:#0000ff;"><</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="jscex-async-powerpack-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span></pre>   </div>    <p> 到了 Wind.js 0.7.0 中则只需引入 4 个模块即可:</p>    <div class="cnblogs_code">    <pre><span style="color:#0000ff;"><</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="wind-core-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span> <span style="color:#0000ff;"> <</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="wind-compiler-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span> <span style="color:#0000ff;"><</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="wind-builderbase-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span> <span style="color:#0000ff;"> <</span><span style="color:#800000;">script </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">="wind-async-x.y.z.js"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">script</span><span style="color:#0000ff;">></span></pre>   </div>    <p> 而对于 Node.js 环境中,使用 Wind.js 更只需安装一个包即可:</p>    <div class="cnblogs_code">    <pre>npm install wind</pre>   </div>    <p> 在使用时也只需<code>require</code>一个包即可:</p>    <div class="cnblogs_code">    <pre><span style="color:#0000ff;">var</span> Wind = require ("wind");</pre>   </div>    <p> 本来“模块化”的目标,是为了在浏览器中有选择性地使用模块以减小脚本加载体积。然而,对于 Node.js 来说包的体积完全不是问题,还不如直接发布一个包含了所有模块的大包,让开发人员可以毫不费力地使用 Wind.js 的所有功能。</p>    <p> <strong>新的项目官方站点</strong></p>    <p> 您肯定也已经发现 Wind.js 新上线官方站点。这个站点使用 <a href="/misc/goto?guid=4958200477192530869">Octopress</a> 搭建,比旧站点使用的 <a href="/misc/goto?guid=4958522119980292828">DocPad</a> 强大许多。更重要的是,它自带了一个至少在我看来十分美观的皮肤,我将其简单的本地化之后便可以直接用上了,甚至它还附赠一个博客系统,支持使用 <a href="/misc/goto?guid=4958522120069682801">Disqus</a> 发表评论。这样 Wind.js 便有了自己的项目博客,发布新闻或是搞各种活动便无需借助<a href="/misc/goto?guid=4958522120173163901">我的个人博客</a>,一切都显得正式了许多。</p>    <p> 今天我一整天都在进行文案工作,重写<a href="/misc/goto?guid=4958522120272631948">文档首页</a>,并迁移了完整的<a href="/misc/goto?guid=4958522120374517892">异步模块代码</a>,将之前的一大篇文档分拆了几个小部分,希望能够进一步方便阅读。</p>    <p> <strong>反馈</strong></p>    <p> 假如您在 Wind.js 使用过程中产生任何疑问或是意见建议,请加入 <a href="/misc/goto?guid=4958522120467074592">Wind.js 讨论组</a>参与讨论,或直接发送邮件至<a href="/misc/goto?guid=4958522120565128495">邮件列表</a>。对于使用过程中发现的 Bug,也可以<a href="/misc/goto?guid=4958522120657569743">汇报至 GitHub</a>。</p>    <div id="come_from">    来自:     <a id="link_source2" href="/misc/goto?guid=4958522120759891181" target="_blank">windjs.org</a>    </div>