新手问题 找 bug 的过程是不是像解谜?

chairy11 · 2013年12月27日 · 最后由 wcp1231 回复于 2013年12月27日 · 3961 次阅读

有时候我想,找 bug 的过程是不是像解谜? 深陷其中,找线索,尝试改变各种变量,看看有没有反应。遇到一条线索,不断追踪追踪,然后有时发现,原来,这还不是关键点,但的确又解决了点问题。 但有时,即使找到了谜底,也还是看不懂。

昨天晚上:

  • 发现 headroom 插件无效 =>
  • 文件加载没?加了=>
  • 顺序对不?对的,只要在 jQuery 之后,在使用之前嘛?=>
  • 用法对不?看了使用说明,没错啊 =>
  • 看源码,原来除了 headroom.min.js 还有个 jQuery.headroom.min.js,(Doc 只提到 js),都加上,还是没效 =>
  • 是不是没写对应效果的 css?果然,加上 =>
  • 没效,因为插件压根没给我 addClass =>
  • 啊啊啊,崩溃了!=>
  • 忽然,怎么我的 isotope 也没效?啊啊啊,原来是整个 main 都没生效啊!=>
  • 看 main.js.coffee,$(document).ready ->,没错啊,啊啊啊,哪里错啊!=>

早上起来:

  • 咦,RubyMine 提示我有些 gem 在 ruby-2.0.0-p353 下没装好?我用了 Ruby2.1 啊!=>
  • 设置下 RubyMine 的 Ruby SDK, 还是没效果=>
  • 崩溃了,直接 git checkout -f,回滚到上个提交版本!=>
  • rails s , 恩,哦,得先 bundle update, 因为上个提交版本是 ruby-2.0.0-p353。OK 的,正常了=>
  • 对了,昨晚把 anjlab-bootstrap-rails 换成 gem 'bootstrap-sass'了,改=>
  • 啊啊啊,js 又失效了!为毛!看看官方文档,//= require bootstrap,是这么写的啊!=>
  • 删了//= require bootstrap 呢?js 正常生效!加上呢?失效!真的和它有关?=>
  • 那也不能不用啊!放在最后,main 的后面呢?js 正常生效。好吧,就这样了。=>

可是为什么啊?就算问题解决了,也还是看不懂啊!

啊啊啊,神马玩意啊!我觉得我真不是做程序员的料啊!深感挫败! 都学习快两年了(去年三月开始),之前一直以为很快就学会了,所以就不想找工作了,因为觉得自己呆不久,去了也是坑人家!早知道我会拖将近两年,那我当时找个公司好好学习,现在都两年实战经验了! 好吧,再也不相信自己的自学能力了!

一把泪!😭 哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇,我要哭!


晚上 11:30, 终于解决了 headroom 相关的所有问题(包括 CSS 动画),git push 之后,开个音乐,冲杯热牛奶,吃个小蛋糕,好不惬意,苦尽甘来的感觉……


不是技术兼设计的产品经理不是好的创业者。恩,朝目标又前进了一点没有?

感觉还是缺乏基础常识……

一口吃成大胖子 ...

#1 楼 @Kabie //= require bootstrap 为什么要放在//= require main 后面?

#2 楼 @bhuztez 都吃了两年了还一口……

就像一层层脱女人的衣服,是煎熬,也是乐趣

#3 楼 @chairy11 那得看你 main 里面都干了啥。。。

#7 楼 @Kabie main 里面没有涉及 bootstrap 的东西啊。 而且,我原来用 anjlab-bootstrap-rails 时,是“ //= require twitter/bootstrap”,当时一切正常,所以我改用'bootstrap-sass'之后,只是在原来位置把“twitter/"去掉而已……可是,莫名其妙的就后面的文件都不生效了。

#6 楼 @gaicitadie 这比喻……那脱女人衣服时有什么好煎熬的,前景就在眼前,三两秒的事……可是找 bug,真不知道能不能找到,要怎么才找到咧……

#9 楼 @chairy11 第一次的时候,哆哆嗦嗦,百撕不得骑姐。。。找 bug 也是,一开始找不到突破口,碰到的次数多了就驾轻就熟了。 言归正传 1、如果出现错误信息,复制下来 google 搜索 2、在代码中插入 puts 11111111111111111,puts xxxxxxxxxxxxxx,puts 22222222222,一边刷新页面一边看终端 3, binding.pry 。。。。。。

#10 楼 @gaicitadie 哈哈哈哈,谢谢

我只要搞不定就上 debugger 了 解决问题绝不是靠瞎猜。 也不要只依赖 Google,因为 Google 不是每次都能帮上忙的。很多 Bug 就是自己一点点挖出来的。

你已经算很好了,只是自己随便做做项目。我们工作时很多 Bug 是以前的小 Bug 造成了后来数据错误,这些错误的数据之前长期潜伏着,后来结合了新的代码最后酿成了更大的 Bug。这种 Bug 的解决需要你对业务,历史都有相当深刻的理解,还要经常和其他团队交流,或者对用户一切可能的奇怪行为进行猜测和逐一排查,才有可能发现呢。简直快赶上侦探了。

6 楼比喻大赞啊 想必非常有经验了。。

为何不找工作呢 也许有的小问题你的同事一眼就能找到原因 你也能瞬间学习解决的办法 不至于自己百般折腾 =)

任何语言都一样。任何人都会犯错。

新手找 bug 像猜谜,老手看一眼大概哪的问题就清除了,在做两三步就能证实自己的猜想。

#12 楼 @iBachue 听上去,我觉得自己造成的 bug 不可怕,别人写下来的 bug 才叫真可怕……

#13 楼 @leozwa 一是自己水平不高,估计也找不着;二是之前觉得自己可能呆不很久(想创业),觉得如果只去几个月好像去坑别人公司,别人把的培养完我就走,太不仗义……

姐,你还没上班啊?自己做两个项目就差不多了。哈哈

#17 楼 @chairy11

如果只去几个月好像去坑别人公司

实习生好像是专门坑公司的 😉

只要你工作时尽力了就好吧。 静下心来,会有收获的。

#19 楼 @camel :)谢谢老宋……我有想当实习生来着,结果人家说“实习生职位是针对在校学生的”,哈哈哈哈

#18 楼 @diguage 我讨厌别人叫我“姐”!

其实我想说,在创业公司真的比自己干来的快的多啊。。。两年,其实可以成一个小牛了的,昨天又看到一个印度 rails 女汉子, http://raysrashmi.com/about 自愧不如。。

#22 楼 @small_fish__ 只恨我不是女汉子啊! 现在开始严重怀疑我的智商是不是长年熬夜直线下降了…… 还是说当年我一氧化碳中毒差点没挂,但脑细胞当时就死了一半?在那之前老师一直夸我是他们见过的最聪明的孩子来着……那之后就没人夸过了……

#23 楼 @chairy11 我觉得你想太多了,开心最重要啊,尤其程序员,我觉得你去咖啡厅 code 比较好,,晚上早点睡觉

#23 楼 @chairy11 记得当年追老婆的时候,我对她说:我其实最喜欢聪明的女孩子,你是我见过最聪明的女孩子......

#21 楼 @chairy11 好吧,妹子,我错了,以后叫妹子吧。哈哈

如果没在公司干过,还是应该先工作工作积累点经验。有了些实践经验以后如果有时间能全职学习得话,那就进步飞快了。

#26 楼 @diguage 看过《我可能不会爱你》吗? 请看第二集4 分 35 秒, “初老症状第二条:身旁一堆人喊你 XX 姊、XX 哥,而你很想叫他们"SHUT UP!"”

#25 楼 @lgn21st 哈哈哈哈,这么会说话,真是绝世好老公一枚啊!看来她做过的最聪明的事就是嫁给你了!

发现《我可能不会爱你》。。。。

#30 楼 @Ryan 很好看啊!我都想重看第二遍了! 当年就是我朋友看了说,每次看到程又青都想起我,非要我看,果然……特有共鸣!

#25 楼 @lgn21st 膜拜 来年 RubyConf 上传授经验吧

#31 楼 @chairy11 我也看了两遍。。。虽然后面丁立威那段很狗血。。程又青太特别了。。

我觉得编程就是一个智力游戏,所以 debug 也是游戏的一部分。

IDE 阻止程序员进步 特别作为 Ruby 程序员,还是放弃 IDE 吧 因为他包装和隐藏了太多的东西

不会用 editor 来写 ruby 的都不好的 ruby 工程师

#35 楼 @azhao 太暴力了,我坦白 我是一直用 gedit (虽然问题越来越多), 但是 我也得 配置一些 ·plug-in·

#34 楼 @wcp1231 等我哪天智商提升,游刃有余之时,我也想说这样一句话……

#37 楼 @chairy11 不过确实有很多经验的成分,遇到问题能排除一部分可能就挺有帮助。然后感觉如果有比较好的测试的话,就不怕在 debug 的时候引入新的 bug。

#25 楼 @lgn21st 聪明确实是一个很诱人的属性。。

#35 楼 @azhao 我是所有命令行都在 Guake Terminal 上写,具体代码在 IDE 里写…… 目前其实没有用到很多 IDE 内置的功能啊……主要是代码补全、Go to Declaration。 就是喜欢 IDE 界面清爽,颜色区分不同类型关键字啥的。

#39 楼 @wcp1231 真的吗?为什么很多电视剧里说,很多男人都不喜欢聪明的女人……恩,估计那些是大男人主义的吧!

#41 楼 @chairy11 那就看怎么使用这个“聪明”了,是用来“监视”还是“理解”。 我觉得 Emacs 就挺好用啊,不知道算不算 IDE,有高亮偶尔还有自动补全。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号