Реальное собеседование на Junior PHP разработчика

Подготовка к собеседованию на PHP Developer

Транскрипция видео:

  • всем привет это канал ариабет меня зовут михаил и мы с вами продолжаем тему собеседование в прошлом видео если вы его еще не смотрели то посмотрите я проходил собеседование на junior php developer а собеседование получилось достаточно лайтовым и я в прошлом видео сказал если вам эта тема понравится если вам понравится прохождении собеседования именно на php шнека то я выложу еще одно которое записала даже раньше но получилось уже классическим стандартном обычные правильные вопросы которые обычно встречаются тем кого со беседуют

    00:00:00 - 00:01:09

  • ну и в общем-то по вашим откликам стало понятно что тема вам это интересно поэтому сегодня достаточно прикольный собес где уже были вопросы по интереснее и и он и по длиннее в целом я надеюсь вам будет интересно немного подытожу за предыдущие собеседование если вы не подписаны на моте телеграм-канал а нужно будет подписаться ссылка также есть в описании я там собственно говоря уведомил ребят которые меня со беседовали что я не приду офис хотя изначально хотел прийти в офис вот их эта тема расстроило к сожалению оффера я

    00:00:34 - 00:01:40

  • так и не получил но как бы мне на следующий день нужно было уже идти я как бы в день и говорит что-то не придешь неправильно поэтому я предупредил за день офером неестественно не дали но они написали что очень жаль жаль что так получается по всей видимости они хотели наверное в самом офисе мне предложить уже может быть даже что-то подписать не знаю давайте вернемся к сегодняшнему интервью она интересна и я надеюсь вы его оцените ставьте лайк если понравится пишите комментарии что об этом думаете я

    00:01:07 - 00:02:07

  • учил некоторые комменты с предыдущего интервью ну а некоторые итоги я подведу еще в конце добавлю что вообще в целом ждет эту рубрику собеседование что будет дальше и так далее приятного просмотра какие технологи используют многие php шторм куча плагинов xt багира работа в unix новой системе используют докер как правило базу разворачиваюсь под докера php 8 плюс если я чем-то занимаюсь своим еще из инструментария можно такого интересного сказать король валет используя это под macos штука для того чтобы можно было легко

    00:01:37 - 00:03:23

  • поднять свой web web host хром postman такие вот стандартные стать этому гиблой да у тебя же есть несколько вариантов как я делаю диплом первый вариант через соседи гитхаба там условно какой-то батник или по правильному сарбаш файл который собственно выполнять ряд инструкций когда там происходит какая то какой то условно action триггер у меня в в нашем проекте как вы просто куплен гид х платный там есть очень много плюшек всяких для работы с этой всей истории вот через соседи соответственно он когда

    00:02:31 - 00:04:04

  • мы там условно в релизную ветку все льем она автоматом уходит на сервак сервак у нас у бунтарски 20 20 версии там соответственно и джинкс fpm дефолтная все вот это история и еще один способ который используя личный адрес своих некоммерческих проектов есть такая штука как ян го и royo это сервис который сделали ребята из лара валв в том числе и тейлор участвовал этой штуки там тепло и очень удобной по кнопке также через которую все сидим с башмаком что уйдет босфоре ну такой сценарий да сам базовый

    00:03:23 - 00:04:43

  • там ничего особенно нет особого нету там есть пара экшена в самом гитхабе 1 action прогоняет тесты если файл это соответственно мы не можем мер жить если все те мы переходим к следующему экшену суть очень простая там же с помощью кредов ты цепляешься к серваку идешь в определенный каталог которые у тебя прописан в ямал файлики это смола ксенон гитхаба по лишь изменение фетиш доставляешь зависимости делаешь миграции готова и уведомление в telegram а успешным диплом хорошо так и давай погиб поговорим с git у тебя

    00:04:05 - 00:05:43

  • такого работа минут сколько работаю с кодом столько собственно и сбитом наверное нормально какие преимущества работы убить и ты видишь вверх как сказал мой старый знакомый гид помнит все если у тебя что-то пошло не так гид это вспомнит и поможет тебе вернуть сама система контроля версий там система веток тегов коммитов все вот это вот совокупности просто позволяет очень здорово структурировать к раскладывают курсировать свой код и так реализующим в том же эту мерз ножки квест pull request и вся сиди тут же который в git лобби

    00:04:57 - 00:06:41

  • конечно покруче но сама технология гита она достаточно такая простая вот если только про нее говорить да то в целом совокупность кометы и все что там вместе с этим скажи знаешь чем разница между помню вечер fitch он просто собирает информацию с удаленного репозитория какие там кометы новые появились еще в целом всю новую инфу который еще локально как бы не известно он ее собирает и непосредственно все вот эти коммиты сохраняет тебе локально на в твой репозитории ты можешь как бы не фича вообще весь код просто посмотреть это то

    00:05:49 - 00:07:24

  • что там в целом то произошло изменилось какие навыками ты появились a pool он как бы тебя не спрашивает он просто берет весь код като это много и скопился у тебя в репозитории и пытается его можно так сказать перри мигрировать с удаленного репозитория уже на твой в такой ситуации могут возникнуть конфликты если есть какие-то конфликтующие файлы но в целом основная разница именно вот в этом разница между мерч или бальзам мерз это непосредственно слив твоих твоих допустим не знают новых строк кода в какую-то

    00:06:42 - 00:07:58

  • следующую ветку либо из это непосредственно перебазирование твои текущие ветки от основной то есть условный условная подтяжка там изменения основной ветки для того чтобы ты если работаешь со своей задачей то ты мог просто обновить основной код всего-то его приложения вот какой-то ветки и как бы работать точно с актуальным кодом поймешь это уже непосредственно вливание чего-то это другую ветку нового года принципиальна разница ну наверное то что прибей сон в принципе перезаписывает как бы комменты когда мы релизимся ну

    00:07:28 - 00:08:53

  • следовательно у него история получается достаточно такая чистая а вот когда мы вершим что-то культа ветку другую там как раз таки он пытается коммиты объединить между собой вот тем самым история двух веток именно историками тоф она загрязняется хорошо давай про корпус с composer он хорошо знаком ну кроме реклама и дарит ему на brick ваш соответственно там подтягивает какую-то либо высоко чисто чем обоза джейсон этот composer блок отличается позе prison это просто набор набор библиотек конфигурации of the laughter запуск

    00:08:16 - 00:09:53

  • скрипта скриптов и так далее а лог джейсон это точнее composer лак это непосредствен но слепок тех зависимости которые ты установил чтобы потом не как будто красиво сформулировать в общем блокируется набор зависимости твоих и соответственно как бы подразумевается что именно они будут устанавливаться они этом нового поколения пакет скажи в composer джейсон есть сердца recover и рик варды что это объясниться рекламирует набор библиотек которые будут которые предназначаются непосредственно для работы самого

    00:09:08 - 00:10:46

  • приложения как в праге если так можно выразиться отдав это как правило набор ких талиб там не знаю там есть лапок dd какой-нибудь для дебаггинга чтобы время разработки этими пакетами пользуются или например и доехал пир какой то вот это вот идет все в секцию давала по все остальное от непосредственно набор компонентов сумму приложение которое потом работает как установить установить или не установить д фото флаг минус d либо интернете родив помогу не помню минус d точно ахирате родив не уверен что делать устанавливать пакет в секцию

    00:09:59 - 00:11:26

  • рекордер а при разворачиваешь ну когда вот если мы прямо на пруд хотим выкатить то в таком случае не устанавливаются зависимости из d в секции устанавливается только реклайнер секция и для этого использует флаг на у дев таком случае он становить только те пакеты которые вы секции рекламе лиц а скажи как настроить раз паломническая будешь да есть секция 2 там указываем спецификацию самое сейчас у нас топовая но самое правильное tps r4 соответственно там самая база это указать базовый namespace указать папку

    00:10:43 - 00:12:21

  • с которой он будет работать composer дам по 2 тыс для оптимизации можно флакон поставить и соответственно у тебя будет готов of the laughter в index.php рик варишь of the law ты все пожалуйста работает по кличке продолжил чем абстрактный класс отвечать интерфейсом вообще я не вообще не понять не понимаю как то люди вообще сравнивают интерфейсы абстрактный класс потому что это фундаментально разные штуки интерфейс это типа контракта для класса который просто описывает набор публичных методов которые у тебя должны быть

    00:11:34 - 00:12:47

  • реализованы и вот эти контракты они как простые как раз таки являются как бы описанием тех методов которые тебе нужно реализовать и им плевать нам на это на саму реализацию просто есть набор методов а ты можешь наклепать два разных сервисах которые там по кодовой базе совершенно разные ты можешь к какому-то этому интерфейсу ну короче я будет 2 реализации одного интерфейса но разные абстрактный же класс это класс который может в отличие от интерфейса держать какую-то короче код в саму реализацию и при этом

    00:12:13 - 00:13:28

  • обязывает тебя выполнить еще дополнительные методы которые тебе для для работы нужны там банальный пример у тебя есть какой-то метод который хочет там из базы данных что-то точнее абстрактный класс который хочет что-то из базы данных ты над него наследуешь и там есть абстрактный метод который требует у тебя реализацию не знаю метода get the apple id и соответственно все этот метод реализуешь делаешь ритер название таблицы и вот у тебя весь функционал в абстрактном классе но при этом ты ещё дополнил обязательным методом который

    00:12:51 - 00:14:08

  • говорит о какая таблицу так будет и дальше ты уже как бы используя свой класс который дочерние ты можешь использовать юзать все реализации абстрактный класс а что такое trade a trade это фактически такой компонент который может очень похож на класс но trade и как правило используют для обхода проблемы в п имена в php это отсутствием множественного наследования по сути ты можешь подключить несколько trade of для того чтобы у тебя как расширить функциональность своего класса то есть это просто набор коробочки с и

    00:13:29 - 00:14:58

  • каким-то дополнительным функционалом они очень похожи на классы у них есть также все типы методов есть свойства вот но нужно не пренебрегать такой штукой как зависимость trade а от главного kumho со чтобы он вообще абстрагировался от того что есть в том классе в котором ты его используешь там не тянул например данные из какого-то свойства с того класса вот что делать если ул trade of есть один и тот же метод тем же названием но я синтаксис точно не помню но [музыка] можно короче там сделать так называемые

    00:14:13 - 00:15:47

  • алисы чтобы этого конфликта не было но это как то делается примерно в том месте где то треть подключаешь продает синтаксис не помню но есть там такая возможность ok какие магические методы у вас это значит конструктор и деструктор get set pool hall static как применяют обычно канунникова деструктора великий сэр пол для чего уж ну например да вот например кол это непосредственно метод который магический метод как в которой который будет вызываться как метод у объекта то есть не как статический метод и как бы

    00:15:03 - 00:16:36

  • фактически когда ты вызываешь у объекта какой-то метод [музыка] несуществующей и если у тебя есть реализация метода кому-то ты соответственно для этого так называемого анонимного метода которого по факту не существуешь можем послушать не существует можешь написать реализацию в кол и он соответственно все выполнить при этом там очень удобно что имеешь на звание самого метода аргументы ну и манипулировать этим как вот школ static то же самое только статический метод сет роген это почти по сути тоже самое только для

    00:16:06 - 00:17:21

  • свойств как сделать так чтобы сессии но на печке чтобы сесть и не хранились файле это в другом месте базе еще лето ну если мы допустим хотим не знаю сессии контролировать через базу точнее их туда сохранять то вообще в php у сессии есть как вы встроенный механизм который позволяет тебе это делать там по моему есть функцию который называется сейшен set sail хендлер она принимает несколько callback функции точнее название этих функций вроде в качестве строки или просто можно глубоко отправить и вот эти

    00:16:43 - 00:18:07

  • как раз таки голубики там какие-то на открытии сессии на закрытие ты можешь по сути переназначить дефолтные то есть и эти у тебя уже твои собственные они будут посредстве на там есть я надо работать база если надо хранить файл это в проекте в общем примерно таким способом можно именно за счет за подмены обработчиков изменить механизм работают сессия хпк [музыка] раньше между сел и здесь азиз так если сильно абстрактно говорить это контекст как бы не не этих не статических методов свойств не константа именно

    00:17:29 - 00:19:06

  • контекст для работы обычных методов объекта стелс это обращение к статике константам [музыка] ну вот так профессор слышал ну вообще пср можно немного истории наверное вспомнить я сейчас такая группа разработчиков которые называются печь пофиг и они туда она была основана там рядом разработчиков в десятом или в девятом году и они в один момент решили что для php нужны какие-то стандарты там стандарты того же of the laughter того как писать код стандарты как делать правильно логирование в приложениях

    00:18:19 - 00:20:09

  • кэширование так далее то есть это по сути пср это такой набор правил которые которых желательно придерживаться именно в контексте работы с php вот например что мы сегодня уже затрагивали тот же of the laughter правильный ну то есть текущий стандарт правильно это ps4 например для лакирования есть стандарт пср 3 по моему вот и стандарты эти периодически меняются то есть там для namespace инга полного существовал пср 0у час у нас актуальный ps4 так вот для других тоже спецификации опять же насколько мне известно постоянно

    00:19:20 - 00:21:06

  • происходит какие то конфликты внутри там самого печки фиг какие-то там группы из этой группы разработчики выходят например по моему symfony вышли вот ну в общем как то так так поиски и есть кто-то другой потом zaxar ну вообще транзакции это по сути набор каких-то операций которые мы можем также по сути выполнить к базе поработать с данными единственная вообще транзакции они как бы работают по принципу все или ничего и тут именно суть в том что если что-то пойдет не так внезапно то мы либо откатимся к

    00:20:14 - 00:21:56

  • изначальному состоянию то есть они вот позволяют тем самым по сути сохранить данные потенциальные которые могут может мы можем потерять в ходе этих операций либо все-таки завершить все до конца вот случае если что-то идет не так транзакций позволяет откатиться вот это наверное основная суть именно транзакции используются нужны агрегатная функция слышал да то есть в майский ну в принципе успели есть как бы ряд функций которые позволяют тебе выполнить какие то какие то операции на основе тех данных

    00:21:10 - 00:22:34

  • которые ты например селектив есть например функция в говорит она позволяет там узнать среднее значение или там функций аккаунт при позволяет узнать количество там в принципе строк функция там сумма на может посчитать те сумму в поле в каком то это и есть агрегатные функции хорошо что такое первичный ключ ваш первичный ключ до главный ключ соответственно записи в самой таблички как правило он авто инкрементируем эй как правило это идиш ник это первичный ключ помощи неё потом протягиваются можно протягивать

    00:21:52 - 00:23:26

  • отношения к вторичным ключ то внешние ключи то что внешне ключ это как раз таки тот ключ который тянется к первичным ключом то есть связь или блюда что-то не так а может ли таблица не иметь первичного ключа да конечно так что такое какие есть типы объединения таблица для объединения таблиц используется оператор джан вот он есть как бы по сути есть три основных типа и the inner join он отличается внутренние по сути объединение таблиц ну вообще в целом join и это как бы оператор который позволяет тебе там

    00:22:41 - 00:24:21

  • сравнить условно два поля в двух разных таблицах и дать тебе какой то результирующий по сути запрос ответ в общем так вот есть и на join внутренние объединение есть ли джон это внешнее объединение он тоже есть свои тонкости как бы не помню как это правильно назвать в общем есть еще раньше честно говоря что из головы вылетело поджаренном хорошо а дальше будем по протоколу http и https что если нашли тебе запрос ну сам по себе протокол http это отправка ну изначально сам по себе протокол http подразумевал отправку

    00:23:43 - 00:25:15

  • какого-то там html а потом стали но это общение между клиентом и соответственно сервером у нас есть пакеты которые ходят туда которые нам что-то от возвращают вот изначально это было что я как правило возвращался к это html по пакету потом придумали разные интересный формат и cheerson xml прочее соответственно теперь они нам возвращаются и мы можем с ними работать ну а так если фундаментально это протокол который позволяет отправить пакет на серве получить ответственно я могу сразу проверялись о а сам запросы

    00:24:35 - 00:25:51

  • стоит когда ты там по сумке нажимаешь что уходит на сервер уходит пакет в пакете кучу компонентов типа заголовки тело крика есть метод о которых не так много строка запроса куда выходят а ну да естественно сам урал и гибким запроса get и post да и то есть request метод типов у нас несколько могу перечислить основные tagged posts какой синтаксис курс заголовка знаешь у ключ-значение я прям нет какое значение имеется не [музыка] имели значения регистров заголовка знаешь ну вообще нет там приходит всегда

    00:25:13 - 00:26:56

  • в общем ключ этого по сути заголовком он всегда каждое его слово она с большой буквы начинается даже если ты его нарочно отправил на имена с маленькой буквы tante всегда придет к условно кому кейсом чем как разделяется как браузер понимают что завело мы закончились даже идет тела он это понимает пустой строке по сути так сам ответ из чего состоит из не заказ ответа если запрос это тип запроса версия адрес заголовок тело ответ заголовки ответа тело ответа на 400 ну да вот ответ это же ответа текст

    00:26:19 - 00:28:24

  • ответа какие группы кодов ответ на знаешь я не помню что означают означает код который начинается с единицы 200 это успешные 300 это связанная по уму с редиректом 400 проблемы на клиенте 500 проблемы на сервере чем 100 заголовки как браузер понимать что ему нужно перейти куда-то и кунал , реки для этого есть заголовок locations зачем http первой версии 2 версии знаешь вообще http второго поколения ну как бы его продвигал google этом основная проблема была в том что лютые нагрузки и их нужно было каким то образом решать для этого

    00:27:28 - 00:29:19

  • собственно и придумывался 2 протокол http 2 там немного другая в принципе схема вместо обычного пакета там по сути есть потоки и вот эти потоки как раз таки состоят из так называемых фреймов и вот уже в это в эти фреймы это и есть те же заголовки и так далее и тому подобное вот прикол в том что там потоков этих может быть несколько вот и по сути ты можешь их закрывать открывать то есть работать сразу в несколько потоков тем самым скажем так производительность лучше то есть высокий нагрузки будешь лучше

    00:28:36 - 00:30:11

  • [музыка] выдерживать расскажи ты теста писал на проект какие тельства на всякие проекта ну в основном the unit тесты и интеграционные июне тестами покрывало обычную там логику условно не знаю по формуле что-то считается покрывал несколькими кейсами unit тестов но интеграционными тестами покрывал все правила запросы к серверу учет дает топи как он все ведет такой ситуации и так далее и так далее что произойдет если помните данные отправим вернёт ли он тушек сном так громкости хорошо долларов или пару вопросов

    00:29:25 - 00:31:08

  • что-то помидор вал иначе уже metal war это по сути некоторая прослоечка между вызовом когда у нас за выполняется запрос какое-то условным и это отловили сначала отрабатывает этот медовый и dvr может выступает опять же прямом смысле как посредник который может проверить некоторые услугу условия самый банальный громко если авторизация или например не знаю проверить был ли передан тот или иной заголовок который очень важен там какой-то подписью пример ну как правило посредников используют именно для защиты и он не дает если

    00:30:25 - 00:31:55

  • что-то по его условиям не работает просто дойти до полного даже самого request не говорю про метод контроля смотри что происходит если приложение выбрасывается исключения как даже вид обработка есть файлик хэндл хендлер который есть в папке exceptions и ну там есть своя прекрасной обертка которая смотрит что выпал exception-ы тебе возвращает красиво html если хочешь в конце ли ты можешь обработать любой exception или наоборот его игнорировать если тебе это нужно ну вот так там ничего такого хитрого нет

    00:31:16 - 00:32:36

  • приложение просто поверх она видит что там выпадает выше отлавливают есть вопросик слону этот технического характера то есть по стыку делаем проекты которые он едет мучителя у меня не то чтобы по за какие-то технические вопросы у меня скорее есть пара вопросов как у вас во первых сколько человек в потенциальной команде если я куда-то попаду во вторых если дейлики как вы грубите все тоски если у вас работать или паском и если спринт и если спринт review там что вы делаете если на выходных упал вот кто вы есть дежурные хирурги

    00:31:58 - 00:33:35

  • побольше мой большей части такого характера меня интересует команду ко мне если какие-то большого requires прошиваются и 2 средние что делать весной входных обычно дежурно у нас нету мы выходные не работаем он же просто пишет кому-то скважина может подключиться там посмотреть исправить кстати появилась пару вопросов извините что перебиваю наверное не поважнее будут что вы используете в качестве какой обертка на бетон то есть это гид лапки трап и bucket что как у вас работают приложение ну имена

    00:32:51 - 00:34:40

  • уже на серваке как происходит тепло и есть там тем сити octopus или как у меня nvr чё-нибудь такое [музыка] может быть прослушала давайте сначала да эти вопросы то есть побольше польши по технической части у нас гель папство развернуты есть также используем все сиди но тоже отправится зависит это просто pitbull это аналог это где был убит пол и соседи на самой машине проекта развернуты как просто джинкс база смотри у нас есть свой администратор который ты ему говорит что можно там установить ну точнее инглиш на про нужен

    00:33:49 - 00:35:33

  • там печкой такой так база такая уже сам буду girl ставить докер то есть я понял о вас тачка одна или несколько и они у вас как арендованы физически мысли это а также это для каждого проекта свой у нас есть одна он на котором мы создаем обожает у меня каждый каждый проект если у вас какой то не знаю агрегатор который собирает собирает там транзакции сколько ушло запросов потому что типа для профилирования всего проекта например сентри который там мы в том числе какой где вы смотрите ошибки если что-то упал

    00:34:44 - 00:36:09

  • центре мы недавно что использует одном проекте но мы пока не анализирую он нагрузки что то есть это то что то говорим о и конкретно под каждый проект если надо делаем но во время разработки я понял таки еще мелки вопрос тоски возведет рэп игра на уши у нас общайтесь вы где флаке telegram telegram понял спасибо наверное у меня больше вопросов нет только про командующих слушать ну в общем то каким то таким получился собес как видите здесь вопросы были поинтереснее посложнее в некоторых моментах что-то на мой взгляд некоторые вопросы

    00:35:31 - 00:36:56

  • были лишними и странными но тем не менее то что было то было что я хочу сказать я хочу сказать что на самом деле у меня больше нет материала по собеседованиям и самое стрёмное что мне никто не пишет из компании я конечно могу сам ходить откликаться но мне этого делать не хочется поэтому какой-то стабильной эту рубрику я сделать к сожалению не могу я постараюсь каким-то образом еще записать несколько со бесов но тут не все от меня зависит ну и сильно активничать его там на самих площадках где я выставляю свое

    00:36:39 - 00:37:42

  • резюме мне не очень хочется да и времени не так уж много на это есть поэтому если мне напишет компания какая-то и позовет на интервью я обязательно пойду и соответственно его за для вас запишу но пока это все что у меня есть давайте вместе будем надеяться что кто то все все-таки мне наконец то напишите пригласить на текста без надеюсь вам было интересно подписывайтесь на все соц сетки которые есть в описании это очень важно мало ли что случится ну а я с вами прощаюсь пишите коменты что вы об этом

    00:37:11 - 00:38:09

  • думаете я их стараюсь все читать принципе их не так много и стараюсь учитывать то что вы предлагаете пишите и так далее и так далее пока пока

    00:37:40 - 00:38:01

Менторы

Специалисты своей области, которые смогут помочь вам

  • Нигма Нурия
    Нигма Нурия

    Middle .Net Developer

  • Сущенко Татьяна
    Сущенко Татьяна

    Senior Product Manager

  • Гудков Денис
    Гудков Денис

    Middle Python Developer

  • Курочкин Константин
    Курочкин Константин

    Ведущий программист

  • Гудман Макс
    Гудман Макс

    Backend Software Engineer (PHP)

  • Гребенкин Антон
    Гребенкин Антон

    Senior .NET/C# developer

  • Ахназаров Фёдор
    Ахназаров Фёдор

    Middle DevOps Engineer | Tbilisi, Georgia

  • Шорохов Дмитрий
    Шорохов Дмитрий

    Middle C# .NET

  • Жуков Александр
    Жуков Александр

    Senior PHP-разработчик

  • Мазикин Павел
    Мазикин Павел

    Middle python developer

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru