《代码的未来》读书笔记

更多

1.书籍信息

书名:まつもとゆきひろ コードの未来
译名:代码的未来
作者:松本行弘
译者:周自恒
出版社:人民邮电出版社
ISBN:978-7-115-31751-3
页数:368

2.纸张、印刷与排版

16开本,纸张较厚,行、段间距合适。代码部分底色偏浅。

3.勘误

本书勘误页(图灵社区):http://www.ituring.com.cn/book/1073
本人总结勘误:代码的未来_人民邮电_1版2印_勘误

4.笔记与评价

阅读级别:代码外部分细读。
推荐级别:细读。

今天是2013年的最后一天,让我们来谈谈代码的未来吧,唔~ [em_cool]

《代码的未来》是松本行弘2009.6-2012.6在《日经Linux》上的一个专栏中文章的集合。从编程的本质出发,讲述了编程的过去、现在和将来,尤其对未来的云、大数据和多核环境下的编程进行了阐述和展望。本书由于是专栏文章的缘故,语言通俗易懂,并且讲解会很全面但不会特别深入,每一节字数较为恒定。有价值的内容并不少,对于大家来说也是个可以扩展眼界的书籍,至于大家对什么感兴趣可以再去深入了解。

本书总共分为六章。

第一章为《编程的时间和空间》,主要有《编程的本质》和《未来预测》两小节组成,这一章主要是引言的作用,并没有太多有用的知识点。

第二章为《编程语言的过去、现在和未来》。《编程语言的世界》一节中讲述了一些被埋没于历史当中的编程语言和计算机,以及其特点。《DSL》一节讲述了外部和内部DSL的定义、特点以及其优势。《元编程》一节主要讲解了反射、元编程以及Lisp的宏。《内存管理》一节主要讲解了GC的不同机制以及其发展历程。《异常处理》通过C中返回值的问题,讲解异常处理。《闭包》一节讲解了函数指针、闭包等知识。这一章中除了第一节中对过去的总结之外,其余节都各自讲述了一个现在编程中非常重要的概念,这些对于未来的云环境等大数据处理中意义十分重要。并且,这些概念大家的普遍理解经常存在偏差或错误,或是难以理解,在这里作者也都解释的非常清楚。

第三章为《编程语言的新潮流》。《语言的设计》一节主要讲解客户端/服务器端,以及静态/动态类型两个方面。接下来的四节分别对Go、Dart、CoffeeScript和Lua四种新兴编程语言进行了一定的讲解,并分析了这些语言的优缺点和适用场景。而这些语言的诞生,正是在当前并行处理和分布式处理广泛应用的背景之下。当然,本章中也对这几个语言的安装、基本使用进行了一定量的介绍。

第四章是《云计算时代的编程》,这一章主要指向云计算时代编程会遇到哪些问题,应当如何处理这些问题。《可扩展性》一节主要针对大数据的查找进行讲解,包括二分、Hash、Bloom Filter等。《C10K问题》一节则是介绍C10K问题产生的原因和解决方法,其中也发散的提到了一些其他的“想当然”问题。《HashFold》一节讲的是一种细化MapReduce的方法,但是很可惜这种方法最终消亡了。《进程间通信》一节讲解的是IPC相关的一些知识,前半部分比较偏基础知识,后半部分比较偏向Ruby,并以此来证明Ruby适合网络编程。《Rack与Unicorn》一节讲解了Rack和Unicorn两种架构,可以用来方便处理不同的HTTP服务器与不同的应用程序之间的连接问题。

第五章是《支撑大数据的数据存储技术》,在讲解了云计算时代编程的问题之后,着重来讲解数据存储的问题。《键-值存储》一节从数据库的ACID入手,阐述了其在分布式环境下的极限,并介绍了解决方案CAP原理及BASE,然后以ROMA为例介绍了键-值存储。《NoSQL一节》简单介绍了各种NoSQL数据库(《NoSQL数据库入门》读书笔记),并主要介绍了MongoDB的操作(《MongoDB权威指南》读书笔记)。《用Ruby来操作MongoDB》一节顾名思义,是一些Ruby操作MongoDB的基础知识。《SQL数据库的反击》是个不错的亮点,可以让我们看到SQL数据库之父的反驳观点,以及其开发的VoltDB,这些不同的观点可以让我们对于不同数据库的选择上保持更加清醒的头脑,而不是一味的追求新技术。《memcached和它的伙伴们》介绍的是memcached和Redis两种数据库,唔~这里Redis的命令居然占了好几页。

第六章是《多核时代的编程》。《摩尔定律》又让我们回顾了一遍书中不断重复的摩尔定律,好像也没太多新知识。《UNIX管道》一节又让我们回顾了一遍4.4节中的内容,当然,也提出了一些和多核有关的东西,以及Amdahl定律(好吧,这个也在两节中提到过)。《非阻塞I/O》主要介绍的是read(2)与select/O_NONBLOCK等配合、aio_read等方式进行非阻塞I/O编程的内容,本节代码偏多,当然作者也不忘提及Ruby的非阻塞。《node.js》一节介绍了非阻塞I/O的著名代表node.js,呃,前面的引子还是蛮长的,其实引子里面提到的减负、拖延、委派也挺重要的。最后一节《ZeroMQ》,可是前半部分怎么又在回顾Amdahl定律、IPC等等的了,ZeroMQ实际介绍并不多。

可以看出,本书还是给出了很多作者的观点,以及作者对于现在和未来编程语言发展中需要注意的很多重要问题。看了本书可以开阔一定的眼界,(而且,很多知识在面试中还是蛮有用的哦~)。话说不知是作者原文如此,还是翻译有意为之,书中有一些卖萌的话语诶~

推荐大家阅读一下这本书哦~,啊,话说《松本行弘的程序世界》那本书好像读了几章之后一直没有接着读,看来也要找个时间继续读了。俗话说,书非借不能读也,果然是书架上好多买的书,最后读得都是图书馆借的书,呃,毕竟要离校了。

本来想写一下年度总结的,想了想还是算了吧,恩,就这样。从今天开始连续五天都有聚餐,呃 [em_tucao]

新年快乐~

5.思维导图

1.编程的时间和空间
1.编程的时间和空间

2.编程语言的过去、现在和未来
2.编程语言的过去、现在和未来

3.编程语言的新潮流
3.编程语言的新潮流

4.云计算时代的编程
4.云计算时代的编程

5.支撑大数据的数据存储技术
5.支撑大数据的数据存储技术

6.多核时代的编程
6.多核时代的编程

思维导图(mmap)下载
思维导图(图片)下载

本文内容遵从CC3.0版权协议,转载请注明:转自Pythoner

本文链接地址:《代码的未来》读书笔记

  1. 暂无评论

  1. 暂无 Trackback

[em_zan] [em_yali] [em_xiao] [em_xhj] [em_tucao] [em_tu] [em_tiaopi] [em_sx] [em_sdz] [em_sbq] [em_mobai] [em_kzh] [em_ku] [em_ksh] [em_keai] [em_jiong] [em_jing] [em_hx] [em_han] [em_ganga] [em_daxiao] [em_cool] [em_chi] [em_bu] [em_bizui] [em_ai]

return top