《《开源软件开发实践》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《开源软件开发实践》PPT课件.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、开源软件开发实践高雅 00448017黄顺平 00448261项目介绍网络问卷调查/分析系统网络调查问卷的撰写、发布、回收、统计分析的综合系统“泰兆基金”项目目前已用于学校教务的网上教学评估项目介绍名称PAPO提供不同于纸质问卷全新调查形式,网络上无形的paper.来源:papyrus解释:PAPO,a paper online.采用php编写php+mysql,天生开源支持sybase数据库程序开发开发语言/数据库的选择组织分工软件结构设计代码风格开发流程版本控制BUG管理开发语言/数据库的选择适合网页形式,存储大量数据网页脚本语言(php,jsp,asp)数据库(MySQL,Postgre
2、SQL,SQL Server)尽量避免版权/费用问题,开源php vs aspmysql vs SQL Server简单,易于上手,可用资料多php vs perl/jsp最终选择 所谓LAMP开发框架Linux-Apache-MySQL-PHP,support sybase妥协:MS windows组织分工充分利用每个人的优势 “扬长避短”每个人熟悉的技术不同:PHP,SQL,XML,HTML,CSS,Javascript 分工尽量侧重自己熟悉的方面开发经历制作过网页-CSS/HTML/Javascript接触过数据库-SQL/XML设计数据库/软件结构 “统一调度”集中讨论商定中途个人不得
3、擅自更改,除非讨论商定按功能模块化 “各自为战”联系紧密的模块交由一个人负责模块间接口尽量统一软件结构设计阅读代码,向“大牛s”学习Wordpress,Discuz!,Xoops学习代码风格/组织结构在保证功能前提下,尽量兼顾低版本尽量使用php默认库,而非可选库模块划分技术层做成Library,要统一数据库访问,XML解析,图表生成外观模版,sessions/权限控制功能层做成web页面,要灵活基本功能:用户管理,问卷设计,答案统计,数据分析定制功能:课程管理,流程控制,数据库对接代码风格文档结构高度统一技术层Lib统一文件名dbi.php,data_functions.php,system
4、_ functions.php,template_functions.php功能层web页,每个功能统一前缀user_add.php,user_edit.php,user_update.php目录结构-web功能页-style目录,存储外观模版-includes目录,存储Lib代码制定统一标准有一定原则不限制(也难以限制)具体细节代码风格函数/变量的命名风格函数名:小写字母、下划线get_result(),not getResult()局部变量:小写字母、下划线全局变量大写,统一前缀$G_ENV,$G_TABLE尽量不使用常量,用全局变量统一控制$G_ENVcharset_html,not“g
5、b2312Tab缩进Include统一位于文件头简单注释开发流程准备工作需求调查管理者:教务使用者:学生、教师定义“常量”统一规则开发语言,代码风格设计框架模块划分,组织分工数据库结构l按照范式设计,避免冗余l给经常访问的表建立索引开发流程(cont.)分头编写不同部分独立编写阶段性的合并调试展示自己成果挑对方的不足关键性备份要修改公用lib时有新进展时(可能会带来bug)开发流程(cont.)内部测试开发者自己测试小范围内试用(06级信科分流)有效测试途径得到反馈意见并完善教务意见(改变选择题样式、滑动条)学生意见(润色界面,增加问卷反馈)交付使用本学期的教学评估工作版本控制开始没有考虑到旧
6、文件覆盖新文件发送信息提醒更新问题常出现在全局配置文件的修改A:“我修改了xxx.php,快更新.”B:“我也正在改呢”-_-/选用SVN对代码版本控制更加方便编写前update,编写完commitBug管理SVN管理Bug创建Bug汇报文件把bug文件看成代码来管理以表单格式存放bug信息l发现bug的时间,bug表现,涉及的模块,简单解决办法lBug发现者填写前两部分,解决者填写后两部分在阶段合并的时候重新测试以前的bugBug管理(cont.)有些bug事先无法预期复杂事物难以考虑周全Bug举例原因系统中的XML,以text属性存放于数据库.Sybase对text属性预先保留2K磁盘空间表现当表中数据太多时,保留空间耗费过多,造成服务器崩溃解决办法尽量减少用text对短字符串使用char,varchar对较长字符串使用文件保存.LicenseGNU General Public License(GPL)传染性调用的 GPL LibJpgraph绘制统计图PhpdomxmlXML解析(php5.0)项目主页暂存于实验室服务器http:/162.105.71.47/webtest/papo/Thanks!欢迎大家多提建议