摘要:
核对表(循环) 循环的选择和创建 + 在核实的情况下用while循环取代for循环了吗? + 循环是由内到外创建的吗? 进行入循环 + 是从循环头部进入的循环吗? + 初始化代码是否直接位于循环前面吗? + 循环是无限循环或者事件循环吗?它的结构是否清晰? + 避免使用像for i=1 通9999这 阅读全文
摘要:
核对表(使用条件语句) if then 语句 + 代码的正常路径清晰吗? + if then测试对等量分支的处理方式正确吗? + 使用了else字句并加以说明吗? + else字句用的对吗? + 用对了if和else子句,即没把他们用反? + 需要执行的正常情况是位于if而不是else子句里吗? i 阅读全文
摘要:
核对表(组织直线型代码) + 代码使得语句之间的依赖关系变得明显吗?(顺序相关型) + 子程序的名字使得依赖关系变得明显吗? + 子程序的参数使得依赖关系变得明显吗? + 如果依赖关系不明确,你是否用注释进行了说明? + 你用“内务管理变量”来检查代码中关键位置的顺序依赖关系了吗? + 代码容易按照 阅读全文
摘要:
只有万不得已时才使用全局数据 !!!就近原则!!!注释紧随代码,变量紧随使用它们的地方 ——Tacey 访问器子程序的优势 + 你获得了对数据的集中控制 + 你可以确保对变量的所有引用都得到了保护 + 自动获取信息隐藏的普遍益处 + 访问器子程序可以很容易转变为抽象数据类型 如何使用访问器子程序: 阅读全文
摘要:
核对表:基本数据类型 数值概论 + 代码中避免使用神秘数值 + 代码考虑了除零错误了吗? + 类型转换很明显吗? + 如果在一条语句中存在两个不同类型的变量,那么这条语句会想你期望的那样求值吗? + 代码避免了混合类型比较吗? + 程序编译时没有警告信息吗? 整数 + 使用整数除法的表达式能按预期的 阅读全文
摘要:
为变量取好的名字和高效编程同样重要 变量名要 完全 、 准确 地描述出该变量所代表的的事物 变量名的适宜长短和变量的作用域相关,越局部的变量,变量名越短(如循环变量) 常用对仗词: 核对表(变量命名) 命名的一般注意事项 + 名字完整并准确地表带了变量所代表的含义吗? + 名字反映了显示世界的问题而 阅读全文
摘要:
利用构建活动来填补需求和架构中存在的细小间隙是一种行之有效的做法;但把蓝图设计得精细到已经能完全展现出所有的细节则实在是一种低效的方法 尽量缩小变量的作用域,尽量缩短变量的生存时间 ——Tacey 基础数据类型: 核对表(使用数据的一般事项) 初始化变量 + 每一个子程序都检查其输入参数的正确性了吗 阅读全文
摘要:
一个类的创建过程可以千变万化,但基本上都会以下图所示的顺序发生: 伪代码编程过程的替代方案 + 测试先行开发/测试驱动开发:在任何代码之前先要写出测试用例 + 重构:通过对代码进行一系列保持语义的变换和调整来提高代码的质量。 + 契约式设计:认为每一段程序都具有前条件和后条件,用断言来注解并验证前条 阅读全文
摘要:
要点 + 最终产品代码中对错误的处理方式要比“垃圾进,垃圾出”复杂的多。 + 防御式编程技术可以让错误更容易发现、更容易修改,并减少错误对产品代码的破坏。 + 断言可以帮助人尽早发现错误,尤其是在大型系统和高可靠性的系统中,以及快速变化的代码中。 + 关于如何处理错误输入的决策是一项关键的错误处理决 阅读全文