以前做过的项目也不少,但一直都没好好总结过。上个学期在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表格的学生数据导入到数据库中。本来我觉得不难实现,但真的拿到了测试数据却头大了。因为是人工输入的,很多东西都不规范,当中一些学院专业改过名,一些地方也改过名,电脑又是一个驴,要让他像人一样能够明白那些看起来不一样的东西其实是一样的太难了。咱程序员可以根据情况处理一下,那些老师可没这能力啊。以后就不了了之了。
这个项目并没有成功,最大的问题就是出在了交流上。和客户交流的不畅导致最初的设计有较大的偏差,造成了后面一系列麻烦的修改。架构上的问题也带来了很大的麻烦。虽然说这个项目没有成功,但从中却学到了很多东西。
我们做的是东北师范大学就业网,都是大二大三的非计算机专业的学生。你在那时就知道PHP的框架之类的东西了,我到现在才开始看这方面的东西。看你的项目经历使我想起了那一年暑假的就业网改版工作,真的是很有感触啊
07暑假,我们也在做我们学校的就业网,不过用到的技术却是如此低级
呵呵,暑假里我也看了下struts,觉得看了之后有些原来感觉模糊的关于结构的东西,豁然开朗了。