松本行弘的程序世界
24推荐 收藏
28.9K阅读
图灵程序设计丛书

松本行弘的程序世界

松本行弘 (作者) 柳德燕 , 李黎明 , 夏倩 , 张文旭 (译者)
本书是探索程序设计思想和方法的经典之作。作者从全局的角度,利用大量的程序示例及图表,深刻阐述了Ruby 编程语言的设计理念,并以独特的视角考察了与编程相关的各种技术。阅读本书不仅可以深入了解编程领域各个要素之间的关系,而且能够学到大师的思考方法。

本书面向各层次程序设计人员和编程爱好者,也可以供相关技术人员参考。

今年618,图灵自有719种电子书参与以下两种优惠:

活动时间:6.18日

满减优惠码:618

每单满 99 减 50

满折优惠码:618+

每单满 299 即享5折

电子书
¥39.99
格式
mobi   pdf

纸质书
¥59.25 ¥75.00

出版信息

同系列书

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Java技术手册(第6版)

    Benjamin J Evans   David Flanagan   安道   译

    通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...

  • 机器学习实战

    Peter Harrington   李锐   李鹏   曲亚东   王斌   译

    机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或...

本书特色

本书为“Ruby之父”经典力作,展现了大师级的程序思考方式。作者凭借对编程本质的深刻认识和对各种技术优缺点的掌握,阐述了Ruby的设计理念,并由此延伸,带领读者了解编程的本质,一窥程序设计的奥秘。

本书不是为了介绍某种特定的技术,而是从宏观的角度讨论与编程相关的各种技术。书中第1章介绍了作者对编程问题的新思考和新看法,剩下的内容出自《日经Linux》杂志于2005年5月到2009年4月连载的“松本编程模式讲坛”,其中真正涉及“模式”的内容并不多,大量篇幅都用于介绍技术内幕和背景分析等内容,使读者真正了解相关技术的立足点。另外,书中还包含许多以Ruby、Lisp、Smalltalk、Erlang、JavaScript等动态语言所写成的范例。

目录

版权声明 阅读
推荐序 阅读
中文版序 阅读
前言 阅读
第 1 章 我为什么开发 Ruby 阅读
第 2 章 面向对象
第 3 章 程序块
第 4 章 设计模式 阅读
第5章 Ajax
第 6 章 Ruby on Rails
第 7 章 文字编码
第 8 章 正则表达式
第 9 章 整数和浮点小数
第 10 章 高速执行和并行处理
第 11 章 程序安全性
第 12 章 关于时间的处理
第 13 章 关于数据的持久化
第 14 章 函数式编程

作者介绍

松本行弘 Ruby语言的发明人,在1993年发布了Ruby语言的第一个版本,以后一直从事Ruby的设计与开发。2011年加入著名SaaS厂商Salesforce旗下PaaS公司Heroku,任首席Ruby架构师,致力于加快RubyCore的开发。他还是NaCI及乐天技术研究所的研究员。著有Ruby in a Nutshell和The RubyProgramming Language等书。他的博客地址为http://www.rubyist.net/~matz/。

相关文章

  • 出版圈郭志敏 5推荐

    松本行弘为什么要开发Ruby

    Ruby是起源于日本的编程语言。近年来,特别是因为在Web开发方面的效率很高,Ruby引起了全世界的关注,它的应用范围也扩展到了很多企业领域。 作为一门编程语言,Ruby正在被越来越多的人所了解,而作为一介工程师的我,松本行弘,刚开始的时候并没有想过“让全世界的人都来用它…...

  • Admin 1推荐

    图灵教育带您走进松本行弘的程序世界

    ![enter image description here][1] 松本行弘(Matsumoto Yukihiro)小传: 1965 年出生于鸟取县米子市。毕业于筑波大学第三学院信息学系。于 1993 年开始开发面向对象编程语言 Ruby ,于 1995 年发表。目前为网…...

  • 2gua 推荐

    《松本行弘的程序世界》 - 不一样的Ruby程序世界

    一本好书!学习的不是语言,而是语言背后的内涵!让你领悟程序开发不一样的思路,拓展程序人生的视野! Ruby在风靡程序世界数年之后的今天,继续展现出蓬勃的生命力,Ruby社区不断扩大,各种Ruby扩展库越来越多,Rails杀手级应用也依托Ruby这个坚硬磐石应运而生。这些都表明了…...

  • 武卫东 推荐

    关于Ruby的一些PPT

    The Top 10 Reasons The Ruby Programming Language Sucks - Matz's keynote presentation from RubyConf 2003 [… ...

  • 武卫东 2推荐

    松本行弘加盟Heroku

    一个多月前,Ruby之父松本行弘宣布加入Salesforce.com旗下的云计算公司Heroku,引起轰动。下文即是当时的一篇相关报道。 (本文译自Ruby Inside) Ruby的发明人Matz加入Heroku (Peter … ...

  • 武卫东 1推荐

    [转] Matz, Koichi访谈(一): Ruby虚拟机

    By Yuanyi ZHANG | Published: July 18, 2007 原文链接 这是一个系列访谈 ,采访者为James Gray,内容涉及Ruby虚拟机,多线程以及国际化等方面,接受采访的Matz为Ruby语言的创造者,Koichi(以下简称ko1)是YARV…...

  • 武卫东 1推荐

    [转]Matz, Koichi访谈(二):JRuby及其他

    By Yuanyi ZHANG | Published: July 19, 2007原文链接 问:最近Ruby社区出现了一些令人激动的新实现,如JRuby,Rubinius等,你们能谈谈这些新实现对Ruby的官方发布版本有什么影响? Matz:我很高兴看到有这么多的新实现出…...

  • 武卫东 推荐

    [转]Matz, Koichi访谈(三):多线程

    By Yuanyi ZHANG | Published: July 23, 2007 原文链接 问:让我们谈谈多线程吧,这可以算是新版本比较大的改动了。你们分别谈谈1.8和1.9中的线程模型好吗? Matz:老的线程模型属于绿色线程模型(最早出现于Java语言中,指线程不是…...

  • 武卫东 推荐

    [转]Matz,Koichi访谈(四):多语言支持

    By Yuanyi ZHANG | Published: July 24, 2007 原文链接 **问:我们已经讨论了多线程,下面让我们来谈谈字符编码吧。根据Ruby规划,这将会是变动较大的一个部分。Matz,你曾经说过你计划在Ruby中加入m17n(multilingual…...

  • 谢工在GitChat 8推荐

    征集与松本行弘访谈话题——走进松本行弘的程序世界

    2011中国Ruby技术大会11日在上海光大会展中心国际大酒店开幕。 http://t.cn/S7SKuV Ruby之父松本行弘将亲临现场,众多国内一线的Ruby实战高手也将发表各种主题的演讲。 图灵公司将派出副总编何建辉等一行现场采访松本行弘先生。 大家想对Matz...

  • 出版圈郭志敏 4推荐

    Matz的程序世界游记--评《松本行弘的程序世界》

    [原文链接][1] 作者:庄表伟 一位我非常喜欢的日本侦探小说家东野圭吾,曾经写过一篇小说:《超读书机器杀人事件》,其中介绍了一种非常先进的“高机能读书机”,不但能够写出一本小说的故事概要,更能够归纳书的内容、撰写心得并输出书评。最神奇的是,这个机器一共有五种评价模式可供选…...

  • 熊猫夜未眠 2推荐

    无废话Ruby

    本文是对Ruby最简单的总结,是根据网上有关资料收集整理,不保证全部内容都是正确的。旨在为Ruby开发的入门者提供一个快速的参考。 一、Ruby特点… ...

  • 熊猫夜未眠 1推荐

    座谈-Web开发中你所遇到的性能问题(大奖)

    作为一名Web开发者,不论你是用JEE、.NET,还是PHP、RoR、Django等等各种各样的Web开发技术,在项目实施过程中难免会遇到形形色色的应用性能问题,这些性能问题产生的原因,有可能是代码、应用服务器、数据库上的,也有可能是网络和IO上的,总之,性能问题是如此普遍...

  • 刘晓日 5推荐

    读《松本行弘的程序世界》启发颇多

    早上不到10点就收到图灵的赠书《松本行弘的程序世界》,抑制不住的得意就展现在脸上,翻开书当然就是一阵书香,又一次抑制不住笑容。非常的开心。 由于昨天去北医三院拔牙,就背上了它,地铁上就开始读,当然医院候诊、公交回家也一直在看松本,看完了前两章。用一句话形容看完的感受:激情澎湃…...

  • 李松峰 4推荐

    《松本行弘的程序世界》精彩书摘

    写在前面 以下是2011年4月份在复审《松本行弘的程序世界》期间,随手摘录发表在微博上的精彩书摘。虽然都是只言片语,也没有上下文,但几乎哪一段话读下来,都有让人猛然醒悟的感觉。我们常说“与君一席话,胜读十年书”。透过这寥寥数条简短的书摘,不难窥见《松本行弘的程序世界》是一座多…...

  • 大胖 4推荐

    [视频]Ruby之父松本行弘寄语中国读者

    ...

  • 2gua 3推荐

    RubyMine和WebStorm到货

    ![enter image description here][1] 在开源中国订购了RubyMine和WebStorm,今天内前后到货(licence)。 安装好了。 RubyMine配置颇费周折,总结如下,供Rubyist参考。 1. IRB console中文乱码问题…...

  • 2gua 2推荐

    Ruby变量

    Ruby的爱好者越来越多了,相比较前段时间了解的Scala,会显得单纯些(不必限于其它平台基础上)。Ruby的变量,有些细节需要注意,否则,一不小心就会犯错。 1. Ruby变量注意点 Ruby变量要注意以下几点: 局部变量:小写或下划杠“_”开头 全局变量:$开头 实例…...

  • 2gua 13推荐

    灵感很重要

    整一个白天都晕晕沉沉,皆因为最近夜晚睡眠不好,番茄钟打开,才发现什么叫作任時光匆匆流去,九牛也拉不回我的精神头来。 晚上回家看到宝贝娃儿,疲惫烦躁顿时消散不少,生命意义莫过于此,自己的遗憾在对娃的感情中得以释怀,我想,任何人、任何事,都能找到释然的解环,不经意间,你一拉,门就开…...

  • 出版圈郭志敏 2推荐

    松本行弘访谈录

    我很高兴来到松本先生的家乡——日本松江市拜会松本先生。我们在谈话间聊到一些Ruby语言背后的设计思想,松本先生也解答了我向他提出的几个问题。 Bruce:你为什么要开发Ruby? Matz:我从一开始摆弄计算机,就对编程语言产生了兴趣。编程语言不仅是用来编程的方法,还是思维…...

  • 出版圈郭志敏 2推荐

    语言设计的艺术

    作者:崔康 利用QCon杭州2011大会的间歇期,读完了[《松本行弘的程序世界》][1]的最后几章,合上书还觉得意犹未尽,想再多翻几遍。众所周知,松本行弘是Ruby的发明者,这本书是他的技术文集,主要章节在过去几年先后发表在日本的技术杂志上。坦白的说,我对Ruby语言本身没有…...

  • 李松峰 4推荐

    松本行弘说:我想让Ruby更快地发展

    日文版:Mr Junichi Niino,Rubyの進歩がより速くなることを期待している 英文版:[I am looking forward to accelerating Ruby's progress](http://blog.new-bamboo.co.uk/2011/7…...

  • 何逸勤 10推荐

    Ruby之父松本行弘:自主性、决定权和属于自己的思考(图灵访谈)

    图灵访谈之四:松本行弘专访 2011年11月11日,图灵社区就Ruby的设计和中国程序员关注的诸多话题,采访了Ruby设计者[松本行弘][1]先生,以下为访谈内容。(视频在此) **图灵社区:《松本行弘的程序世界》中文版上市之后,在程序员(不仅仅是Ruby)社区取得很好的反…...

  • 何逸勤 6推荐

    [视频]图灵访谈系列之四:松本行弘谈Ruby

    2011年11月11日,图灵社区就Ruby的设计和中国程序员关注的诸多话题,采访了Ruby设计者松本行弘先生,详情请见图文报道,以下为访谈的精彩视频。 关于Ruby的推广平台 松本行弘先生给中国程序员的建议 [… ...

  • chenge 5推荐

    2012一周一语言:Ruby

    借《七周七语言》的光,起这个名字。 假如有一周难得的闲暇时间,想学习下久闻大名的Ruby语言,怎么安排好呢?根据经验,不妨这样安排: 有经验的程序员: 一个新发现的不错的选择:一个独特而简洁的ruby英文教程:just enough ruby,是自顶向下介绍的。 传统的…...

  • 乐馨 10推荐

    松本行弘访谈问题征集

    ![enter image description here][1] >**松本行弘**(Yukihiro Matsumoto),Ruby之父。1965年4月14日出生于日本鸟取县。现任株式会社Network应用通信研究所研究员、乐天株式会社乐天技术研究所研究员、Ruby ...

  • 乐馨 20推荐

    松本行弘:我的编程人生

    ![enter image description here][1] 生平: 松本行弘(Yukihiro Matsumoto),1965年4月14日出生于日本鸟取县。1984年,就读于筑波大学第三学科信息学系。2年后休学,成为末日圣徒耶稣基督教会的宣讲师。大学复学后,加…...

  • 赤裸裸的诱惑你去玩Ruby
    TAIRAN  发表于 2012-06-04 18:28:35
    推荐
  •   Ruby可说是一门灵活至极的语言。它的代码块+yield、duck typing、模块元编程等特性,使它面对各种应用环境,尤其是Web应用时,都可做到快速开发;而且作为脚本语言,它在粘合应用程序、编写爬虫、自动测试程序等任务中同样表现不俗。这样一门洋溢着自由精神的语言,其发明者是什么样的人?他对于各门编程语言及语言背后蕴含的思想,又经历过哪些思考、得到过何种见解?我想,这本由Matz亲笔写就、字里行间饱含其智慧结晶的书,应该很接近我不止一次思索过的这些问题的答案。
      
      简单翻看了这本书的两章样章(第一章和第四章,可由 http://www.china-pub.com/computers/common/mianfeisd.asp?id=198467 下载),说一点自己的感想。
      
      第一章一上来,Matz首先就谈到了他为什么开发Ruby。答案和很多IT界乃至自然科学领域的大牛们一样——兴趣。当然,同样的问题若由某国大牛回答,那么答案很可能会是——感谢国家、感谢政府给我编程的机会。不过话说回来,在某国这一急功近利、思维封闭、极少倾听内心声音的社会,是否有人能开发出像Ruby这种自由洒脱的语言还是个问题。紧接着,Matz又谈到编程语言为什么重要。这里,他提到了一个语言学中的假说——Sapir-Whirf假说:语言不同造成思想不同,并把自然语言的这个假说推广到了编程语言上。虽然下面的注释说,这个假说在自然语言领域越来越站不住脚,但我认为,且不说思想,语言至少和文化紧密相关着。而在编程世界中,语言更是至关重要,各种范型、各种惯用法,甚至一个小小的语法糖,都会对编程本身造成重大影响。
      
      经由Sapir-Whirf假说,Matz很自然地把编程语言和开发效率联系到了一起——既然语言决定思想,那我干吗不发明一种尽量贴近人类思考方式、尽可能灵活的编程语言?这样就引出了发明Ruby的原动力——提高程序员的开发效率。围绕着这个原动力,Matz更进一步展开,谈到了三个具体的设计原则——简洁性、扩展性、稳定性。
      
      简洁性,说的是程序员在编程时不应为那些细枝末节、与描述算法无关的代码操心,比如类型声明之类,而是应专注于算法本身去编程。这条原则很像从命令式编程到声明式编程的转变,显然,这能够大大提高程序员的效率。正是因为有这条原则指导,Ruby才会成长为今天这样善于利用元编程技术和DSL解决问题的语言。扩展性,Matz提到了由抽象化实现扩展性的方法。“抽象”二字,正是自由的关键。如果什么都预先约束,反而会僵化死板、毫无扩展余地;但过度抽象同样是编程的大忌。因此在本小节最后,Matz也谈到了如何在抽象和约束间做出权衡,找到一个平衡点。稳定性,就是保持程序的结构。它统一了各种程序的风格和结构,使代码的可读性增强。这同样可以提高程序员的开发效率。这里Matz举了Lisp宏的例子。但我个人认为,作为Ruby而言,实际上并没有太做到这一点。用Ruby的元编程机制,实现类Lisp的宏一点不难。而且Ruby偏重DSL的特点,似乎也注定它不太容易稳定。也许稳定性这条原则,在看过后面章节的详述之后才能更好领会。
      
      三大原则之后,Matz在最后一小节又回到了兴趣和开发效率,作为对第一章的总结。纵观全章,为兴趣爱好而工作、为提高开发效率而发明Ruby,可说是Matz至关重要的两个出发点(同时也应是我们在宏观和微观两个处事层面上的出发点)。Ruby散发的自由精神,很好地演绎了这两个出发点。另外,值得注意的是,三大原则中,有两个原则(简洁性和稳定性)都提到了Lisp,这也暗示着Ruby在很大程度上受到了Lisp的影响。
      
      再简单说说本书的第四章。第四章表面上看,讨论的是设计模式和设计原则,实则不然。它讨论的是动态语言与静态语言相比,在进行软件开发时究竟具有何等优势。
      
      第四章一上来就讨论了软件设计中最重要的几个设计模式。可以看出,Ruby这样的动态语言与Java、C++这些静态语言相比,实现各种模式都要便捷得多,也更符合人类的思维方式。值得注意的是,讲到原型模式的时候,Matz还提到了Io语言。Io以其彻底的原型特性,近来也受到了不少关注(有机会的话,我很想写一篇关于Io的介绍性文章)。了解这门语言,同样可加深对JavaScript、Ruby等语言的理解。Matz在编程语言上真可谓学识渊博、不拘一格。
      
      本书内容极棒,翻译也较为流畅,但某些地方仍稍有瑕疵。比如第105页第四行的“Smalltalk的‘亚种’Self语言”,这个“亚种”似乎翻译得不太舒服。它对应的英文单词可能是subtype之类的(当然,原书大概是日文,但也应为类似的词),意译为“后代”或“衍生品”或许更好一些。还有第118页倒数第三行的“设计模式与软件开发原则(Open-Clode principle)”,这个似乎和括号里的英文不对应,是否括号里写错了?或者其本意(作者本意还是译者本意?)是“设计模式与软件开发原则——开放-封闭原则”?似乎也应再作推敲。
      
      写了不少,目的当然是为了拿一本赠书,呵呵。如果看过全书后再有什么感想,有时间的话也会写下来,分享给想读此书的朋友们。也欢迎更多喜欢本书、喜欢编程的朋友发帖讨论。
    转自:http://book.douban.com/review/5087517/
    出版圈郭志敏  发表于 2011-09-06 13:50:35
    推荐
    • 我真的没看到智慧的结晶,真的没有。

      常新居士  发表于 2011-09-12 17:37:03
    • 哥,我真佩服你,样章看了两章,你能写这么多出来

      常新居士  发表于 2011-09-12 17:38:36
  • 程序员的自我世界
      Knuth 说编程是件迷人的工作,她能把美丽的数学在现实中展现出来,他对此深深着迷。大师的数学修养我们没法达到,但我们可以把通过编程把梦想带到现实,带到世界各处,爱思考的人尤其无法拒绝这种诱惑。松本行弘就是这样一种人。最初接触Ruby是很久以前的事了,那时自己到处找脚本语言玩,听说了ruby,好像还没有ROR,有同学因为作者是日本人还有些抵触,不过程序是无国界的,好东西还是流行了开来:)即使Ruby这样成功,从书的字里行间可以看出松本行弘还是在继续学习,思考,将更美好的东西带到Ruby当中,就像不断学习的谦恭的程序员Dijkstra。松本行弘达到这种高度并不是因为他有很高的编程天赋(不能和神人比),而且写一种实用的语言比起用语言实现一套框架难度不是一个级别的,对梦想的执着,对程序的热爱让他前进到此。希望天下有梦想的程序员把心中的天堂带到人间。
    出版圈郭志敏  发表于 2011-09-06 13:52:09
    推荐
    • 这和这本书有什么关系?

      常新居士  发表于 2011-09-12 17:35:40
  • 啊,终于出电子版了。出一本(电子版)买一本(电子版)扔一本(实体书),减负 :D
    邱茂源  发表于 2013-09-16 17:49:24
    推荐
    • .....孙燕姿

      邪恶的陈山楂  发表于 2013-11-13 17:47:05
    • 是啊,电子书还有很大的发展空间,现在的电子书只是把纸质书的内容原封不动的抄过来。电子书的表现方式实在太多了。

      byunting  发表于 2014-01-02 10:08:11
  • 拖了很久,总算把这本书完全看完了,总的来说是物有所值的。无论是从事哪种语言的程序员都该看一看。从目录可以看出,他把程序员需要了解到的知识挨个讲了一遍,我想这也是他登连载的目的。设计模式,正则表达式,字符编码,日期,等等都是所有程序员要掌握的,又温习了一遍,我这两天正在用c++模板实现自己的迭代器,外部迭代内部迭代很清晰的解决了我的疑惑。
    白龙  发表于 2011-11-28 20:28:39
    推荐
  • 收获心得,按章节排列
    第一章 为什么开发Ruby
    兴趣最重要,数学不好也没问题,这个真的用真实例子抨击了那些吵着要数学好才能编程的人,照我看来可能是对数学感兴趣的人基本也会对编程感兴趣:) 其他专业只要感兴趣都可以搞好,在我看来编程就是逻辑推导和边界问题判断

    第二章 面向对象
    goto和多继承,哈,从没这么想过,也有道理。进一步了解了mix-in,duck typing.

    第三章
    inject,select, colect,这些方法倒从没考虑过加到集合里去。C++有另外的方式,不过自己实现库倒可以考虑。

    第四章 设计模式
    内外迭代器区分,Io语言, OCP原则已经很了解了,其实设计模式的变化就在于要根据实际情况选择不变的维度,变化的维度,并不是固定的。

    第五章 Ajax
    没做过网页编程,看后了解了

    第六章
    猴子补丁,第一次接触这个概念

    第七章
    系统的了解了编码的一些历史和原理

    第八章
    复习了一下,快速看过,鬼车不知道能不能单独用

    第九章
    知道了不少特例

    第十章
    关于优化,老生常谈,有机会多玩玩Erlang

    第十一章
    复习了下xss csrf攻击
    第十二章
    时间实现真是个大问题,不是一个人能搞定的,为啥那么多恶心的规定
    第十三章
    第一次听说object prevalence模式,准备深入了解下
    http://www.ibm.com/developerworks/library/wa-objprev/
    第十四章
    对函数语言,垃圾收集,代码生成作了概述,有个完整的概念认识。





    白龙  发表于 2011-11-28 20:58:58
    推荐
  • 我没看过原版(我也看不懂)。就翻译版来说,个人觉得翻译得很好。语言很朴实很受用(不知道原版是不是也是这样的)。marz大神,值得期待。
    Loudyn  发表于 2012-09-19 17:33:49
    推荐
  • 想起Ruby大會上老外的{code Ruby, Be Happy!}
    Jackyhua  发表于 2014-07-22 16:33:41
    推荐
  • 这简直就是计算机科学导论嘛。
    龙哥盟飞龙  发表于 2015-04-04 20:35:47
    推荐