ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

代码大全核对

2020-10-22 18:03:13  阅读:223  来源: 互联网

标签:case 变量 是否 代码 核对 子程序 循环 大全


代码大全核对

功能需求
系统输入 来源 精度 取值范围 出现频率
输出 目的地 精度 取值范围 出现频率 格式
输出格式 web页面 报表
用户想要做的全部事情
每个人物所用的数据 每个任务得到的数据

质量需求
必要操作 从用户视角 期望响应时间
处理时间 数据传输率 系统吞吐量
安全级别
可靠性 软件失灵的后果 发生故障时需要保护的至关重要的信息 错误检测与恢复的策略等
系统的可维护性,包括适应特定功能的变更、操作环境的变更、与其他软件的接口的变更能力?

需求的质量
需求用户懂不懂
需求是否不冲突
需求清晰
是否每个需求可测试 是否可独立测试
是否描述所有可能的对需求的改动 包括各项改动的可能性
需求的完备性

架构
满足需求所有功能
总体质量是否解决了全部需求
你,作为一名实现该系统的程序员,是否对这个架构感觉良好?

设计 层次 是否易于维护 是否精简

类 类是否有一个中心目的
你是否研究过所用编程语言里和类相关的各种特有问题?

高质量的子程序
[] 接口假定是否已在文档中说明?
[] 子程序的参数个数是否没超过7个?
[] 是否用到了每一个输入参数?
[] 是否用到了每一个输出参数?
[] 子程序是否避免了把输入参数用做工作变量?
[] 如果子程序是一个函数,那么它是否在所有可能的情况下都能返回一个合法的值?

使用数据的一般事顶
[] 每一个子程序都检查其输入参数的正确性吗?
[] 变量声明位置靠近变量第一次使用的位置吗?
[] 尽可能地在声明变量的同时初始化变量吗?
[] 如果无法同时声明和初始化变量,有没有在靠近第一次使用变量的位置声明变量?
[] 计数器和累加器经过了适当的初始化吗?如果需要再一次使用,之前重新初始化了吗?
[] 适当地重新初始化“需要重复执行的代码里的变量”了吗?
[] 如果你用的语言允许隐式声明,你为由此可能引发的问题做好补偿措施了吗?
变量都在合适的时间绑定了吗?一一一也就是说,你有意识地在晚期绑定所带来的灵活性和增加的复杂度之间做出平衡了吗?
[] 每个变量都有且仅有一项用途吗?
[] 每个变量的含义都很明确且没有隐含含义吗?

变量命名
[] 名字完整并准确地表达了变量所代表的含义吗?
[] 名字反映了现实世界的问题而不是编程语言方案吗?
[] 名字足够长,可以让你无须苦苦思索吗?
[] 如果有计算值限定符,它被放在名字的最后吗?
[] 名字中用Count或者Index来代替Num了吗?

[] 循环下标的名字有意义吗(如果循环的长度超出了一两行代码或者出现
了嵌套循环,那么就应该是i、j或者k以外的其他名字)?
[] 所有的“临时”变量都重新命以更有意义的名字了吗?
[] 当布尔变量的值为真时,变量名能准确表达其含义吗?
[] 枚举类型的名字中含有能够表示其类别的前缀或后缀了吗?例如,把Color_用于Color_Red, Color_Green, Color_Blue等了吗?
[] 具名常量是根据它所代表的抽象实体而不是它所代表的数字来命名的吗?


基本数据类型
整数
[] 整数表达式避免整数溢出问题吗?

浮点数
代码系统地阻止了舍入错误的发生吗?
代码避免对浮点数做等量比较吗?

布尔变量
[] 程序用额外的布尔变量来说明条件判断了吗?
[] 程序用额外的布尔变量来简化条件判断了吗?

枚举类型
[] 当变量的用法不能仅用true和false表示的时候,程序用枚举类型来取代布尔变量吗?


使用条件语句
if-then-else-if语句串
[] 把复杂的判断封装到布尔函数调用里了吗?
[] 先判断最常见的情况了吗?
[] 判断包含所有的情况吗?
[] if-then-else-if是最佳的实现吗?比case 句还要好吗?


case 语句
[] case子句排序得有意义吗?
[] 每种情况的操作简单吗?必要的时候调用了其他子程序吗?
[] case语句检测的是一个真实的变量,而不是一个只为了滥用case语句而刻意制造变量吗?
[] 默认子句用得合法吗?
[] 用默认子句来检测和报告意料之外的情况了吗?
[] 在C、C++或者Java里,每一个case的末尾都有一个break吗?

循环
循环的选择和创建
[] 在合适的情况下用while循环取代for循环了吗?
[] 循环是由内到外创建的吗?

进入循环
[] 循环是无限循环或者事件循环吗?它的结构是否清晰?
[] 避免使用像for i = 1 to 9999这样的代码吗?
[] 如果这是一个C++、C 或Java 中的for循环,那么把循环头留给循环控制代码了吗?

循环的内部
[] 把内务处理集中地放在循环开始或者循环结束处了吗?
[] 循环像定义良好的子程序那样只执行了一件操作吗?
[] 循环短得足以一目了然吗?
[] 循环的嵌套层次不多于3层吗?
[] 把长循环的内容提取成单独的子程序吗?
[] 如果循环很长,那么它非常清晰吗?

退出循环
[] 循环在所有可能的条件下都能终止吗?
[] 如果你建立了某种安全计数器标准,循环使用安全计数器了吗?
[] 循环的退出条件清晰吗?
[] 如果使用了break或者continue,那么它们用对了吗?

防御式编程
你是否在架构或高层设计中规定了一组特定的错误处理技术?
[] 你是否在架构或高层设计中规定了是让错误处理更倾向于健壮性还是正确性?
[] 代码中用到辅助调试的代码了吗?
[] 如果需要启用或禁用添加的辅助助手的话,是否无须大动干戈?
[] 在防御式编程时引入的代码量是否适宜——既不过多,也不过少?
[] 你在开发阶段是否采用了进攻式编辑来使错误难以被忽视?

异常
[] 你在项目中定义了一套标准化的异常处理方案吗?
[] 是否考虑过异常之外的其他替代方案?
[] 如果可能的话,是否在局部处理了错误而不是把它当成一个异常抛到外部?
[] 代码中是否遮免了在构造函数和析构函数中抛出异常?
[] 所有的异常是否都与抛出它们的子程序处于同一抽象层次上?
[] 每个异常是否都包含了关于异常发生的所有背景信息?
[] 代码中是否没有使用空的catch语句?(或者如果使用空的catch语句确实很合适,那么明确说明了吗?

安全事宜
[] 检查有害输入数据的代码是否也检查了故意的缓冲区溢出、SQL注入、HTML注入、整数溢出以及其他恶意输入数据?
[] 是否检查了所有的错误返回码?
[] 是否捕获了所有的异常?
[] 出错消息中是否避免出现有助于攻击者攻入系统所需的信息?

标签:case,变量,是否,代码,核对,子程序,循环,大全
来源: https://www.cnblogs.com/xieling2100-fei/p/13859812.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有