随笔分类 -  读书笔记

摘要:表驱动法是一种编程模式(scheme)——从表里面查找信息而不使用逻辑语句(if、case)。事实上,凡是能通过逻辑语句来选择的事物,都可以通过查表来选择。在适当的情况下,采用表驱动法会比复杂的逻辑代码更简单、更容易修改,而且效率更高。 表驱动法必须要解决的两个问题: 1、如何从表中查询条目: + 阅读全文
posted @ 2018-04-05 16:50 Tacey Wong 阅读(641) 评论(0) 推荐(0)
摘要:核对表(不常见的控制结构) return + 每一个子程序都尽在有必要的时候才使用return吗? + 使用return有助于增强可读性吗? 递归 + 递归子程序中包含了停止递归的代码吗? + 子程序用安全计数器来确保子程序能停下来吗? + 递归只位于一个子程序里面吗? + 子程序的递归深度处于程序 阅读全文
posted @ 2018-04-04 22:55 Tacey Wong 阅读(320) 评论(0) 推荐(0)
摘要:核对表(循环) 循环的选择和创建 + 在核实的情况下用while循环取代for循环了吗? + 循环是由内到外创建的吗? 进行入循环 + 是从循环头部进入的循环吗? + 初始化代码是否直接位于循环前面吗? + 循环是无限循环或者事件循环吗?它的结构是否清晰? + 避免使用像for i=1 通9999这 阅读全文
posted @ 2018-04-04 22:27 Tacey Wong 阅读(479) 评论(0) 推荐(0)
摘要:核对表(使用条件语句) if then 语句 + 代码的正常路径清晰吗? + if then测试对等量分支的处理方式正确吗? + 使用了else字句并加以说明吗? + else字句用的对吗? + 用对了if和else子句,即没把他们用反? + 需要执行的正常情况是位于if而不是else子句里吗? i 阅读全文
posted @ 2018-04-04 22:10 Tacey Wong 阅读(478) 评论(0) 推荐(0)
摘要:核对表(组织直线型代码) + 代码使得语句之间的依赖关系变得明显吗?(顺序相关型) + 子程序的名字使得依赖关系变得明显吗? + 子程序的参数使得依赖关系变得明显吗? + 如果依赖关系不明确,你是否用注释进行了说明? + 你用“内务管理变量”来检查代码中关键位置的顺序依赖关系了吗? + 代码容易按照 阅读全文
posted @ 2018-04-04 21:27 Tacey Wong 阅读(543) 评论(0) 推荐(0)
摘要:只有万不得已时才使用全局数据 !!!就近原则!!!注释紧随代码,变量紧随使用它们的地方 ——Tacey 访问器子程序的优势 + 你获得了对数据的集中控制 + 你可以确保对变量的所有引用都得到了保护 + 自动获取信息隐藏的普遍益处 + 访问器子程序可以很容易转变为抽象数据类型 如何使用访问器子程序: 阅读全文
posted @ 2018-04-04 21:17 Tacey Wong 阅读(385) 评论(0) 推荐(0)
摘要:核对表:基本数据类型 数值概论 + 代码中避免使用神秘数值 + 代码考虑了除零错误了吗? + 类型转换很明显吗? + 如果在一条语句中存在两个不同类型的变量,那么这条语句会想你期望的那样求值吗? + 代码避免了混合类型比较吗? + 程序编译时没有警告信息吗? 整数 + 使用整数除法的表达式能按预期的 阅读全文
posted @ 2018-04-04 17:20 Tacey Wong 阅读(433) 评论(0) 推荐(0)
摘要:为变量取好的名字和高效编程同样重要 变量名要 完全 、 准确 地描述出该变量所代表的的事物 变量名的适宜长短和变量的作用域相关,越局部的变量,变量名越短(如循环变量) 常用对仗词: 核对表(变量命名) 命名的一般注意事项 + 名字完整并准确地表带了变量所代表的含义吗? + 名字反映了显示世界的问题而 阅读全文
posted @ 2018-04-04 16:26 Tacey Wong 阅读(561) 评论(0) 推荐(0)
摘要:利用构建活动来填补需求和架构中存在的细小间隙是一种行之有效的做法;但把蓝图设计得精细到已经能完全展现出所有的细节则实在是一种低效的方法 尽量缩小变量的作用域,尽量缩短变量的生存时间 ——Tacey 基础数据类型: 核对表(使用数据的一般事项) 初始化变量 + 每一个子程序都检查其输入参数的正确性了吗 阅读全文
posted @ 2018-04-04 15:03 Tacey Wong 阅读(488) 评论(0) 推荐(0)
摘要:一个类的创建过程可以千变万化,但基本上都会以下图所示的顺序发生: 伪代码编程过程的替代方案 + 测试先行开发/测试驱动开发:在任何代码之前先要写出测试用例 + 重构:通过对代码进行一系列保持语义的变换和调整来提高代码的质量。 + 契约式设计:认为每一段程序都具有前条件和后条件,用断言来注解并验证前条 阅读全文
posted @ 2018-04-04 00:49 Tacey Wong 阅读(663) 评论(0) 推荐(0)
摘要:要点 + 最终产品代码中对错误的处理方式要比“垃圾进,垃圾出”复杂的多。 + 防御式编程技术可以让错误更容易发现、更容易修改,并减少错误对产品代码的破坏。 + 断言可以帮助人尽早发现错误,尤其是在大型系统和高可靠性的系统中,以及快速变化的代码中。 + 关于如何处理错误输入的决策是一项关键的错误处理决 阅读全文
posted @ 2018-04-04 00:04 Tacey Wong 阅读(719) 评论(0) 推荐(0)
摘要:子程序是为实现一个 特定的目的而编写的一个被调用的方法或过程 创建子程序的正当理由 + 降低复杂度 + 引入中间、易懂的抽象 + 避免代码重复 + 支持子类化 + 隐藏顺序 + 隐藏指针操作 + 提高可一致性 + 简化复杂的布尔判断 + 改善性能 除此之外,创建类的很多理由也是创建子程序的理由 + 阅读全文
posted @ 2018-04-03 23:36 Tacey Wong 阅读(538) 评论(0) 推荐(0)
摘要:抽象数据类型是指一些数据以及对这些数据所进行的操作的集合 接口/API先行 ——Tacey 只有一个实例的类是值得怀疑的 不要创建任何并非绝对必要的继承结构 继承层次尽量限制在3层之内 如果可能,应该在所有的构造函数中初始化所有的数据成员(防御式编程实践) 优先使用深拷贝 创建类的原因 + 为现实世 阅读全文
posted @ 2018-04-03 23:35 Tacey Wong 阅读(444) 评论(0) 推荐(0)
摘要:无论是以何种方式来进行设计,小型项目也能和大型项目一样从精心的设计之中获益,而如果能认识到设计是一项明确的活动,你就更会获益匪浅。 设计过程充满了不确定性,因此设计技术也趋于探索性质 软件的首要技术使命:管理复杂度 设计特征: + 最小复杂度 + 易于维护 + 松散耦合 + 可扩展性 + 可重用性 阅读全文
posted @ 2018-04-03 21:33 Tacey Wong 阅读(735) 评论(0) 推荐(0)
摘要:核对表:主要的构建实践 编码 + 你有没有确定多少设计工作将要预先进行,多少设计工作在键盘上进行(在编写代码的同事)? + 你有没有规定诸如名称、注释、代码格式等“编码约定” (编码规范) + 你有没有规定特定的由软件架构确定的编码实践,比如如何处理错误条件,如何处理安全性事项,对于类接口有哪些约定 阅读全文
posted @ 2018-04-03 21:29 Tacey Wong 阅读(509) 评论(0) 推荐(0)
摘要:问题定义只定义了问题是什么,而不涉及任何可能的解决方案。 如果没有好的需求,你可能对问题有总体的把握,但却没有集中问题的特定方面。 需求像水。如果冻结了,就容易在上面开展建设 ——无名氏 (经常性无法预期的需求变更会伤害项目的开发者,从而毁了项目) 软件架构是软件设计的高层部分,适用于支撑更细节的设 阅读全文
posted @ 2018-04-03 21:27 Tacey Wong 阅读(607) 评论(0) 推荐(0)
摘要:隐喻的价值绝不应该被低估。隐喻的优点在于其预期的效果:能被所有的人理解。不必要的沟通和误解也因此大为降低,学习与教授更为快速。实际上,隐喻是对概念进行内在化和抽象的一种途径,它让人在更高的层面上思考问题,从而避免低层次的错误。 + 隐喻是启示而不是算法,因此他们往往有一点随意。 + 隐喻把软件开发过 阅读全文
posted @ 2018-04-03 21:20 Tacey Wong 阅读(885) 评论(0) 推荐(0)
摘要:首先要明确开发计算机软件是一个复杂的工程,并不比建设高楼大厦简单。这项活动和传统的土木工程类有相似的部分,也有迥然不同的地方。 主要有下面的几种活动(根据进程推动顺序): + 定义问题 + 需求分析 + 规划构建 + 软件架构/高层设计 + 详细设计 + 编码与调试 + 单元测试 + 集成测试 + 阅读全文
posted @ 2018-04-03 21:16 Tacey Wong 阅读(1293) 评论(0) 推荐(0)
摘要:Web Scraping with Python读书笔记 标签(空格分隔): web scraping ,python 做数据抓取一定一定要明确:抓取\解析数据不是目的,目的是对数据的利用 一般的数据抓取结构如下: 概要 一个简单的web数据抓取的流程就像下面的图一样 HTML获取 分析工具 + F 阅读全文
posted @ 2016-08-03 17:01 Tacey Wong 阅读(1211) 评论(0) 推荐(1)