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:为分布式应用程序开发提供进程间通信功能的库.
<<编程的未来>>读书笔记
原文:http://www.cnblogs.com/bukekangli/p/4623361.html