基本信息
- 原书名:Practical Ruby for System Administration
- 原出版社: Apress
- 作者: Andre Ben Hamou
- 译者: 仲田
- 丛书名: Ruby和Rails技术系列
- 出版社:机械工业出版社
- ISBN:9787111250838
- 上架时间:2008-12-2
- 出版日期:2008 年12月
- 开本:16开
- 页码:208
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > Rails/Ruby

编辑推荐
在系统管理中应用Ruby强大而优雅的功能...
内容简介
作译者
目录
技术评审者介绍
作者致谢
引言
第1章 Ruby能为你做什么
1.1 Hello World程序
1.2 Ruby内幕
1.2.1 对象漫谈:面向对象理论
1.2.2 对象实战:Ruby的OO观点
1.2.2 秘传技巧:读写方法省了很多事
1.2.3 块和yield的奥妙
1.2.4 包罗万象:关于类型的理性途径
1.3 管理员专用药膏
第2章 常规任务的快速解决方案
2.1 单行代码示例
2.1.1 用Ruby进行grep匹配搜索
2.1.2 处理注释
2.1.3 运用行号
2.1.4 与字段打交道
2.1.5 巧妙的记录处理方法
译者序
Ruby语言自从诞生以来,由于没有“杀手级”应用,一直默默无闻地在小范围传播,未得到广泛注意。直到2005年Ruby on Rails横空出世,世人才惊觉在耀眼夺目的Rails背后,有如此强大的Ruby。原来Ruby可以这么用,原来Ruby可以这么强!可以说,没有强大灵活的Ruby,就没有一鸣惊人的Rails!
本书让我们看到,Ruby在系统管理员手中,还可以得到进一步的发挥,让系统管理维护的日常繁杂事务变得如此井井有条,而且利用Ruby灵活而强大的语法,只需几行代码,即可快速解决问题。
值得一提的是,教授语言的大师Bruce Eckel(写过《Thinking in C++》、《Thinking in Java》、《Thinking in Python》等获奖名著)和面向对象设计大师Martin Fowler(写过《Patterns of Enterprise Application Architecture》、《Refactoring》、《UML Distilled》、《Planning Extreme Programm ing》等获奖名著)都对Ruby推崇备至。自从Ruby出现后,他们也像常人一样从Python移情别恋了。
本书作者是Ruby“狂热分子”,他在自己就职的公司,尤其是本职岗位(系统管理员)推行Ruby,取得了良好的成果。他根据自己的亲身经历和丰富经验写成本书,其中涵盖UNIX(和Linux)管理员经常碰到的问题和日常例行工作,包括:
用单行脚本代码快速解决问题。
脚本的性能分析和优化。
利用Ruby强大的元编程实现领域专用语言。..
用程序驱动和模板驱动等方式创建文件。
在文件和网络中实现对象的存储和读取。
利用XML和各种网络协议解析企业数据。
网络传输数据收集、事件监控和统计结果展示。
用GEM包扩展Ruby的功能。
用RAKE进行测试和文档生成。
本书译者分别为仲田、顾娟、吴畏、汪燕。其中仲田负责第1、2、3、5、8、10章和附录,顾娟负责第4、6章,吴畏负责第11、12章,汪燕负责第7、9章,最后由仲田统稿。
翻译的过程也是一种学习,通过翻译本书我才发觉自己的眼界非常狭窄,原来系统管理维护也是这么丰富多彩,其中的趣味和困难丝毫不亚于程序开发。本书让我大开眼界,希望也能让你感觉耳目一新,这样也不枉作者和译者的一番辛苦,当然,更对得起你为本书花费的人民币了。
祝你读得愉快!...
前言
你瞧,本书的目标读者明摆着是系统管理员,但知道这点没什么用处,就好像为了缩小搜索范围,叫电话公司帮你接通委内瑞拉的Bob一样。因为,除了几个共同的特点,我们系统管理员的情况五花八门(假如能以Slashdot网站作为评价标准的话)。我们是“奇客”,这意味着,我们热爱技术和架构本身,并从解决问题中获得快感。我们总有太多的活,而没有足够的时间来处理。人们要求我们做各种各样的事,从找回丢失的电子邮件,到从零开始构建一个定制的CMS系统,而且这种事总是“昨天就要完成”,例如下面这种经常发生的事:
星期一早上8点52分,Jo正要冲进房间,还没跑到半路她就大叫起来:“今天交易结束之前,MD要在我们的邮件服务器上实现内容镜像,否则我们都要被起诉啦!”
在此类情景中,一个个问题冲击着你:以理智之名的Jo到底是谁?她怎么总是能通过安全门禁?
从工程角度审视我们的工作,快速部署的想法如此深地渗透到日常工作中,导致许多(虽然不是全部)系统管理员都草草学习了一门解释型语言。问题是,你应该选择哪一门语言?
有好几年时间,我一直使用并信任Perl语言,直到我转向Ruby。我转投Ruby的原因可以简单地用莎士比亚的话来概括(谢谢你,威廉)。当Bard在谈论生活,评述一个傻瓜讲的故事时,他仿佛就在评论我编写的复杂Perl脚本:“充满声音和规则,但却毫无意义”。
程序应该写得很美,不会让眼睛紧张到几乎视网膜脱落。正如Eric Raymond所说:“丑陋的程序犹如烂尾桥梁:它比漂亮的桥梁更容易倒塌,因为人们(尤其是工程师)对美的感知能力,是与处理和理解复杂性的能力紧密相关的。如果用一门语言很难写出优雅的代码,那用它也很难写出好的代码”。
简而言之,管理员需要这样一门语言,用它来思考越容易越好,简明而不晦涩,语法设计使得“正确的”做法与“快速的”做法没有两样,阅读起来好似可执行的元代码(metacode)。让我们直面事实吧———符合以上条件的只有两种主流语言:Ruby和Python。但对我的钱来说,虽然Python非常接近,但只有Ruby正中目标。
当我刚开始用Ruby时,我猜我的做法和以前不少人一样,用Ruby编程,而用Perl思考。这样可写不出好的脚本(就好比我只把香蕉顶在头上,就让你相信我是Carmen Miranda,这是不可能的事)。在改掉因Perl养成的各种针对内部结构编码的坏习惯时,我真希望自己早就用上Ruby,这样就能早点享用它的好处。
综上所述,我得在此解释一下在本书中我采取什么样的叙述方式。本书是我6年前就希望能得到的一本书,那时我第一次在别人那里见识了Ruby代码,并决定改弦易辙。本书不是权威的Ruby语言参考书(尽管第1章将假设你几乎没有编程经验,并简要介绍Ruby以便让你跟得上进度),它也不是一本提供101种方法创建LDAP客户端的“菜谱”书,本书没有整章描述“如何在Linux、Windows、Solaris和MacOSX中创建用户、删除用户”之类的内容,它不“可用于微波炉”,也不能当成“救生圈”来用。..
我想做的,是在非常概念化、纯理论的讨论与精心选择的示例之间取得平衡,关注重点在于管理员用Ruby编程所能获知的核心技术与方法。之所以采取这种方式,是因为我相信,作为奇客,我们从不读DVD播放机的用户手册。因为我们更喜欢在头脑中建立一个抽象播放器的通用模型,并根据经验构想某些常用按钮的样子。通过这样的组织思考,我们在处理不熟悉的系统时就比较容易适应——这也就是Scott Adams所谓的“诀窍”。
在这个系统管理员被索求无度的世界,你得有快速读写代码的能力和打开套接字(socket)、锁定文件、强制限定文件格式的能力。基本上,你要能迅速打开无所不包、满满当当的工具包,才能应对纷至沓来的、无法预期的挑战。我希望,本书能为你的工具包提供几个额外的扳手工具。
在我们开始之前,对于不熟悉Ruby的读者,下面介绍一下完全精确的Ruby历史。
完全精确的Ruby历史
在古代,生活比现在更艰辛。那时候男人是真正的男人,女人也是真正的男人,甚至寄生虫也是真正的男人。到处都是战场,庞然大物在远古的沼泽里相对嘶吼。那是一个个性的时代,是中流砥柱、钢筋铁骨、卧薪尝胆的英雄时代。
在这样的艰难困苦之中,有某种颠覆性的事物在人类心中闪耀。黑暗中有红色的光芒在闪烁,其中弥漫着大胆的承诺和欣喜的丢弃。一种变化正在到来,仿佛熟透裂开的栗子花,在风中可以嗅到它的味道。
在北极圈冻土边缘的一个小村庄,有个男孩出生在注册会计师和绳圈舞者的家庭。某个智慧老者预见此事,他出席了出生仪式,心中充满狂喜。随着Matz渐渐长大,一道深红色的光辉开始照耀他特别的生命。
运用从前辈那里继承的深厚魔力,他埋头苦干。算法语言被他重新改造,兼具枯燥琐碎之实与敏捷可靠之形,最终打磨出一块深红色宝石。Ruby诞生了。
人们急匆匆地召开了充满火药味的紧急会议,讨论对付这个“暴发户”的最佳方式。很明显,它能让许多人的生活变得轻松和享受。如果工作和娱乐的界限模糊了,整个宇宙都将不再有意义。
那个时代的高级魔法师一个接一个地倒在Ruby语法的迷人魅力面前,开头是小心翼翼地接触,然后是兴致盎然地把玩,最终是兴高采烈地上瘾。正统阵营用铺天盖地的反宣传活动予以反击,向信徒提醒传统的重要性。Ruby人士则回敬以反-反宣传的万炮齐发,威胁对方将一败涂地彻底崩溃。
书摘
正如在前言中所说,Ruby是我的首选语言,它是我解决系统管理问题时的本能选择。再强调一次,它在我心目中有如此高的评价,是因为它:
易于写出可读性极高的代码。
强调惯例忧于配置,因此一小段代码可以完成很多事情。
提供与C程序库的无缝接口机制。
……