MyLife的诞生!

来源:互联网 发布:商业数据分析师 笔试 编辑:程序博客网 时间:2024/04/28 19:46
喜欢MyLife的朋友可以加入QQ群:65789835。

这篇文章原本是登录在blogger上的,但鉴于国内用这个blog的人不多,而且该blog也不支持匿名留言,所以我打算把MyLife的技术blog搬到csdn了。非常感谢在blogger上留下评论的网友,你们的评论对于我来说真的是比雪中送炭还要更有意义。还是一样,只要有15篇评论我就开始往下写具体技术的文章了!!大家加油啊!

为了方便不是从MyLife网站转到这里的朋友看看MyLife的网站,可以点击这个地址去浏览MyLife:
www.foresound.com

第一篇文章就先从MyLife的诞生说起吧。

要说MyLife的诞生也就离不开我近段时间的生活了。得从去年的9月份开始说起,当时因为学校的安排,来到深圳一间比较有名的软件外包公司实习,也开始了我的后学校生涯。进到公司后主要做的是关于美国政府电子政务的软件开发。工作了一段时间之后,在技术和项目经验上有了不少进步,然后开始想弄些新技术的东西出来玩玩。

最开始我在研究portal技术(如果你不知道portal的话,你可以访问igoogle来获取一些感性的认识),主要是弄一个开源的portal框架,叫LifeRay。Portal的可定制性和跨平台性是其最大的特点(具体的好处可以参考专业的文档),但就性能而言,是比较差的,至少不是一般的服务器能够承受的(看看Sun公司的开源Portal server就知道了)。在研究了一段时间后,我开始转向别的技术。虽然我没有采用Portal技术,但并不表示我不赞成该技术,恰恰相反,我觉得未来的企业级的网站应该都是基于该技术构建的,因为他确实解决了许多企业级的问题,也拥有更好的用户体验。

我开始将目光转向icefaces,一个JSF的AJAX实现,该框架是将JSF和AJAX结合起来,让java程序员能够快速方便的创建ajax-enabled的动态网页,让网页具有更高的用户体验。在其华丽而实用的演示“鼓动”下,我决定采用该技术做个网站来看看。

Ok,做个网站,做什么样的网站?呃。。。。。Bingo!做个资源共享网站吧。说道这里就要说点题外话了。俺是一个下载狂人,什么都下,连续剧、电影、游戏还有电子书(说出来你可能不信,我英文的电子书那是下了一大堆,至少有5G,声明啊,英文书我买不到正版的,但我又很想看,所以就只能先这样应付一下啊,小孩子不能学啊)。我经常上verycd,但觉得网站做得确实不怎么样,样子古板,使用也不是很方便,最重要的是只能用电驴下载。电驴是好,但是有时候还是有些难以接受,当你很想要某个资源的时候,比如正在等着看越狱:-),看见那个龟速啊,你就会抓狂了。于是我决定做一个从技术上超越verycd的网站,能让用户在上面发布任何一种资源,并且让别的用户能用任何一种他喜欢的方式(电驴、迅雷、快车、网络硬盘、bt和在线视频等)去获取资源。网站的目标就是让用户能个性化的使用互联网,追求开放和无拘束,所以我决定用MyLife这个名字来命名这个新的网站。而该网站的内部代号就叫做Foresound,至于为什么叫这个名字,先让大家猜猜吧(请将你的理解发表评论,猜对有大奖哦:-O),我会在以后将他的含义发布出来。

网站的前台表现层当然是用我觉得很帅的icefaces了,后台还是用开源的技术吧(好用又免费,还能跨平台)。因为业务逻辑比较简单,所以就不动用重量 级的EJB和JBoss了,用个Tomcat加Spring就可以了。为了能有更好的数据库可移植性,我选择了比较成熟和强大的Hibernate作为 O/R Mapping的框架。另外用了Castor作为O/X Mapping的工具。

经过几个月的开发,MyLife正式发布了!我当时想,让用户们在ajax的世界中乐不思蜀吧。可是。。。。。

情况没有我想的那么好,甚至是有些噩梦!因为icefaces的架构决定了他不可能是一个性能很好的架构,因为他美丽的封装之下是一大堆的垃圾代码,而且为了保证其所谓的“服务器端的主动发起”(还有更邪恶的,为了让你付费),就得让浏览器定期请求服务器(heart beating)。Partial Submit技术在小规模的Form中还是ok的,但当Form很大时,情况就不是原来想象的那样了。还有back bean技术,也是性能瓶颈,当对应的back bean很复杂时,性能噩梦就开始了。总之性能是icefaces的最大硬伤。

原以为在解决了一大堆的CSS问题(不要相信其所谓的跨浏览器能力)之后可以有个光明的未来,结果却被这恐怖的性能问题弄得一筹莫展,从中我也得出一条规律:这个是一个dead-end的技术,并且华丽的封装下是一大堆的垃圾代码。结果MyLife就在其刚开始看见阳光的时候夭折了。

在沉寂了一段时间后的某天早晨,我公司的另一个项目组正在考虑采用某个新的技术来实现Admin端的应用,我也好奇的了解了一下,结果却让我非常的激动。也许你已经猜出来了----ExtJs。

这回我可不再盲目上马了,我对ext做了很仔细的技术研究(也从一个javascript白痴变成了入门者),最终下定决心,让MyLife“木乃伊复活”(或者说咸鱼翻身,哈哈)。看看现在的情况吧,我的后台是成熟的技术,所以都很稳定,而且当时的架构就是MVC的,所以只需要替换掉表现层的东西就可以了。

于是乎说干就干,我又花了一个多月的时间,把MyLife带入了2.0的时代(Web 2.0?:-<)。我知道有些读者在看到这里就已经开始想@%#%#%×了。您先别急,我知道这个过程是你看这篇blog最关心的部分(旁白:丫的,竟然被你小子一句话给掠过了,欺骗感情啊,精神损失费拿来),但是这个过程实在是惊心动魄、鬼哭狼嚎、日月无光。。。的,如果在这篇blog里都写完的话,那等到这篇blog和你见面的时候说不定连太阳系都已经成为历史了,好像有点夸张了。所以咧,俺的计划是将这个过程用连续剧(最好是能拍成电影,因为票房比较高)的方式展现给大家。让大家了解到诸如如何让js和java通过web service交互,如何通过O/X Mapping来实现数据库无关的数据备份和恢复,如何采用Ext框架做一些比较cool的应用(比如网站的聊天系统)等等等等,同时会附上相应的代码。

MyLife诞生的大致过程就是这样,欲知后事如何,且听下回分解,我去喝茶了。对了,别忘了在评论处说出你对Foresound的理解,答对了有大奖哦:-)
原创粉丝点击