这段日子有个坑爹的项目——南网,这篇文章就来纪念它。里面有用到一个jq插件:handsontable,作用是生成一个类似excel的表格,不得不说功能十分强大,实现了类似excel的各种功能,使用的api也比较简单,然而…后面有些莫名其妙的bug,奈何于水平有限,其源码也太长(30000+),各种嵌套,无法从正确的逻辑中找到出问题的地方,只能在关键的地方强制使用自己的逻辑,下面就说说怎么找这个bug关键的地方
平时修改bug
- js的bug:我总是想一遍过程,整个流程构思的跑一遍,然后哪儿的逻辑出了问题或者疏忽了,自然就知道了对应的地方。
- 页面的bug:google浏览器,你懂得。我对页面渲染理解着实不深,所以经常”不求甚解”。
这次修改handsontable插件bug的经验
bug1:要渲染的数据很多,但是只显示了一部分:
注:使用全局变量window.flag是为了在其他地方不影响
bug2-n:双击编辑时弹框位置不对、点击某些单元格时却滚动到表格顶部、下拉列表的显示位置不对…
总结:不清楚插件内部逻辑的情况下:搜索关键字,根据打的断点找到关键性代码
为了找到关键代码,断点是打了n遍,每次都发现外层的方法已经产生了bug,如此循环多次之后才找到。感觉方法很笨,但却很有效,经验大概就是这样起作用。不知道谁有好点的找bug的方法吗,请留言。
[1] hexo
竟然不支持markdown
的流程图语法,上面的流程图是用其他Markdown
编辑器生成的html
[2] 每次用eclipse
打包、启动maven
管理的项目都忍不住吐槽,各种报错,浪费时间。最近终于换了idea
,和webstorm
是一家公司的,真强大啊,再也不用每次更新代码就打包了,而且tomcat
还可以配置两个module
,不用切来切去,真爽。附上idea使用教程