岁月如歌

用开放的心态,打造专业的人生。

开放式前端类库的构建

with 5 comments

hax 的文章很不错:关于国内前端和 JS 技术发展的乱想
愚公贴出了四个月前的聊天记录,如今再读,别有一番滋味:我们需要什么样的“技术”

我当时也留存了一些感想,索性也贴出来:
———————————————————————
这是一篇改变我很多想法的文章:大教堂和集市。老文章,很耐读,最近放在 iPhone 上,没事就看看,烂熟。

世界上有很多聪明人,很多事情已经做得非常棒。有太多更需要投入的地方,的确不应该在别人已经做得很好的地方浪费时间了。

遇到 jquery 的问题,通过 google 一搜,十有八九就能搜到结果,这就是社区。

在公司做事,有两件事情很重要:(1)做什么事;(2)和什么人做事。其他都是浮云。

“天时”是个很奇妙的东西。当有一帮兄弟在召唤你,当有一件事情在吸引你的时候,就是“天时”。当然还需 “地利”和“人和”。在公司环境下,“地利”经常会限制很多想法思路。

步子迈大了,的确可能扯痛蛋,但也仅仅是蛋痛一下下而已。倘若步子迈小了,短时间内蛋不会痛,但却有可能永远错失超越的机遇。

如果你选择一条保守的线路,就只能实现一个狭窄的目标。

大教堂是个梦,很美。人人都想做。

百花齐放的目的,是让每个人都能成为类库/框架的开发者,就和 github 一样。不是形式上的分布式开发,而是内容上也分布式。打散了,物竞天择,人类社会就是这么演化的。

避免重复是很好的实践原则。懂得适量重复,是更高层次的实践。

没有自由,就没有突破。社会如此,写代码也如此。
———————————————————————

下面是读完 hax 文章后,对 seajs 的一些想法:

es5-shim 这一块,hax 和我的想法很相近。我的想法是,seajs 提供一个 conditional load plugin,当探测到当前浏览器缺少哪些 es5 的东东时,自动修复好。这样,所有模块都可以直接基于 es5 来开发,而且对开发者是透明的。

更进一步,还可提供 less 和 coffeescript 等编译扩展。使得基于 seajs 做开发时,可以直接用 less 写 css,用 coffee 语法写 js. 这样可以提前实现将 javascript 变成编译目标语言的愿景,使得 js 的开发直接可利用上最新技术。

基于模块环境 + 模块的方式来构建类库,最难的是模块环境要具有通用性,目前 commonjs 和 nodejs 的努力,使模块环境逐步成熟。其次就是各种模块的筛选和开发了,我早就想拆掉 kissy,只恨目前力又不逮。如果 qwrap 能拆分成多个小类库,绝对支持。拆分的好处,可能会造成少量重复,但好处是更灵活,更自由了。因为小了,意味着可替换性更好,这样,有现成做得不错的,直接拿来用就好。如果找不到满意的,大不了自己开发一个,满足自己的需求同时也能贡献给社区。这是一种良性竞争下的百花齐放。

这样,逐步努力下去,就会形成一个生态圈。生态圈呀,一旦形成,所有人都会受益。希望我不是在作梦。

————————————
最后放一个在 MPD 大会的分享,没什么新内容,不好意思:

Advertisements

Written by lifesinger

July 20, 2011 at 16:16

Posted in Articles

5 Responses

Subscribe to comments with RSS.

  1. 哈哈~~ 我喜欢这句扯蛋观点~

    “步子迈大了,的确可能扯痛蛋,但也仅仅是蛋痛一下下而已。倘若步子迈小了,短时间内蛋不会痛,但却有可能永远错失超越的机遇。”

    潇洒

    July 20, 2011 at 17:17

  2. 你的射雕像很好玩,自己画的么

    比利时光

    July 21, 2011 at 10:59

  3. 拆掉 kissy是不是基于seajs进行模块化重构?前几日在微博上讨论,玉伯说不一定要重构kissy,用seajs jquery backbone mustache也不错。

    lifehacker007

    July 24, 2011 at 14:35

  4. […] 那些想法 […]

  5. […] https://lifesinger.wordpress.com/2011/07/20/the-dream-of-carpenter/ 2011 08 31 Uncategorized Comments(0) « […]

    Boom.js Release

    August 31, 2011 at 23:51


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s