{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
免运费
Yami

Nickname

请告诉我们怎么更好地称呼你

更新你的名字
账户 订单 收藏
{{ inviteNavTitle }}
退出登录

切换配送区域

不同区域的库存和配送时效可能存在差异.

历史邮编

{{email ? __('Got it!') : __('Restock Alert')}}

我们将在商品到货后第一时间通知你。

取消
Yami

京东图书

Effective Ruby:改善Ruby程序的48条建议

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

Effective Ruby:改善Ruby程序的48条建议

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
后结束
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
后结束促销
后开始秒杀 后结束秒杀
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) 详情
商品有效期

已下架

当前地址无法配送
已售完

商品描述

展开全部描述
编辑推荐

“Effective Software Development Series”系列经典著作
从模块、内存到元编程,全面总结和探讨Ruby编程中48个鲜为人知和容易被忽视的特性与陷阱
包含大量实用范例代码,为编写易于理解、便于维护、易于扩展和高效的Ruby应用提供了解决方案。
内容简介

本书介绍了改善Ruby程序的48条建议,帮助你编写出易维护且运行快速的Ruby应用程序。它是一本任何Ruby程序员都该读的书。初学者可以学习书中的zui佳实践,从而更好地认识这门语言,有经验的开发者也可以再次审读自己的程序,参考书中介绍的诸多方法进行改进。

如果你是经验丰富的Ruby程序员,本书能帮助你发挥Ruby的全部力量来编写更稳健、高效、可维护和易执行的代码。Peter J.Jones凭借其近十年的Ruby开发经验,总结出48条Ruby的实践、专家建议和捷径,并辅以可执行的代码实例。

Jones在Ruby开发的每个主要领域都给出了实用的建议,从模块、内存到元编程。他对鲜为人知的Ruby方言、怪癖、误区和强力影响代码行为与性能的复杂性的揭示贯穿全书。

每一条都包括具体的、可执行的、清晰组织的指南,还有精细的建议、详尽的技术讨论以及启发性的代码实例。如果存在多种可选方案,Jones也会讲解在特定情况下如何选择方案。

本书将帮助你系统性地改进代码,不是让你盲从准则,而是通过透彻地理解Ruby编程技术来做到这些。

本书内容包括:

● 如何避免Ruby中某些令人惊讶的特质带来的陷阱

● 如果想要无障碍使用Rails(或其他大型框架),你需了解的继承体系

● 如何通过易被误解的方法来用集合进行非常有用操作

● 使用异常来改善代码可靠性的方式

● 实用、有效的测试方案,包括MiniTest Unit和Spec Testing

● 如何可靠地管理RubyGem依赖

● 如何充分利用Ruby的内存管理器和性能分析工具

● 如何通过理解Ruby解析器的内部机制来改进代码效率

作者简介

作者简介

Peter J. Jones

自由软件开发者,Devalot.com的编程课程资深讲师。他从2005年开始从事Ruby编程,并组织撰写、讲授数个程序开发课程,包括11周的Ruby入门课程。


译者简介

刘璐

资深软件开发工程师,现就职于Thoughtworks中国。她主要从事Ruby、Java开发,前端开发也有涉猎,参与多个项目的系统设计与开发,热爱编程,对高质量的代码有着执着的追求(这是Thoughtworks员工的公共属性)。

目录


前言
第1章让自己熟悉Ruby 1
第1条:理解Ruby中的True 1
第2条:所有对象的值都可能为nil 3
第3条:避免使用Ruby中古怪的Perl风格语法 5
第4条:留神,常量是可变的 8
第5条:留意运行时警告 11
第2章类、对象和模块 15
第6条:了解Ruby如何构建继承体系 16
第7条:了解super的不同行为 21
第8条:初始化子类时调用super 25
第9条:提防Ruby最棘手的解析 28
第10条:推荐使用Struct而非Hash存储结构化数据 31
第11条:通过在模块中嵌入代码来创建命名空间 34
第12条:理解等价的不同用法 38
第13条:通过"<=>"操作符实现比较和比较模块 44
第14条:通过protected方法共享私有状态 48
第15条:优先使用实例变量而非类变量 50
第3章集合 54
第16条:在改变作为参数的集合之前复制它们 55
第17条:使用Array方法将nil及标量对象转换成数组 58
第18条:考虑使用集合高效检查元素的包含性 61
第19条:了解如何通过reduce方法折叠集合 65
第20条:考虑使用默认哈希值 69
第21条:对集合优先使用委托而非继承 73
第4章异常 79
第22条:使用定制的异常而不是抛出字符串 79
第23条:捕获可能的最具体的异常 84
第24条:通过块和ensure管理资源 87
第25条:通过临近的end退出ensure语句 90
第26条:限制retry次数,改变重试频率并记录异常信息 94
第27条:throw比raise更适合用来跳出作用域 96
第5章元编程 99
第28条:熟悉Ruby模块和类的钩子方法 99
第29条:在类的钩子方法中执行super方法 105
第30条:推荐使用def?ine_method而非method_missing 107
第31条:了解不同类型的eval间的差异 113
第32条:慎用猴子补丁 118
第33条:使用别名链执行被修改的方法 123
第34条:支持多种Proc参数数量 126
第35条:使用模块前置时请谨慎思考 130
第6章测试 133
第36条:熟悉单元测试工具MiniTest 133
第37条:熟悉MiniTest的需求测试 137
第38条:使用Mock模拟特定对象 139
第39条:力争代码被有效测试过 143
第7章工具与库 149
第40条:学会使用Ruby文档 149
第41条:认识IRB的高级特性 152
第42条:用Bundler管理Gem依赖 155
第43条:为Gem依赖设定版本上限 159
第8章内存管理与性能 163
第44条:熟悉Ruby的垃圾收集器 163
第45条:用Finalizer构建资源安全网 168
第46条:认识Ruby性能分析工具 171
第47条:避免在循环中使用对象字面量 177
第48条:考虑记忆化大开销计算 179
后记 182

前言/序言

学习一门新的编程语言通常需要经过两个阶段。第一阶段是学习这门编程语言的语法和结构。如果我们具有其他编程语言的经验,这个阶段通常只需要很短的时间。以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版本,则示例代码可在所有支持的版本上运行。
关于代码风格的注释在多数情况下,Ruby程序员喜欢使用单一的风格来格式化Ruby代码。当代码没有按照预定义的风格规则编写时,一些RubyGem甚至能够检测出这些不一致的代码风格并斥责你。之所以提到这件事,是因为本书中示例代码所采用的风格可能与通常情况下使用的略有不同(也可能与你之前的风格不同)。
当调用一个方法(method)并向它传参时,我使用圆括号把参数括起来,而紧跟在方法名之后,中间没有空格。在本书之外,我们很容易看到没有圆括号的方法调用,这可能是由于Ruby传参时并不需要圆括号。但是,在第1章中我们会看到,不使用圆括号传参在某些情况下,会导致代码多义性,这迫使Ruby猜测你的意图。由于存在这种多义性,我认为省略掉圆括号是一种不好的编码习惯,我们需要摒弃这种习惯。
我使用圆括号的另一个原因,是为了清晰地表明一个标识符是方法调用还是关键字。你可能会惊讶地发现,你认为的可能是关键字的东西实际上是个方法调用(例如require)。而使用圆括号有助于说明这一点。
在这里讨论代码风格时,我应该指出,当本书中提及方法时,我会使用RI 标记法。如果你不熟悉RI标记法也没有关系,因为它很容易学习并很有帮助。它的主要目的是区分类方法(class method)与实例方法(instance method)。当写类方法时,我会用双冒号(“::”)放在类名与方法名之间。例如,File::open 是File类中名为open的类方法。同样,当写实例方法时,我会用井号(“#”)放在类名与实例方法名之间(例如Array#each)。上述写法同样适用于模块方法(module method)名(例如GC::stat)与模块实例方法(module instance method)名(例如Enumerable#grep)。本书的第40条建议会涉及RI标记法与使用它查询方法文档的更多细节。不过,上述这点入门足以让你开始本书的旅途了。
下载源代码本书会深入探讨很多示例代码。为了更容易理解和消化,代码通常将会分割成小的代码片段,我们会一次一小段地进行讲解。有些不重要的细节代码,我们甚至会忽略掉。可以说,有时候一次看完所有的代码对形成宏观理解是很不错的。本书中所有的代码,可以通过本书的网站下载。



规格参数

品牌 京东图书
品牌属地 中国
ISBN 9787111521242
著者 [美]彼得 J.琼斯
出版社 机械工业出版社
印刷时间 2016-01-01
用纸 胶版纸
包装 平装
出版时间 2016-01-01
页数 181
译者 刘璐,杨政权,秦五一,孟樊超
版次 1

免责声明

产品价格、包装、规格等信息如有调整,恕不另行通知。我们尽量做到及时更新产品信息,但请以收到实物为准。使用产品前,请始终阅读产品随附的标签、警告及说明。

查看详情
加入收藏
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
数量
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
由 京东图书 销售
送至
{{ __("Ship to United States only") }}
满$69免运费
正品保证

已加入购物车

继续逛逛

为你推荐

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

优惠券

{{ coupon.coupon_name_new | formatCurrency }}
领取 已领取 已领完
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
即将过期: {{ formatTime(coupon.use_end_time) }}

分享给好友

取消

亚米礼卡专享价

使用礼卡支付即可获得礼卡专享价

规则说明

礼卡专享价是部分商品拥有的特殊优惠价格;

购买礼卡专享价商品时,若在结算时使用电子礼卡抵扣支付,且礼卡余额足够支付订单中所有礼卡专享价商品的专享价总和,则可以启用礼卡专享价;

不使用礼卡支付,或礼卡余额不满足上一条所述要求时,将无法启用礼卡专享价,按照普通售价计算,但您仍然可以购买这些商品;

在购买礼卡专享价商品时,若余额不足,可以在购物车或结算页中点击“充值”按钮对礼卡进行购买和充值;

商品若拥有礼卡专享价,会显示“专享”的特殊价格标记;

如有疑问,请随时联系客服;

礼卡专享价相关规则最终解释权归亚米所有。

由 亚米 销售

服务保障

Yami 满$49免运费
Yami 无忧退换
Yami 从美国发货

配送信息

  • 美国

    标准配送 $5.99(不包含阿拉斯加,夏威夷),最终价满$49免运费

    本地配送$5.99(加州,纽约州,新泽西,麻省和宾夕法尼亚,以上州部分地区);最终价满$49免运费

    两日达(包含阿拉斯加夏威夷)运费$19.99起

退换政策

亚米网希望为我们的客户提供最优秀的售后服务,让所有人都能放心在亚米购物。亚米自营商品在满足退换货条件的情况下,可在收到包裹的30天之内退换商品(食品因商品质量问题7天内可退换;为了确保每位客户都能获得安全和高质量的商品,对于美妆类产品,一经开封或使用即不提供退款或退货服务,质量问题除外;其他特殊商品需联系客服咨询)。
感谢您的理解和支持。

查看详情

由 亚米 销售

亚米电子礼品卡使用规则

若购买时选择自动充值,订单完成后礼卡将自动充值到您的账户中;

若购买时选择发送邮件,订单完成后系统将自动发送卡号和密码到您填写的邮箱;

发送邮件时,任何用户均可使用邮件中的卡号密码进行礼卡充值,请妥善保管邮件信息。

如接收邮件遇到问题,请联系客服处理;

发送邮件时,若礼卡没有被兑换,可以补发邮件。若已经被其他用户兑换,则无法补偿;

亚米网电子礼卡可用于购买自营或第三方商品;

亚米网电子礼卡没有有效期限制,长期有效;

亚米网电子礼卡的金额,可分多次使用;

亚米网电子礼卡业务规则,最终解释权归亚米网所有。

退换政策

已消费的电子礼卡不支持退款。

京东图书 销售

服务保障

Yami 满$49免运费
Yami 最优售后
Yami 美国本土发货

配送信息

  • 美国

    标准配送 $5.99(不包含阿拉斯加,夏威夷),最终价满$49免运费

    本地配送$5.99(加州,纽约州,新泽西,麻省和宾夕法尼亚,以上州部分地区);最终价满$49免运费

    两日达(包含阿拉斯加夏威夷)运费$19.99起

退换政策

提供30天内退还保障。产品需全新未使用原包装内,并附有购买凭据。产品质量问题、或错发漏发等,由商家造成的失误,将进行补发,或退款处理。其它原因需退货费用由客户自行承担。

由 京东图书 销售

服务保障

Yami 跨店满$69免运费
Yami 30天退换保障

亚米-中国集运仓

由亚米从中国精选并集合各大优秀店铺的商品至亚米中国整合中心,合并包裹后将一次合包跨国邮寄至您的地址。跨店铺包邮门槛低至$69。您将在多商家集合提供的广泛选品中选购商品,轻松享受跨店铺包邮后的低邮费。

退换政策

提供30天内退换保障。产品需在全新未使用的原包装内,并附有购买凭据。产品质量问题、错发、或漏发等由商家造成的失误,将进行退款处理。其它原因造成的退换货邮费客户将需要自行承担。由于所有商品均长途跋涉,偶有简易外包压磨等但不涉及内部质量问题者,不予退换。

配送信息

亚米中国集运 Consolidated Shipping 运费$9.99(订单满$69 包邮)

下单后2个工作日中国商家发货,所有包裹抵达亚米中国整合中心(除特别情况及中国境内个别法定节假日外)会合并包裹后通过UPS发往美国。UPS从中国发货后到美国境内的平均时间为10个工作日左右,根据直发单号可随时跟踪查询。受疫情影响,目前物流可能延迟5天左右。包裹需要客人签收。如未签收,客人须承担包裹丢失风险。

由 京东图书 销售

服务保障

满$69免运费
正品保证

配送信息

Yami Consolidated Shipping 运费$9.99(订单满$69包邮)


下单后1-2个工作日内发货。 物流时效预计7-15个工作日。 如遇清关,交货时间将延长3-7天。 最终收货日期以邮政公司信息为准。

积分规则

不参加任何折扣活动以及亚米会员积分制度。

退换政策

提供30天内退还保障。产品需全新未使用原包装内,并附有购买凭据。产品质量问题、或错发漏发等,由商家造成的失误,将进行补发,或退款处理。其它原因需退货费用由客户自行承担。

Yami

下载亚米应用

返回顶部

为你推荐

品牌故事

京东图书

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

评论{{'('+ commentList.posts_count + ')'}}

分享你的感受,帮助更多用户做出选择。

写评论
{{ totalRating }} 写评论
  • {{i}}星

    {{i}}星

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已购买 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已购买 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

暂无符合条件的评论

评论详情

Yami Yami

{{ showTranslate(commentDetails) }}收起

{{ strLimit(commentDetails,800) }}查看全部

Show Original

{{ commentDetails.content }}

Yami
查看更多

{{ formatTime(commentDetails.in_dtm) }} 已购买 {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

请输入内容

回复{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}收起

{{ strLimit(reply,800) }}查看全部

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

请输入内容

取消

End

发表评论
商品评分

请输入评论

  • 一个好的昵称,会让你的评论更受欢迎!
  • 修改了这里的昵称,个人资料中的昵称也将被修改。
感谢你的评论
你的好评可以帮助我们的社区发现更好的亚洲商品。

举报

取消

确认删除该评论吗?

取消

历史浏览

品牌故事

京东图书