随笔分类 -  代码大全读书笔记

代码大全code complete,读书笔记
摘要:征服复杂性 降低复杂度是软件开发的核心。 在架构层将系统划分为多个子系统,以便让思绪在某段时间内能专注于系统的一小部分; 仔细定义类接口,从而可以忽略类内部的工作机理; 保持类接口的抽象性,从而不必记住不必要的细节; 避免全局变量,因为他会大大增加总是需要兼顾的代码比例; 避免深层次的继承,因为这样 阅读全文
posted @ 2019-10-02 21:07 Liam-Ji 阅读(187) 评论(0) 推荐(0)
摘要:个人性格是否和本书话题无关 你无法提升自己的聪明程度,但性格在一定程序上能够改进。事实证明,个人性格对于造就出程序员高手更具有决定性意义。 聪明和谦虚 精通编程的人是那些了解自己头脑有多大局限性的人,都很谦虚。承认自己的智力有限并通过学习来弥补,你会成为更好的程序员。你越谦虚,进步就越快。 将系统分 阅读全文
posted @ 2019-10-02 17:41 Liam-Ji 阅读(166) 评论(0) 推荐(0)
摘要:外部文档 单元开发文件夹; 是一种非正式文档,其中包含了供开发者在变成期间使用的记录; 详细设计文档; 是低层次设计文档,描述在类层或子程序层的设计决定,曾考虑过其他方案,以及采用所选方案的理由。 编程风格文档 核对表:自说明代码 类 [ ] 你的类接口体现出某种一致的抽象吗? [ ] 你的类名有意 阅读全文
posted @ 2019-10-02 15:25 Liam-Ji 阅读(280) 评论(0) 推荐(0)
摘要:基本原则 格式化的基本原理 格式化的借本原理指出,好的布局凸显程序的逻辑结构。 任何计算机对程序的解读 布局是关于程序结构的有用暗示。 好布局有什么用 以某种风格来写程序并不仅仅是处于美观考虑。用习惯的方式写程序有着心理因素——程序员有着强烈的意识,觉得其他程序员都会遵循这些论述规矩。 把布局当作一 阅读全文
posted @ 2019-09-28 22:48 Liam-Ji 阅读(273) 评论(0) 推荐(0)
摘要:设计工具 目前的设计工具主要就是那些能创建设计图表的图形化工具。 源代码工具 编辑 集成开发环境(IDE); 在编辑器中进行编译和错误检测; 与源代码控制工具、build工具、测试工具、除错工具集成; 显示程序的扼要视图或大纲视图; 跳转到类的定义、子程序定义、变量定义处; 跳转到使用某个类、子程序 阅读全文
posted @ 2019-09-28 17:43 Liam-Ji 阅读(201) 评论(0) 推荐(0)
摘要:集成是指一种软件开发行为:将一些独立的软件组合为一个完整系统。 集成方式的重要性 从周到的继承中,你能预期获得某些下列的益处: 更容易诊断缺陷; 缺陷更少; 脚手架更少; 花费更少的时间获得第一个能工作的产品; 更短的整体开发进度表; 更好的顾客关系; 增强士气; 增加项目完成的机会; 更可靠地估计 阅读全文
posted @ 2019-09-28 11:44 Liam-Ji 阅读(189) 评论(0) 推荐(0)
摘要:鼓励良好的编码实践 给项目的每一部分分派两个人; 逐行复查代码; 要求代码签名; 安排一些好的代码示例工人参考; 强调代码是共有财产; 奖励好的代码; 所给与的奖励应该是程序员想要的; 只有非常出色的代码才应得到奖励; 一份简单的标准。 配置管理 什么是配置管理 配置管理是“系统化地定义项目工作和处 阅读全文
posted @ 2019-09-28 09:16 Liam-Ji 阅读(164) 评论(0) 推荐(0)
摘要:本章重点讲述提高代码运行速度的方法,同时也对如何减少代码的资源占用给出了一些建议。程序性能通常同代码的速度和资源占用相关,但减小代码资源占用更主要的是通过对类的数据结构的重新设计来实现,而非代码调整。 逻辑 在知道答案后停止判断; 按照出现频率来调整判断顺序; 相似逻辑结构之间的性能比较; 用查询表 阅读全文
posted @ 2019-09-28 09:15 Liam-Ji 阅读(175) 评论(0) 推荐(0)
摘要:本章讨论程序性能调整问题,性能问题可以从两个层面上考虑:策略上和技术上。本章要解决的是策略层面上的性能问题: 性能概述 性能和代码调整 请从以下方面来思考效率问题: 程序需求; 程序的设计; 类和子程序的设计; 程序同操作系统的交互; 代码编译; 硬件; 代码调整。 代码调整简介 Pareto法则 阅读全文
posted @ 2019-09-28 09:15 Liam-Ji 阅读(252) 评论(0) 推荐(0)
摘要:交流和规模 改善交流效率的常用方法是采用正式的文档。 项目规模的范围 项目规模对错误的影响 项目的规模既会影响错误的数量,也会影响错误的类型。 项目规模对生产率的影响 对小项目(2000行代码或者更少),影响生产率的最大因素莫过于单个程序员的技巧。随着项目规模和团队规模的增大,组织方式对生产率的影响 阅读全文
posted @ 2019-09-28 09:15 Liam-Ji 阅读(167) 评论(0) 推荐(0)
摘要:重构简介 重构定义: 1. 在不改变软件外部行为的前提下,对其内部结构进行改变,使之更容易理解以便于修改; 2. 尽可能地将一个程序分解为多个组成部分。 重构的理由 代码重复; 冗长的子程序; 循环过长或嵌套过深; 类的接口未能提供层次一致的抽象; 拥有太多参数的参数列表; 类的内部修改往往被局限于 阅读全文
posted @ 2019-09-22 20:37 Liam-Ji 阅读(215) 评论(0) 推荐(0)
摘要:调试时确定错误根本原因并纠正此错误的过程。 调试概述 让你有所收获的软件缺陷 理解你正在编写的程序; 明确你犯了哪种类型的错误; 从代码的阅读者的角度分析代码质量; 审视自己解决问题的方法; 审视自己修正缺陷的方法; 寻找缺陷 科学的调试方法在运用经典的科学调试方法时,你会经历如下步骤: 1. 通过 阅读全文
posted @ 2019-09-22 16:09 Liam-Ji 阅读(221) 评论(0) 推荐(0)
摘要:单元测试是将一个程序员或者一个开发团队所编写的,一个完整的类、子程序或者小程序,从完整的系统中隔离出来进行测试; 组件测试是将一个类、包、小程序或者其他编程元素,熊一个更加完整的系统中隔离出来进行测试,这些测试代码涉及到多个程序员或者多个团队; 集成测试是对两个或更多的类、包、组件或者子系统进行的联 阅读全文
posted @ 2019-09-21 23:36 Liam-Ji 阅读(853) 评论(0) 推荐(0)
摘要:协同开发实践概要 协同构建包括结对编程、正式检查、非正式技术复查、文档阅读,以及让其他开发人员共同承担创建代码及其他工作产品责任的技术。 协同构建是其他质量保证技术的补充; 协同构建有利于传授公司文化以及编程专业知识; 集体所有权适用于所有形式的协同构建; 在构建前后都应保持协作。 结对编程 成功运 阅读全文
posted @ 2019-09-21 14:09 Liam-Ji 阅读(204) 评论(0) 推荐(0)
摘要:布尔表达式 用 和`false`做布尔判断; 隐式地比较布尔值与 和`false`; 简化复杂的表达式; 拆分复杂的判断并引入新的布尔变量; 把复杂的表达式做成布尔函数; 用决策代替复杂的条件; 编写肯定性质的布尔表达式; 在 语句中,把判断条件从否定形式转换为肯定形式,并且互换 和`else`子句 阅读全文
posted @ 2019-09-21 12:47 Liam-Ji 阅读(242) 评论(0) 推荐(0)
摘要:本章从构建的角度来审视保障软件质量的技术。 软件质量的特性 正确性; 可用性; 效率; 可靠性; 完整性; 适应性; 精确性; 健壮性; 可维护性; 灵活性; 可以执行; 可重用性; 可读性; 可测试性; 可理解性 改善软件质量的技术 软件质量目标; 明确定义质量保证工作; 测试策略; 软件工程指南 阅读全文
posted @ 2019-09-21 12:47 Liam-Ji 阅读(325) 评论(0) 推荐(0)
摘要:表驱动法是一种编程模式——从表里面查找信息而不使用逻辑语句( 和`case`)。 表驱动法使用总则 在适当的环境下,采用表驱动法,所生成的代码会比复杂的逻辑代码更简单、更容易修改,而且效率更高。 使用表驱动法的两个问题 使用表驱动法必须先解决两个问题。首先,你必须要回答怎样从表中查询条目的问题。其次 阅读全文
posted @ 2019-09-18 18:40 Liam-Ji 阅读(297) 评论(0) 推荐(0)
摘要:子程序中的多处返回 程序可以通过 和`exit`这类控制结构,在任何需要的时候退出子程序。 如果能增强可读性,那么就使用 ; 用防卫子句(早返回或早退出)来简化复杂的错误处理; 减少每个子程序中 的数量。 递归 在递归里面,一个子程序自己负责解决某个问题的一小部分,它还把问题分解成许多的小块,然后调 阅读全文
posted @ 2019-09-18 18:40 Liam-Ji 阅读(234) 评论(0) 推荐(0)
摘要:选择循环的种类 在大多数语言中,你只能用到少数几个循环: 计数循环执行的次数是一定的,可能是针对每位雇员执行一次; 连续求值的循环预先并不知道将要执行多少次,它会在每次迭代时检查是否应该结束; 无限循环一旦启动就会一直执行下去; 迭代器循环对容器内的每个元素执行一次操作。 什么时候使用while循环 阅读全文
posted @ 2019-09-18 13:20 Liam-Ji 阅读(317) 评论(0) 推荐(0)
摘要:条件语句用于控制其它语句是否执行 if语句 简单if then语句 在写if语句的时候请遵循下述指导原则: 1. 首先写正常代码路径,再处理不常见情况; 2. 确保对于等量的分支是正确的; 3. 把正常情况的处理凡在if后面而不要放在else后面; 4. 让if子句后面跟随一个有意义的语句; 5. 阅读全文
posted @ 2019-09-17 17:18 Liam-Ji 阅读(254) 评论(0) 推荐(0)