您的位置:首页 > 编程语言

<<代码的未来>>读书笔记

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.拖延:减少不必要不仅急的工作。

      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: