《代码阅读方法与实践》阅读笔记2
代码阅读方法与实践是一本不错的课外读物,原因有二:
一、它前面几章的内容比较基础,我们大部分都学习过,但是它与之前的各种语言教程不同,不是将各种变量怎么声明,关键字什么含义,及其它一些的具体而微的用法,他是以一种纵观全局的高度,以一种过来人对后辈的关切提醒来叙述,拉近了作者与读者之间的距离。
二、它以经典的软件实例为教材,讲了各种语言的源码,有的语言我们学习过,但是看到它在各种实际项目中的身影,还仿佛很生疏,没有见过原来他规范的形式是这样,很少见过简单的循环结构被复杂的使用实现复杂的功能,有的语言我们没有学习过,开阔我么的视野,增长我们的知识。
不同的机制都可以将相同的数据元素组织成集合,每种机制都提供各自不同形式的存储和访问的方式。用数组实现的向量,提供对所有元素的随机访问,但它不适合运行期间大小发生变化的情况。向量还可以将多组元素组织成表的形式,或堆叠成二维,创建矩阵。向量的操作有时被限定成只能发生在向量的某一端,栈就是如此;向量的操作也有可能被限定为以先入先出的次序进行,这时候向量就成了队列。在元素的次序并不重要的情况下,常常用映射创建查找表和集合,后二者都可以用来形成元素的集合。指针可以将元素连接到一起,许多数据结构都使用了指针的这种能力。链表能够容易地动态增长,然而,对链表的访问只能以顺序的方式进行(栈和队列的操作也是如此),而组织得当的树既允许基于键来访问其中的数据元素,也可以容易地动态增长,同时还允许以安排好的方式进行遍历。
递归代码经常用来相似的定义来反映数据结构或算法。异常在c++和java中用来组织对错误的处理。通过使用软件或硬件的并行性,程序可以增强响应性,有条理地分配工作,或者有效地使用多处理器的计算机。当并行机制不可用时,程序就必须采用异步信号和局部跳转来响应外部事件。
大型的编码工作由于他们的大小与范围,经常能够证明应用一些技术的必要性,而在其他情况下这些技术可能根本不值得使用。本书中多出论及了许多这类技术;下面列出一些这类设计与实现方法:可视化过程和使用准则、重要的构架、积极的分解、多平台支持、面向对象技术、运算符重载、库、组件和进程、领域专用和定制的语言工具、对预处理的积极使用
相关文章
- 手机笔记如何分类?笔记分类管理方法
- 解决同一页面jQuery多个版本或和其他js库冲突方法
- iOS7中UIView的animateKeyframesWithDuration方法讲解
- 《Go学习笔记 . 雨痕》方法
- python开发笔记-ndarray方法属性详解
- Java ceil() 方法
- 无需编写一行代码,实现任何方法的流量防护能力
- Oracle 11g RAC INS-06006 Passwordless SSH connectivity not set up between the following node(s) 解决方法
- 《从零开始学Swift》学习笔记(Day 45)——重写方法
- MATLAB学习笔记 用图形方法求解二次方程
- Array对象的方法实现(2)----Array.prototype.every和Array.prototype.fill(实现常规参数的功能)
- Dev GridControl 单元格输入数据的验证方法
- winform频繁刷新导致界面闪烁解决方法
- 重构老系统遗留代码的一些方法学习笔记
- 【SpringBoot笔记14】SpringBoot框架之RestTemplate对象及其常用方法
- 机器学习的特征工程和优化方法
- cocos2d-x 2.0下怎样让BOX2D DEBUG DRAW的方法笔记
- 判断正则二叉树方法(基于c语言)
- 《代码阅读方法与实践》阅读笔记3
- [0] C# 扩展方法(Extension Method)
- Java中出现“错误: 编码GBK的不可映射字符”的解决方法
- 笔记:冥想的方法
- Android笔记:如何在Fragment里使用findViewById()方法?
- Linux新建或增加swap分区方法
- keras-yolo3:python库之keras-yolo3的简介、安装、使用方法详细攻略
- 高等数值计算方法学习笔记第6章【解线性代数方程组的迭代方法(高维稀疏矩阵)】
- 论文笔记:基于特征选择与增量学习的非侵入式电动自行车充电辨识方法
- Pytorch模型训练实用教程学习笔记:一、数据加载和transforms方法总结
- 2021年最新完整统计TensorFlow2.x报错记录与解决方法「希望能帮助到你」