Подготовка к собеседованию на 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 каналы и чаты
Транскрипция видео:
да приветствует меня зовут олег у нас сегодня собеседование на печке разработчика так и построим собеседование таким образом сначала немного расскажите про себя там про место работы последний вообще про свой опыт с чем сталкивается налоги и так а потом я расскажу про наш проект и потом мы берем технически есть ну получается предыдущее место работы у меня была первая и единственная значит проработал этому почти два года компания она состояла где-то из 12 человек на проекте была в среднем по там 34 разработчика плюс
00:00:04 - 00:01:59
дизайнер-верстальщик it is не тестировщик еще но как бы на все проект а каков план проект значит три основных проекта у нас было два бились примерно много бы одновременно потому что они были друг с другом аффилированных это значит лондонский магазин сантехники и тоже лондонская как бы предназначена использовалась по крайней мере в лондоне система интересно это типа убера для сантехников то есть как бы было было приложение мобильное приложение с которыми сантехники ездили по лондону значит выполняли работу
00:01:05 - 00:02:51
соответственно есть мобильное приложение есть и backend и есть в морда где сама по себе вот это сам по себе веб-сайт он тоже является сложной системой в нем работают люди которые принимают звонки заказы которые потом соответственно попадают у техникам сантехником вот этим мобильное приложение плюс там по сути это было серым система то есть там помимо самого создания вот этой работы также была отдельный вход для администратора отдельный функционал предназначенных для него отдельный функционал для этих людей которые на
00:01:58 - 00:03:41
телефоне сидят отдельный функционал для людей которые допустим рекламой занимаете то есть в общей сложности сложная система где значит делался tracking всех каст амиров плюс tracking рекламных кампаний этих всех выполненных работ то есть составление отчетности в том числе по всему этому делу я соответственно занимался разработкой вот в части и бэг-энда мобильное приложение и не делал ну фактически я все время работы выполнял роль пустых разработчика то есть и на фронте или на байке работал но мне всегда нравилось
00:02:49 - 00:04:35
больше на боковых бэг-энда наниматься вот то есть это вот было кого проектом там на бекки был symfony четвертой версии а на фронте на фронте был view на интернет магазине был бью это было монолитное приложение а профиль система которая пудры для сантехников там был react и соответственно адрес поехать по приложение и третье был третий проект значит там был это была небольшая социальная сеть украинское он нам достался уже наполовину написаны там на бекки был воробей и на фронте был ряд плюс редакции там тоже соответственно я
00:03:42 - 00:05:37
работал и на что именно вы делали проекты ну значит больше всего времени провел на этом проекте у прекрасен техников и там я занимался в частности интеграции с сервисами рекламными то есть например microsoft bing то есть контекстная реклама в поисковике так то есть я вот и интегрировал то есть создание но по большей части я занимался сбором вот статистике то есть [музыка] интегрировал статистическую часть этой системы плюс значит интегрировал google гео-локацию google гео-локации потому что там работа spark не было
00:04:38 - 00:06:56
интегрировал power bass но значит какой то момент мы захотели попробовать power bass подключить для real-time нотификаций там занимался ну в общем рефакторинг старый кот делал новые фичи писал тесты и там же занимался довольно продолжительное время оптимизации запросов поскольку там какой-то момент мы начали проседать по производительности и как был узким местом оказалось базы данных поэтому нет у нас тогда когда как раз перед сервис мы успели на пузырь с и это у нас уже был погряз в принципе понятно
00:05:52 - 00:07:42
пока что тогда расскажу чуть-чуть про наш проект но вы прочитали текст вакансия до проекте у нас это и чар консалтинговой компании до клиента к нам приходит для того чтобы исследовать своих сотрудников то есть они говорят пирог я просто выключил микрофон чтобы тут шум как это построенная версию хорошо то есть у нас клиент приходит на просеке следовательно сотрудника мы различные мероприятия придумал для этого есть онлайн тестировали формате онлайн тестирование то есть я там опросы различные тесты то есть по сути работа с формами и
00:06:51 - 00:08:29
у нас сейчас есть уже текущие решение первой версии она работает и но оно было сделано на битриксе очень давно и сторонним разработчикам поэтому то есть она сейчас работает поддерживается но перестала соответствие бизнес требованиям по улучшение добавление кич поэтому нам сейчас необходимо разработать с нуля новую систему которая будет соответствовать всем бизнес требований стек предполагается это pitch и в качестве это маленькие пляски кекс списков и всего прочего голым у нас это сама сама высокопроизводительная часть
00:07:40 - 00:08:59
сама обработка этих тестов и сами тесты будут писаться на голом не и джесс то есть там или ряд еще точно не решили а на самом деле на фронт с телеги и сингл пейдж applications дальше команды сейчас у нас нету в данный момент я набираю команду и пишу сам код на всех этих трех языках так что никакого legacy нету есть возможность использовать любые там технологии какие будет разумно и удобно использовать и собственно то есть у нас плану сделать рабочий продукт это за приблизительно год чтобы уже можно было
00:08:19 - 00:09:55
достигнуть потому что у нас высокая нагрузка у нас плат и было 100 тысяч запросов в секунду приходят на обед поэтому необходимо сделать такой highload решение очень много связей между различными сервисами то есть и плюсы все микро сердца навскидку стабильно сервис тестов отдельно админка отдельно фронта и все прочие вещи там плюс еще у нас данные которые получаем результате тестирования мы еще наши dat ass in this ты пишут код на эрланге и там собственно надо будет прокидывать этот код через очередью
00:09:10 - 00:10:35
чтобы результаты считались проводилась аналитики какая-то собирались дописать еще растет в принципе вкратце как что у нас проект моста с командой если есть какие то вопросы ну я так понял что вот вы сейчас один работаете перспективе какого размера будет команда команда пока что на ближайший год 4 человека то есть я и профильный специалист из печки разработчик front-end разработчик иголок разработки пока что небольшая команда а там дальнейшем когда мы делаем уже продукт изначальной которые бы сократить эти
00:09:51 - 00:11:12
дела бизнес требованием текущем есть куча различных запросов уже сейчас от бизнеса которые необходимо реализовать и там работать будет всегда и понятно что чтобы выбрать команду она сначала нужно выдать продукт по условиям труда в принципе все вакансии написано у нас свободная там начало для принципе никакой проблемы нету там из дома поработать если приболел там silly love все потыкаться белое собственно вот как-то так вот так еще какими-то вопросами ну пока не аки когда перейдем к техническому
00:10:40 - 00:12:16
части и тогда погнали пропечь пиш тоже там можно спросить но начнем каких-нибудь вещей типа пространство имен спички для чего они там нужны почему они полезны танцы прочь они нужны не только twitch и полезно а не для того чтобы не было не было конфликтов и нам пахнуть вот плюс ну сейчас используется такой стандарт успешный лесах джим 4 который вот как раз регламентирует построение от имен классов и иллинойса в том числе не напрямую но там суть заключается в том что мы определяем какой какая папках как умный namespace
00:11:31 - 00:13:33
соответствует вот и это это очень удобно то есть у нас может быть совершенно две разные папки как бы они связаны и с соответствующим спайсом мы используем этот на in space как бы и даже можем не знать о том где у нас и на самом деле лежат поли какой папочку так какие типы пить и данных знай ну наша говорим о выпечке 7 да-да-да ну это int age3 бульон вот потом есть такой тип хенк к холоду этот но функция или плоха ну есть тут есть китай пекин твой то есть если мы то есть то есть как бы функция ничего не означает
00:12:34 - 00:14:54
массивы так ну да массива то есть хочу еще край масел и схожий с ней не буду томить объекты ну окей да я просто это я как бы это тоже просто этот честно говоря этот вопрос немножко да просто я просто я духов меня вопросов нет они простые как при каких до метки вопросы просто давно не я не отвечал хоккей слова global для чего используется для объявления глобальной переменной но вообще это плохая практика то есть никто так не делает ну потому что мы не хотим давать доступ как бы переменной внутри нежелательно любого участка кода
00:14:01 - 00:16:04
бизнес соображения безопасности по большей части это есть чтобы нельзя было там где-то случайно и перезать и речками содержимое когда следующий вопрос что-нибудь про магические медный можете но магические методы это методы которые которые вызываются на на объектах автоматически как бы печки при определенных 5 то есть например там магический метод контракт называется тогда когда создается объект магическими to distract соответственно когда он собирается сборщиком мусора есть магические методы ту string
00:15:19 - 00:17:17
например когда мы пытаемся называющийся когда мы пытаемся объект преобразовать страх не метод slip когда мы пытаемся его реализовать wake up соответственно здесь реализовать есть магические методы которые вызываются когда мы пытаемся получить доступ к какому-то свойств класса или к методу это магический этот сет и магический метод пол соответственно есть г когда пытаемся получить доступ ну прочитать содержимое какого-то свойства класса вот вызываете на магическом этот пакет вот тут он еще тут еще есть одно есть
00:16:18 - 00:17:53
магический этот он волк например интересно как бы использующийся до называющийся когда мы пытаемся как бы использовать объект в качестве функции и [музыка] так погнали дальше чем у нас там про абстрактный класс интерфейс расскажет да давайте получать очки у нас множественная можно и можно инкрементировать много интерфейс extended 1 класс но и клиник лимитировать много интерфейса то есть абстрактный класс можно за их ставить один соответственно абстрактный класс это класс в кадр в котором хотя бы один
00:17:06 - 00:18:38
метод является нереализованным абстрактным то есть когда мы extreme абстрактный класс мы должны этот абстрактный метод реализовать с интерфейсом соответственно по-другому обстоит дело там все потом все методы являются абстрактными но обычно он используется для того чтобы именно описать там собственно интерфейс api от какого-то будущего классах там в этом интерфейсе обычно содержится ну вот список методов абстрактном классе раз нельзя реализовать метод можно да то есть там должен быть просто как минимум
00:17:56 - 00:19:46
один абстрактный или единение дом на самом деле не помню можно ли можно ли объявить класс абстрактным при этом имея там вообще фотокниг но туда не помню ну да ты что то что там можно реализовать какие-то методы точно то есть сделать их сразу чтобы чтобы они тело то значит динамическая типизация вич и как она очень работает сталкивается ну динамическая типизация просто тот факт что мы можем мы когда создаем переменную мы не можем объявить тип этой переменной так мы потом входе в ран тайме как бы
00:18:56 - 00:20:49
можем в эту переменную засунуть все что угодно а почему мы не можем не можем если вот мы с известный речь идет о об обычной переменной хотя в печке 74 появились появилась возможность у свойства у свойств класса объявлять объявлять вот их их тип но этого этого эта плата это так бы классе в объекте есть такой контроль просто просто с переменным это сделать не может мы можем вручную например делать проверки вручную кастовать из одного типа в другой что такое стрипбокс не сталкивались сюда надо в общем полив
00:19:55 - 00:21:56
может быть полезная штука тогда значит [музыка] печки работает следующим образом мы когда в метод засовываем ну то есть у нас есть в методе type hand о том что мы принимаем допустим только интеджер и если strict мода нет то прокинув us метод ст рингу например он ее за кастует в это джордж самостоятельно вот мы об этом не узнаем нута с некую ошибку не будет если мы в файлике сверху напишем вот эти поюс track 1 то как бы вот так сделать уже будет нельзя будет выброшено ошибка следующий вопрос будет составить
00:20:54 - 00:22:31
следующем что и не слышали про поведение в окопе он right ну копиям right тут имеется ввиду имут обильности или а все тепло купе он right it off смысле передача по передача значений по ссылке и и по одной и по значению до переменных в общем вот именно вот это словосочетание copy on right я я затрудняюсь выпечки пока мы не начинаем изменять допустим и делаем массив до его копию там допустим переменную а которая является массивом значит волосами переменного бегали что она равна а вот до тех пор пока мы не
00:21:47 - 00:23:41
начнем бы изменять там будет мы будем работать с посылки как только мы начнем изменять его тон скопируется чтобы экономить до этого так погнали дальше успел до но это значит успел это печка там стандарт widely по идее значит это набор набор классов стандартной библиотеки то есть новый класс а какие чё там классно что там реализовывать и класс ну здесь например spl обзор door есть ну этот интерфейс есть такой интернет встроены то есть ли нам помогает делать хорошо погнали дальше чернота мыслимы цифру
00:22:47 - 00:25:31
им-то вы 3 сложим плюсиком со строкой 4 что произойдет но строка преобразуется [музыка] имплицитно в интер ну если сложится скорее всего у нас семерка чтобы как строку славится надо сделать ну конкатенации да даже на таки нацию с помощью точечки производить отличие к вич есть улучшаться в одинарные кавычки можно только строго засунуть онлайн и можно засунуть переменную а что быстрее работать но очевидно одинарные использовал печки не приходится думать о том что там может быть переменным руки раз начали про быстро по что не знаете
00:24:12 - 00:26:16
про алгоритмическую сложность большой ну это большая аннотация это как бы спорт по сути скорость работы алгоритмах которая измеряется в это сформулировать в скорости в скорости роста длительности работы алгоритма то есть там это например линейный рост это когда у нас там а большое скобочках н да или там он н в квадрате это уже типа квадратичная зависимость или или там логарифмическая ударившего ну ну допустим если у нас там есть один цикл да где мы проходимся по массиву скажем у нас если мы проходимся один раз
00:25:12 - 00:27:17
то это у нас я пьян проходов куда а если мы если у нас допустим месте клуб то есть один лук вдруг внутри другого лупа то получается вас уже n в квадрате да мы сначала первый раз проходимся потом для каждого элемента еще раз проходим то есть а если много различных действий внутри одной функции как и посчитать сложность [музыка] потом нас в одну функцию сначала у нас вложенный мастер цикл со вложенным сих пор он перебирает два раза и потом еще дальше мы еще цикл в нем вложен цикла днем еще ваш не
00:26:18 - 00:27:51
цик какая сложность будет это делать ну в принципе чем кажет каждый каждый цикл внутри следующего цикла он добавляет нам степень вот этот это вариант у нас получается вот первый умноженный цикл там это н квадрат а получается там тройной вложенная т м куб какая сложность тобой в итоге у функций но рынку максимально побольше короче да да ну так мы обычно и обычному то есть по принято обозначать насколько я помню именно максимально возможно погнали дальше чуть по связанным вещам структуры данных вообще программирование
00:27:11 - 00:29:05
какие отчизной ну есть такие как базовые структуры данных которых даже с которыми даже печки не работает это но это допустим там массив связанный список но не знаю в контексте печки об этом говорить в принципе смысла нет поскольку там массивы реализованы вот там есть массив есть связанный список и есть еще хэш-таблицу вот ну я насколько знаю печки внутри под но под капотом везде используют принципе не работает ну стоит вообще такая структура такая do not принцип в том что у нас есть hash и есть есть hash
00:28:06 - 00:29:52
значение есть значение и хэш-таблицы то вот таблица с хэшами когда по которым мы потом получаем доступ уже самому значение вот это как бы такие базовые типы а есть типы которые на них строится это там типа стек очередь ну 9 деревья там теперь снова простенький вопрос из теоретических это он же что такое в чем прикол это об ну это объектно ориентированное программирование и прикол в том что чтобы обеспечить 3 как бы основные свойства короче три кита это наследование и полиморфизм инкапсуляции вот ради это в общем то 4
00:29:08 - 00:31:33
нет какой-то 4 еще называли абсолютно смели марки но начать начнем инкапсуляция это в принципе но идея создания объекта в том чтобы связать данные и поведения и вот инкапсулировать вместе создать такую сущность плюс как бы по минимуму используйте будут внутреннюю имплементацию выдавать наружу а вы давайте возможности только какой-то минимальный интерфейс взаимодействия с объектом то есть сейчас кстати этот принцип он многими очень нарушается то есть допустим сейчас спички многие делают так что типа получается класс практически
00:30:23 - 00:32:21
без поведения то есть люди делают это типа называется типа пока богатая богатая доменная модель и бедного соответственно многие сейчас делают привыкли делать спички до классы которые тупо являются контейнерами стоит а где у нас есть там приватные property и есть как бы сеттеры и геттеры и все и вся внутри вся работа происходит уже где-то там за пределами где-то в сервисах например или легче в контроле того чтобы держать логику ну вот в этой в доменной сущности вот это про инкапсуляции потом наследование
00:31:31 - 00:33:09
это инструмент позволяющий избежать дублирования кода и по идее да плюс он из полиморфизмом тоже имеет связь поскольку но при наследовании думаю ну типа у нас есть родительский класс мы его наследуем получаем все что было в родительском классе свойства и методы следовать вот чтобы избежать дублирование кода например а также чтобы потом пользоваться полиморфизмом то есть идея полиморфизма заключается в том чтобы использовать иметь возможность обращаться к родительскому к родительскому классу почему не использую всегда trade и они
00:32:21 - 00:34:13
наследуют мы же тоже copy-paste избегаем дублирование кода один раз ты писал про и тип отсюда густой да есть такое но зачем на параше наследование во-первых наследование нам вот потом с полиморфизмом поможет ну вообще trade и использовать этот типа считается плохой практикой их зачем ты добавили а потом сказать даже в лара вы или simple метро этой скорби да но если ты при варке с плохими практика меня собранные стольких потратив ну скажем так и них можно использовать но очень небольших количествах в принципе там
00:33:27 - 00:35:27
какой-то архитектурный нет не помню там по указу формулировку как это люди обычно объясняют ну по крайней мере во время дебаггинга как бы нам надо нам удобнее смотреть на то где у нас что у нас пас за extender зачем то что мы там используем трек extend вот вот это слово что назначать ну это вот extend вспомним слова с помощью которого а если перевести из этого из слова просто по-русски перевести что означает xp расширяют наше а наследование получается в отличие от trade of нам позволяет расширять же функционал базовой сущность
00:34:34 - 00:36:19
отрытых просто copy-paste ну да ну типа говорят что treak это плохо потому что он он как бы несет мало-мало нагрузки мало смысловой нагрузки в плане именно вот это минного дизайне есть крутые трэйд типа макро и был никогда не использовал это знакомая но этот рейд для того что по сути для рефлексии для того чтобы на ли тут биндить новые методы хобби в том же ловили он используется как раз таки для рынке ну дай объявили видел ночью полиморфизм только вкратце макей ну типа полиморфизм это возможность использовать
00:35:27 - 00:37:12
как бы обращаться но если если по факту как будто на практике то это возможность зато финтить родительский класс или интерфейс потом обращаться с этой сущностью при этом эта сущность может быть на самом деле дочерним ну реализовывать вот это черни класс так пойдем дальше по теории самая неприятная штука этой теории принцип solid зачем себя представляет ну это набор как бы принципов его полезным полезным архитектурных как бы погнали расшифровывать до вокруг долги значит с сингл сингл responsibility
00:36:24 - 00:38:39
принцип класс который говорит о том что класс должен иметь одну одну ответственность и говорят ещё про одну причину для изменения ну то есть класс должен быть узко специализированы потом так соли и это alpen клаус principle то есть открыт для расширения закрыты для модификации то есть это когда у нас какой то какой то кусок системы например мы можем extended не модифицируя то есть [музыка] ну типа этого хватит дальше ну просто мы сказали что по короче соли и the list of risk of substitution принципу типа
00:37:30 - 00:39:54
которые о том чтобы дочерние дочерние классы не меняли как бы логическое поведение своих правительств классов должны иметь возможность использовать дочерний класс при этом не боясь что он делает что-то неадекватное тому что мы от него хотели так дальше и это интерфейс сагре гейши то есть у нас в интерфейс должен быть как можно тоньше плане количество методов чтобы клиент когда этот интерфейс использует ему не приходилось реализовывать ненужные дима метод отчет за каждый метод в интерфейс ней ну в принципе да можно можно реально
00:38:42 - 00:40:28
разбить интерфейс и просто на 1 1 метод в каждом но тогда у нас можем столкнуться с обратной проблемой когда ну все слишком гранулированный а когда по какому принципу очень объединяется murphys и разделяется как раз интерфейс ну вот по принципу необходимости в каком-то функционале да то есть если мы там не знаю например какой нибудь интерфейс там с abs край как коммента был до интерфейс который если навешивается на сущность что мы хотим чтобы иметь возможность комментировать эту сущность соответственно у него там будет будут
00:39:36 - 00:41:17
методы связанные с комментировали и последний принцип это у нас соль и т.д. dependency engine это он о том что значит сущности верхнего уровня не должны зависит от сущности нижнего уровня они должны зависеть от абстракции то есть ну это вот как раз 4 принципа да то есть вот но он короче мы должны зависеть от интерфейсов они от конкретных классов это вот ну при тестировании в частности это очень-очень важно при же невозможно написать нормально тестируемый код не использовав этот принцип например потому что ну типа
00:40:27 - 00:42:29
мы когда там тест пишем да и у нас там класс обращается какой митапе жки мы ж не мы не хотим обращаться к фишке в тесте мы не хотим делать реальные тебе запрос поэтому мы когда пишем этот класс мы туда мы там за счет зависим от интерфейса какого-то а потом инкрементируем этот интерфейс ненастоящим и ищите пи клиентам а каким нибудь моком ну и соответственно когда мы тест прогоняем то не по запросу не происходит там на просто встречается мог бред какой то есть вот это вот замок отличается ну стоп это просто
00:41:30 - 00:42:49
заглушка он так и переводится по моему типа а то есть вообще блин эти термины по разному используется но многие говорят стаб на все или мог на все там став у нас было так например мы ставим называли просто какой-то пустой класс ну типа с пустыми методами хотя по моему это называется места по как-то иначе помог это мог это то что тебе какие-то осмысленные данные возвращают но туда не обращайте окей там prodrive нибудь из ну да да это тонкий pick your cell можно снять киз это пипец keep it simple stupid без так и вот
00:42:19 - 00:44:18
вопрос такой но допустим есть такая штука доктрина [музыка] паттерн актив рек до мексики не никита это моё кем-то перепутал ты надеваешь что его крым что доктрина они написаны соответствии с салидо на меня и класс а не соответствует принципам соли или нет они подходят почти похоже на самом деле по реализации внутри ну про то как я доктрину заглядывал в велогонке недоволен меньше работал но мне больше всего не нравится и и доктрина в том числе и в принцип от у этого паттерна паттерн в ленте active record
00:43:22 - 00:45:20
в доктрине там да да the matter потом соответственно паттерн data mapper он мне больше нравится и потому что он позволяет окей ну ну сейчас сейчас я просканировали а ну принципе там там кот хороший как бы и никто не спорит им хороший ну может может быть и не соответствует то есть эти принципы их но если до экстрима доводить как бы то можно сказать что там какой-нибудь класс отвечающий за юнитов пор в доктрине он там но он там монструозный и можно было бы его разбивать скажем на это подкласс туристам забились окей ладно
00:44:27 - 00:47:12
что там еще по кличке и всем этим и чем хотел спросить ещё рефлексе проще плечо нужно где используется пример есть ну рефлексия и так конечно как бы очень мощная штука очень крутая да в том смысле что мы можем подлезть у залезть просто вот с абсолютно в любое место и сделать все что все что угодно да с классом но как бы оно оно используется окей ладно как бы я договорю что она хоть и крутая но ее использовать вообще лучше ее не использовать короче в своем собственном клиентском ходе потому что это получается очень
00:45:52 - 00:47:31
во-первых получается запутанный код по любому и во-вторых получается получается магия которую которую понимаешь только ты и это недолго все везде за запутанности кода но если реально нужно сделать что сложно поэтому рефлексию ну вообще магия это всегда плохо когда ну если если вы если если проект только живущих хотя [музыка] используйте в работе вот например доктрина используют рефлексию для ну типа мы когда объявляем что какой-то класс является сущностью до entity доктрин of sky мы можем использовать
00:46:42 - 00:48:17
аннотации для того чтобы эти печкой док так называемый для того чтобы описать что мы хотим вот от этой сущности да и доктрина используют рефлексию для того чтобы прочитать вот этот печь пирог и комментарии по сути youtube а нам-то методом или надо нам над property то есть мета информации подхода подач вот например тогда погнали дальше роспись и более-менее закончили symfony там я думаю не стоит да там про debian wheezy ехать по шоссе такое c рабочий момент ну да ну это не так эта крутая штука как
00:47:31 - 00:49:03
бы или все помидоры и рвоте такой nu metal gear это вообще такое ну концепция программирование типа посредника или как-то перевести ну короче что-то мечта так промежуточная до между чем-то и чем используется быть самое частое использование ну там аутентификацию какая значит аутентификация это типа от слова вот [музыка] короче это когда мы определяем человек вошел в систему до он оон аутентифицироваться окей а теперь давайте его авторизуемся есть давайте дадим ему какие-то права от слова authority
00:48:19 - 00:50:01
но когда он какие то права уже получают когда он соответственно авторизовался tower мы используем для авторизации с действиями вернее больше чем для ну а ты дефицитом формочки там или а через зону какой-нибудь там фишку соседние а вот авторизуй его действия ну да ну там допустим у нас может быть какой-то миду vr который берет сессию пользователя и зависимости от него ну да но он и он как бы и вас одновременно полного сначала нам дает ему ну да короче сначала от модификации а потом авторизации окей
00:49:13 - 00:50:49
ладно базы скейл погнали по всяким проект join и себе такую штуку я спрашивать не буду на соединю потому что зачастую работа ведется через свой рынке он не больше интересно про индексацию до рассказывали про ну давайте над если удобнее нашей компании принято у нас все короче такая штука ты берешь сработал с оптимизацией и это получается иностранном падений какой индексации всякая такую штуку вот про индексацию можешь рассказать носки или в любом вас грех массе ну значит индексация у нас из пользователя того чтобы оптимизировать
00:49:59 - 00:51:43
чтение данных вот обычно как бы самый распространенный индекс ну короче мы когда индекс создаем он поможешь по умолчанию создается так называемый петри индекс то есть это говорит бинарное дерево rota grid типа балансировании сбалансированы ну по сути короче это когда у нас есть сбалансированный ну да там насколько я знаю не бинарная там именно сбалансированы и видом бинарная балансира на это когда да да я знаю они типа на не можем айда на одном уровне примерно в чем прикол этого дмитрий но прикол в том чтобы вот производить
00:50:53 - 00:52:39
что-то типа бинарного поиска по индексу короче у нас создается индекс это как как как хэш-таблицы да ну вот у нас в каждом узле значение индекса и мы когда по индексу и производим яндекс поиск по индексу мы проходимся по вот этим узлам нет они отсортированы а как ну так что допустим у нас все значения больше больше определенного а не справа все значения меньше они слева и соответственно условно говоря мы там когда по по строке какой-нибудь вещи мы смотрим с какого с какой буквы начинается то страха которую мы ищем и обращаясь к
00:51:50 - 00:54:11
индексу смотрим буква алфавита она она как бы старше или но больше или меньше картера корневого узла и соответственно потом слева протекает и когда значит пришлось работать поставить или да значит у нас нет медленно стала работать система в одном месте и крыш там было страничка очень нагружены и сайт работал медленно тогда я пошел смотреть slow slow логе то есть и потом explore но сначала мне нужно было определить какие запросы были медленны то есть включаем слогу слог смотрим что туда падает берем эти запросы explay не мы
00:53:05 - 00:55:13
смотрим как бы такие индексы используются как как используется нет у нас у нас ну во первых во первых да то есть рнк делала как бы у нас ни оптимальная была схема данных у нас была слишком много join of the условно говоря мы там joy нем какую-нибудь таблицу броди одного значения и это значение во вполне можно поместить как бы папа выше да без джона мы типо типо типо де нормализация в угоду производительность вот ну и плюс индексы индексов у нас некоторых не было которые понадобились и были соответственно лишь некоторые не
00:54:12 - 00:55:49
использовались а тупо место отбирали ну ну место и производительность потому что каждый индекс это удар удар сразу и по которой нет там но которые были созданы когда-то кем-то но потом перестали а потом был не legacy но все равно все равно уже это успела стать legacy погнали сейчас принципе highload делается на всяких там мелкие штырей все что не требует супер это ведь все кладется в stl и принципе там минимальным тюнингом делается самое главное это как сказать правильно схема данных если нормально
00:55:03 - 00:56:44
схема данных не будет никаких проблем в дальнейшем оптимизации кода то есть иногда лучше там но пожертвовать вот этой теоретической нормализацию и засунуть там условно говоря к взять какой-нибудь джейсон просто засунуть базу и да есть внук под грязь и погрейся да ну да если он там походу тогда получается про так говорили про это говорили так что у нас еще вот какого просто ехать назад вот есть у нас буровыми какое отношение с мы не прав многие через то есть мы друга реал нас есть страна не есть люди
00:55:59 - 00:57:44
и у нее ей у каждого человека есть там грубо репосты вот и можно воровали задать отношения у страны пастор сразу через модель людей это можно прописать в доктрине как подобную штуку реализовать принтом там нет по моему такого отношения к центру то есть такого ни разу даже это полиморфных по сути особо и нет да нету ну и я когда слобод с авелем работал и нотами в проекте ну короче мне нет мне это тоже не очень понравилась потому что именно вот эти полиморфные связи между бульвар кивсяки из коробки воровали офигенно работать на
00:56:58 - 00:59:00
самом деле это очень мощный инструмент и то же самое связь через объекта очень мощный инструмент но воровали анонсом по сути все в кучу а маги там используется поэтому как бы не самое конечно оптимизированный танка и все подобно not как бы доктрине реализовать такой вот вид от нашей это выглядело реально нужно у нас есть страна есть людей у них есть посты воровали связывается пасты со страной одной строчки и они сразу связываются по таблице но посвящу таблици юзеров с этими постами как был доктрине то тут реализовать
00:57:59 - 00:59:31
учись теоретически ну мимо мыслитель я бы сейчас посмотрите но смотри можно можно конечно два варианта я вижу то есть можно реально можно обратиться ну то есть через свою рюмку обратиться пользователю потом соответственно его постам вот ну как бы его рынка сначала том использовать или потом пасты можно можно через сквере builder самостоятельно построить запрос стадо joy нить пользователей за джонни пасты я обычно так делаю беру квари builder и нашел то что минуту хорошо но в принципе так по этой части и все в
00:58:44 - 01:00:39
принципе что хотел спросил уровень мне взять на понятен сделаем короче следующего сейчас если есть вопросы задавай и потом после вопросов да я чуть попозже свяжусь с нашими чарам мы дадим тебе тесты даже компания мы исследуем людей там тест на такие вещи как называется критическое мышление и социальный интеллект первой части критическое мышление там грубо говоря какие-то тексты да там них какие-то факты приносятся и нужно выделить какую-то главную мысль или лисы 8 каким-то высказываем то есть грубо
00:59:52 - 01:01:27
говоря надо прочитать текст проанализировать и выдать какой-то результат вот это первое второе отчасти в социальной интеллект из там кейсы допустим какая то ситуация в офисе да там грубо говоря на планерке какой-то коллега выразил там свои недовольства вашими идеями грубых как будет там поступили и там перечисляются действие и различные кейсы их ответ на различные варианты оценки эффективности это действие типу будет эффективно это не очень чисто она личностный и сейчас есть вопрос да есть я вот я видел вакансии это ну такие
01:00:45 - 01:02:14
словечки как ддт и пдд [музыка] как бы ну покрайней мере тесты написать будем тетради мелких но это со речке эти как ее соли ты из и драй это все примерно знание теории ну окей просто я считаю что тесто нужны я к тому что прогорел протесты радио или тесты после коды писать от меня на самом деле очень не все что того кому как удобней но самое главное чтобы было временно как раз там были вопросы как раз именно про то как сам делить эти интерфейсы принципе там будут этом такие вещи обсуждаются и я еще не задавать
01:01:28 - 01:03:26
вопрос про друзья потому что вы я думал ты уже приведешь во время нашей собеседования там как раз про контекст и ну да понятно типа у нас есть домен и вот мы и организуют какой-то контекст и вот как раз таки и там интерфейсы и всякие микро сервис тоже делятся именно по контексту который порождает да я сам лицо честное слово не усиливает определение ну это dgd это вообще обычно подразумевается не do the driving a bad omen 3 расшифровывается 500 именно типа там ну the men то есть когда мы стараемся все
01:02:28 - 01:04:18
описывать смысл как бы пдд в том что мы стараемся описывать сущности исходя не из нашей программе sky логике а и злобе и логике бизнеса то есть мы типа взаимодействуем с бизнесом и спрашиваем у бизнеса как нам правильно называть ну по крайне мере советуемся с ним как нам правильно называть нас в нашей сущности коде как раз таки как нам правильно выделять интерфейсы то есть общаемся бизнес на уровне здравого смысла ноша ну вообще да есть такое но хорошо что она формализован у кирилла марины берусь алатти отправит
01:03:22 - 01:04:42
тест и дальше посмотрим там дальше решим что делать ну да интересно 150 ты угол в этом вблизи моих и марки хочет а или белый морские со 150 дело это умножить на 087 -13 процент подоходным нет ли 150 имелось ввиду ok все пока написать у
01:04:02 - 01:05:24