内容简介
第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条:推荐使用define_method而非method_missing
第31条:了解不同类型的eval间的差异
第32条:慎用猴子补丁
第33条:使用别名链执行被修改的方法
第34条:支持多种Proc参数数量
第35条:使用模块前置时请谨慎思考
第6章 测试
第36条:熟悉单元测试工具MiniTest
第37条:熟悉MiniTest的需求测试
第38条:使用Mock模拟特定对象
第39条:力争代码被有效测试过
第7章 工具与库
第40条:学会使用Ruby文档
第41条:认识IRB的高级特性
第42条:用Bundler管理Gem依赖
第43条:为Gem依赖设定版本上限
第8章 内存管理与性能
第44条:熟悉Ruby的垃圾收集器
第45条:用Finalizer构建资源安全网
第46条:认识Ruby性能分析工具
第47条:避免在循环中使用对象字面量
第48条:考虑记忆化大开销计算
后记