随笔分类 - 读书笔记
摘要:编程格调/The Elements of Programming 仅仅通过听取一般原理,就想很好地掌握程序设计,这是不可能的事。 一、绪论 撰写简洁的程序——不要耍聪明 编程是为了解决问题,要点在于使代码的意图不会被误解,而不是为了炫技。简洁、真确是首要的。 尽量编写更通用的程序 好的程序应当能够返
阅读全文
摘要:
如果你不在乎能否开发出漂亮的软件,你又何必要耗费生命去开发软件呢?
阅读全文

摘要:第一部分:打好基础 + "第一章:欢迎进入软件构建的世界" + "第二章:用隐喻来更充分地理解软件开发" + "第三章:三思而后行:前期准备" + "第四章:关键的“构建”决策" 第二部分:创建高质量的代码 + "第五章:软件构建中的设计" + "第六章:可以工作的类" + "第七章:高质量的子程序
阅读全文
摘要:+ 在架构层将系统划分为多个子系统,以便让思绪在某段时间内能专注于系统的一小部分。 + 仔细定义类接口,从而可以忽略类内部的工作机理。 + 保持类接口的抽象性,从而不必记住不必要的细节。 + 避免全局变量,因为它会大大增加总是需要兼顾的代码比例。 + 避免深层次的继承,因为这样会耗费很大精力。 +
阅读全文
摘要:很多好的编程做法都能减轻你的大脑灰质细胞(指脑力)的负担。 + 将系统“分解”,是为了使之易于理解(“设计的层次”)。 + 进行审查、评审和测试正是为了减少人为失误。如果你从不犯错,就无须复审自己的软件。但要知道,人的智力是有限的,所以应和他人沟通,来提高软件质量。 + 将子程序编写得短小,以减轻大
阅读全文
摘要:核对表(自说明代码) + 你的类接口体现出某种一致的抽象吗? + 你的类名有意义吗,能表明其中心意图吗? + 你的类接凵对于如何使用该类显而易见吗? + 你的类接囗能抽象到不需考虑其实现过程吗?能把类看成是黑盒吗? 子程序 + 你的每个子程序名都能准确地指示该子程序确切干些什么吗? + 你的各子程序
阅读全文
摘要:格式化的基本原理指出,好的布局凸现程序的逻辑结构。 对于C++,请仔细组织源文件中内容的次序为: 1. 文件的描述性注释 2. \ include文件行 3. 在多个类里使用的常量定义(如果文件里有多个类) 4. 在多个类里使用的枚举(如果文件里有多个类) 5. 宏函数定义 6. 在多个类里使用的类
阅读全文
摘要:你至少能在以下领域找到高质量的程序库 + 容器类 + 信用卡交易服务(电子商务服务) + 跨平台的开发工具,你可以让编写的代码在Windows、AppleMacintosh、XWindowSystem上都能运行一一一只需为各个环境重新编译一次源代码 + 数据压缩工具 + 数据结构与算法 + 数据库操
阅读全文
摘要:术语“集成”指的是一种软件开发行为:将一些独立的软件组件组合为一个完整系统。 核对表(集成) 集成策略 + 该策略是否指明了集成子系统、类、子程序时应该采用的最优顺序? + 集成的顺序是否与构建顺序协调,以便在适当的时候准备好供集成的类? + 该策略是否易于诊断缺陷? + 该策略是否使脚手架最少?
阅读全文
摘要:核对表(配置管理) 概要 + 你的软件配S管理计划是否用于帮助程序员,并能将额外负担降至最低? + 你的软件配S管理方法是否避免了对项目的过度控制? + 你是否将一些变更请求聚成一组?无论采用非正式的方法(如创建一份未决更改的列表)还是更加系统的方法(如设立变更控制委员会)。 + 你系统地评估了每一
阅读全文
摘要:随着项目规模的增加,下面这些活动的工作量增长超过线性: + 交流 + 计划 + 管理 + 需求分析 + 系统功能设计 + 接口设计和规格说明 + 架构 + 集成 + 消除缺陷 + 系统测试 + 文档生成 在社交场合,活动越正式,你所穿的服装就会越不舒服(高跟鞋、领带等等)。在软件幵发领域里,项目越正
阅读全文
摘要:核对表(代码调整方法) 同时改善代码执行速度和规模 + 用査询表替换复杂逻辑。 + 合并循环 + 使用整型变量而非浮点变量。 + 在编译时初始化数据。 + 使用正确的常量类型。 + 预先计算结果。 + 删除公共子表达式。 + 将关键子程序代码转化为某种低级语言代码。 仅仅提高代码执行速度 + 在知道
阅读全文
摘要:在讨论编程的时候,没有“可能”一词的位置。——Tacey 如果对代码调整能否有助于提高某个程序的性能心存疑虑,按照以下的步 骤去做: 1. 用设计良好的代码来开发软件,从而使程序易于理解和修改。 2. 如果程序性能很差。 + a.保存代码的可运行版本,这样你才能回到“最近的已知正常状态”; + b.
阅读全文
摘要:神话:一个管理很完善的软件项目,应该首先以系统化的方法进行需求开发, 定义一份严谨的列表来描述程序的功能。设计完全遵循需求,并且完成得相当仔 细,这样就让程序员的代码编写工作能够从头至尾饩线型地工作。这也表明绝大 多数代码117欠编写后就己完美,测试通过即可被抛到脑后。如果这样的神话是真 的,那么代
阅读全文
摘要:泛调试步骤: + 通过可重复的实验搜集数据 + 根据相关数据的统计构造一个假说 + 设计一个实验来验证或者反证这个假说 + 证明或者反证假说 + 根据需要重复进行上面的步骤 寻找缺陷的有效方法: + 将错误状态稳定下来 + 确定错误的来源 1. 收集产生缺陷的相关数据 2. 分析所搜集的数据,并构造
阅读全文
摘要:自动化测试:http://robotframework.org/ HTTP接口测试: "POSTMAN" 测试: + 单元测试(unit testing) + 组件测试 (component tetsing) + 集成测试 (integration testing) + 回归测试 (regressi
阅读全文
摘要:》结对编程 》 正式检查 结对编程 成功运用结对编程的关键: + 用编码规范来支持结对编程 + 不要让结对编程编程旁观 + 不要强迫在简单的问题上使用结对编程 + 有规律的对结对人员和分配的工作任务进行轮换 + 鼓励双方跟上对方的步伐 + 确认两个人都能够看到显示器 + 不要强迫程序员与自己关系紧张
阅读全文
摘要:软件质量特性: + 外 + 正确性 + 可用性 + 效率 + 可靠性 + 完整性 + 适应性 + 精确性 + 健壮性 + 内 + 可维护性 + 灵活性 + 可移植性 + 可重用性 + 可读性 + 可测试 + 可理解性 提高生产效率和改善质量的最佳途径就是减少花在这种代码返工上的时间,无论返工的代码时
阅读全文
摘要:布尔 除了最简单、要求语句按照顺序执行的控制结构之外,所有的控制结构都依赖于布尔表达式的求值 嵌套 减少嵌套层次的技术列表: + 重复判断一部分条件 + 转换成if then else + 转换成case语句 + 把深层嵌套的代码提取城单独的子程序 + 使用对象和多态派分 + 用状态变量重写代码 +
阅读全文