项目回忆录(二)

发财吧广告联盟

  暑假里去找的实习。这个项目和Google Adense类似,也是提供广告服务。项目使用了ADODB,SMARTY。以前我虽然看过一下,但从来没真的去用过(因为一直都是用自己写的东西)。网站的AJAX框架是从SAJAX修改过来的,但使用上感觉稍微复杂了点。我去的时侯项目刚开始,用一天时间看了下原来的代码,了解下程序的结构和编码风格,看了下ADODB和SMARTY的文档。整个程序基本上是结构化的,虽然我更倾向于面向对象,但在人家的公司里总要顾全大局的。第二天就开始写程序了。项目细节因为有保密协议,就不公开了。说下感想。因为广告部分的访问量是非常巨大的,所以性能方面就至关重要。每一次浏览,点击都要记录,数据库的结构和查询就需要仔细优化,同时还要考虑方便以后统计结算。性能测试的时侯发现一个有点意外的结果。一开始在测试服务器上,展开一个广告居然用了0.2xs,这个速度是不能接受的。一段一段测试,找哪个部分耗时最多。结果居然是载入ADODB,光载入就花了0.1xs!于是去掉了ADODB,把session也去掉,终于达到了可以接受的速度。
  在这个项目中,真正有了数据库优化效果的体会。修改了表的结构,合理设置索引之后,每日统计程序的运行时间从原来的十几分钟缩短到二十多秒,之后又提高到十几秒。那些理论知识确确实实是有用的,凭空要想出那些优化办法绝不会那么轻松。
  一开始就两个程序员,术负责人和我。直接在测试服务器上开了个samba,直接修改在服务器上的程序。因为编辑器在另一个人保存的时侯会有提示,所以没啥麻烦。但samba毕竟不是cvs/svn,出了问题不能退回去,所以只能靠本地的备份了。后来又加了一个程序员,出问题的次数也开始增加,不过不久之后随着假期的结束,我也离开了。对于团队开发,版本控制,BUG管理是相当重要的。而cvs/svn这样的工具也是必不可少的。

Firefox 2.0

firefox2.0今天出来了。赶紧下载回来看看。
  内置了TabMixPlus的功能,界面上也有点小变化。中文版的翻译不大好,有些地方感觉有点别扭,比如(询问以检查[Google]每一个访问的站点)。但一些原来表达不清晰的文字也变得容易明白了。比如“只有一个标签页时隐藏标签栏”改成了“总是显示标签栏”。个别扩展还是不兼容,而一堆主题居然没一个兼容的……。
  很神奇的发现可以在msn space上回复了……以前我用ie都不能正常回复的。
  接下来又发现了一个很郁闷的事情。在地址栏的搜索变成了Yahoo,而且改默认搜索引擎也没用。google了一下,知道了解决办法。
地址栏里输入about:config,进入配置设置。找到 keyword.URL (可以利用过滤器filter),把值改成 http://www.google.com/search?btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8&q= 就又可以用原来的google手气不错了。如果不直接进入第一个结果,可以设成  http://www.google.com/search?ie=utf-8&oe=utf-8&rls=org.mozilla:zh-CN:unofficial&client=firefox&q= 

项目回忆录(一)

  以前做过的项目也不少,但一直都没好好总结过。上个学期在eBay实习生的面试的时候,就感觉到,虽然是自己做过的项目,但很多东西都已经不记得了。为了以后的面试,也要准备一下了。昨天ACM的罗老师要我说说兼职实习的经历,也只能说个大概。从现在开始,一点点开始回忆吧。

华东理工大学就业信息网
  05年快放暑假的时候,学工部和就业办找了我和寒意,要我们找一些人一起完成学校的新版的就业网。看过了原来的asp的版本,放弃了修改的想法,决定用php重新写。那段时间自己写了个php的框架,包括MVC、基于标签库的模板引擎、还有类似现在ActiveRecord的ORM,也打算实践一下,看看实际效果如何。于是这个项目就这样开始了。因为马上就要考试,所以考试后才开始和我们说具体的需求。
  在了解了大致的需求以后,猴子做了第一个页面设计,他们看过后觉得基本满意。然后就放假了,老师去旅游,我们干活。做着做着,就觉得有点问题,但老师都不在,也没得人问。只好先按自己的理解先做着。在开发的过程中,还是感觉到ORM带来的开发效率的提高。
  一个暑假下来,东西也做得差不多,军训之后,就给老师看了。结果发现,要改好多地方。这也算是意料之外,情理之中的。然后就开始了漫长的修改过程。幸好当初考虑到了一些可能的变化,预先做了点准备,不然就有很多东西要重新来过了。那时候我的ORM只能映射一个表,对于要多个表的关联,就要手写sql了。因为查询相当复杂,又涉及到很多变化的参数,手动拼装sql就相当痛苦(还顺带发现了一个php的mysql扩展的bug)。长长的sql语句不好读也不好改。那时候就想着,什么时候做一个更好的ORM。但那时是没时间弄这个的。只能继续痛苦下去。我的那个MVC框架是仿Struts的,也和Phrame,PHP.MVC之类的差不多。在使用过程中,也确实体会到了不少好处。比如可以很方便的把权限验证之类的东西分离出来。但那时候我没有真正理解MVC,把很多业务逻辑都写到了Action里面。这样几个类似功能的Action之间就出现了重复的代码。更大的麻烦在于,由于Action是直接输出页面的,这样就不好自动测试了。那个模板引擎也碰到了性能问题,因为是模仿jstl的,为了更强的功能,虽然也是预先编译成php代码的,但是执行效率还是不理想。好在网站访问量不是很大,学校网络的带宽也有限,这个问题没造成什么后果。
  基本弄完以后,又碰到了麻烦。他们要把excel表格的学生数据导入到数据库中。本来我觉得不难实现,但真的拿到了测试数据却头大了。因为是人工输入的,很多东西都不规范,当中一些学院专业改过名,一些地方也改过名,电脑又是一个驴,要让他像人一样能够明白那些看起来不一样的东西其实是一样的太难了。咱程序员可以根据情况处理一下,那些老师可没这能力啊。以后就不了了之了。
  这个项目并没有成功,最大的问题就是出在了交流上。和客户交流的不畅导致最初的设计有较大的偏差,造成了后面一系列麻烦的修改。架构上的问题也带来了很大的麻烦。虽然说这个项目没有成功,但从中却学到了很多东西。

积累人品

  今天本来想去图书馆借书,跑到那里拿校园卡一刷,不让进,又刷了几次,还是不让进,仔细一看,说是此卡无效…………。于是强行通过,跑到借书处去问,人家问我是不是延期毕业的。原来又是这个问题!!!学校的信息化啊~~~~~~。
  于是跑到实验15楼去弄证明。结果找金x不在,找沈x也不在…………。然后就只好很郁闷的到8教去参观人家上机了。

wikipedia似乎可以访问了。但愿是真的解禁了。

笔试回来

  今天一帮人到复旦去做google的笔试。到了复旦,越发感到我们学校是多么穷,也更体会到了我们学校的人多地少了。
  传说这次笔试会比上次简单,据说是因为从上次结果中发现好多学生连基本的算法和编程能力都没有。不过看到题目才发觉,居然如此简单……上回招实习生的时侯的笔试有些题还感觉有点晕,也做错了好几个题,这次除一个操作系统的题以外基本还是有把握的。但愿能有面试的机会。
  其实我对进google也没多少信心,就当是练习笔试面试吧。

发现了一个很嘈得网站

发现了一个很嘈得网站:猎户星诗歌自动制作机网站
http://dopoem.com/

这年头连这都有。不知道算不算是对某些“诗人”的讽刺?
上去玩了一把,来看看结果吧。

恭喜! 您的诗写好了!

著名的江南朦胧诗人 神仙 创作新诗一首:

《遗忘》
http://www.dopoem.com

北风曾是树林中的石头
它带走了帆船的颜色
北风渐消逝, 忧伤渐远去
视而不见
终有一天它们结伴于北极

北风头也不回地飞奔
我的血管却象书架渐渐快乐
望着苍白的北风
书架遗忘了一切

——————————

似乎也像那么回事。又看了看其他人弄出来的,不知道说什么好了。