王朝百科
分享
 
 
 

Ruby最佳实践

王朝百科·作者佚名  2011-11-12  
宽屏版  字体: |||超大  

基本信息出版社: 东南大学出版社; 第1版 (

Ruby最佳实践
Ruby最佳实践

2010年1月1日)

外文书名: Ruby Best Practices

平装: 309页

正文语种: 英语

开本: 16

ISBN: 9787564119355

内容简介你能够编写真正优雅的Ruby代码吗?《Ruby最佳实践》正是为想要像专家那样使用Ruby的程序员所准备的。《Ruby 最佳实践(影印版)》由Ruby项目Prawn的开发者所著,简洁地向你阐释如何使用Ruby编写优美的应用程序接口和领域特定语言。此外,还包括如何应用函数式编程的思想和技术,使代码更简洁,使你更有效率。通过《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标准库的作者

作者简介Gregory T. Brown是康涅狄格州纽黑文市的一位Ruby爱好者,他的大多数时间都花在了与Ruby语言相关的自由软件项目上。他是Ruport的原作者,并且是Prawn的作者,该Ruby库被用来生成PDF文档。

目录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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有