Предисловие: Если у вас есть прибыль, пожалуйстадобавить маленькую звездочку, если выигрыша нет, то можновозражение не помогает сообщитьСанлиан
Внимательные одноклассники должны это увидетьnoteBookСледующие другие знания, я надеюсь, помогут вам немного.
Время: 2017-11
-
Собеседование по php с 16-летним выпускником
- 1. Что такое интервью
- 2. Подготовка к интервью
-
Три, интервью галантереи
-
1. Учебное заведение
两面
- что такое транзакция mysql
- процесс интерпретации кода php
- Принцип реализации статистики Baidu
- Как делиться сессиями
- стратегия управления веткой git
- спокойный дизайн
- Дополнительный вопрос: Дизайн столов форума
- Вопрос сценария: улучшение системы входа в систему
- Код, который вас больше всего устраивает
- Знать, какие шаблоны проектирования, практические варианты использования
-
2. Компания электронной коммерции
三人面
- Сделать заглавной первую букву двумерного массива значений
- Используйте обычный, чтобы получить значение атрибута href в html и значение в теге a, и сохраните значение href в качестве ключа и значение в теге a в двумерном массиве.
- Оптимизировать запрос оператора
- Найдите M-е наибольшее число среди N чисел
- Что не так с кросс-оригинальными запросами Ajax? Как решить
- Как оптимизировать ресурсоемкий веб-сайт
- код, которым вы больше всего довольны
- разное
-
3. Филиал гостевого дома в Ханчжоу
一面
- Использование phpunit
- Сведения о реализации асинхронной очереди Redis
- Как отсортировать изюминку в Redis по двум атрибутам, таким как id и возраст
- Ваше понимание многопроцессорности, многопоточности и сопрограмм
- Поговорите о том, как понять компонентизацию и модульность в текущей структуре интерфейса.
- Как понять разницу между get и post в протоколе http
- Какую книгу ты читаешь в последнее время?
-
4. Краудфандинговый филиал в Ханчжоу
三面
-
5. Туристическая компания
两面
- Зачем оставлять
- Как выбрать PHP? О текущем популярном сравнении Java?
- Есть ли систематическое обучение? Читали ли вы онлайн-курсы и книги по php?
- Посмотрите, использовали ли вы laravel и tp, сравните следующие два фреймворка.
- основы php**
- пакет laravel**
- Ваш план дальнейшего развития, 1 год, 3 года
- Вы можете задать мне два вопроса?
- разное
-
1. Учебное заведение
- В-четвертых, резюме интервью
1. Что такое интервью
Говоря об интервью, давайте сначала поговорим о том, почему вы хотите уйти.
- При каких обстоятельствах вы бы без колебаний ушли в отставку?Количество просмотров достигло 51826523 раз, 5000w+, о_о!
Ключевые слова: рост, развитие, недовольство, лидерство, деньги (зарплата).突发感想是不是可以抓取下然后分析关键字,哈哈哈
и
все еще хочу увидеть
Насколько я понимаю: собеседование не является вступительным экзаменом в колледж.Есть только один вступительный экзамен в колледж (не говоря уже о репетиторстве).Собеседований может быть n раз.Пока есть возможность пройти собеседование,можно пойти на интервью все время Это не имеет значения, пока вас не вырвет.
Компания выбрала вас не потому, что вы нехороший, а потому, что вы не соответствуете их требованиям, идите домой и подумайте о недостатках собеседования, скорректируйте свой менталитет и подготовьтесь к следующему собеседованию.
2. Подготовка к интервью
Подготовка многогранна, как говорится: успех зарезервирован для тех, кто подготовлен
1. В: Когда началась подготовка?
ты корова??
Не нужно готовиться, ждите, пока хедхантер начнет копать:
Честно всегда готов
2. В: Как подготовиться?
- Проектный опыт является частью: интервью неотделимо, полностью понимать часть того, что вы сделали, и быть в состоянии четко выразить, что вы сделали и какую роль вы играете в интервью
- Место для самостоятельного обмена знаниями: например, блог/github, ваше собственное резюме будет более чем немного лучше, чем просмотр резюме других людей.
- Базовые знания: работа со строками, работа с массивами, работа с файлами, обычные операции.
- Продвинутые знания: объектная ориентация, структуры данных и алгоритмы, шаблоны проектирования, индекс mysql, движок mysql, транзакция mysql, блокировка mysql.
- Продвинутые знания: linux+nginx+mysql+php+redisоптимизация, только операция бесполезна, любой может, высокий параллелизм, распределенная система, балансировка нагрузки, подтаблица подбазы данных, очередь сообщений
Три, интервью галантереи
1. Учебное заведение两面
что такое транзакция mysql
我说了mysql的四个特性,原子性、一致性、隔离性、持久性,事务可以理解成一次操作要不完成要不失败。
面试官问了隔离性和锁的问题,有点忘了,这个真没答上来
-------------
可以参考下《Innodb中的事务隔离级别和锁的关系》https://tech.meituan.com/innodb-lock.html
процесс интерпретации кода php
我说了通过zend引擎解析成opcode,然后转化成机器识别的代码。
平时确实没有去关注这个,失败失败,查了资料
鸟哥写的《深入理解PHP原理之Opcodes》http://www.laruence.com/2008/06/18/221.html
Принцип реализации статистики Baidu
我没答上来,自己后面查的
-------------
参考:http://blog.csdn.net/iqzq123/article/details/8877645
Как делиться сессиями
我说了通过redis存储session,以达到共享目的,后面查了下方案,还挺多的
-------------
参考:http://www.cnblogs.com/wangtao_20/p/3395518.html#commentform
стратегия управления веткой git
我写了master作为主分支,dev作为开发分支,bug_fix分支作为bug分支
面试官说有个临时bug需要改,而我们在dev上已经开发了很多内容了,我答的是用bug_fix分支拉master代码,
再合回去,面试官说dev怎么办,改了相同的模块会冲突想了下,确实会,然后求教面试官,
面试官说可以用git rebase变基实现,自己见过这个命令,但是没用过,尴尬
спокойный дизайн
我说了get、post、put、patch、delete,面试官问他们分别怎么用,毕竟自己做api的
就回答了get是从服务器取资源、post是新建资源、put是
更新完整资源、patch更新部分资源、delete是删除资源,就过了
Дополнительный вопрос: Дизайн столов форума
有点忘了,我答的不是很好,问的是有以下几个需求,请问需要建几张表,为什么?主要考的如何合理的设计表,
比如用户登录信息表可以怎样设计?发帖表和回帖表需要怎样设计?内容字段比较大,怎样设计更好?哪些字段需要加索引?
Вопрос сценария: улучшение системы входа в систему
用伪代码实现
第一步:PC端只有两个表单框和注册按钮,后端接收参数,再存入数据库
第二步:添加移动端,需要发送短信
第三步:加入第三方登陆方式,需要发送邮件
第四步:有个兄弟公司,给了我们一张execl表,里面是用户信息,需要后台注册这些用户,如何修改现有的代码
第四步:有点忘了,好像是如何进一步优化
这里第三步就答不好了,考察的是逻辑能力和代码组织能力,设计模式的重要性。
Код, который вас больше всего устраивает
自己自由发挥,项目中遇到的应该是最好答的
Знать, какие шаблоны проектирования, практические варианты использования
我的回答
工厂模式:定义一个标准,用到的类可以按这个标准实现相应功能
单例模式:防止重复实例化,减少资源调用
数据映射:数据库ORM应用
装饰器模式:兼容老数据,多态的应用
面试管问了怎么兼容老数据,考察codereview能力
Я устал, иди сюда первым
2. Компания электронной коммерции三人面
Письменные тестовые вопросы очень интересны, и они могут проверить уровень интервьюируемого, такого как я.
Решения письменных тестовых вопросов см.php7.php24, 25, 26 в файле
Сделать заглавной первую букву двумерного массива значений
题目意思大概是这样的,印象不深很清了
当时做的时候好像做错了,现在想了下,思路是获取键值和值,然后双重循环转大写即可。
Используйте обычный, чтобы получить значение атрибута href в html и значение в теге a, и сохраните значение href в качестве ключа и значение в теге a в двумерном массиве.
Наверное эту структуру я упростил
<ul class="attr">
<li>
<a href="www.baidu.com">百度baidu</a>
<a href='www.tecent.com'>腾讯tengxun</a>
<a href="www.alibaba.com">阿里巴巴alibaba</a>
</li>
</ul>
考察正则表达式的运用和数组的拼装,我当时做的稀烂,回去稍微看了下正则,就很容易了。
Оптимизировать запрос оператора
Данные в тестовой таблице имеют 500w, поле имеет id/t_id/type_id/plat_id, а операторselect max(t_id) from test where type_id=1 and plat_id=1
考察mysql语句优化,这里主要是优化max函数,max函数会导致全表扫描,效率会很低,可以使用order by加limit进行优化
select t_id from test where type_id=1 and plat_id=1 order by t_id desc limit 1;
当然还可以使用加索引进一步优化速度,这里可以加上(type_id/plat_id)联合索引。
-------------
正确做法是给`t_id`加索引,还有(type_id/plat_id)联合索引,order by 并不能避免全表扫描。
Найдите M-е наибольшее число среди N чисел
考察算法,貌似是查找?
我当时的想法是先对数组排序,然后索引的N-M的数就是M大的数
Что не так с кросс-оригинальными запросами Ajax? Как решить
我的回答:稀烂,跨域出现问题会出现请求拒绝,是出于安全起见,设置Access-Control-Allow-Origin为*即可。哈哈哈naive
-------------
回去搜了下,方案还挺多的。
参考https://dailc.github.io/2017/03/22/ajaxCrossDomainSolution.html
Как оптимизировать ресурсоемкий веб-сайт
没有实践过对吧,没关系,会google吗?会背吗?脑子能留个大概的原理吗?
код, которым вы больше всего довольны
自己自由发挥,项目中遇到的应该是最好答的
разное
Проект в резюме спрашивает, что самое сложное в проекте? Как это решить?
сонный, спать
3. Филиал гостевого дома в Ханчжоу一面
Письменных вопросов нет, только вопросы на собеседовании с упором на основы, например на операционные системы.
Использование phpunit
自己平时没注意这个东西,所以答的稀烂,问到有没有连数据库测,我说有,只是用预期数据与数据库查出的数据对比测试
面试官问有没有用过mock
懵逼了,这个概念确实听过,没去做过,意思是造假的意思,通过模拟数据库操作来达到测试目的,还有stub站桩,需要多实践啊骚年 o_o
-------------
参考:https://phpunit.de/manual/current/zh_cn/test-doubles.html
Сведения о реализации асинхронной очереди Redis
Проверьте это в моем резюме
我当时用的是laravel中的队列机制,通过dispatch()触发任务,php artisan queue:work 开启后台进程监视队列并完成任务
面试官不满足,问我他的原理,怎样实现的?
我说用的是list,通过触发lpush入队,然后依次rpop出队处理任务
面试官说这是阻塞的,能不能有高效的做法,我说不清楚,面试官好像说可以把一个list的数据放到多个list中并行处理,zzz。
Как отсортировать изюминку в Redis по двум атрибутам, таким как id и возраст
不知道,只知道根据score分值排序,有知道的同学可以留言
请自行google redis zset 多字段排序
-------------
查了下,有说先自行排序后存入redis
https://segmentfault.com/q/1010000004669705
Ваше понимание многопроцессорности, многопоточности и сопрограмм
Как специалист по CS, все занятия в университете передаются учителю, zzz
进程可以有多个线程,在php中yield可以实现协程,面试官问swoole新版本中自带协程,你怎么理解?
没研究过zzz
-------------
进程是正在运行的程序的实例
进程是内核分配资源的最基本的单元
线程是内核执行的最基本的单元
进程内可以包含多个线程
协程的话相当于语言自己实现一个函数调度
参考:http://www.cnblogs.com/lxmhhy/p/6041001.html
Поговорите о том, как понять компонентизацию и модульность в текущей структуре интерфейса.
см. я спрошу react.js
我说就比如react里的组件可以理解为一个class类,模块的意思是一个文件就是一个模块,有单独的作用域
-------------
参考:http://xiaodongtongxue.top/2016/05/20/浅谈前端自动化%20工程化%20组件化%20模块化/
Как понять разницу между get и post в протоколе http
get是获取资源,post创建资源
get数据长度有限制,post无限制
get数据在url中安全性差,post不显示在url中更安全
怎么实现的,懵逼zzz
-------------
参考:https://zhuanlan.zhihu.com/p/22536382
Какую книгу ты читаешь в последнее время?
送命题,没看过就老实说没看过好了,不然会xxxx,比如我说了看了《图解HTTP》,首先问了我上面那道题,然后说你看的书不够深入,我。。。。
4. Краудфандинговый филиал в Ханчжоу三面
Какое соединение mysql использует php?
还以为很简单呢,直接说了mysqli和pdo,mysql弃用了
面试官来了句不是问这个,是问连接池
我对这个概念很懵,就回了是持久连接吗,可以用mysql_connect()
面试官再问比如laravel默认使用什么mysql连接的
我猜的是pdo吧
他说再想想
我xxxx,就这样过了
-------------
回去很郁闷的查了下,默认PDO,我还以为是想考察关于php编译时mysqlnd这样的呢
All database work in Laravel is done through the PHP PDO facilities
so make sure you have the driver for your particular database of
choice installed on your machine before you begin development.
Сценарий: правила создания индекса и объяснение
Есть такая таблица с самовозрастающим id, именем, ником, возрастом, типом клиента, временем создания
Какие поля нужно индексировать? Зачем?
我说年龄、创建时间、客户类型需要建立索引,where条件经常用到的字段
面试官说客户类型用的enum枚举呢,是不是也需要建立索引
我说不清楚
面试官说其实是不需要的,枚举类型只有几种,mysql查询时会分组查,一般写sql前可以用explain观察sql语句
Какую версию php вы используете? Зачем? Что нового в php7?
很幸运,自己一直用的是php7,因为php7速度有很大提升,也有很多新特性,比如标量类型声明、返回类型声明
命名空间、Trait、自动加载都是现代php所需要的
面试官问有自己发不过composer包吗?他的自动加载原理是怎么样的?
自己创建过composer包,没发布,自动加载是通过sql_autoload_register()实现的
面试官说之前都是include引入的对吧,你应该在往前想下
我xxxx
面试官说是当这个文件使用的时候,才会加载进来,以达到自动加载目的。
связанные с nginx
Резюме написано для понимания балансировки нагрузки nginx и обратного прокси, как вы это делаете
Может ли php-fpm проксировать другие порты? кроме 9000 по умолчанию
Какой протокол использует nginx при настройке php-fpm? Есть ли другие соглашения?
自己搭建的vps,负载均衡是通过多个端口实现的,反向代理是代理到apache
可以走其他端口,需要配置ini文件,走的http协议,其它协议,不知道
面试官说可以走tcp协议,比如socket
Посмотрите, использовали ли вы laravel и tp, сравните следующие два фреймворка.
tp是国人写的,理念比较陈旧过时
laravel是现在最火的php框架,开源社区活跃,工具也最多,运用了面向对象的思想和很多设计模式,是值得学习和运用的选择
laravel的源码看过吗?
看过,laravel的container容器,还有ioc控制反转、di依赖注入,通过server provider服务提供者bind绑定实例放入到容器内,
然后通过make解析容器中的某个实例,可以通过facade门面直接静态调用。
面试官说怎么兼容之前的版本,比如像app那样,既发布了新的版本,老版本也需要兼容。
我没做过,我的想法是一通过适配器模式,达到兼容两者的需求,二可以使用dingo/api多版本控制
Ваш план дальнейшего развития, 1 год, 3 года
自由发挥,其实也蛮重要的,往积极方面答总没错,比如深入php、扩展技术栈
разное
Проект в резюме спрашивает, что самое сложное в проекте? Как это решить?
5. Туристическая компания两面
Там так много рутины, этот интервьюер очень иммерсивный
Зачем оставлять
Будь умницей, просто ответь причину ухода, которую ты написал в анкете, не раскрывай секрета, хахаха.
Как выбрать PHP? О текущем популярном сравнении Java?
Просто ответьте мудро здесь, и сравните сценарии использования двух.Например, php подходит для веб-разработки, java имеет множество вариантов, веб и андроид
Есть ли систематическое обучение? Читали ли вы онлайн-курсы и книги по php?
我以为是说我有没有去培训过,我当然说没了
我说的是慕课网的优秀课程和《Modern PHP》《PHP核心技术和最佳实践》《PHP the right way》
Посмотрите, использовали ли вы laravel и tp, сравните следующие два фреймворка.
tp是国人写的,理念比较陈旧过时
laravel是现在最火的php框架,开源社区活跃,工具也最多,运用了面向对象的思想和很多设计模式,是值得学习和运用的选择
laravel的源码看过吗?
看过,laravel的container容器,还有ioc控制反转、di依赖注入,通过server provider服务提供者bind绑定实例放入到容器内,
然后通过make解析容器中的某个实例,可以通过facade门面直接静态调用。
основы php**
php面向对象说下
封装、继承、动态
多态描述下
当时这里说成了重载了,真是扇自己一巴掌,其实多态是一套接口下面的实现类,注入的是接口类,使用的是实现类,从而实现多态
php的类型有哪些
还真的忘了,掌嘴,没说完整,说了array数组、string字符串、object对象、resource资源、NULL
пакет laravel**
dingo/api和jwt-auth是自己搭的吗?有没有遇到坑?
当时项目赶,用的集成的,自己搭也是没问题的
entrust怎么用的?有哪些表?
user用户表、role角色表、perm权限表、role-user用户角色关联表、role-perm角色权限关联表
我们还做了扩展,menu菜单表、menu-perm菜单权限关联表
Ваш план дальнейшего развития, 1 год, 3 года
自由发挥,其实也蛮重要的,往积极方面答总没错,比如深入php、扩展技术栈
Вы можете задать мне два вопроса?
当场黑人问号,为什么是两个问题?
面试官:我想看你的关注点
我说了这边技术团队是怎样的+有没有技术分享+我加入公司将做什么
别问我为什么问了三个,因为我get到了面试官的点,哈哈哈
разное
简历上的项目询问,为什么离职,之前收获了什么,你期待的公司是怎样的etc
为什么说套路呢,不然发现这个面试官所有准备的题都是有针对性的,后面他就指出我的基础不够扎实,并举例说一个基础扎实的人和
一个基础不扎实的人做同一个东西,基础扎实的可能很快就会做完且不会出错,而不扎实的老是需要google且做出的东西会出错,
也不知道哪里错了,因为是拿来主义并没有转为自己的东西。然后指出我没有系统学习过php,因为php容易入门,
但是学会它需要花很大功夫。最后说我的规划还不错,是加分项,哈哈哈。
В-четвертых, резюме интервью
Я встретил 5 компаний и получил 3 предложения.Я чувствую себя довольно хорошо, хахаха. Самое главное - менталитет, подготовка к собеседованию, резюме интервью, качество сна, вода
Написание очень упорядоченное, и многие из них немного подзабыты, ведь за 2 недели я могу вспомнить только осмысленные темы.
Внимательные одноклассники должны это увидетьnoteBookСледующие другие знания, я надеюсь, помогут вам немного.
Послесловие: Если у вас есть какие-либо достижения, пожалуйстадобавить маленькую звездочку, если выигрыша нет, то можновозражение не помогает сообщитьСанлиан