{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
무료배송

배송 지역 전환

지역에 따라 재고 및 배송 속도가 다를 수 있습니다.

위치 기록

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

상품입고 후 바로 알려드리겠습니다.

취소
Yami

Jingdong book

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 }}) 상세정보
상품 유효 기간

판매 중단

이 상품이 언제 재입고될지는 알 수 없습니다.

현재 주소로 배송 불가
품절

제품 설명

제품 세부 정보 전체보기
Editer Recommend

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

本书介绍了改善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解析器的内部机制来改进代码效率

Author Description

作者简介

Peter J. Jones

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


译者简介

刘璐

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

Catalogue


前言
第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

Introduction

学习一门新的编程语言通常需要经过两个阶段。第一阶段是学习这门编程语言的语法和结构。如果我们具有其他编程语言的经验,这个阶段通常只需要很短的时间。以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标记法与使用它查询方法文档的更多细节。不过,上述这点入门足以让你开始本书的旅途了。
下载源代码本书会深入探讨很多示例代码。为了更容易理解和消化,代码通常将会分割成小的代码片段,我们会一次一小段地进行讲解。有些不重要的细节代码,我们甚至会忽略掉。可以说,有时候一次看完所有的代码对形成宏观理解是很不错的。本书中所有的代码,可以通过本书的网站下载。



명세서

상표 Jingdong book
브랜드 영역 China

면책성명

제품 가격, 포장, 사양 등의 정보는 예고 없이 변경될 수 있습니다. 적시에 제품 정보를 업데이트 할 수 있도록 최선을 다하지만, 받은 실제 제품을 참고하시기 바랍니다. 제품을 사용하기 전에 반드시 제품에 동봉된 라벨, 경고 및 설명을 읽어 주십시오.

상세정보 보기
찜한 목록에 추가
{{ $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")}}
JD@CHINA 판매
배송지
{{ __("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 기프트카드 전용특가

기프트카드로 결제하면 전용특가를 받을 수 있습니다

규칙 설명

기프트카드 전용특가는 일부 상품에 대한 특혜가격입니다.

기프트카드 전용특가 상품 구매 시 E-기프트 카드 잔액으로 결제하고 기프트카드 잔액이 주문 내 상품의 총액을 지불하기에 충분하하 기프트카드 전용특가가 자동으로 활성화됩니다.

기프트 카드 잔액으로 결제하지 않거나 기프트카드 잔액이 전항의 요건을 충족하지 못할 경우 기프트카드 전용특가를 활성화할 수 없으며 상품은 정상 가격으로 구매할 수 있습니다.

기프트카드 전용특가 상품 구매 시 잔액이 부족할 경우 장바구니 또는 결제 페이지에서 "충전" 버튼을 클릭하여 기프트카드를 구매 및 충전할 수 있습니다.

기프트카드 전용특가가 있는 상품은 "전용특가"라는 특별한 가격표시가 표시됩니다.

질문이 있으시면 언제든지 고객 서비스에 문의하십시오.

Yami는 기프트카드 전용특가 관련 최종 해석권을 보유합니다.

Yami 판매

서비스 보장

Yami $49 이상 무료 배송
Yami 걱정 없는 반품/교환
Yami 미국에서 발송

배송 정보

  • 미국

    표준 배송 $5.99(알래스카, 하와이 제외), 최종 가격 $49 이상 시 무료 배송

    지역 배송 $5.99(캘리포니아, 뉴욕, 뉴저지, 매사추세츠, 펜실베이니아, 위 주의 일부 지역), 최종 가격 $49 이상 시 무료 배송

    2일 이내 배송(알래스카 및 하와이 포함) $19.99부터 시작

반품 및 교환 정책

Yami는 고객님께 최상의 A/S를 제공하고, 모든 분들이 Yami에서 안심하고 쇼핑할 수 있도록 노력하고 있습니다. Yami의 자영 상품은 반품 및 교환 조건을 충족하는 경우, 상품 수령 후 30일 이내에 반품 및 교환할 수 있습니다(식품은 품질 문제로 인해 7일 이내에 반품 및 교환이 가능합니다. 모든 고객이 안전하고 고품질의 제품을 받을 수 있도록 뷰티 제품은 개봉 또는 사용 후에는 품질 문제를 제외하고 환불 또는 반품을 제공하지 않습니다. 기타 특별 카테고리의 제품은 고객 서비스에 문의하시기 바랍니다).
이해와 지원에 감사드립니다.

상세정보 보기

Yami 판매

Yami E-기프트카드 사용 약관

구매 시 자동 충전을 선택한 경우, 주문 완료 후 기프트카드가 자동으로 계정에 충전됩니다.

구매 시 이메일 발송을 선택한 경우, 주문 완료 후 시스템이 자동으로 카드 번호와 비밀번호를 입력한 이메일로 발송합니다.

이메일을 보낼 때, 모든 사용자는 이메일에 있는 카드 번호와 비밀번호를 사용하여 기프트카드를 충전할 수 있으니, 이메일 정보를 잘 보관하세요.

이메일을 받는 데 문제가 있으면, 고객 서비스에 연락하여 처리해 주세요.

이메일을 보낼 때, 기프트카드가 교환되지 않았다면 이메일을 재발송할 수 있습니다. 이미 다른 사용자에 의해 교환된 경우에는 보상할 수 없습니다.

Yamibuy의 E-기프트카드는 자영 또는 제3자 상품 구매에 사용할 수 있습니다.

Yamibuy의 E-기프트카드는 유효 기간 제한이 없으며, 장기간 유효합니다.

Yami 전자 상품권의 금액은 여러 번에 나눠서 사용할 수 있습니다;

Yami 전자 상품권 업무 규칙의 최종 해석 권한은 Yami 웹사이트에 있습니다.

반품 및 교환 정책

이미 사용된 E-기프트카드는 환불이 불가능합니다.

판매자: JD@CHINA

서비스 보장

Yami $49 이상 무료 배송
Yami 최고의 A/S
Yami 미국 본토에서 발송

배송 정보

  • 미국

    표준 배송 $5.99(알래스카, 하와이 제외), 최종 가격 $49 이상 시 무료 배송

    지역 배송 $5.99(캘리포니아, 뉴욕, 뉴저지, 매사추세츠, 펜실베이니아, 위 주의 일부 지역), 최종 가격 $49 이상 시 무료 배송

    2일 이내 배송(알래스카 및 하와이 포함) $19.99부터 시작

반품 및 교환 정책

제품을 받으신 후 30일 이내에 제품을 반품하실 수 있습니다. 반품된 품목은 구매에 대한 원본 송장을 포함하여 원래 포장된 새 품목이어야 합니다. 고객이 자신의 비용으로 제품을 반품합니다.

JD@CHINA 판매

서비스 보장

Yami 점포간 $:amount 이상 구매 시 무료 배송
Yami 30일 반품/교환 보장

Yami-중국 집하창고

Yami는 중국 내 주요 우수매장에서 제품을 선별하여 모아 Yami 중국통합센터로 배송하며 택배를 합친 후 전국 각지의 주소로 배송해 드립니다. 점포간 무료 배송 조건은 최저 $69입니다. 여러 판매자가 제공하는 다양한 상품 중에서 원하는 상품을 선택하고 점포간 무료배송으로 저렴한 배송비를 쉽게 누릴 수 있습니다.

반품 정책

30일 이내 반품 및 교환 보증을 제공합니다. 제품은 새로 사용하지 않은 원래 포장에 구매 증명서가 첨부되어 있어야 합니다. 상품 품질 문제, 잘못된 배송, 배송 누락 등 판매자의 실수로 인한 경우 환불 처리됩니다. 기타 사유로 인한 반품 및 교환은 배송비는 고객이 자체로 부담하셔야 합니다. 모든 제품은 장거리 배송을 하기 때문에 간혹 간단한 외부 포장이 눌려 마모되는 등이 있지만 내부 품질 문제가 없는 경우 반품 및 교환할 수 없습니다.

배송 정보

Yami 중국집하배송 Consolidated Shipping 배송비 $9.99 ($69 이상 주문시 무료배송)

중국 판매자는 주문 후 영업일 기준 2일 후에 상품을 발송합니다. 모든 택배는 Yami 중국통합센터(특별한 상황 및 중국 내 개별 법정 공휴일 제외)에 도착하여 택배를 합친 후 UPS를 통해 미국으로 배송됩니다. UPS는 중국에서 발송 후 미국까지 평균 10영업일 정도 소요되며 직배송 주문 번호에 따라 수시로 추적 및 조회할 수 있습니다 전염병의 영향으로 현재 물류가 5일 정도 지연될 수 있습니다. 택배는 고객 서명이 필요합니다. 서명하지 않은 경우 고객은 택배가 분실될 위험을 부담하게 됩니다.

JD@CHINA 판매

서비스 보장

69이상 주문 시 무료 배송
정품 보증

배송 정보

Yami Consolidated Shipping배송비$9.99($69 이상 주문 시 무료 배송)


Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.

포인트 규칙

모든 품목은 Yamibuy 의 프로모션이나 포인트 이벤트에서 제외됩니다.

반품 및 교환 정책

제품을 받으신 후 30일 이내에 제품을 반품하실 수 있습니다. 반품된 품목은 구매에 대한 원본 송장을 포함하여 원래 포장된 새 품목이어야 합니다. 고객이 자신의 비용으로 제품을 반품합니다.

Yami

Yami 앱 다운로드

맨 위로 돌아가기

당신을 위한 추천

브랜드 스토리

Jingdong book

为您推荐

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')}}

내용을 입력하세요

취소

지금까지의 모든 리뷰입니다!

리뷰 작성하기
상품 평점

댓글을 입력하세요.

  • 좋은 닉네임이 당신의 리뷰를 더 인기 있게 만들 것입니다!
  • 여기에서 닉네임을 변경하면 개인정보의 닉네임도 같이 변경됩니다.
리뷰를 남겨주셔서 감사합니다
당신의 좋은 리뷰는 우리 커뮤니티가 아시아 최고의 상품을 찾는 데 도움이 됩니다.

신고하기

취소

이 리뷰를 삭제하시겠습니까?

취소

최근 본 상품

브랜드 스토리

Jingdong book