Подготовка к собеседованию на PHP Developer
Менторы
Специалисты своей области, которые смогут помочь вам
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
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
ну давайте начнем я вкратце расскажу про компанию анашу чем мы занимаемся но мы являемся платежным агрегатором то есть занимаемся процессингом платежей в основном наши клиенты это магазины интернет магазины которые продают свои товары через интернет и вот случае если им нужно у себя на сайте добавить возможностью онлайн оплаты они обращаются к платежным агрегатором коим m7 почему они не могут обратиться напрямую в банк или там еще на конкретной платежной системе это бывает не всегда возможно потому что
00:00:01 - 00:01:27
например многие банки выставляют свои требования по обороту какие-то требования к организации могут быть то есть магазин не всегда может просто попасть банк вот плюс к тому плюс еще к этому то что так как мы партнерстве со многими банками и у нас много наших клиентов мы бывает можем предоставить больше оборот банк и за счет этого как-то понизить как-то ставки то есть иногда даже магазины может быть выгоднее работать с нами именно по ставкам ну плюс к этому если магазин захочет принимать оплату не только оплату картами но может быть
00:00:44 - 00:02:16
счетом яндекс деньги еще оплата через sms то если бы он это делать самостоятельно ему приходилось бы заходить каждую в каждую платежную систему отдельно реализовывать их api обычным разные подписывать договора различные с разными этими улицами с компаниями в общем это может быть немного сложно особенно если там какой небольшой магазину готовый у которого своих разработчиков не так много вот мы управляем мы единый опять который магазин должен реализовать вот ну а дальше уже как помогаем при интеграции с договорами
00:01:31 - 00:02:55
и в общем мы облегчаем жизнь может так сказать вот это вкратце чем мы занимаемся но по технологическому стек у нас используется печь из 7 версии на данный момент это 72 обновляться ну не знаю пока не планировали до 70 в этом году наверное это будет ну думаю да в этом году до 74 будем обновляться базы данных у нас мария db тоже одна из последних версий точно я сейчас не помню как особую не акцентирует внимание вот у нас много старого кода есть потому система писалось там начиная не знаю комнат 2009
00:02:12 - 00:03:39
года что ли там даже еще какое-то время помню когда я пришел местами куски коды на печке 4 которые были написаны из мы гуляли какое-то время вот самописный движок там используется самописный шаблонизатор старом коде но по мере возможности мы старый кот переписываем уже с используем это более новых средств в данном случае мы добавили проект поддержку и 2 то есть и может его возможностями ну и новый код мы стараемся писать уже более менее нормальном виде то есть но с используем едва то есть уже и
00:02:56 - 00:04:26
контроллеры илюхи вот в целом у нас основном backend разработка потому что нас но бизнес нацелен больше би ту би то есть мы работаем с бизнесом и как-то именно какие-то интерфейсы нам такие красивые особо не нужны нас админка для клиентов вот ну какие-то вещи мы понятно дело сами делаем небольшие там и верстку немного либо скрипты на java script ну если верстка в основном это коде bootstrap то есть попроще java script но по-быстрому что-то там либо на чистом же ясную нас в самом же клэри используется то есть основном и
00:03:39 - 00:04:57
такие простые вещи если что-то сложное нам бывают надо сделать мы просто отдаем на аутсорс бы сами особо с random не занимаем 100 вот таких вещей которые так сложно сделать один вот но это как бы вкратце наверно так вот вопросы пока есть у вас какие-нибудь ну и 2 лет и понимаем вторая вещь вода нам 213 какая-то версия ну окей да по стыку я понял ну давайте тогда расскажите про вас немного легче алис на последнем месте работы да смотрите значит проработал ли где-то там почти два года и команда у нас было где-то человек
00:04:20 - 00:06:09
десять в целом ну в смысле вся компания человек десять команда где-то обычно на один проект по 3 разработчика 23 иногда 4 плюс отдельно верстальщик отдельно дизайнер значит работал я фактически full stack разработчикам то есть ее front & back делал универсал правда никогда потому что он был отдельный человек и дизайном не занимался но как бы bootstrap быстро помогу пользоваться скажет значит могу значит простых шас рассказать или именно по про проекты то есть в чем была суть он был смысл проектов ну расскажите чем был смысл
00:05:13 - 00:07:02
проект проект об и на каком языке реализован да хорошо значит у нас в основном было три основных проекта скажем так на котором которыми мы дольше всего занимались первый проект это был в интернет магазин значит лондонский интернет магазин где продавалась сантехника вот он у нас был на symfony третьим и на фронте я тут же с вот значит потом ну это было монолитное приложение значит второй проект это если вкратце такая сложная довольно система если вкратце то это как uber для сантехников то есть у сантехников есть
00:06:09 - 00:07:48
мобильное приложение они ездят тоже по лондону то есть они там как-то аффилированные вот с этим были магазинам как раз со техники ездя по лондону с приложу хай и как бы тоже есть проложу х есть фронт есть бег на фронте соответственно кто работает на фронте работают люди которые коллаген ты так называемые которые звонки принимают вот-вот каста миров и перенаправляют их соответственно этим сантехником вот и я тоже приложу хуя не делал я делал веб фронт и ибо активов на баке у нас был sinfonie 4 и на фронте
00:06:59 - 00:08:26
react react и третий проект это не большая социальная сеть украинская вот значит но там нам достался уже пол написанный проекта если первые два мы с нуля писали эту третий был наполовину сделан и там у нас был воробей на веки и на фронте react это же very dax вот такой вот так я бы я где-то примерно на 50 на 50 на самом деле занимался фронтам и бэг-энда но как бы это скорее из-за потребности причем из-за того что мне именно нравилось так разделять свою занятость мне всегда больше нравилось заниматься именно бэндом то
00:07:41 - 00:09:13
есть вот о п как бы паттерн и и все такое вот ну что ещё могу сказать по стыку все у нас было старались написать тест и там допустим вот последний проект социальную сеть мы делали под т.д. то есть сначала тесты потом функционал ну юнит-тесты делали-делали еще функциональные тесты которые типа запрос отправила посмотрел как бы что что пришло какой какой джейсон вернулся вот там бесед использовали для этого дела ну интегрировал разные там системы типа google google геолокация там firebase у нас был потому что еще этот microsoft
00:08:27 - 00:10:41
это поисковая система их bing типо грибы рекламки интегрировал ну вот все что сейчас вспоминается а вот первые два проекта вы прямо там участвовали с нуля до в разработке нет не совсем то есть я пришел компанию когда уже уже скажем так наполовину эти проекты были сделан а вот а второй проект ну тоже какой-то до новый нектар и третий тоже какой-то относительно новый был ну да он был на самом деле новый в том смысле что его буквально вот вы наполовину написали и там случилось в общем предыдущий исполнитель куда-то
00:09:36 - 00:11:18
делся вот down он был новый то есть стек как бы был там новенький я просто к тому то что как бы но приходилось ли вам работать не зря годом я понял хорошо да действительно был был один проектная но я на нем провел мало времени то есть это там было legacy довольно страшненькая то есть данном пички 4.5 я там по разбирался но этот проект у нас что-то с ним случилось в общем мы за него браться не стали яд я там в подробности подробности не знаю почему то проект у нас отпал слева себе поработал с таким прямо ну там legacy
00:10:27 - 00:11:55
тонн вот как раз 2008 год я там в комментариях было написано что там вот это это я делал 2008 году например но это было недолго но понятно у нас в принципе да тоже есть как много legacy кода такого не очень хорош на счет тестов кстати вот вы упомянули вот именно те виде у вас прямо получилось да вот просто иногда некоторые ну подразумевают под тебе-то что это просто если пишешь тесты в начале как бы до кода как будто идти диди хотя на самом деле не совсем так это все таки вот у вас как больше получалось это просто как
00:11:13 - 00:12:32
все-таки просто тесты до написания кода были в вашем случае элитами именно тебе то что когда от вас описанные тесты как бы ведут к не знаю архитектуре какому-то какого-то кода там который потом написано то есть именно то что код который вы пишите прямо может сказать как бы исходит из теста но тут смотрите я бы так сказал что вот туда мы писали сначала тесты потом код но вот сам этот подход он в нашем случае мы старались все делать именно с применением каких-то архитектурных патронов и соответственно ну конечно
00:11:52 - 00:13:19
если ты пишешь тест который у тебя там условно говоря в какую-то фишку отправляется да то ты же не хочешь в тесте чтобы чтобы твой тест куда-то шел обращался к печке соответственно ну и архитектурно получается так что ты в том месте где ты используешь эту описку должен использовать не не какой-то конкретный класс да а какой-нибудь интерфейс вот ну и и в общем так везде то есть везде где можно значит зависим не от конкретного класса а вот абстрактного вот какой-то абстракции то есть в этом смысле как бы тесты нам
00:12:36 - 00:13:51
таким образом помогали и архитектуру делать ну как бы правильно но это уже большим версия зависимости нами самый сами тесты не получались здоровенными ну скажем так в основном у нас были тесты вот функциональной то есть сделали запрос как бы мы знаем что понятно там как какие то какие то текстуры да потом запрос и мы знаем что нам должно вернуться и соответственно мы делаем просто сравниваем когда джейсон который нам вернулся с тем что мы должны были увидеть то есть за счет этого тесты ну они были
00:13:13 - 00:14:44
довольны эффективными и они небольшие они были небольшими то есть легко поддерживать легко писать но у нас теста в принципе тоже как бы но мы покрыли систему ну такой можешь сказать можно сказать полностью покрыли функциональными тестами но с помощью конце пшено то есть там просто пробегается по админке пробегают скиту формочкам и ермолино да я скорее приемочный точнее тесты будет живот она написана conception там раз в час на сервер на удаленном запускаются с точки зрения июня теста дома тоже как бы к этому пришли в итоге
00:13:58 - 00:15:25
весь код конечно мы не покрывали но вот если что-то переписываем старом коде по возможности пишем uni-t стальное новый код который пишем тоже пишем спальню не тестов я не могу сказать что у нас примате диди получается ну в том смысле в котором как бы я это понимаю но это больше похоже на тест first когда вот сначала кожи пишете тест потом уже код пишется вот так но это как бы такое мнение субъективное бывает по-разному трактуют люди да кстати я еще хотел сказать я там вакансии увидел т.д. вот тоже попробовали пробовали мы ддт
00:14:42 - 00:16:19
заниматься один проект такой небольшой сделали вот как бы мне мне интересно а вот как вы тоже как ддт пытаетесь на мы тоже я бы не сказала что у нас как бы прям все па-де-де написано ему архитектура в тоже много старого кода вы не могу сказать что мы прямо хорошо в этом разбираемся но мы стараемся в этом разобраться и уже вот когда пишем новый код стараемся него описать в соответствии видите вот продумать архитектуру так вот это в принципе написано книги у эванс и так далее ну скажем так честно
00:15:30 - 00:17:10
мне возможно это это был не очень большой проект то есть это был это был такой агрегатор этих вакансий на от варки и значит как бы фронт в виде телеграм бота и санта с extension of throne of skin и ну он в общем там смысл в том что был чтобы люди платили за за нас или за наш сервис а мы parcel и вот то что там на паркет происходит и отдавали им vacancies которых они заинтересованы то есть проект был небольшой и это был overhead по факту но как бы было интересно очень попробовать скажем так старались все делаете до по
00:16:21 - 00:18:19
как бы по книжкам noise получилось им на полностью книжках написано или по куб проблемы были все таки да ну конечно то есть скажем тогда получилось но потом со временем когда этот проект нужно было поддерживать мы иногда как бы уже начинали жертвовать жертвовать принципами какими-то и там какие-нибудь зависимости там просверливать скажем которые не не совсем книжные архитектуре ну вот events я книжку не читал я смотрел его выступления но книжку пока не что я читал книжку пдд php и и детей . она 2017 года он авторы сложно
00:17:19 - 00:19:12
произносимые ну хорошая книжка мне понравилось а патти диди кент бек а не смотрели когда практиковали нет потерять это же вот книжку именно я не читал понятно а вот вы говорили то что вы ну старайтесь использовать паттерна и далее может там по паттернам каким-то по проектированию может быть какие то еще книжку ну да банда 4 значит это по паттернам у он все прочитали больших справочник нет нет именно вот это очень крутая книжку чп она вела себя полностью прочел два раза номер первый раз просто на русском
00:18:19 - 00:20:02
языке потом в оригинале и тоже прикольно было вот потом по паттернам ну еще там именно книжка а мэтт завтра вот и вспомнил автор тоже что-то аптечки помимо на как ты так называется и там тоже про потами но не так круто как банде 4 удается знают книгу проект был убит мы пытались заниматься этим но у нас у нас как-то не пошло в честно говоря каждый реализовал свою задачу выложил она работает и как бы ну да то есть именно вот какой-то рутины типа каждый раз перед перед камином да перед ом пури квестом да посмотреть на то что там твой
00:19:12 - 00:21:25
сосед написал нет такого не по просто иногда но обсуждали код друг друга но не так чтобы это было поставлено на поток ну понятно какие то вообще в принципе может быть были как сказать ну там условно говоря что обязательно там следовать solid всем принципам или что такое что вы где-то там нарушена чтобы узнать вот тут надо переделать приписать чтобы вот соответствовал ну дак что мы старались как бы каждый из нас знал про solid и мы старались друг другу помогать в этом смысле на сто лет вообще хорошо разбираетесь принципах соль часто
00:20:17 - 00:22:05
приходится как то ну скажем так значит в принципе ну я помню каждый из них и стараюсь их как бы старайся них не забывать когда во время разработки и скинч ну вот кстати по базам могу рассказать то есть у вас такая очень значит у нас был сначала потом мы стали переходить на puzzles перехода было ну изначально в какой-то момент значит нам вот в этом в в проекте который магазин там у нас был ну поиск товаров и поиск у нас производился этом с помощью elastic search а то есть вот такой типа умный поиск и защитных какой-то момент
00:21:10 - 00:23:09
захотели от него избавиться пожить как у без него и мы самые старые смотреть как бы ну то есть нам потребовался полнотекстовый поиск а полнотекстовый поиск ну в общем мы взяли по сгрызть за полнотекстового поиска при этом мы на самом деле не знаю что в 5 6 версии но и сферы появился полнотекстовый поиск в движке и на гибель то есть мы как бы знали что его нет ну и вы действительно не было до версии 5 6 он был только в движке май сам а у нас был и на тебе соответственно вот ну потом мы выяснили что этот полнитель
00:22:22 - 00:23:45
свой пояс все-таки был уже 5 6 который у нас стоял но мы тогда взяли postgres поэтому в принципе там полнотекстовый поиск работает получше честно говоря чем даже вот эти шесть была такая вот причина была изначально ну и плюс там более строгий синтаксис как бы которой тебе не дает напортачить как с моей спилен хотя опять таки там тоже чем чем чем выше версиям москве лет тем строже там настройки дефолтные и типа тем тяжелее тебе там кто-нибудь просто написать очень кривой он просто работать не будет ну и просто
00:23:03 - 00:24:36
там по грязи много фич ну как бы которые в подгрести уже довольно старых версий много фич которые внедряются в москве только вот 8 версии бы мы не то чтобы мы очень-очень много использовали этих фич но как бы хорошо что они есть свернут и вообще в плане запросов то есть вы пользовались как сыр и запрос соли что у нас там symfony он там обычно с ним использует доктрину этого рынка да и большая часть у нас работает через орем ну и плюс так или иначе да где то приходилось писать и сыр или запрос в том числе
00:23:48 - 00:25:40
то есть на можете писать да и до какой-то момент я занимался именно оптимизации запросов то есть была проблема в какой-то момент системы начала работать медленно были сложные запросы и вот я занимался их оптимизации в частности поставлял индексы где их не было убирал там деле не нужны и ну и просто немножко менял схему схемы базы данных как бы ну то есть чтобы там не было огромного количества join of там где они ну как бы не очень понятно александр есть у вас еще вопрос ну наверно принципе вадим вы конечно неплохо все
00:24:40 - 00:26:25
рассказали диснеем может быть что я ещё забыл сказать то что у нас команда сейчас в офисе у нас два человека работают вот мы как бы я александр вирус у нас разработчику ехал путешествия вот но он удаленно работает принципе мы ищем в офис еще одного и наверное потом еще одного то есть хотя бы вот набрать чтобы вот спасибо человека четыре чтобы более-менее как-то работать но у нас было до этого и 4 тоже потом как-то там кто-то кто куда ушел вот поэтому сейчас у нас пока только два человека поэтому мы ищем пополнение так
00:25:41 - 00:27:13
это вот то что я забыл сказать ну наверное может быть у вас еще какие-то вопросы есть вот вас два человека как бы в команде компания вообще большая компания да у нас компания later он называется сама компания небольшая у нас всего сотрудников ну которые вот вовсе около 20 человек но мы входим 2017 году нас мы вошли входник webmoney вот то есть мы как бы по факту принадлежим webmoney можно сказать но пока держимся как бы достаточно независимо от них и поэтому он упомянул им они это большая организация тоже уже вот
00:26:27 - 00:28:00
там множество сотрудников но мы пока держит так относительно независимо вот ну поэтому я всегда считаю что нас небольшая такая дружный коллектив около 20 человек ну мы то что мы находимся под в обмане иногда позволяет нам получать какой-то от них там грн поддержку то же и в плане там бизнес в том числе то есть тоже вами по возможности старается нам как-то помочь здесь тоже какие-то моменты связаны например и вот мы работаем там с каким-то магазинами с банками и то есть мы например работаем с теми же самим
00:27:13 - 00:28:35
аниме аниме как с платёжной системы у нас там используется скажем так и другие какие-то организации германии с нами сотрудничают что позволяет нам . [музыка] поддержку на дает бизнес наши внутренние процессы они завязаны чем 20 в целом за счет аж минут в холдинге получается как бы больше людей иногда приходится общаться с таким коллегами обмане тоже каким-то вопросам таким но это уже больше такие организационные можно нас в каком смысле рассматривать как и какая какой-то отдел каком-то смысле а но такое достаточно независимой
00:27:54 - 00:29:39
отделочники зависимое дел а вот по еще вот по самому проекту как бы по работе там в принципе ну какое соотношение как бы поддержка и там новые фичи да то есть в основном поддержка и это кпд на самом деле бывает по разному то есть безусловно поддержка присутствует она бывает какими-то волнами иногда какими-то не знаю появляются какие-то баги или вопросы но конкретно такой процент я не могу назвать но из того что из новых фич как бы задач тоже хватает у нас часто можно сказать постоянно какие-то происходят
00:28:54 - 00:30:21
интеграции к новым платежным системам в том числе к новым эквайером банком потому что где-то ставки лучше где-то кто-то вот мы к европейским иногда интегрируем ся банком там просто но клиента который на европу работают на китаем и там выходим тоже и вич от реализуем то есть это вот такая как бы работа по интеграции то есть там краски в основном работа с api и интеграция в нашу систему под общий ну так скажем нашим под нашу архитектуру в интерфейс вот из того что новое ну может быть это как бы у нас есть задачи по и доработки
00:29:39 - 00:31:00
внутренние системы ну админке можно сказать и по работе с биллингом беллингер который можно сказать но не нам принадлежит мы как бы пользовались сторонний системы которая тоже очень старая на когда отписалась вместе с патроном но потом разделилась на пока еще и пользуемся у нас в планах как бы переход ставок беллингера чужого на свой у нас есть частично он написан ну вот первая задача это как бы перейти просто чтобы отвязаться от старой системы перейти на наш чтобы весь код был у нас чтобы все у нас
00:30:20 - 00:31:35
потом уже как бы дорабатывать эту систему добавлять туда новый функционал уже у нас сад ну от наших менеджеров от бухгалтерии есть некоторые там тоже требования и пожелания которые вот будущем надо будет реализовывать просто пока сейчас мало народу как бы у нас даже до бывают до этого руки не всегда доходят поэтому набираем побоев на ролл чтобы можно было там не знаем может быть кто-то будет больше заниматься поддержкой кто-то меньше но как бы тут это будем все уже ну внутри команды решаем между собой но
00:30:58 - 00:32:06
чем занимается с острова получать так что в основном в задачи бизнеса вот именно плане поддержки в том чтобы добавлять как можно больше отыграться как можно большего количества различных банк по сути решение а второе это то что он для поддержка для наших клиентов и наших менеджеров то есть у нас есть какой-то момент который пользуется наш менеджер и наши магазины клиент им постоянно нужны какие-то новые штучки там ну или кишочки крикет новые странички с новым функционалом учетом найти новые так
00:31:32 - 00:32:53
далее вот мы допили вам какие-то вот у нас какие то ойбай от новой страницы так далее плюс ко всему у нас есть магазины которые очень крупный и под них мы можем что-то допиливать именно в плане вот нашего и какие-то новые какой-то функционал именно для код крупный магазин которому вот что-то вот ему прямо нужно поэтому плане но функционала есть много чего нужно что нужно делать но периодически бывает когда какие-то баги и в зависимости от того на сколько они там критичные они либо срочным порядком решаются либо уже там
00:32:12 - 00:33:22
мы как-то возможностям откладываем видем что другое вот поэтому тут все время по разному бывает в плане вот именно исправление багов или перед новым функционалом и уж там на месте стараемся распределять это все чтобы не приходилось тоже воспаляться вот еще вопрос по поводу соседи то есть какого танк принципе deploy происходит но у нас настроено дженкинс на сервере то есть масса сначала при ну с git используется и мы используем гид flow может быть не совсем до конца как он планировался то есть там больше то
00:32:48 - 00:34:15
крупная фича какие-то x и комплексах у нас бывает часто все хотфиксы но вот при финише хотфиксы у нас на сервере удаленном запускаются запускается дженкинс там применяя с иммиграцией выполняется ну и на этом composer and стал я уже не помню что конкретно и запускаются тесты то есть при каждом финише есть реакция на на этот вот плюс при выкладке тоже у нас ну тоже из гетто в общем привыкла кино серы там тоже дженкинс там тоже все запускается миграции unit тесты и вот в общем принципе вот такой у нас он не такое уж навороченные
00:33:37 - 00:35:21
но наверное можно назвать очами принципе войну вся седину да то есть у нас нет вот этих но контейнеров каких-то да вот чё такого достаточно все просто ну так срочно дженнингс в общем у вас вопросы может быть есть еще какие-нибудь doom наверное наверное нет вот у меня тогда вопрос наверное вы еще работаете до на текущем текущем месте работы вот буквально с этой неделе перестал и вот сегодня в москву улетают в москве у вас уже как-то все организовано да там жилье еще что то но разведку только ну скажем у меня есть
00:34:26 - 00:36:21
временное жилье так ну наверное то еще а может быть у вас есть какие-нибудь свои проекты на гитхабе какой код который мы можем посмотреть чтобы как-то оценить вот то как вы пишете код нас больше вот интересуют именно какие-то вот может архитектурные вещи как вы какие классы вот вы создаете как вы их именуете как как они связаны между собой какие методы отказ от больше такое что то вот архитектурное больше здесь что ну вот я могу показать ну вот у меня своих собственных каких-то проектов самом деле нет то есть
00:35:24 - 00:36:54
я могу показать вот код этого проекта который которые мы делали пдд просто дело в том что там 80 процентов кода где-то я написал бы его скинуть там именно там скажем так потом не такой код как привыкли видеть многие да то есть там именно вот по по книжке это там типа классы без без сеттеров да и там все только через конструктор допустим прикидывается то есть модели с поведением да то есть не анимешные модели которые просто как бы контейнеры стэйта по сути модели с поведением [музыка] да ну плюс там разделение на на слои там
00:36:11 - 00:38:18
типа доменный слой я постарался выделить там вот applications слой плюс и инфраструктурный слой то есть там все по слоям раскидано ну если это не за не является коммерческой тайной можете поделиться как бы с удовольствием посмотрим код да да это это это был проект не очень серьезный прямо скажем то есть скорее внутренний проект вот поэтому то есть это точно не является никакой тайной скажет ну хорошо да тогда ну там когда закончим ссылку скинете или там знания как-то убегать данных для git вот сейчас скачать да хорошо так ну наверно
00:37:14 - 00:38:50
то еще у нас наверно тоже вопросов больше нет тогда предлагаю закончить наш разговор да и мы посмотрим ваш код мы свяжемся с вами немного позже хорошо да и всё спасибо вам заранее вам спасибо до свидания [музыка]
00:38:02 - 00:38:50