上海网帮你
当前位置: 上海 > 上海教育培训 > 上海电脑培训

和职坐标一起看看PHP程序员解决问题的能力级别

  • 2016-02-09 16:25:44
  • 78
  • 信息编号:201357191
  • 上课地点:上海市浦东新区张衡路180号
  • 学校名称:职坐标
  • 所在区域:上海
  • 详细地址:上海市浦东新区张衡路180号
  • 联系电话:查看联系方式
  • 联系时,请一定说明在网帮你(93580.com.cn)看到的,谢谢!,请勿向陌生人打款,见面最安全,发现问题请举报。
详细信息
咨询留言
咨询主题:
咨询内容:
     
注意:留言请先登陆,并且已绑定微信,否则无法收发留言!
在面试中必然考核的能力中,个人认为解决问题能力是排第一位的,比学习能力优先级更高。解决问题的能力既能看出程序员的思维能力,应变能力,探索能力等,又可以看出他的经验。如果解决问题能力不佳是无法通过面试的。这里可以将解决问题能力分为8个等级,越到后面的表示能力越强。和职坐标一起看看你的能力在哪个级别吧!

Lv0 查看PHP错误信息
 
程序没有达到预期效果,证明代码出错了,看PHP的错误信息是第一步。如果直接忽略错误信息,表明这个人不适合担任专业的程序员岗位。有些情况下php.ini配置中关闭了错误显示,需要修改php.ini打开错误信息,或者错误信息被导出到了日志文件,这种情况可以直接tailf php_error.log来看错误信息。
拿到错误信息后直接定位到程序代码问题,或者到Google百度搜索,即可解决问题。
注:打开错误显示的方法是
php.ini中display_errors display_startup_errors 设置为On
php.ini中error_reporting 设置为E_ALL
PHP代码中设置error_reporting(E_ALL)

Lv1 存在多个版本的php或phpcli与phpfpm加载不同的配置
  存在多个版本的php,懂得通过which php来看是哪个PHP,或者加绝对路径制定php版本。表示此PHPer通过了此层级的50%考验。
  另外一个情况就是phpcli与phpfpm得到的执行情况不一样,如在web浏览器中执行是对的,cli下执行是错的。这时候可能是2个环境加载的php.ini不同所致。cli下通过php i |grep php.ini得到加载了哪个php.ini。而fpm下通过phpinfo()函数可以得到php.ini的绝对路径。

Lv2 var_dumpdie打印变量值信息单步调试
  这是惯用的程序调试手段,也是最简单粗暴有效的解决问题方法。高级一点的手段是使用PHP的Trace类日志类,花哨一点的可以借助phpstorm+xdebug在IDE工具里进行Debug。
Trace工具还可以分析脚本的耗时,进行PHP程序的性能优化。
  这3个考验全部通过,表明此程序员已经具备了专业PHP程序员应该有的解决问题能力了。PHP程序员只要过了这个等级,就足以应多大部分情况,在中小型网站中毫无压力。

Lv3 使用strace工具跟踪程序执行
  strace可以用来查看系统调用的执行,使用strace php test.php,或者strace p 进程ID。strace就可以帮助你透过现象看本质,掌握程序执行的过程。这个手段是在大型网站,大公司里最常用的。如果没掌握strace,这里只能说抱歉了,不接受不会strace的PHPer。
  strace其实也是对程序员基础的考验,如果不懂操作操作系统,完全不懂底层,肯定也达不到会用strace的程度。当然strace对于PHP代码里的死循环是解决不了的。比如你发现一个phpfpm进程CPU%了,strace恐怕是解决不了的。因为strace是看系统调用,一般都是IO类操作,既然是IO密集,那CPU一定不可能是%。

Lv4 使用tcpdump工具分析网络通信过程
  tcpdump可以抓到网卡的数据通信过程,甚至数据内容也可以抓到。使用tcpdump可以看到网络通信过程是什么样的,如何时发起了TCP SYN3次握手,何时发送FIN包,何时发送RST包。这是一个基本功,如果不懂tcpdump,证明不具备网络问题解决能力。

Lv5 统计函数调用的耗时和成功率
  使用xhporfxdebug导出PHP请求的调用过程,然后分析每个函数调用的过程和耗时。能够分析PHP程序的性能瓶颈,找出可以优化的点。
  另外一个对于网络服务的调用,如mysql查询,curl,其他API调用等,通过记录起始和结束时microtime,返回的是不是false,可以得到调用是否成功,耗时多少。如果可以汇总数据,整理出调用的成功率,失败率,平均延时,证明此程序员对接口质量敏感,有大型网站项目经验。

Lv6 gdb使用
  gdb是CC++调试程序的利器,需要具备一定CC++功底的程序员才会能熟练使用gdb。上面说的strace无法跟踪php程序CPU%,而gdb是可以跟踪的。另外gdb也可以解决php程序core dump的问题。
  通过gdb p 进程ID,再配合phpsrc的.gdbinit zbacktrace等工具,可以很方便地跟踪PHP程序的执行。像上面的CPU%往往是PHP程序中发生死循环了,gdb进行多次查看,就大致可以得到死循环的位置。具备gdb解决问题能力的PHP程序员少之又少。如果能使用gdb解决PHP问题,这个PHPer百分之百可以通过面试,并且可以拿到较高的技术评级。

Lv7 查看PHP内核和扩展源码
  如果能熟悉PHP内核和扩展的源码,遇到PHP程序中最复杂的内存错误,也可以有解决的能力。这类PHP程序员就是凤毛麟角了。配合gdb工具和对PHP源码的熟悉,可以查看opcode的信息,execute_data的内存,全局变量的状态等。
推荐搜索:
PHP 可以 程序 strace nbsp 能力 gdb 程序员 错误 使用 信息 php 通过 如果 php.ini 解决问题 用的 工具 过程 调用 查看 得到 执行 解决 或者 耗时 tcpdump 一个 问题 代码 跟踪 分析 手段 这个 具备 进程 哪个 设置 面试 函数 调试 网站 情况 也可以 源码 进行 何时 加载 phpfpm 版本 PHPer 循环 直接 不懂 考验 CPU% 另外 E 一点 存在 cli 绝对 不同 phpcli 路径 多个 Trace 就是 这是 系统 抓到 数据 网络通信 一定 了的 IO 发送 扩展 CC++ 配合 成功率 决不 p 内存 reporting 内核 性能 优化 熟悉 ID 对于 操作 掌握 大型 明此 需要 显示 打开 导出 来看 日志 证明 等级 表示 面的 error 这里 看出 经验 无法 拿到 专业 display errors 方法 个人 FIN 其他 opcode RST 不具备 基本功 思维能力 握手 应变能力 起了 TCP SYN3 curl 网络 能够 每个 瓶颈 找出 mysql 然后 请求 统计 Lv5 探索 查询 xhporfxdebug 既能 网络服务 看到 因为 data 怕是 分为 一般 都是 8个 变量 状态 全局 发现 如你 既然 密集 甚至 数据通信 他的 内容 API 网卡 不佳 CPU 不可能 % execute Lv4 什么样 起始 zbacktrace .gdbinit phpsrc 方便 像上 考核 遇到 上面 熟练 学习能力 说的 core dump 往往 中发 认为 并且 高的 评级 技术 可以通过 百分之百 多次 生死 大致 位置 之又 第一位 才会 功底 这类 成功 是否 多少 汇总 理出 false 是不是 结束 Lv7 microtime 返回 凤毛麟角 失败率 平均 复杂 必然 Lv6 更高 优先级 利器 中最 项目 延时 题的 接口 敏感 质量 记录 完全 打印 dumpdie var 量值 修改 单步 Lv2 所致 环境 2个 i grep phpinfo fpm 也是 IDE phpstorm+xdebug 借助 有些 岗位 还可以 Debug 花哨 情况下 有效 粗暴 最简单 高级 关闭 置中 可能 这时候 which 懂得 配置 百度 制定 Google 搜索 即可 ALL ALLPHP Onphp.ini Lv1 startup 定位 浏览器 web 如在 文件 对的 错的 到了 不一样 执行情况 层级 了此 50% error.log 这种 tailf 担任 脚本 ( 常用的 里最 ) 公司 级别 本质 行的 你的 看看 是在 能说 抱歉 肯定 底层 操作系统 达不到 会用 当然 程度 坐标 不会 不接受 其实 一起 基础 是对 象看 过了 只要 有的 错了 足以 大部分 应多 应该 第一步 3个 表明 不适合 全部 已经 忽略 中小型 Lv0 没有 就可以 帮助 透过 test.php 达到 无压力 中毫 Lv3 效果 预期 用来 越强
该栏目的其他信息
电脑培训同级类目:
赞助商广告

会员还未认证

(zdy****)

Copyright 2022 © 93580.com.cn 网帮你

2022 © 版权所有 红花岗区网帮你信息技术工作室

工信部备案号:黔ICP备2024036985号-2

请使用网帮你微信扫码登录