<<代码的未来>>读书笔记
2015-07-06 00:43
330 查看
1.编程的本质是思考.
2.无论使用什么编程语言,生产一条基本语句所需要的工数几乎是一定的.(<<人月神话>>)#使用抽象程度高的语言可以提高生产效率.
3.DSL:What, not How
内部DSL:"借宿"在宿主语言中,借用了宿主语言语法.
外部DSL:独立于编程语言,可以实现跨语言共享.eg.XML,SQL.
4.GC
术语
GC:已经引用不到的对象被视为"死亡",将"死亡"对象找出来,作为垃圾回收.
Root:判断对象是否被引用的起始点.不同语言和编译器有不同规定,但基本是将变量和运行栈空间作为根.
GC算法
基本算法
Mark and Sweep/Compact
Copy and Collection
Reference Count
改良的应用方式
Generational GC:采用Mark and Sweep或Copy and Collection都可以,大多采用Copy and Collection
Incremental GC
Parallel GC
GC大一统理论:任何一种GC算法都是跟踪回收和引用计数两种思路的组合.
5.墨菲定律(Murphy's Law):Anything that can go wrong will go wrong.
6.高阶函数:用函数作参数的函数.
7.闭包:在函数对象中,将局部变量这一环境封闭起来的结构被称为闭包.被封闭起来的是变量的寿命,与封闭它的函数对象寿命相等."过程与数据结合"是形容面向对象中的"对象"时常用的表达.对象是在数据中以方法的形式内含了过程,而闭包则是在过程中以环境的形式内含了数据.
8.Duck Type
9.WSGI:用于连接HTTP服务器与框架的库.
10.数据库ACID特性
Automicity:对于数据库的操作只允许"全部完成"或"全部未改变"这两种状态,不允许中间状态.
Consistency:数据库的状态必须永远满足给定的条件.(如银行存款非负)
Isolation:保持原子性的一系列中间状态不能由其它事务.
Durability:当保持原子性的一系列操作完成时,期结果会被保存并且不会丢失.
11.CAP原理
在大规模环境中
Consistency
Availability
Partiotion Tolerance
三个性质中,只能同时满足两个.
12.CAP解决方案-BASE
Basically Available
Soft-state
Eventually consistent
13.键-值存储:键-值存储使用散列值,结构简单,容易将数据分布在多台计算机上,适合大规模数据.
14.数据库分库(Sharding/Partitioning)
水平分割:将一张表中的各行数据直接分割到多个表中.
垂直分割:将一张表中的某些字段(列)分离到其他表中.
15.NoSQL数据库
优势
限定数据访问方式:大多数NoSQL对数据的访问方式都被限定为通过键来查询对应的值.而且可以以键为单位来进行自动水平分割.
放宽一致性原则:遵循BASE
分类
键-值存储数据库
面向文档数据库:CoutchDB,MongoDB,
面向对象数据库:提升一些数据结构比较复杂的小规模数据库的访问速度.
16.I/O阻塞:I比O明显.
17.ZeroMQ:为分布式应用程序开发提供进程间通信功能的库.
19.拖延:减少不必要不仅急的工作。
2.无论使用什么编程语言,生产一条基本语句所需要的工数几乎是一定的.(<<人月神话>>)#使用抽象程度高的语言可以提高生产效率.
3.DSL:What, not How
内部DSL:"借宿"在宿主语言中,借用了宿主语言语法.
外部DSL:独立于编程语言,可以实现跨语言共享.eg.XML,SQL.
4.GC
术语
GC:已经引用不到的对象被视为"死亡",将"死亡"对象找出来,作为垃圾回收.
Root:判断对象是否被引用的起始点.不同语言和编译器有不同规定,但基本是将变量和运行栈空间作为根.
GC算法
基本算法
Mark and Sweep/Compact
Copy and Collection
Reference Count
改良的应用方式
Generational GC:采用Mark and Sweep或Copy and Collection都可以,大多采用Copy and Collection
Incremental GC
Parallel GC
GC大一统理论:任何一种GC算法都是跟踪回收和引用计数两种思路的组合.
5.墨菲定律(Murphy's Law):Anything that can go wrong will go wrong.
6.高阶函数:用函数作参数的函数.
7.闭包:在函数对象中,将局部变量这一环境封闭起来的结构被称为闭包.被封闭起来的是变量的寿命,与封闭它的函数对象寿命相等."过程与数据结合"是形容面向对象中的"对象"时常用的表达.对象是在数据中以方法的形式内含了过程,而闭包则是在过程中以环境的形式内含了数据.
8.Duck Type
9.WSGI:用于连接HTTP服务器与框架的库.
10.数据库ACID特性
Automicity:对于数据库的操作只允许"全部完成"或"全部未改变"这两种状态,不允许中间状态.
Consistency:数据库的状态必须永远满足给定的条件.(如银行存款非负)
Isolation:保持原子性的一系列中间状态不能由其它事务.
Durability:当保持原子性的一系列操作完成时,期结果会被保存并且不会丢失.
11.CAP原理
在大规模环境中
Consistency
Availability
Partiotion Tolerance
三个性质中,只能同时满足两个.
12.CAP解决方案-BASE
Basically Available
Soft-state
Eventually consistent
13.键-值存储:键-值存储使用散列值,结构简单,容易将数据分布在多台计算机上,适合大规模数据.
14.数据库分库(Sharding/Partitioning)
水平分割:将一张表中的各行数据直接分割到多个表中.
垂直分割:将一张表中的某些字段(列)分离到其他表中.
15.NoSQL数据库
优势
限定数据访问方式:大多数NoSQL对数据的访问方式都被限定为通过键来查询对应的值.而且可以以键为单位来进行自动水平分割.
放宽一致性原则:遵循BASE
分类
键-值存储数据库
面向文档数据库:CoutchDB,MongoDB,
面向对象数据库:提升一些数据结构比较复杂的小规模数据库的访问速度.
16.I/O阻塞:I比O明显.
17.ZeroMQ:为分布式应用程序开发提供进程间通信功能的库.
19.拖延:减少不必要不仅急的工作。
相关文章推荐
- PHP 错误与异常 笔记与总结(16 )自定义异常处理器
- java开源项目
- java开源项目
- java 时间相关的类互相转换
- 在visual studio 2013中编译Lua5.3.1
- java 二进制兼容性概述
- JDK源码分析之concurrent包(一) -- Executor架构
- C++ Primer快速入门之三:几种常见的控制语句
- C++对象内存布局 (二)
- ASP.NET动态添加用户控件的方法
- PHP 错误处理机制
- php导出中文内容excel文件类实例
- php实现搜索一维数组元素并删除二维数组对应元素的方法
- php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
- 详解PHP中的PDO类
- PHP中创建和验证哈希的简单方法实探
- python创建临时文件夹的方法
- python获取文件扩展名的方法
- python根据日期返回星期几的方法
- python删除指定类型(或非指定)的文件实例详解