求思路,一人说一个 PHP 的面试题吧

2017-02-20 20:00:20 +08:00
 xiaotianhu

最近招人

感觉传统的 PHP 面试题都太套路了

求思路,有什么更合理的 PHP 面试题?

9803 次点击
所在节点    程序员
72 条回复
jamlee
2017-02-21 21:38:03 +08:00
@1762628386 php 还不可以使用注释来注入依赖什么的吧
HLT
2017-02-21 21:40:33 +08:00
什么是面向对象编程
什么是面向工资编程
sobigfish
2017-02-21 21:48:07 +08:00
直接问 PHP 7.0 更新了什么 feature ?=。=
pubby
2017-02-21 23:02:26 +08:00
@TIGERB 这个好
1762628386
2017-02-21 23:05:19 +08:00
@jamlee 早就可以了 用反射获取注释 正则匹配指令 路由注释 Symfony2 已经实现了
ruooooooli
2017-02-22 09:34:40 +08:00
把我招了吧 哈哈哈
realpg
2017-02-22 10:32:46 +08:00
面试不问细节,不问奇葩算法,这些东西就算不会自己上网一搜随便看看就明白,当然太简单的那种基本算法可以问问,不需要实现,比如排序啊之类好歹你大概知道有几种方法都叫啥名,到时候搜你也得知道关键词,不用考具体实现

然后,聊聊 http 模型, fastcgi 处理模型,确定基本问题知道在哪,常用的 MYSQL 大坑是否了解,比如 LIMIT 很大数字会慢这种常识,细节见镇长

然后,聊聊各种数据安全问题,防止泄露的处理,常见业务大坑比如支付网关返回只验证订单号成功不验证金额的这种事儿怎么看之类

然后,针对 PHP ,问问 5.X 到 5.6 有啥主要变化,新特性简单了解即可,日常能用到的会出现不兼容问题的为重点,然后是 5.6 到 7 有啥重点需要注意的地方之类,重点在代码题



代码题:

给定时间(4 小时内)处理一个基本业务数据逻辑,环境在测试服务器搭好, git 推上去自动部署,要求每秒钟几万次的请求(另外测试服务器有一个 golang 客户端可以用来模拟)

给定的自己写的变种 CI 框架,包含公司一部分已经写好的模块可以直接调用,提供框架完整中英文手册,以及一部分同类别人写的类似功能源代码可以参考使用语法,核心逻辑部分,需要从 session 中获取几个参数,从 cookies 中获取几个参数,从 post 获取几个参数,然后代入数据库,交叉 N 个表

需要写的是一个登陆并维持状态(界面不要求,白页 input ,白页显示即可),然后获取一个关联系统预设的 cookies ,一个用户主动的 post 数据,几个 url 上带来的算是 get 的参数,然后结合这些去数据库按照三个规则查询生成 table 显示给用户(三种简单逻辑但是结合数据库结构考虑性能就不太好搞的逻辑),还有一个 ajax 入库的 api 接口

这个规则里会设计一个表格的变换,给定较大压力下, PHP 模块都配置好,包括 redis , memcached 缓存都带配置好的服务器,在框架手册里会写明可以直接用。测试压力调度器可以随时让他测试自己的性能,约定题目会告诉你生成永久临时辅助查询表需要书写临时表数据定义文档上传版本库,对表结构进行调整、建立索引需要修改版本库中的数据库定义文档(暗示可以对进行修改的范围)

一般熟练工, 30~50 分钟就能写完,然后考核代码质量

首先那个生成报表的,需要给数据库加索引,如果稍微高级点的,会考虑生成一个辅助列(触发器)甚至辅助表去把查询拆分成简单查询几倍提高性能

然后,处理查询部分, stmt , activerecord 之类可以自选,具体怎么去处理三个查询中的两个用现有表结构很难简单弄出目标数据的方式的巧妙程度需要观察,这是技术硬实力

另外就是输入过滤,对于系统内约定的传进来 int ,有没有随手 intval 一下的习惯,对于用户数据(比如 cookies )是否有随手 intval 的习惯等等

这些都处理得很厉害,加分点众多,基本日常写业务基本无敌了
xiaotianhu
2017-02-22 18:04:34 +08:00
@realpg
很详细啊,多谢了
然而现实情况是,我也不敢问细节 就一些面上的东西,怎么看负载查找文件的命令啊,http 头里面有啥字段啊,session 过期咋整啊 这些问题,对方都是一脸蒙逼的状态,很多 3-5 年经验的人,不知道他们天天都在干啥 写了三年后台也不至于啊.
cncqw
2017-02-22 21:37:14 +08:00
@realpg 你说的这些全部都会的工资至少要 20k+了
realpg
2017-02-22 21:39:00 +08:00
@cncqw #69
招聘职位是高级 PHP 工程师的 难道 20K+不是基本盘么?
1762628386
2017-02-22 23:51:21 +08:00
@realpg 这个值啊
1762628386
2017-02-22 23:52:02 +08:00
不过大多数公司 RD 没有创建触发器的权限吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX