着手开发之后,也遇到不少问题,由于对CodeIgnitor和MVC模式的理解还不是很熟悉,简单将Controller作为页面到功能的映射。预先规划了一些页面,如各设备列表页面,设备编辑、查看页面,用户管理也采用类似模式。对数据库的简单查询和添加、修改还是比较熟悉的,前期竞争也算比较顺利。自己也借用了测试部门的机器搭建了服务器,先将写好的页面放上去,采用ftp方式上传,一边联调,一边修改。项目刚放上去,便遇到不少问题,由于对HTML布局和CSS样式不熟悉,页面显示非常难看,同时也出现了不少错误,所以开始着手对CSS样式的学习,业务开发先放在一边。
通过一些资料的学习,对HTML,CSS,JS分离的部署方式很是欣赏,也是自己年少气盛,打算不采用工具(我之前会使用frontpage制作网页),全部代码手动编写。这样一边学习,一边调试,进度慢下来不少,好在这个项目也不算紧急,自己也是新员工,所以还是很宽容对待的。由于缺少工具,手动写好代码再ftp上传,效率很低下,遇上打算远程连接上去边写边调,虽然麻烦了一些,不过减少了上传过程,有所提高(后来才发现网页调试神器firebug,可以在浏览器中直接编辑并查看效果,真是优秀的工具能大大提高效率)。
网页的设计确定了几个主题功能区,各功能区页面一些结构大体相似,复制粘贴一下就好(不过后来才学会,可以动态加载页面模版,这样也减少了维护工作量),页面实现了一些基础框架,开始去看原来的代码,发现之前没考虑查询失败和SQL注入漏洞的问题,真是经验浅,问题多啊!于是又开始修复bug和开发功能。
经过慢慢的开发,有些功能已经具备。测试部的人也很好奇,由于坐在一起交流方便,所以交流了进度之后,大家都想试试看。于是我给测试部的老大演示了一把,结果发现一些小问题,更头疼的是,加入了一大堆的需求,比如:设备统计功能,查看所有设备,查看所有过期设备和人员,根据设备状态过滤设备等等。终于明白什么叫“需求总是变化的”这句话了。
没办法,继续做下去吧,谁让咱没签订合同,规定项目范围呢。由于对数据库还算熟练,于是又编写了一些数据模型代码,前期的数据大多是插入和查询,现在要考虑数据完整性,开始编写触发器,业务也跟着复杂起来,原来的一个需求可能两三天做完了,现在同样一个需求却高级一些,实现复杂度也上升了。