赵龙 全栈之路

报错集 039 报错提示:NoMeThodEorror, 文件config/routes.rb缺失代码;一些发散思考的感悟

| Comments

错误记录

“Rails 实战:购物网站” 教材:6-1 购物车练习作业 (解答) ,Step 4: 可以更改购物车内购买的商品数量(原本预设数量都是1),这一步出现网页红色报错。

分析与解决方式

我用代码对比网站——text-compare ,检查这一步 “Step 4: 可以更改购物车内购买的商品数量(原本预设数量都是1)” ,未发现代码错误。尝试回退这一步的代码,出现新的报错。该报错提示在这一步 “Step 2: 删除购物车内某一商品” 出现问题,想到这一步没有进行过测试,仔细检查,发现遗留了一段代码。补上这段代码,完成 debug。

config/routes.rb
Rails.application.routes.draw do
...(略)
+ resources :cart_items
end

感悟

每一步都要进行检测,这一次的 bug 就是没有执行仔细检测每一步,从而忽略了一个报错,导致了另一个报错,本质是同一个bug 造成的。如果是两个 bug 积累形成的报错,那样 debug 的难度会几倍上升。每增加一个 bug ,debug 的难度呈现指数级上升!在只有一个 bug 的时候解决难度最小。


由此延伸想到,有点 bug 在流量大增的时候才会暴露,这类 bug 的本质其实是未考虑到大流量需求造成的,有的可以代码升级搞定,有的必须提升网站服务器的性能、有的必须提升服务器的网速总带宽等等。这类 bug 是不可避免的,由目前的最小 MVP 产品发展到大型网站的创业基本模式决定。

Comments

comments powered by Disqus