整个系统分为三个部分: 前端展示部分、用户管理中心、管理员后台 , 采用的环境是 lamp
文章将从以下 7 个方面来记录这次项目的开发经验: 需求整理 , 数据模型建立 , 代码撰写 , 系统测试 , 业务知识的重要性 , 最后的总结。
该项目直接面向技术整理需求 , 所以在避免了直接面向客户的需求整理 , 但是在整理的过程中 , 急于下手coding , 并没有认真的分析需求的细节 , 以致于在建立CMD时候, 没有对有些信息设立相应的字段 , 这也是项目在中途进展不利的重要原因 。在在以后的开发中是要避免的 , 只有前期的工作到位, 才能在coding的过程中更加顺畅。
建立数据模型使用的是powerdesigner , 这其中遇见了联动的问题,后来发现在新建项目以后(没有建表之前), 要在tools选项中model options 去除unique code , 即可以解决 。在表单的建设上 ,一定要注意细节问题 , 字段的属性, 顺序,认真考量。
代码撰写, 坦诚的说,这次项目整个代码的撰写过程就一个打补丁的过程 , 因为前期的工作做得不完善, 对model层的设计不完善 , 出现了很多处的冗余的方法。 在以后model撰写中 , 计划这样安排 ,根据需求撰写数据查询字典 , 然后按照字典最后得出需要撰写方法 , 一方面可以很方便设计方法 , 同时对数据的索引也比较清晰。这次项目的代码中, 多处出现了对上游代码返回值的依赖 , 这在以后的代码中是需要注意的 , 对代码返回值的控制 , 尽管在php中没有严格的要求 ,但是最好是做到, 一个方法只返回一种类型 , 这样会更加清晰。
代码中遇见到了大文件上传的问题 , 使用的是 SwfUpload , 遇见了302问题 , 解决的办法与网上的类似, 不过我直接在upload url后面附上了标志数据 。具体的使用与自己使用的框架相关。
http://*********/upload-action_upload-NOREDIRECT_1-adSignString_{
{$t._signad}}.html代码中使用到了视频播放器 , 使用的ckplay , 参数的配置比较简单 , 推荐使用。
对于一些js的效果 , 例如图片的轮播使用的是jquery.KinSlideshow-1.2.1.min.js 插件 , 对于一些选项卡的使用, 例如鼠标点击选项卡的中被点击项亮起 , 其他恢复 , 使用的php代码控制 , 直接根据 压入模板的参数进行控制 ,直接避免浏览器的兼容问题 , 很实用 。 因为选项卡已经被作为页面的公用模块 , 抽出来作为了一个COMMON 模板,修改的时候很方便。
代码的撰写的过程中 , 遇见的最大的问题是留尾巴的问题 , 很多地方没有一次性进行处理 , 然后就出现了后期的遗漏问题 , 这点是一定要避免的 , 如果问题是在解决不了也一定要有相应的记录 , 供后期查看。
系统测试,
系统测试包括 , 开发过程中的测试数据和后期系统正式测试数据。建议在开发过程中使用正规的测试数据 , 所谓的正规数据就是 ,指的是与业务一定的数据 , 这样做的好处就是 , 能更好的发现问题 , 避免是用一些当时以为很简单的没有目的性的数据 。
业务知识的重要性
业务知识在我现在看来 , 与技术是同样的重要 , 记得在设计订单的时候 , 就出现了这样的问题 , 首先遇见的一个问题就是 历史数 与 业务数据的问题 , 历史数据例如订单 , 供查询使用 , 订单数据流向业务数据 , 这才是跟这正的业务流程中各个部分交流的数据部分 。 业务知识往往会决定你的数据表的字段的设置 , 这条数据会有多大 , 会不会经常性的变动 。
最后的总结
这次项目在需求分析 , 数据建模 , 代码撰写 ,测试 方面都给了自己很多经验 , 希望以后在自己的项目能够更多的去总结。
(待续......)