开启左侧

Effective Ruby 中文版:寫出良好Ruby程式的48個具體做法

[复制链接]
  • 地区:台湾
  • 格式:PDF
  • 文件大小:46M
  • 时间:
  • 类别:学习
  • 价格:6共享币
  • 提示:本站推荐经典投资资料
  如果你是經驗豐富的Ruby程式設計師,《Effective Ruby 中文版》將會協助你利用Ruby所有威力編寫出更穩固、更有效率、更容易維護、執行更順暢的程式碼。藉由近十年的Ruby經驗,Peter J. Jones匯集了48項Ruby的最佳作法、專家建議以及捷徑,並提供實際可行的程式範例作為後盾。
% B$ v6 |* Y* W# }8 ^# M- y# ]1 v  Jones針對Ruby開發的每一項主題,從模組到記憶體到後設程式設計(metaprogramming)都提供了實用的建議;他揭開了鮮為人知的慣用語法、怪癖、陷阱以及強力影響程式碼行為與效能的複雜關係。6 w( r$ ?8 F: Y6 L
  每一樣具體做法除了包含具體、有所作為、清楚明確的組織準則,也都有周延的建議和詳細的技術論證以及極富啟發的程式範例。如果同時存在多種選擇,Jones會告訴你該如何針對你的情況從中選擇運作最好的一個。
9 \) j7 i3 @- x2 f4 U! X7 |  《Effective Ruby 中文版》將協助你有條不紊的改善你自己的程式碼,不是盲從規則,而是透過徹底瞭解的Ruby程式設計技巧。
$ M7 X! u4 j6 W) W$ J0 p" u) L$ [  目錄2 l" c/ N8 U7 i8 K8 H
  推薦序- h' `4 w! m  H" _& N) w" s' H
  自序
5 @/ b$ n% R- W& W& l+ n8 [  致謝
' [$ j+ `# |: a  關於作者% Y& Z; B& X5 b0 S  P
  第1 章 讓自己習慣Ruby2 F: ^; C. m# Z
  做法01 瞭解Ruby 所謂的真/ r( U, G3 S# B1 @, y% l
  做法02 將所有的物件視為nil$ M2 H8 U/ o+ G& Q; k
  做法03 避開隱秘的Perl 主義6 j7 Y& Q, N2 y6 G
  做法04 留意常數並非固定不變! V3 t3 Q/ o% r  r: B0 O. s2 q2 Z
  做法05 留意執行階段的警告; k1 h+ T- E, L" _
  第2 章 類別、物件、模組
8 A; D1 ]1 ~6 \& Z0 R  做法06 瞭解Ruby 如何建置繼承階層
- @* f5 Z6 l  E2 X/ ]  做法07 留意super 的不同行為
, `( O: ?( k  m+ M$ F  做法08 初始子類別時叫用super
7 s0 i- `8 d0 G5 @6 }. v  做法09 請留意最為之氣結的解析1 N: P0 m! j% ~9 Y( g+ A
  做法10 結構化資料應該用Struct 而非Hash
7 [) {! }5 h9 n  做法11 在模組裡以巢狀程式碼建立命名空間
  b6 ]/ |* ^# I+ A7 k7 I  做法12 瞭解等號不同的用法
$ G8 H$ U7 k: q& Z  做法13 以<=> 和可比較的模組實作比較運算
2 ~6 ~5 b: j. P: B  做法14 透過受保護方法共用私用狀態; ]: I2 s. S  b4 g2 @' X
  做法15 寧用類別實體變數也不要類別變數+ c: F7 P2 f+ |: @) T( E9 u
  第3 章 集合
; V$ f8 e& p4 n/ {' v$ q3 L  做法16 當作引數傳遞的集合在發生變化之前先行複製0 j7 V- {% f% r- e( Y, y8 p# U
  做法17 以Array 方法將nil 和純量物件轉換成陣列2 b* Q8 X( n& x; e6 _! |
  做法18 有效率的元素包含檢查應該考慮Set8 W+ p3 ], ]8 z2 J# F! W; U4 _
  做法19 如何以reduce 收合集合4 w8 O2 F& L: @) C; u+ U
  做法20 考慮使用預設的Hash 值
' k# H. `( t# c; k  做法21 寧用委派也不要從集合類別繼承9 ?2 M4 }3 b& C  _$ _
  第4 章 例外
0 i8 |2 Y' y8 r% ~  做法22 寧用自訂例外也不要引發字串# v# L' M0 \- V( t
  做法23 解救最明確的例外可能+ f( |9 g8 r% q+ f
  做法24 以區塊和ensure 管理資源9 ?$ q! _$ O) `6 }% c1 E: \( H$ A
  做法25 以流程結束離開ensure 子句
3 n: `/ y& \, ^& o1 E& U  做法26 限定retry 次數,修改其頻率並保持稽核追蹤2 l$ F5 ~! t2 k5 ]9 b1 P, _2 O- i
  做法27 寧以throw 跳離範圍,也別使用raise
+ L; u0 B9 a: H' z$ R- O  第5 章 後設程式設計
; V1 U1 z& m' J" j$ B  做法28 熟悉模組和類別勾點
8 ^4 d" `* w4 T3 C  做法29 從類別勾點內部叫用super, A( v) @/ `: A$ o$ F# o
  做法30 寧用define_method 也不要使用method_missing0 L3 o0 @2 [) Y) f( `7 c" \1 N
  做法31 瞭解各種eval 之間的差異
5 c. f$ m0 [# z  \9 r1 }* H  做法32 思考猴子修補的替代方案
" I* p( H. ?) e, M  做法33 以別名鏈結叫用更改過的方法+ O$ t7 c; @' m7 r9 j
  做法34 支援Proc 不同的引數數目) B8 V& O: |3 z/ Q* U- G) }# d2 h7 C
  做法35 使用模組前置之前請謹慎思考
$ L3 M9 \3 ^; Z% g, u  第6 章 測試7 \6 @% h1 I0 y( b) t" T
  做法36 你應該熟悉MiniTest 單元測試
$ Q; U# f+ o" o3 s  做法37 你應該熟悉MiniTest 規格測試
; ^8 u, V" p4 n; q  做法38 以mock 物件模擬determinism6 D5 ?+ P5 V6 h, G% M% N
  做法39 測試程式碼務必要有效率- s4 I( ~0 h( `: J! P
  第7 章 工具和程式庫' n$ F& e# P/ w& @2 W$ ]
  做法40 瞭解如何使用Ruby 文件
+ Y8 y, ?; b  K/ K# t1 b: _: M  做法41 留意IRB 的進階功能- Y* S( |0 b3 @' S
  做法42 以Bundler 管理Gem 的相依性
4 S" q$ F( l2 N2 S7 z9 e. z, l0 A  做法43 指定Gem 相依性的上限  D* ]4 {# g6 l5 a
  第8 章 記憶體管理和效能  z; b+ @- J; K2 m% q
  做法44 熟悉Ruby 的記憶體回收器8 J2 P( l! c3 \7 B4 n
  做法45 以終結式建立資源安全措施
; ?1 [% P* ], i% W  做法46 留意Ruby 的剖析工具
( U9 c# o) B$ M  W+ }  做法47 避免在迴圈使用物件常值3 r7 W! S: w, K# @& ?/ _
  做法48 工程浩大的運算請考慮備忘法
* ?/ M( P/ A: n  E  結語
$ s/ P: p+ @) z/ {: [0 {( N
游客,本下载内容需要支付6共享币,购买后显示下载链接立即支付

$ Y9 z7 q. G! _# J
5 u/ u" C. m8 C- T4 s3 O" K
回复

使用道具 举报

懒得打字嘛,点击快捷回复 【回复乱码 永久禁言】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝6

帖子1915

发布主题
推荐素材更多+
广告位

服务电话

15987183307

QQ:1136111231
关注我们 :

QQ- Archiver-手机版-小黑屋-经典-文库- 与你共享

Powered by ynjie.com Array© 2001-2013 ynjie.com  滇ICP备19007624号-1