{"product_id":"9780132930888","title":"Practical Object-Oriented Design in Ruby: An Agile Primer","description":"\u003cb\u003eThe Complete Guide to Writing More Maintainable, Manageable, Pleasing, and Powerful Ruby Applications\u003c\/b\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eRuby’s widely admired ease of use has a downside: Too many Ruby and Rails applications have been created without concern for their long-term maintenance or evolution. The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eSandi Metz has distilled a lifetime of conversations and presentations about object-oriented design into a set of Ruby-focused practices for crafting manageable, extensible, and pleasing code. She shows you how to build new applications that can survive success and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples, all downloadable from the companion Web site, poodr.info.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eThe first title to focus squarely on object-oriented Ruby application design, \u003cb\u003e \u003ci\u003ePractical Object-Oriented Design in Ruby\u003c\/i\u003e \u003c\/b\u003e will guide you to superior outcomes, whatever your previous Ruby experience. Novice Ruby programmers will find specific rules to live by; intermediate Ruby programmers will find valuable principles they can flexibly interpret and apply; and advanced Ruby programmers will find a common language they can use to lead development and guide their colleagues.\u003c\/p\u003e \u003cp\u003e \u003c\/p\u003e \u003cp\u003eThis guide will help you\u003c\/p\u003e \u003cul\u003e \u003cli\u003eUnderstand how object-oriented programming can help you craft Ruby code that is easier to maintain and upgrade\u003c\/li\u003e \u003cli\u003eDecide what belongs in a single Ruby class\u003c\/li\u003e \u003cli\u003eAvoid entangling objects that should be kept separate\u003c\/li\u003e \u003cli\u003eDefine flexible interfaces among objects\u003c\/li\u003e \u003cli\u003eReduce programming overhead costs with duck typing\u003c\/li\u003e \u003cli\u003eSuccessfully apply inheritance\u003c\/li\u003e \u003cli\u003eBuild objects via composition\u003c\/li\u003e \u003cli\u003eDesign cost-effective tests\u003c\/li\u003e \u003cli\u003eSolve common problems associated with poorly designed Ruby code\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003e \u003c\/p\u003e","brand":"Pearson Education","offers":[{"title":"Default Title","offer_id":47147852628208,"sku":"9780132930888","price":33.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0737\/7593\/9824\/files\/9780132930888_p0.jpg?v=1763777991","url":"https:\/\/shop-qa.barnesandnoble.com\/products\/9780132930888","provider":"Barnes \u0026 Noble (DEV)","version":"1.0","type":"link"}