031402401鲍亮
031402402曹鑫杰
031402403常松
031402412林淋
031402418汪培侨
031402426许秋鑫
php
《需求规格说明书》初稿不足html
1.未设置管理员的角色,对系统进行维护。java
2.缺乏数据精度规范。android
改进内容git
1.在性能需求中添加精度需求,对系统中运用到的数据进行类型定义,条件限制等。程序员
2.设置管理员角色,更新类图、用例图、功能描述部分和验收标准中管理员功能部分github
1.编程基本命名规范web
(1)避免难懂的名称,如属性名xxK8
,这样的名称会致使多义性。sql
(2) 在面向对象的语言中,在类属性的名称中包含类名是多余的,如Book.BookTitle
,而是应该使用Book.Title
。数据库
(3)在容许函数重载的语言中,全部重载都应该执行类似的函数。
(4)使用动词-名词的方法来命名对给定对象执行特定操做的例程,如CalculateInvoiceTotal()
。(例程是某个系统对外提供的功能接口或服务的集合
(5)只要合适,在变量名的末尾或开头加计算限定符(Avg
、Sum
、Min
、Max
、Index
)。
(6)在变量名中使用互补对,如min/max
、begin/end
和open/close
。
(7)布尔变量名应该包含Is,这意味着Yes/No 或 True/False 值,如 fileIsFound
。
(8)即便对于可能仅出如今几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i 或 j。
(9)为了帮助区分变量和类型/类/函数名,对类型/类/函数名使用Pascal大小写处理 (CalculateInvoiceTotal),其中每一个单词的第 一个字母都是大写的。对于变量名,使用 camel大小写处理 (documentFormatType)。
(10)不要使用原义数字或原义字符串,而是使用命名常数,NUM_DAYS_IN_WEEK ,以便于维护和理解。
2.分类命名规范
(1)包的命名
Java包的名字都是由小写单词组成。可是因为Java面向对象编程的特性,每一名Java程序员均可以编写属于本身的Java包,为了保障每一个Java包命名的惟一性,在最新的Java编程规范中,要求程序员在本身定义的包的名称以前加上惟一的前缀。因为互联网上的域名称是不会重复的,因此程序员通常采用本身在互联网上的域名称做为本身程序包的惟一前缀。 例如: net.frontfree.javagroup
(2)类的命名
类的名字必须由大写字母开头而单词中的其余字母均为小写;若是类名称由多个单词组成,则每一个单词的首字母均应为大写例如TestPage;若是类名称中包含单词缩写,则这个所写词的每一个字母均应大写,如:XMLExample,还有一点命名技巧就是因为类是设计用来表明对象的,因此在命名类时应尽可能选择名词。 例如: Circle
(3)常量的命名
常量的名字应该都使用大写字母,而且指出该常量完整含义。若是一个常量名称由多个单词组成,则应该用下划线来分割这些单词。 例如: MAX_VALUE
(4)参数的命名
参数的命名规范和方法的命名规范相同,并且为了不阅读程序时形成迷惑,请在尽可能保证参数名称为一个单词的状况下使参数的命名尽量明确。
3 .注释
(1)注释不要解释程序段是怎么运行的,应该解释程序作什么,为何这么作。注释也要随着程序的修改而不断更新。
(2)注释放置的位置:对于比较短的注释(如变量的解释),不用另起一行注释,对于比较长的注释,要另起一行注释。
(3)对于每一个变量名,每一个函数,都要注释,对于一些较复杂的循环,要注释该循环是为了作什么。
(4)一个工程应有一个统一的头文件注释,以说明整个工程的信息、建立日期、版本等等。
(5)修改代码或删除时,将原代码用注释的方法屏蔽,同时要加开发者自身对修改操做的注释。格式为:
//原代码 //Added/(Modified/ Deleted) by 开发者姓名 年-月-日; //由于业务缘由修改的,要注明修改或删除缘由) 新代码
(6)使用XML文档格式,以下面方法的注释:
/// <summary> /// 获得某人的年龄 /// </summary> /// <param name= "userName "> 用户名 </param> ///<returns> 用户年龄 </returns> public int GetUserAge(string userName) { //此处写你的程序代码 // }
(7)移除全部临时或无关的注释,以免在往后的维护工做中产生混乱。
(8)注释应对代码进行准确的说明,不该存在歧义。
(9)在整个应用程序中,使用具备一致的标点和结构的统同样式来构造注释。
4.基本数据类型命名规范
如:String srtName
5.控件命名规范
控件说明以下:
- TextView - 文本显示控件
- Button - 按钮控件
- ImageButton - 图片按钮控件
- ImageView - 图片显示控件
- CheckBox - 复选框控件
- RadioButton - 单选框控件
- AnalogClock - 钟表(带表盘的那种)控件
- DigitalClock - 电子表控件
- DatePicker - 日期选择控件
- TimePicker - 时间选择控件
- ToggleButton - 双状态按钮控件
- EditText - 可编辑文本控件
- ProgressBar - 进度条控件
- SeekBar - 可拖动的进度条控件
- AutoCompleteTextView - 支持自动完成功能的可编辑文本控件
- MultiAutoCompleteTextView - 支持自动完成功能的可编辑文本控件,容许输入多值(多值之间会自动地用指定的分隔符分开)
- ZoomControls - 放大/缩小按钮控件
- Include - 整合控件
- VideoView - 视频播放控件
- WebView - 浏览器控件
- RatingBar - 评分控件
- Tab - 选项卡控件
- Spinner - 下拉框控件
- Chronometer - 计时器控件
- ScrollView - 滚动条控件
- TextSwitcher - 文字转换器控件(改变文字时增长一些动画效果)
- Gallery –画廊控件
- ImageSwitcher - 图片转换器控件(改变图片时增长一些动画效果) • GridView - 网格控件
- ListView - 列表控件
- ExpandableList - 支持展开/收缩功能的列表控件
(1)创建标准的缩进大小(四个空格),并一致地使用此标准。用规定的缩进对齐代码节。
(2)在发布源代码的硬拷贝版本时使用特定的字体以及字号(新宋体、小五号)。
(3)在括号对对齐的位置垂直对齐左括号和右括号。
格式以下:
Int Sum() { }
(4)当有多层嵌套时,每一层嵌套都要有完整的{ }。
(5)为注释和代码创建最大的行长度,以免不得不滚动源代码编辑器,而且能够提供整齐的硬拷贝表示形式。
(6)当一行内容太长而必须换行时,在后面换行代码中要使用缩进格式。每一行上放置的语句避免超过一条。特殊循环如for(i =0;i<100;i++)等除外。
(7)编写SQL语句时,对于关键字使用所有大写,对于数据库元素(如表、列和视图)使用大小写混合。例如SELECT * FROM Table1;
(8)将每一个主要的SQL子句放在不一样的行上,这样更容易阅读和编辑语句,例如:
SELECT FirstName, LastName FROM Customers WHERE State = 'WA '
(9)在物理文件之间在逻辑上划分源代码。
(10)将大的复杂代码段分为较小的、易于理解的模块。
1.函数
app的绝大部分功能,都要在程序的函数中实现,函数要相对独立。
2.类
使用类来封装面向对象的概念和多态。
3.错误处理
(1)一般的法则是系统在正常状态而且用户正常操做下,不该产生任何异常。
(2)对可预见的错误不进行捕捉,而是在错误发生前经过条件判断避免发生。
(3)对不可预见或者难以解决错误进行try{…}catch(e){..}捕捉处理。
参考别人的代码规范后,汲取咱们须要的部分,造成编码规范。附注:代码规范制定了代码基本元素的相关标准,确保共享的PHP代码间具备较高程度的技术互通性。
1.缩进使用4个空格,不使用TAB键。每个单词符号之间要有一个空格,除了()
之外
例如:
if (1 == $x) { $indented_code = 1; if (1 == $new_line) { $more_indented_code = 1; } }
2.对于只含有PHP代码的文件,文件结尾忽略掉"?>"
。
3.PHP代码文件必须统一采用UTF-8
编码。
4.PHP代码文件必须以<?php
标签开始。
5.每行的结尾不容许出现多余的空格。
6.每行代码长度应控制在80个字符之内,最长不超过120个字符。为了方便查看,也为了系统为此作出更大开销。
1.文件名只容许出现字母,采用驼峰法命名,而且首字母大写,每一个单词首字母也要大写。
例如:DbMysql.php
2.类的命名采用驼峰法命名,而且首字母要大写,每一个单词首字母也要大写。
3.方法名只容许由字母组成,下划线是不容许的,首字母要小写,其后每一个单词首字母要大写,且越详细越好,应该可以描述清楚该方法的功能。
例如:switchModel
findPage
4.当类成员方法被声明为 private 时,必须分别以双下划线 "__
"为开头;被声明为 protected 时,必须分别以单下划线 "_
" 为开头;通常状况下的方法不含下划线。例如 :
class Foo { private function __example() { // ... } protected function _example() { // ... } public function example() { // ... } }
5.属性的命名只容许由字母组成,下划线是不容许的,首字母要小写,其后每一个单词首字母要大写。
例如:tablePrefix
、tableName
6.被声明为 private的类成员属性必须由双下划线 "__
" 做为开头;被声明为 protected 的类成员属性必须由下划线 "_
" 做为开头;而声明为 public 的成员属性则在任什么时候候都不容许含有下划线。
class Foo { private $__name; protected $_telephone; public $num; }
7.函数的命名使用小写字母和下划线的方式,且越详细越好,应该可以描述清楚该函数的功能。
例如:get_client_ip
8.当方法或函数参数不必定须要被赋值的时候,用 "null" 来代替 "false" 做为函数参数的默认值,除非该参数是 boolean 值。
9.变量只容许由小写字母和下划线组成,且建议用描述性的变量的命名,越详细越好,以致于像$i
或 $n
等等都是不鼓励使用的。
例如$user_name
10.类中的常量 constant 和全局范围内常量define,只能由大写字母和下划线组成,各个单词之间如下划线分割。
11.boolean 值和 null 值都采用小写。
12.确保文件的命名和调用大小写一致,是因为在类Unix系统上面,对大小写是敏感的。
1.php 代码必须以完整的形式来定界( ),即不要使用php 短标签(<? … ?>),且保证在关闭标签后不要有任何空格。
2.当一个字符串是纯文本组成的时候(即不含有变量),则必须老是以单引号'
做为定界符。例如:
$a = 'Example String';
3.变量替换中的变量只容许用 $+变量名 的形式。
例如:
$greeting = "Hello $name, welcome back!"; // 容许 $greeting = "Hello {$name}, welcome back!"; // 容许 $greeting = "Hello ${name}, welcome back!"; // 不容许
4.当用点号 "." 链接各字符串的时候,字符串与点号间必须用一个空格隔开,且容许把它分割成多行以加强可读性。在这种状况下,点号 "." 必须与等于号 "=" 对齐。例如:
$sql = "SELECT `id`, `name` " . " FROM `people` " . "WHERE `name` = 'Susan' " . "ORDER BY `name` ASC ";
5.当用 array 类型符号来构造数组的时候,必须在每一个逗号以后加上一个空格来加强可读性。例如:$sampleArray = array(1, 2, 3, 'Think', 'SNS');
6.当使用 array 类型符声明关联数组的时候,咱们鼓励把它分红多个行,只是咱们必须同时保证每行的键与值的对齐,以保持美观。例如:
$sampleArray = array( 'firstKey' => 'firstValue', 'secondKey' => 'secondValue' )
7.大括号的开始必须在类名的下一行顶格。例如:
class Think { // ... }
8.不容许用 var 符号来声明变量,类成员变量必须以 private,protected 和 public 来声明。其次,把类成员声明为 public 而直接引用虽然是容许的,但一般更好的方法是使用 get 和 set 方法来访问类成员。
例如:
class Foo { protected $_testObj; public function getTestObj() { return $this->_testObj; } public function setTestObj($testObj) { $this->testObj = $_testObj; } }
9.方法必须老是用 private,protected 或者 public 来声明其做用域。
10.函数或方法的初始大括号应该在函数声明的下一行顶格。例如:
function get_client_ip() { // … }
11.在函数或方法名与参数括号之间不容许出现多余的空格。例如:
function get_client_ip() { // … }
12.引用只容许定义在函数参数中,实时传递引用是禁止的。
// 引用定义在函数参数-容许的 function defineRefInMethod(&$a) { $a = 'a'; } defineRefInMethod($b); echo $b; // 'a' // 实时传递引用-禁止的 function callTimePassRef($a) { $a = 'a'; } callTimePassRef(&$c); echo $c; // 'a'
13.基于"if", "else"和"else if"的条件控制里,咱们必须用空格间隔开语句和括号,大括号的开始 "{" 必须与条件控制语句位于同一行,结束 "}" 必须老是独占一行且顶格,控制流程内容必须用四个空格进行缩进,且不使用"elseif"。
if ($condition) { // ... } else if ($_condition) { // ... } else { // ... }
14.在条件控制语句的条件括号内,必须用空格将操做符与其它元素隔开。若是遇到很长的逻辑判断,则鼓励用内嵌括号来分割各个逻辑。例如:
if (($a != 2) and ($b == 1)) { $a = $b; }
15."switch" 条件控制语句中,必须用空格将待测参数与其它元素分隔开。例如:
switch ($num) { // … }
16."switch" 语句的内容必须以四个空格缩进,"case" 条件控制的内容必须再加四个空格进行缩进。例如:
switch ($indentedSpaces) { case 2: echo "错误"; break; case 4: echo "正确"; break; default: break; }
17.在 "switch" 语句中应该老是包括 "default" 控制。
18.有时候咱们须要在 "case"
语境中省略掉 "break"
或 "return"
,这个时候咱们必须为这些 "case" 语句加上 "// 此处无break" 注释。例如:
switch ($numPeople) { case 1: // 此处无break case 2: break; default: break; }
对于方法或属性,这些在类里面的统一采用,驼峰法命名,首字母小写,后面每一个单词开头要大写,除了上面的private,等等要加相应的下划线。
对于函数或变量,这些在类外面的,统一采用小写字母,函数和变量要尽可能详细,都是小写字母+下划线的组合。
对于花括号的换行,对于函数,方法,类这些主题部分,花括号都要从新换行写,在这些主题部份内部的花括号不换行,直接接到对应关键的后面,例如:
for(){ } if(){ } switch(){ }
用户:User
用户名:userName
手机号:phoneNumber
密码:password
性别:sex
学校:school
头像:headportrait
生日:birthday
职业:occupation
我的说明:description
帖子:Message
帖子ID:messageId
类型:type
标题:title
来源:location
物品名称:commodity
状态:state
发布时间:postTime
单价:price
单位:unit
人数:member
截止时间:deadline
描述:description
图片:photo
联系方式:contact
用户相关帖子:UserMessage
浏览时间:readTime
收藏时间:collectTime
被举报帖子:ReportedMessage
举报者手机号:reporterNumber
管理员:Admin
用户名:Name
采起MVC框架
模型(Model)封装的是数据源和全部基于对这些数据的操做。在一个组件中,Model每每表示组件的状态和操做状态的方法。模型持有全部的数据、状态和程序逻辑。模型独立于视图和控制器。
视图(View)封装的是对数据源Model的一种显示。一个模型能够由多个视图,而一个视图理论上也能够同不一样的模型关联起来。
控制器(Controller)封装的是外界做用于模型的操做。一般,这些操做会转发到模型上,并调用模型中相应的一个或者多个方法。通常Controller在Model和View之间起到了沟通的做用,处理用户在View上的输入,并转发给Model。这样Model和View二者之间能够作到松散耦合,甚至能够彼此不知道对方,而由Controller链接起这两个部分。
主要功能流程描述
注册
发帖
举报
队员 | 工做 |
---|---|
鲍亮 | 项目的体系结构设计和界面设计;随笔撰写 |
曹鑫杰 | Android编码规范 |
常松 | 需求规格说明书改进;项目的体系结构设计和界面设计 |
林淋 | 数据库设计,ER图 |
汪培侨 | PHP编码规范 |
许秋鑫 | Android编码规范 |
队员 | 工做比例 |
---|---|
031402401鲍亮 | 0.17 |
031402402曹鑫杰 | 0.16 |
031402403常松 | 0.17 |
031402412林淋 | 0.17 |
031402418汪培侨 | 0.16 |
031402426许秋鑫 | 0.17 |