4) 代码量少且复杂度低,让后期文护时阅读理解成本降低
5) 以非硬性方式限制不合理的代码模块调用,比如说,为了保证模块之间的耦合度低,一个控制器不应该用任何方式访问另一个控制器的某个方法,对于这种行为并不应当在框架层做硬性限制,因为项目中或许有特殊需要,使用这种方式可能效果更好。如果在框架里开启调试选项,此类调用会引发一个提示。
6) 提供安全的数据库查询类库,任何一个动态服务器程序都无法脱离数据库存在,php程序中通常选择连接mysql数据库,对于mysql真正需要用到的方法只有两个,其一是参数化查询,其二是事务处理。
参数化查询是为了防止客户端提交内容进行注入操作。在php程序中,见过很多人写的时候都是先用转义方法转义所有的数据,然后拼接sql语句。这种方式虽然安全,但是对后期文护不友好,因为看上去太乱了。
事务查询一般建议写在数据库的存储过程里,因为这样可以避免网络问题带来的差错,唯一的错误就是数据库崩溃。但是有些时候为了开发效率,并且考虑到内网数据库连接几乎不会遇到网络性能瓶颈,所以允许php程序中写事务操作。
1.3 术语说明
事务:一组存在依赖关系的查询。如有语句a和语句b,若语句a执行成功,则执行语句b,否则撤销语句a的操作,则这类查询称为事务。
mvc:模型层-视图层-控制器层,三层分离式的程序架构。模型层用来关联数据,视图层用来定义数据的显示形式,控制器负责总体逻辑。
注入:通过不正常的输入内容使拼接之后的语句变成另一种含义,进行违规操作。
2 开发及运行环境的选择
排选课系统,最初考虑使用的是nodejs来写服务端,但是在实现了一个静态服务器功能的时候,回顾了开发效率和开发结果。开始意识到这种形式是错误的,因为nodejs这个语言特性并不适合做网站,它本身出现的意义是方便的开发服务器应用。因此它缺少作为一个网站编程语言最基本的要点:模型表现控制器三层分离式架构,不支持session机制,不支持formdata数据解析。这三个要点虽然能够通过开发者编写代码来实现,但是不如已经出现许久的php、java等语言来的成熟。nodejs作为一个网站服务器语言还太年轻,所以放弃了使用nodejs开发。
经过开发效率、发语言等角度的综合考虑。最终使用的开发语言是php。为了安全和兼容性,本文中所使用的php版本号为5.3。网站服务器使用apache,版本号为2.4.10。测试环境在win8笔记本。
2.1 硬件平台的要求
最低硬件平台要求:
1)计算机1台。
2)内存512MB。
3)硬盘空间1G。
2.2 操作系统和版本的选择
windows server 2008 、win8、linux均可。
2.3 数据库的选择
mysql 5.5
2.4 开发工具的选择
sublime text 3
2.5 编程语言
php 5.3,javascript 1.5
2.6 开发模式的选择
选择的是迭代式开发模式。受限于客观条件(如技术、硬件、时间等),一开始定下的解决方案可能在网站建设过程中发生变更。因此需要把整个设计课题分成若干个功能模块,然后分阶段来实现预期的需求。2.6.1是迭代式开发模式流程图。
2.6.1 迭代式开发模式流程图
3 系统需求分析
在这个排选课系统中,有四种身份需要实现。分别是超级管理员,学院管理员,教室,学生。这些身份对应了各自的权限及可以做的事情,并且不允许跨权限访问。当用户试图跨权限访问时,服务器应当立即报错,并阻止其进一步行为。比如教师用户在登录之后,如果他想要进管理员的页面,那么在他访问时,服务器返回的页面应该包含”无权限操作”的提示内容。这四种身份对课程进行各自权限范围内的管理操作,即构成了排选课系统。 php+mysql排选课系统设计+文献综述(4):http://www.youerw.com/jisuanji/lunwen_32758.html