{"id":7894,"date":"2014-09-12T16:47:39","date_gmt":"2014-09-12T08:47:39","guid":{"rendered":"http:\/\/ihower.tw\/blog\/?p=7894"},"modified":"2014-09-12T16:47:39","modified_gmt":"2014-09-12T08:47:39","slug":"%e4%ba%9e%e6%b4%b2%e9%a6%96%e6%ac%a1%e7%9a%84-ruby-on-rails-%e5%b9%b4%e6%9c%83-rails-pacific-%e5%a4%a7%e6%9c%83-926-27","status":"publish","type":"post","link":"https:\/\/ihower.tw\/blog\/7894-%e4%ba%9e%e6%b4%b2%e9%a6%96%e6%ac%a1%e7%9a%84-ruby-on-rails-%e5%b9%b4%e6%9c%83-rails-pacific-%e5%a4%a7%e6%9c%83-926-27","title":{"rendered":"\u4e9e\u6d32\u9996\u6b21\u7684 Ruby on Rails \u5e74\u6703 &#8211; Rails Pacific \u5927\u6703 9\/26-27"},"content":{"rendered":"<p>\u7531 <a href=\"http:\/\/blog.xdite.net\/posts\/2014\/07\/12\/asia-rails-conf-rails-pacific\">xdite<\/a> \u4e3b\u8fa6\u7684 <a href=\"http:\/\/railspacific.com\/\">Rails Pacific<\/a> \u5e74\u6703\u5373\u5c07\u65bc 9\/26-27 \u5c55\u958b\uff0c\u76ee\u524d\u9084\u5728\u552e\u7968\u4e2d\u3002\u8b1b\u5e2b\u9663\u5bb9\u5f88\u5f37\u5927\uff0c\u770b\u5f97\u51fa\u4f86\u662f\u4e00\u5834\u570b\u969b\u5316\u5c0e\u5411\u7684\u5c08\u696d\u7814\u8a0e\u6703\uff0c\u6700\u8fd1\u7684\u6280\u8853\u7814\u8a0e\u6703\u771f\u662f\u8d8a\u4f86\u8d8a\u5c08\u9580\u554a\u3002<\/p>\n<p>\u5c0f\u5f1f\u4e5f\u53d7\u9080\u6709\u4e00\u5834 45 \u5206\u9418\u7684\u6f14\u8b1b\uff0c\u4e3b\u984c\u662f Exception Handling \u2013 Designing Robust Software \u4f8b\u5916\u8655\u7406\u548c\u5f37\u5065\u7684\u8edf\u9ad4\u8a2d\u8a08\u3002<\/p>\n<blockquote><p>In a perfect world, every method call succeeds, users enter correct data and resources are accessible always. But the real world is brutal and failures happen. You will be miserable if you fail to design your software for a production environment.<\/p>\n<p>In this talk, I will explore how to design robust software, the exception handling mechanics of Ruby and Rails, bad smells and best practices of exception handling.<\/p><\/blockquote>\n<p>\u5beb Ruby on Rails \u4e5f\u597d\u591a\u5e74\u4e86\uff0c\u5f9e\u521d\u5b78\u5230\u7814\u7a76\u9032\u968e\u7528\u6cd5\u3001\u5f9e\u6703\u52d5\u5230\u5beb\u7684\u6f02\u4eae\uff0c\u6700\u8fd1\u6bd4\u8f03\u591a\u7684<del>\u75db\u82e6<\/del>\u9ad4\u609f\u5247\u662f\u5728 production \u74b0\u5883\u4e0a\u7684\u4e00\u5806<del>\u9ce5\u4e8b<\/del>\u8003\u9a57\u3002\u5e0c\u671b\u9019\u5834 talk \u53ef\u4ee5\u5206\u4eab\u4e00\u4e9b Ruby \u4f8b\u5916\u8655\u7406\u7684\u6280\u5de7\u548c\u932f\u8aa4\u8655\u7406\u7684\u7b56\u7565\uff0c\u9032\u800c\u9054\u5230\u5f37\u5065\u8edf\u9ad4\u7684\u76ee\u7684\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7531 xdite \u4e3b\u8fa6\u7684 Rails Pacific \u5e74\u6703\u5373\u5c07\u65bc 9\/26-27 \u5c55\u958b\uff0c\u76ee\u524d\u9084\u5728\u552e\u7968\u4e2d\u3002\u8b1b\u5e2b\u9663\u5bb9 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/ihower.tw\/blog\/7894-%e4%ba%9e%e6%b4%b2%e9%a6%96%e6%ac%a1%e7%9a%84-ruby-on-rails-%e5%b9%b4%e6%9c%83-rails-pacific-%e5%a4%a7%e6%9c%83-926-27\" class=\"more-link\">\u95b1\u8b80\u5168\u6587<span class=\"screen-reader-text\">\u3008\u4e9e\u6d32\u9996\u6b21\u7684 Ruby on Rails \u5e74\u6703 &#8211; Rails Pacific \u5927\u6703 9\/26-27\u3009<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[53,31],"tags":[],"class_list":["post-7894","post","type-post","status-publish","format-standard","hentry","category-rails","category-ruby","entry"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1q6tG-23k","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts\/7894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/comments?post=7894"}],"version-history":[{"count":8,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts\/7894\/revisions"}],"predecessor-version":[{"id":7902,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/posts\/7894\/revisions\/7902"}],"wp:attachment":[{"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/media?parent=7894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/categories?post=7894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ihower.tw\/blog\/wp-json\/wp\/v2\/tags?post=7894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}