最近参加的一些面试总结

- 1 min

  8月初离职,然后在家待了一个多月,最近正开始重新找工作,找了将近大半个月,看了下面试过的公司,一共10个左右,还是挺多的。找工作的日子有一种对自己的职业生涯、技术知识积累进行梳理的感觉,自己对自己进行阶段性总结,了解自己的优势,回顾过往做过的事情,看到自己的不足,知道哪些地方需要提高,总的而言,梳理的越清楚,越有利于面试的时候如何针对自己的特点进行发挥。


  这次找工作的过程中,最大的收获就是花了一些时间了解 php 的执行原理,难以想象以前一直在写 php,却没有怎么了解过这方面的知识,导致很多地方都是一知半解,知其然不知所以然,不管怎么说弄懂 php 的原理是非常重要而且有必要的。

php 原理

弄懂 php 的原理首先需要知道 php 的核心架构,简单的说 php 从下到上有4层体系:

php 是如何处理一次请求的

客户端发送一次请求,一般的过程是:浏览器使用 http 协议发送请求给服务器(Apache/Nginx),服务器判断请求是否是静态资源,如果是静态资源直接将其返回,不需要经过 php 的处理。如果不是静态资源,服务器将请求转发给 php 解析器,一般对应着项目当中的入口文件(public/index.php),处理过后返回 html 数据给服务器,服务器将其返回给客户端。详细的处理过程如下,这里以 php-fpm 接口程序为例:

在学习的过程中,一般是都是从如何使用开始,当使用达到一定程度,就会开始想要弄明白为什么这样做就会产生这样的结果,也就是开始尝试了解其原理,当弄清楚了所做事情的原理的时候,就能更好地进行优化、提高或者针对性地改进。在弄懂 php 的原理之后,我开始尝试去了解 opcode 的执行,php 的核心数据结构是 hashtable,由于对数据结构不了解,我没有办法进一步了解 opcode 的执行过程,也开始意识到数据结构的重要性。


  经过10来次面试之后,一般而言,面试的流程大概是这样样子:


一些准备面试当中常用到的:

Redis

csrf_token

前端

参考链接:

php 底层的运行机制与原理

circle

circle

Keep taking risks till you find your passion

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora list2