标题：Ruby 最佳实践
图书信息
出版社: 东南大学出版社; 第1版 (2010年1月1日)
外文书名: Ruby Best Practices
平装: 309页
正文语种: 英语
开本: 16
ISBN: 9787564119355, 7564119357
条形码: 9787564119355
尺寸: 23 x 17.8 x 1.6 cm
重量: 522 g
作者简介
Gregory T. Brown是康涅狄格州纽黑文市的一位Ruby爱好者，他的大多数时间都花在了与Ruby语言相关的自由软件项目上。他是Ruport的原作者，并且是Prawn的作者，该Ruby库被用来生成PDF文档。
内容简介
你能够编写真正优雅的Ruby代码吗？《Ruby最佳实践》正是为想要像专家那样使用Ruby的程序员所准备的。《Ruby 最佳实践(影印版)》由Ruby项目Prawn的开发者所著，简洁地向你阐释如何使用Ruby编写优美的应用程序接口和领域特定语言。此外，还包括如何应用函数式编程的思想和技术，使代码更简洁，使你更有效率。通过《Ruby 最佳实践(影印版)》，你将会学到如何编写可读性更高，表达能力更强的代码，以及许多其他方面的内容。
《Ruby最佳实践》将会帮助你：
* 理解Ruby代码块所蕴含的神秘力量
* 学习如何在不破坏原有Ruby代码的情况下进行调整，例如运行时在模块内糅合
* 探究测试与调试中的细节，以及如何从易测性出发进行设计
* 学习通过让事情保持简单来编写快速代码
* 用于文本处理和文件管理的开发策略，包括正则表达式
* 理解为什么会发生错误以及错误是如何发生的
* 利用Ruby的多语言特性减少文化障碍
《Ruby 最佳实践(影印版)》还包含多个章节对测试代码、设计应用程序接口以及项目维护做了全面介绍。《Ruby最佳实践》将陪伴你学习如何将这门丰富、优美的语言发挥到极致。
媒体评论
“这是一本极为务实的著作，各层次的开发人员都能从中借鉴。” 
——Brad Ediger，Madriska Media Group的领袖开发者，同时也是《Advanced Rails》（O'Reilly）的作者 
“终于有这样一本书问世了，它不仅教我如何使用Ruby，更教会我如何正确地使用它。每位Ruby爱好者的书架上都该摆上一本《Ruby最佳实践》。” 
——Jeremy McAnally，ENTP开发者，同时还是《Ruby in Practice》（Manning）一书的作者 
“我敢打赌，通过阅读这本书，你一定学到了可以提高Ruby编程能力的新技巧。” 
——James Edward Gray II，代码忍者及Ruby 1.9 的CSV标准库的作者
目录
Foreword 
Preface 
1. Driving Code Through Tests 
A Quick Note on Testing Frameworks 
Designing for Testability 
Testing Fundamentals 
Well-Focused Examples 
Testing Exceptions 
Run the Whole Suite at Once 
Advanced Testing Techniques 
Using Mocks and Stubs 
Testing Complex Output 
Keeping Things Organized 
Embedding Tests in Library Files 
Test Helpers 
Custom Assertions 
Conclusions 
2. Designing Beautiful APIs 
Designing for Convenience: Ruport’s Table( ) feature 
Ruby’s Secret Power: Flexible Argument Processing 
Standard Ordinal Arguments 
Ordinal Arguments with Optional Parameters 
Pseudo-Keyword Arguments 
Treating Arguments As an Array 
Ruby’s Other Secret Power: Code Blocks 
Working with Enumerable 
Using Blocks to Abstract Pre- and Postprocessing 
Blocks As Dynamic Callbacks 
Blocks for Interface Simplification 
Avoiding Surprises 
Use attr_reader, attr_writer, and attr_accessor 
Understand What method? and method! Mean 
Make Use of Custom Operators 
Conclusions 
3. Mastering the Dynamic Toolkit 
BlankSlate: A BasicObject on Steroids 
Building Flexible Interfaces 
Making instance_eval( ) Optional 
Handling Messages with method_missing( ) and send( ) 
Dual-Purpose Accessors 
Implementing Per-Object Behavior 
Extending and Modifying Preexisting Code 
Adding New Functionality 
Modification via Aliasing 
Per-Object Modification 
Building Classes and Modules Programmatically 
Registering Hooks and Callbacks 
Detecting Newly Added Functionality 
Tracking Inheritance 
Tracking Mixins 
Conclusions 
4. Text Processing and File Management 
Line-Based File Processing with State Tracking 
Regular Expressions 
Don’t Work Too Hard 
Anchors Are Your Friends 
Use Caution When Working with Quantifiers 
Working with Files 
Using Pathname and FileUtils 
The tempfile Standard Library 
Automatic Temporary Directory Handling 
Collision Avoidance 
Same Old I/O Operations 
Automatic Unlinking 
Text-Processing Strategies 
Advanced Line Processing 
Atomic Saves 
Conclusions 
5. Functional Programming Techniques 
Laziness Can Be a Virtue (A Look at lazy.rb) 
Minimizing Mutable State and Reducing Side Effects 
Modular Code Organization 
Memoization 
Infinite Lists 
Higher-Order Procedures 
Conclusions 
6. When Things Go Wrong 
A Process for Debugging Ruby Code 
Capturing the Essence of a Defect 
Scrutinizing Your Code 
Utilizing Reflection 
Improving inspect Output 
Finding Needles in a Haystack 
Working with Logger 
Conclusions 
7. Reducing Cultural Barriers 
m17n by Example: A Look at Ruby’s CSV Standard Library 
Portable m17n Through UTF-8 Transcoding 
Source Encodings 
Working with Files 
Transcoding User Input in an Organized Fashion 
m17n in Standalone Scripts 
Inferring Encodings from Locale 
Customizing Encoding Defaults 
m17n-Safe Low-Level Text Processing 
Localizing Your Code 
Conclusions 
8. Skillful Project Maintenance 
Exploring a Well-Organized Ruby Project (Haml) 
Conventions to Know About 
What Goes in a README 
Laying Out Your Library 
Executables 
Tests 
Examples 
API Documentation via RDoc 
Basic Documentation Techniques and Guidelines 
Controlling Output with RDoc Directives 
The RubyGems Package Manager 
Writing a Gem::Specification 
Working with Dependencies 
Rake: Ruby’s Built-in Build Utility 
Conclusions 
A. Writing Backward-Compatible Code 
B. Leveraging Ruby’s Standard Library 
C. Ruby Worst Practices 
Index