For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
对于编程开发程序员来说,除了需要能够发现问题以外,解决问题也是一项非常重要的能力。今天,我们就一起来了解一下,PHP开发程序员在解决问题的能力划分上都可以分为哪些级别。
Lv0查看PHP错误信息
程序没有达到预期效果,证明代码出错了,看PHP的错误信息是一步。如果直接忽略错误信息,表明这个人不适合担任专业的程序员岗位。有些情况下php.ini配置中关闭了错误显示,需要修改php.ini打开错误信息,或者错误信息被导出到了日志文件,这种情况可以直接tailfphp_error.log来看错误信息。
Lv1存在多个版本的php或php-cli与php-fpm加载不同的配置
存在多个版本的php,懂得通过whichphp来看是哪个PHP,或者加绝对路径制定php版本。表示此PHPer通过了此层级的50%考验。
Lv2var_dump/die打印变量值信息单步调试
这是惯用的程序调试手段,也是简单粗暴有效的解决问题方法。高级一点的手段是使用PHP的Trace类/日志类,花哨一点的可以借助phpstorm+xdebug在IDE工具里进行Debug。
Lv3使用strace工具跟踪程序执行
strace可以用来查看系统调用的执行,使用stracephptest.php,或者strace-p进程ID。strace就可以帮助你透过现象看本质,掌握程序执行的过程。这个手段是在大型网站,大公司里常用的。如果没掌握strace,这里只能说抱歉了,我们不接受不会strace的PHPer。
Lv4使用tcpdump工具分析网络通信过程
tcpdump可以抓到网卡的数据通信过程,甚至数据内容也可以抓到。使用tcpdump可以看到网络通信过程是什么样的,如何时发起了TCPSYN3次握手,何时发送FIN包,何时发送RST包。这是一个基本功,如果不懂tcpdump,证明不具备网络问题解决能力。
Lv5统计函数调用的耗时和成功率
使用xhporf/xdebug导出PHP请求的调用过程,然后分析每个函数调用的过程和耗时。能够分析PHP程序的性能瓶颈,找出可以优化的点。
Lv6gdb使用
gdb是C/C++调试程序的利器,需要具备一定C/C++功底的程序员才会能熟练使用gdb。上面说的strace无法跟踪php程序CPU100%,而gdb是可以跟踪的。另外gdb也可以解决php程序coredump的问题。
Lv7查看PHP内核和扩展源码
如果能熟悉PHP内核和扩展的源码,遇到PHP程序中复杂的内存错误,也可以有解决的能力。这类PHP程序员就是凤毛麟角了。配合gdb工具和对PHP源码的熟悉,可以查看opcode的信息,execute_data的内存,全局变量的状态等。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!