最近一直在做web这块。因为是别人写的,这次是在上面改。所以遇见了许多小问题。不能说人家写的好与不好,其实是每个程序员都有自己的实现方式而已。今天遇到的bug主要是由三个方面引起,而且这个项目没有任何的测试,导致调试起来有些费劲。下面和大家分享一下遇到的问题。
因为这次是三个方面引起的,所以得一个个的排出。
首先是变量未定义使用。这在php里面会导致这个变量为空。看代码
class="php">//做php不是很长,命名可能有些不规范 function storeInfo(arrInfo) { if(isset(array["age"]) { $age = array["age"]; } //.... 其他处理 data = array(); data['age'] = $age; }
?很明显这里可能会造成$age undefined 。然后返回一个$age undefinded的提示,然后我的ajax就崩溃了,返回error 。
第二个错误跟他类似:
function storeInfo(arrInfo) { $name = arrInfo["name"]; if(!isset($name)) { $user = find_by_id($id); $name=$user["name"] } // ...其他处理 data = array(); data["name"] = $name ; }
?问题和刚才那个大同小异。
第三个错误是因为开发的时候没有关闭notice的提示。然后在ajax的时候就会出现错误。和上面的两个错误有关。ajax请求返回的结果是这样的:
Notice : $name is undefined at x/y.php in line:123 // 大概是这个意思,记得不是很全 {status:"success",id=123}
?然后就出现了开头的那一幕,因为ajax认为这样的结果是error,然后就悲剧了。
我想说几点:
1.?? 我写这种代码的时候对后面回用的变量是在开头全部声明,当然像for循环里面的ijk可以直接定义使用;
2.?? 在项目上,无论大小,有测试才好,像php,js都可以写测试,这样别人在接受的时候能更快的上手;
3.?? 像这样的错误,涉及前后端了,找bug的位置更大了,需要耐心一点点的调试,查看log。
4.?? 条错误的同时,我也再像,有没有类似与ajax的测试框架呢。如果有的话,大家帮忙给个连接。
?
?
?
?
?