首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

MVC 模式、类封装还是黑客代码 合理设计 PHP 项目-简单网站项目

MVC 模式、类封装还是黑客代码 合理设计 PHP 项目-简单网站项目

系统性能是这类项目追求的首要目标,而与此同时系统的维护和扩展几乎可以不用多加考虑。(也许这句话听起来有些绝对,但是根据客户的需求和项目的性质判断,尽最大可能以最短时间满足客户的需求并使得系统高效运转就是项目成功的最好检验标准。)因此,也许这类项目就是 PHP 黑客的天堂(曾经我也是一个过分追求 PHP 使用效率的人)。由于这类项目的特殊性,这里讨论的范围不仅仅局限与系统设计而是从组建项目小组开始直到交付项目的过程。
首先需要关注的是参与项目的人选(虽然也许这是项目经理的职责,但是最熟悉 PHP 项目特点的系统分析员应该参与)。在 PHP 开发人员方面,至少应该选择对 PHP 各种函数较为熟悉的开发者(这类项目不适合作为现实项目以培训参与的开发新人),如果公司中还有能够在源码级别理解 PHP 的人员就更加理想(不过通常对于一般的 PHP 开发公司是不可能的)。而在网页设计人员方面,最好可以选择一些略通客户端(比如 JavaScript)以及服务器端(最好是 PHP)脚本的人员;因为这类项目的一大特点即是单个网页代码量较大且夹杂网页代码(通常是 HTML)、客户端脚本(比如 JavaScript)和服务器端脚本(比如 PHP),加入了解各种脚本语言的网页设计人员的目的不是为了增加团队的 PHP 开发力量,而是避免在修改网页时影响程序设计人员的工作。
其次就是面向过程,准确说是面向页面的系统设计。相对第一类项目,客户的需求在该类项目中表现得非常清晰,而且一般长期进行 Web 开发的公司对于这类网站项目也应该有一定的设计经验积累。设计中需要围绕整个系统的流程,包括每个页面的输入参数和输出内容(包括网页中出现的除导航链接之外的功能性链接),以求完全满足客户的需求;另一关键在于确定系统安全策略,在这类项目中主要是用户等级的确定和页面的访问权限,并给出实现的方式。不过还需要指出的是,这类项目中由编码阶段返回设计阶段的情况并不少见,对于局部设计(比如页面传入参数或者输出链接)的更改应该加以及时控制。
最后是针对代码和数据库的优化。在这类项目中需要适当鼓励开发人员的黑客态度。推荐的办法是系统分析员给出每个页面的伪代码(框架代码),而局部的实现则由各个程序开发人员和网页设计人员进行。
对于 PHP 代码方面,通常可以从如下几方面考虑:
  • 算法的选择和功能实现的方式:模块级别的优化,可以由几名开发人员共同讨论解决;
  • 函数的使用:代码级别的优化,需要开发人员对各类函数有清楚的认识,至少养成多多参考函数手册的习惯;
  • 数据库的查询和更改即 SQL 语句的使用:如果公司中有相关数据库系统的管理人员,可以就一些优化问题征询他们的建议;
  • 其他应该避免的问题:比如拷贝代码、等不良代码情况。
而根据我的经验,通常会在这类项目中撰写的黑客代码如下:
  • 循环语句的使用特别是在查找时的应用:此时注意 while 和 for 的区别(想必大家在大学课堂中都做过这类的程序),这也是良好的编程习惯;
  • SQL 语句的优化:首先是尽量避免多余的数据库交互,这是提高效率非常重要的一点;其次是不要害怕长达几行的语句而宁愿使用所谓简单的语句;再次是认真考虑查询语句返回的字段,减少不必要的数据。
  • 表单提交值的获取,比如复选框和文本域。精巧的表单域名称设计可以减少一定的代码量,而处理提交值时也需要注意处理的方式。
黑客代码在这类项目中值得鼓励,不过最好在每段代码旁附上尽可能详细的注释。
由于该类项目的特殊性,完成项目的关键不仅仅在于系统设计阶段,因此给出项目开始、系统设计、编码以及测试、交付这一过程的简单描述:
  • 挑选合适人员组成项目小组,可以考虑销售人员和客户代表的加入。
  • 系统分析员可以简单的从客户的需求以及以往项目经验的结合中总结出系统所需的每个网页并对其功能作出描述,同时确定初步的安全策略。这一步骤中可以加入销售人员和客户代表的加入。(此时网页设计人员正在准备提供给客户的一系列网站形象页面。)
  • 详细设计中需要为每个页面确定位置和名称,更加关键的是确定输入参数和输出内容以及不同级别用户对于网页的确切访问权限。同时进行数据库设计。该阶段完成后至少应该提供系统的流程图(包括访问权限标识)以及数据库设计资料。
  • 网页设计人员和程序开发人员拿到相关资料各自进行工作。对于前者,根据客户认可的一套形象设计每个页面;对于后者,开始进行 " 兴奋的 "(因为此时要求的是高效简介的代码 -- 黑客代码)编码工作。此阶段工作中遇到的困难均需要反馈到系统分析员处,可能返回以上的第 3 步甚至第 2 步进行设计修改。
  • 程序编写和网页设计结束后需要有一段整合的时间,也是程序开发人员对代码进行自我测试的阶段。同时在这一阶段可以进行的是代码(包括网页代码和程序代码)和数据库的优化工作。此阶段结束后应该可以提供一个完整的系统。
  • 真正的测试阶段通常都比较仓促,这方面的技术和经验公司也应该有一定积累(如果有条件希望采用一些软件工具进行稳定性和抗压能力的测试)。最后是提供一个可 Web 访问的地址供客户测试。此阶段完成后可以提供正式交付客户的系统。
返回列表