《Effective Ruby:改善Ruby程序的48条建议》一导读

    xiaoxiao2023-08-20  146

    前 言

    学习一门新的编程语言通常需要经过两个阶段。第一阶段是学习这门编程语言的语法和结构。如果我们具有其他编程语言的经验,这个阶段通常只需要很短的时间。以Ruby为例,接触过其他面向对象语言的程序员对Ruby的语法也会比较熟悉。有经验的程序员对于语言的结构(如何根据语法构建应用程序)是很熟悉的。在第二阶段则需要更多的努力。这个阶段也是你深入语言、学习语言风格的时候,许多编程语言在解决常见的问题时都使用了独一无二的方法,Ruby也不例外。比如循环,Ruby没有使用显式循环体来实现,而是使用了代码块和迭代器模式。学习如何突破思维定势,用Ruby的方式解决问题是这个阶段的精髓。本书也将致力于编程语言学习的两个阶段。但本书并不是一本编程语言的入门级书籍。如果你已经完成了第一阶段,即语法和结构的学习,通过本书你将会对Ruby的理解更加深入和全面,编写出更具可读性、可维护性的代码。在这个过程中,我也会介绍Ruby解释器的内部工作原理,并分享编写更高效程序的相关知识。Ruby的不同实现和不同版本如你所知,Ruby有一批非常活跃的社区贡献者。他们负责各种各样的项目,其中也包括Ruby解释器的不同实现。除了大家熟知的Ruby官方实现(MRI),我们也有很多其他的选择。想把Ruby应用程序部署到已配置Java环境的机器?没问题,这就是JRuby的用武之地。那Ruby应用程序是否支持智能手机和平板电脑呢?当然,同样也有一款相应的实现。可以选择的Ruby实现有多种,这也证明了Ruby的活跃性。虽然每种的内部实现都不一样,但对Ruby程序员来说无需太过担心,因为这些解释器的行为和官方的MRI很接近。本书介绍的很多方法在不同Ruby实现上都是通用的,但也有一些只针对MRI版本,诸如书中提及的垃圾回收机制。本书中指定Ruby特定版本的时候,都是针对MRI版本的。书中所有代码适用于Ruby 1.9.3及其后的版本。在本书编写时,Ruby最新版本是2.1,Ruby 2.2即将面世。若书中未提及特定的Ruby版本,则示例代码可在所有支持的版本上运行。关于代码风格的注释

    目 录

    第1章 让自己熟悉Ruby 第1条:理解Ruby中的True 第2条:所有对象的值都可能为nil 第3条:避免使用Ruby中古怪的Perl风格语法 第4条:留神,常量是可变的 第5条:留意运行时警告 第2章 类、对象和模块 第6条:了解Ruby如何构建继承体系 第7条:了解super的不同行为 第8条:初始化子类时调用super 第9条:提防Ruby最棘手的解析 第10条:推荐使用Struct而非Hash存储结构化数据 第11条:通过在模块中嵌入代码来创建命名空间 第12条:理解等价的不同用法 第13条:通过"<=>"操作符实现比较和比较模块 第14条:通过protected方法共享私有状态 第15条:优先使用实例变量而非类变量 第3章 集合 第16条:在改变作为参数的集合之前复制它们 第17条:使用Array方法将nil及标量对象转换成数组 第18条:考虑使用集合高效检查元素的包含性 第19条:了解如何通过reduce方法折叠集合 第20条:考虑使用默认哈希值 第21条:对集合优先使用委托而非继承 第4章 异常 第22条:使用定制的异常而不是抛出字符串 第23条:捕获可能的最具体的异常 第24条:通过块和ensure管理资源 第25条:通过临近的end退出ensure语句 第26条:限制retry次数,改变重试频率并记录异常信息 第27条:throw比raise更适合用来跳出作用域第5章 元编程 第28条:熟悉Ruby模块和类的钩子方法 第29条:在类的钩子方法中执行super方法 第30条:推荐使用def?ine_method而非method_missing 第31条:了解不同类型的eval间的差异 第32条:慎用猴子补丁 第33条:使用别名链执行被修改的方法 第34条:支持多种Proc参数数量 第35条:使用模块前置时请谨慎思考 第6章 测试 第36条:熟悉单元测试工具MiniTest

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)