2011年12月 的存档

时隔一个月,在经历了从正常人到“矿工”再到正常人的变化后,一个新的nForum就即将折腾出来了。 如果说原来的版本是1.0的话,这个版本为1.1比较合适,最大的改动即是前端,nForum1.1的前端结构发生根本的改变,而促使我改变的原因可能是想再次体验一下 沉醉于代码中的感觉吧。 nForum1.1致力于提供一个完整的前端基础,以实现页面的ajax化并规范一些简单的交互接口。技术路线的灵感来自于某月末日在google reader上看到豆瓣某前端工程师的演讲ppt。所以nForum1.1采用了和豆瓣说同样的javascript框架Backbone.js作为基础来构建前端MVC,在弹出窗口方面继续沿用jquery-ui的dialog组件,不过nForum进行了进一步的封装以实现与应用的紧密结合并屏蔽了jquery-ui的特性。暴露给window的变量有APP,BODY,SESSION,DIALOG,SYS,这些对象足以完成对页面的控制,具体是怎样的,可能还需要一个文档来说明。 此外,nForum1.1在html5的道路上更进一步,整体的标签在往html5上演变,对于支持html5的浏览器,在css和文件上传上都开始使用html5特性,相应的,新版本取消了原来的javascript圆角功能,对老版本的IE做了某些交互特性上的放弃,当然诸如IE6这样的s13浏览器还是可以正常访问的,不过体验会差点。。。 nForum1.1在原来的model层面上修改的很少,主要是整合了文章和邮件的转寄和回复功能;controller主要的修改是满足ajax请求并把请求方式和渲染格式完全分离,在渲染数据时html,json,xml是地位相等的。view融合api插件的思想,把所有渲染的方式统一起来,也就是说api插件和nForum web是用的相同的view。 最后就是要解决新的架构带来的新的问题,比如SEO,nForum1.1的html内的链接呈现和现在的本版一致,系统自动识别不同的spider输出原始页面以便spider能很好的访问。除此之外,IE6下对于hash的不完整识别导致url中的search部分不能很好的解析,最后无奈hacker了backbone.js的代码。 其余的特性以及详细的修改都会出现在changelog的,之后的时间里要review一下代码,在各种浏览器中测试一下关键功能,整合,测试,merge出北邮人论坛的版本,测试,发布到github日子可能还要晚点吧。 其实代码的实现是漫长的,枯燥的,痛苦的,不过当整体结构很清晰时这些也都只是时间问题了;把你对整个系统的理解用代码实现出来,在这个过程中可能会遇到各种结构问题和设计缺陷,但在一次次的迭代中结构会变的更加合理,耦合会变得更加自然,这也许就是根本的乐趣之所在。去年的这个时候nForum1.0开源了,一年过去了,nForum1.1就作为今年的礼物吧。

2011年12月2日09:56 | 4 条评论
分类: 兴趣所在
标签: