• 团队成员
    组长:1500802096 马柯宇
    组员:1500802091 张安祺
    1500802095 包明珍
    1500802100 王旭文
    1500802120 苏 桂

一、代码规范

  • PHP代码规范:
    (1)文档格式

1)对于只含有 php 代码的文件,我们将在文件结尾处忽略掉 "?>" 。这是为了防止多余的空格或者其它字符影响到代码。
例如:
<?php
$foo = 'foo';

2) 缩进应该能够反映出代码的逻辑结果,尽量使用四个空格,禁止使用制表符TAB,因为这样能够保证有跨客户端编程器软件的灵活性。
例如:
if (1 == $x) {
    $indented_code = 1;
    if (1 == $new_line) {
        $more_indented_code = 1;
    }
}

3) 变量赋值必须保持相等间距和排列。
例如:
$variable = 'demo';
$var      = 'demo2';

4 )每行代码长度应控制在80个字符以内,最长不超过120个字符。因为 linux 读入文件一般以80列为单位,就是说如果一行代码超过80个字符,那么系统将为此付出额外操作指令。这个虽然看起来是小问题,但是对于追求完美的程序员来说也是值得注意并遵守的规范。

5) 每行结尾不允许有多余的空格。
(2)命名约定
1)通常类文件都是以“.class.php“为后缀,且类文件名只允许字母。

2)配置和函数等其他类库文件之外的文件一般是分别以“.inc.php“和”.php“为后缀。

3)确保文件的命名和调用大小写一致。

4)类名和文件名一致。

5)大括号的开始必须在类名的下一行顶格。

6)类中的所有代码都必须用四个空格来进行缩进。

(3)通常约定
代码缩进全部用tab,在编辑器里面设置tab存为制表符,不要存为空格。不要打一堆空格来做缩进。
SVN / Git 中新建文件编码类型统一用utf-8编码(不带BOM)。
Unix 风格的换行: LF
所有可以直接访问的url中包含的文件名都是小写,如果是多个词组成,则用下划线连接。
大括号的开始必须在类名的下一行顶格。
行宽:120 字符
类中的所有代码都必须用四个空格来进行缩进。

  • Python的代码规范
    (1)基本规范
    1)分号
    不要在行尾加分号, 也不要用分号将两条命令放在同一行。

2)行长度
每行不超过80个字符
以下情况除外:
a.长的导入模块语句
b.注释里的URL
不要使用反斜杠连接行。
Python会将 圆括号, 中括号和花括号中的行隐式的连接起来 , 你可以利用这个特点. 如果需要, 你可以在表达式外围增加一对额外的圆括号。

3)括号
宁缺毋滥的使用括号除非是用于实现行连接, 否则不要在返回语句或条件语句中使用括号. 不过在元组两边使用括号是可以的.

4)缩进
用4个空格来缩进代码绝对不要用tab, 也不要tab和空格混用.

5)空行
顶级定义之间空两行, 方法定义之间空一行顶级定义之间空两行, 比如函数或者类定义. 方法定义, 类定义与第一个方法之间, 都应该空一行. 函数或方法中, 某些地方要是你觉得合适, 就空一行.

6)空格
按照标准的排版规范来使用标点两边的空格括号内不要有空格按照标准的排版规范来使用标点两边的空格

7)注释
确保对模块, 函数, 方法和行内注释使用正确的风格

(2)类的代码规范
如果一个类不继承自其它类, 就显式的从object继承. 嵌套类也一样.
继承自 object 是为了使属性(properties)正常工作, 并且这样可以保护你的代码, 使其不受Python 3000的一个特殊的潜在不兼容性影响. 这样做也定义了一些特殊的方法, 这些方法实现了对象的默认语义, 包括 new, init, delattr, getattribute, setattr, hash, repr, and str .

(3)文件和sockets
在文件和sockets结束时, 显式的关闭它.
除文件外, sockets或其他类似文件的对象在没有必要的情况下打开, 会有许多副作用, 例如:
1)它们可能会消耗有限的系统资源, 如文件描述符. 如果这些资源在使用后没有及时归还系统, 那么用于处理这些对象的代码会将资源消耗殆尽.
2)持有文件将会阻止对于文件的其他诸如移动、删除之类的操作.
3)仅仅是从逻辑上关闭文件和sockets, 那么它们仍然可能会被其共享的程序在无意中进行读或者写操作. 只有当它们真正被关闭后, 对于它们尝试进行读或者写操作将会跑出异常, 并使得问题快速显现出来.
而且, 幻想当文件对象析构时, 文件和sockets会自动关闭, 试图将文件对象的生命周期和文件的状态绑定在一起的想法, 都是不现实的. 因为有如下原因:
1.没有任何方法可以确保运行环境会真正的执行文件的析构. 不同的Python实现采用不同的内存管理技术, 比如延时垃圾处理机制. 延时垃圾处理机制可能会导致对象生命周期被任意无限制的延长.
2.对于文件意外的引用,会导致对于文件的持有时间超出预期(比如对于异常的跟踪, 包含有全局变量等)。

(4)Main
即使是一个打算被用作脚本的文件, 也应该是可导入的. 并且简单的导入不应该导致这个脚本的主功能(main functionality)被执行, 这是一种副作用. 主功能应该放在一个main()函数中.
在Python中, pydoc以及单元测试要求模块必须是可导入的. 你的代码应该在执行主程序前总是检查 if name == 'main' , 这样当模块被导入时主程序就不会被执行.

  • 系统代码规范:
  • 代码风格原则:简明,易读,无二义性。

  • 代码命名规范:

常量:全部大写
类名:大驼峰——首字母大写,其后单词首字母大写
方法变量名:小驼峰——首字母小写,其后单词首字母大写
变量名:小驼峰或下划线——全部小写,单词之间用下划线连接
系统保留:前置下划线(_),在命名中不要使用前置下划线。

  • 代码书写规范:

(1)缩进:
统一使用4个空格。
函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格。

(2)行宽:
行宽必须限制,但是以前有些文档规定的80字符行宽太小了(以前的计算机/打字机显示行宽为80字符),现在时代不同了,可为100字符。

(3) 括号:
在复杂的条件表达式中,用括号清楚地表示逻辑优先级。

(4)断行与空白的{ }行:
每个“{”和“}”都独占一行。
关键词和操作符之间加适当的空格。

(5)分行:
不要把不同的变量定义在一行上。
不允许把多个短语句写在一行中,即一行只写一条语句。
较长的语句、表达式等要分成多行书写。
循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。
若函数或过程中的参数较长,则要进行适当的划分。
相对独立的程序块与块之间加空行。

(6)注释:

a. 注释要简单明了。
b.注释放置的位置:对于比较短的注释(如变量的解释),不用另起一行注释,对于比较长的注释,要另起一行注释。对代码的注释应放在其上方相邻位置,不可放在下面。
c.注释(包括所有源代码)应只用ASCII字符,不要用中文或其他特殊字符,它们会极大地影响程序的可移植性。
d.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
格式:
//原代码 //Added/(Modified/ Deleted) by 开发者姓名 年-月-日; //因为业务原因修改的,要注明修改或删除原因) 新代码

e. 在每个函数或过程的前面要有必要的注释信息,包括:函数或过程名称;功能描述;输入、输出及返回值说明;调用关系及被调用关系说明等。

(7)可读性:
a.避免使用不易理解的数字,用有意义的标识来替代。 
b.不要使用难懂的技巧性很高的语句。 
c.源程序中关系较为紧密的代码应尽可能相邻。

  • 代码设计规范:
    (1)函数:
    a.绝大部分功能,都要在程序的函数中实现。
    b.函数的规模尽量限制在200行以内。 
    c.一个函数最好仅完成一件功能。  
    d.尽量不要编写依赖于其他函数内部实现的函数。 
    e.避免设计多参数函数,不使用的参数从接口中去掉。 
    f.函数名应准确描述函数的功能。 
    g.函数的返回值要清楚、明了,让使用者不容易忽视错误情况。 
    h.明确函数功能,精确(而不是近似)地实现函数设计。 
    i.减少函数本身或函数间的递归调用。

(2)错误处理:
(1)通常的法则是系统在正常状态并且用户正常操作下,不应产生任何异常。
(2)对可预见的错误不进行捕捉,而是在错误发生前通过条件判断避免发生。
(3)对不可预见或者难以解决错误进行try{…}catch(e){..}捕捉处理。
(4)对用户提出的错误进行后期处理

二、 团队项目的数据库设计

三、 团队项目的E-R图

四、 团队项目主要功能流程描述
(1)系统的整体框架:
系统分为视图层,控制层,模型层,数据层四个部分,用户通过视图层传递自己的需求,然后控制层做出相应的反馈,在模型层进行响应,改变状态,并且通知视图层已作出的修改。最后一块则是数据层,用来连接数据库,进行信息的存储。

(2)购买商品模块流程图:

(3)出售商品模块流程图:

(4)管理功能流程图:

(5)投诉功能流程图:

(6)留言板功能流程图:

五、 描述队员在此次作业中的分工
马柯宇:项目PM,统筹全局,代码规范,数据库的设计
王旭文:逐步改进需求规格说明书,绘制流程图
包明珍:撰写随笔,结构设计和界面设计,绘制流程图,E-R图
苏桂:代码规范的书写,绘制流程图
张安祺:代码规范的书写,测试,绘制流程图
六、 本次作业组员贡献分(总分=50)
马柯宇:11
王旭文:9
包明珍:11
苏 桂:9
张安祺:10

转载于:https://www.cnblogs.com/mkyz/p/6925004.html

软件工程-团队作业3相关推荐

  1. 软件工程—团队作业1

    软件工程-团队作业1 团队称号:Thanos (灭霸,超叼的一个动漫人物) 团队成员: 队长 成凯 1600802002  博客链接: http://www.cnblogs.com/ck03/   党 ...

  2. 17秋 软件工程 团队作业 同学录

    题目:团队作业--随堂小测(同学录) 17秋 软件工程 团队作业 同学录 Github Classmate-book 提交日志截图 在现场带了两台笔记本,用两个人的账号进行commit: PR: 程序 ...

  3. 软件工程—团队作业2

    团队名单 队长: 潘玖庆 1500802062 队员: 温晨 1500802074 刘佳娜 1500802079 王钰琳 1500802069 祝海霞 1500802080 叶凯 1500802044 ...

  4. 现代软件工程 团队作业 - 软件分析和用户需求调查 (2013)

    [现代软件工程 的讲义] 医学院的学生, 要解剖人体; 软件行业的从业人员, 不管是项目经理, 开发或测试人员, 都要学会解剖分析软件, 我们就来试试看. 要求: 通过定性, 定量地分析, 总结和评定 ...

  5. 现代软件工程 团队作业 - 软件分析和用户需求调查 (2013 - 2014)

    [现代软件工程 的讲义] 医学院的学生, 要练习解剖人体;  MBA 的学生, 要剖析某公司的成败: 法律系的学生,要阅读和分析大量案例...... 软件行业的从业人员, 不管是项目经理, 开发或测试 ...

  6. 软件工程——团队作业3

    团队编码规范 HTML编码规范 1.代码风格 1.1 缩进与换行 使用 4 个空格做为一个缩进层级,不允许使用 2 个空格 或 tab 字符. 注:每行不得超过 120 个字符.(过长的代码不容易阅读 ...

  7. 面向对象及软件工程——团队作业2

    一.队伍成员 队长: 沈凤岐1700802033 队员: 苏鹏飞1700802017 陈朗1700802023 党虎飞1700802025 NABCD模型: 1) N (Need 需求) 现在,随着社 ...

  8. 软件工程-团队作业二

    团队名称 "云"之巅战队 项目名称 在线云盘 团队成员 博客地址:"云"之巅(索吉鑫) 博客地址朱旭东 博客地址:朋毛东知 NABCD设计模型 NEED(获取用 ...

  9. 面向对象与软件工程---团队作业1

    1.队伍名称: 遥遥万里(还有很长路要走的意思) 2.队员信息: 陈雄(组长) 学号:1700509024 博客园链接:https://www.cnblogs.com/bearchan/ 廖鹏辉    ...

最新文章

  1. ActivityRouter 框架简单实用
  2. VS快捷键大全(总结了一些记忆的口诀)
  3. 计算机网络学习笔记-1.1.3-速率相关的性能指标
  4. 智伴机器人广西团队_畅想科技 智绘未来——2020年全区乡村学校少年宫科技体验日活动在广西科技馆举办...
  5. java手动切换成独立显卡_MacBook如何一键切换显卡 MacBook显卡切换方法【详细介绍】...
  6. apache mediawiki 安装_MediaWiki初探:安装及使用入门
  7. %lf 和 %f 有什么区别
  8. HDU-3729 I'm Telling the Truth
  9. RazorPage语法介绍(二)
  10. “strcmp”不能将参数从“LPWSTR”转换为“const char *”
  11. CxImage使用介绍
  12. python中flag=1什么意思_001_flag包详解
  13. 分享 23 个在线学习 JavaScript 的网站
  14. 浅析某城商行手机银行水平授权漏洞问题
  15. 苹果蓝牙耳机怎么接电话_除了苹果AirPods,真无线蓝牙耳机到底怎么选?
  16. 微嵌WinCE平板与PC连接
  17. 【Sofice小司笔记】2 算法与数据结构,各类基础及常用高级数据结构、各种搜索方法、动态规划、字符串、数论、编码学、排序等,大部分都基于java实现
  18. AgentWeb 介绍
  19. 一个有用的数据库:中国研究数据服务平台(CNRDS)
  20. 神了,阿里数据库专家纯手写了这份604页的Oracle+MySQL攻坚指南

热门文章

  1. php macro,如何利用 macro 方法来扩展 Laravel 的基础类的功能
  2. java 获取键盘点击_Java中获取键盘输入值的三种方法介绍
  3. qt通过http连接mysql_Azure Database for MySQL 连接安全-(3) Private Endpoint
  4. Codeforces Round #696 (Div. 2)
  5. Hadoop之MapReduce理论篇01
  6. 面向对象封装的web服务器
  7. 探测能源、跨洲安全通信……你所想不到的量子技术!
  8. 一起来学Masonry (一)
  9. 一台linux服务器配置多个tomcat应用
  10. 如何获得查询的执行计划?(一)