码迷,mamicode.com
首页 > 其他好文 > 详细

<<编程的未来>>读书笔记

时间:2015-07-06 01:24:17      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!