Валентин Удальцов, Виталий Лихачев: Публичное собеседование Senior Software Engineer (PHP)

Поделиться
HTML-код
  • Опубликовано: 24 авг 2024
  • Публичное собеседование на Senior PHP. Разберемся какие сейчас актуальные вопросы по PHP обсуждают на собеседованиях - паттерны разработки, полиморфизм/вариантность в чистом PHP, SOLID, DDD, микросервисные паттерны.
    Проводить собеседование будет Валентин Удальцов - активный участник сообщества PHP, преподаватель. Автор каналов Пых (t.me/phpyh) и PHP Point ( / phppoint , контрибьютор различных проектов экосистемы PHP (github.com/vud....
    Проходить собеседование будет невероятно крутой - Виталий Лихачев 🔥 Fullstack разработчик. Работал и в стартапах, и в крупных компаниях. Пилил сложный динамичный фронт в стартапе, настраивал CI/CD и aws, оптимизировал бэкенд и проводил технические собеседования - поэтому понемногу знает жизнь программных проектов со множества сторон.
    Канал с анонсами t.me/megdu_skobok
    Boosty boosty.to/megd...
    Ламповый чат t.me/backend_m...
    Полезные ссылки
    📖 Пых t.me/phpyh
    📖 PHP Point / phppoint
    📖 Как разобраться во внутрянке php www.phpinterna...
    📖 Что еще почитать про устройство php npopov.com/
    📖 Как держать растущие нагрузки www.scalingphp...
    📖 Как начать по-настоящему понимать работу postgresql на больших проектах postgrespro.ru...
    📖 Возможности pg • Один PostgreSQL, чтобы...
    📖 Если вы хотели свитчнуться в go, middle+ с опытом, но не знаете с чего начать, welcome slurm.io/go
    📖 PHP weekly www.phpweekly....
    📖 Postgres weekly postgresweekly...
    📖 K8s weekly learnk8s.io/le...
    📖 Software lead weekly softwareleadwe...

Комментарии • 51

  • @mezhdu_skobok
    @mezhdu_skobok  6 месяцев назад +2

    Полезные ссылки
    📖 Пых t.me/phpyh
    📖 PHP Point ruclips.net/user/PHPPoint
    📖 Как разобраться во внутрянке php www.phpinternalsbook.com/
    📖 Что еще почитать про устройство php npopov.com/
    📖 Как держать растущие нагрузки www.scalingphpbook.com/
    📖 Как начать по-настоящему понимать работу postgresql на больших проектах postgrespro.ru/education/books/internals
    📖 Возможности pg ruclips.net/video/HKfgZrqVkP4/видео.html
    📖 Если вы хотели свитчнуться в go, middle+ с опытом, но не знаете с чего начать, welcome slurm.io/go
    📖 PHP weekly www.phpweekly.com/
    📖 Postgres weekly postgresweekly.com/
    📖 K8s weekly learnk8s.io/learn-kubernetes-weekly
    📖 Software lead weekly softwareleadweekly.com/

  • @solvex8304
    @solvex8304 6 месяцев назад +17

    Господи, чего только сейчас не вешают на бедных PHP-шников: и настроить *nix под работу, и html, css, js, и вью всякие, теперь вот и ci/cd настраивать... Что дальше будет, возврат от фронтендер/бэкендер/девопс к веб-мастерам?

    • @aragnophy
      @aragnophy 6 месяцев назад +1

      От вакансии и компании зависит. Могут и принтеры заправлять заставить, если вы на такое подписались ;)

    • @solvex8304
      @solvex8304 6 месяцев назад +5

      @@aragnophy Собес называется Senior Software Engineer (PHP). Я так понимаю, что вакансия PHP-шная, причём тут CI/CD?

    • @vudaltsov
      @vudaltsov 6 месяцев назад +1

      @@solvex8304 , от **современного** Senior PHP я ожидаю, что он хорошо разбирается в современных инструментах PHP и готов сказать, что должно быть добавлено в пайплайн для успешного Continuous Integration. Это часть методологии dev-ops. По-вашему ops должен знать специфику PHP? Всякие линтеры, статанализаторы, фреймворки для тестирования? Нет, конечно, это ответственность разработчиков. И вместе с ops-ами они заинтересованы в том, чтобы прод всегда был в отличном состоянии, насколько это возможно. При чём тут html/css/js я вообще не понял.

    • @solvex8304
      @solvex8304 6 месяцев назад +3

      @@vudaltsovПочему, PHP-программист же не пойдёт в компанию, где питон или нода на бэке. Если девопс идёт туда, где используется php, то да, должен знать специфику. А html/css/js - при том, что такая тенденция пошла, всё это вешать на php-шника. Откроешь практически любую вакансию PHP-программист и в них это всё указано в требованиях.

    • @snikitin32
      @snikitin32 4 месяца назад

      ​@@vudaltsovты как та женщина с видео 😂 половину слов на английском, половину на русском😂

  • @barackobama2722
    @barackobama2722 2 месяца назад +1

    Я 20 лет в IT и делаю вывод, что часть людей это энергетические вампиры, а остальная часть жертвы для этих энергетических вампиров, которые медленно из жертвы вытягивают жизненные силы с изощренностью маньяка!
    Даже здесь это происходит!

  • @yashkevich8164
    @yashkevich8164 5 месяцев назад +5

    Мой синдром самозванца крутанул на максимум))

  • @SemyonF89
    @SemyonF89 3 месяца назад +1

    Крутой собес. Кот очень любит, доверяет❤

  • @EvilGazz
    @EvilGazz 5 месяцев назад +2

    Спасибо, очень интересно!

  • @IliaGlazkov
    @IliaGlazkov 2 месяца назад

    Прекрасное интервью!🎉

  • @user-ri7mk9ek6e
    @user-ri7mk9ek6e 5 месяцев назад +5

    40:25 @vudaltsov, забавно было услышать, что cache->get() вместо cache->has()/cache->get() решает проблему гонки в мировозрении пхп-шника :D

  • @skipper3355
    @skipper3355 7 месяцев назад +2

    1:04:00 - очень хороший подход.

  • @user-es1ke6jb4m
    @user-es1ke6jb4m 4 месяца назад +1

    где почитать про version в запросах

  • @NameXss
    @NameXss 6 месяцев назад +1

    1:04:19 А как на уровне ивентов сделать батчинг? Куда будет накапливаться декремент? Консюмер же будет убивать инстанс

    • @SemyonF89
      @SemyonF89 3 месяца назад

      Вы нашли ответ. Повторно смотрел стрим, тоже интересует этот момент

    • @NameXss
      @NameXss 3 месяца назад +1

      @@SemyonF89 сейчас пересмотрел, и не помню, что у меня было в голове тогда и почему я этот вопрос задал). Я предполагаю, что можно накапливать хоть в тот же редис или любую другую БД, а потом резолвить по крону

    • @snikitin32
      @snikitin32 2 месяца назад

      А обязательно половину слов использовать английские слова русскими буквами? 😂лухари лайф

    • @SemyonF89
      @SemyonF89 2 месяца назад

      @@snikitin32 культуру письма не отменяли, но графоманить нас не заставляют, большинству, предположу, пофигу. Мы тут в курилке вышли перекинуться мыслями) Энтропия от транслита на русском не падает. Вся програмота давно привыкла к таким профессиональным приемам. Човы, подколоть так решили, не заточенным шилом) .

    • @NameXss
      @NameXss 2 месяца назад

      @@snikitin32 естественно.

  • @qAntBcn
    @qAntBcn 6 месяцев назад +2

    Крутое видео! Спасибо! Плиз, на будушее решайте заранее вопросы с микро... а то бубубу бубубу... не блин... 2024 год же... а ошибки все теже...

    • @mezhdu_skobok
      @mezhdu_skobok  6 месяцев назад

      А чей именно звук не понравился?

    • @aragnophy
      @aragnophy 6 месяцев назад +1

      @@mezhdu_skobok У Виталия конечно, хотя в целом разобрать всё можно было.

  • @gam6itko
    @gam6itko 2 месяца назад

    30:00 Мутационное тестирование это fuzzing?

  • @sergeykozhenkov371
    @sergeykozhenkov371 6 месяцев назад +1

    Каким образом лучше создавать DTO'шки: передавая аргументы в конструктор при вызове new или путём цепочки вызовов сеттеров (текучий интерфейс)?

    • @vudaltsov
      @vudaltsov 6 месяцев назад +6

      DTO желательно чтобы были иммутабельные. Так что только через конструктор. Менять через with методы, получая новые инстансы.

    • @sergeykozhenkov371
      @sergeykozhenkov371 6 месяцев назад

      ​@@vudaltsovНо ведь если у нас не все свойства DTO будут задействованы, то в случае, когда возникает необходимость юзать пару-тройку и они в конструкторе будут в конце, то придётся проставлять null'ы / дефолтные значения для тех, которые перед ними. Выглядит такое грамоздко и некрасиво. А так, вызов пары сеттеров и всё супер

    • @vudaltsov
      @vudaltsov 6 месяцев назад +2

      @@sergeykozhenkov371 если в DTO очень много ненужных полей, то её нужно декомпозировать на несколько DTO, по одной на юзкейс. Для дефолтных значений в PHP >=8.0 есть именованные аргументы, при помощи них легко изящно пропускать необязательные параметры.

    • @RottenFoil
      @RottenFoil 6 месяцев назад

      @@sergeykozhenkov371 Используйте именованные аргументы и все будет красиво. Плюс если у вас настолько разное поведение метода, принимающего DTO, возможно стоит разбить его на два и более и для каждого создать свой DTO.

    • @k0rinf
      @k0rinf 6 месяцев назад

      Если у вас есть сеттеры и геттеры, то зачем они вообще нужны? почему бы просто не сделать поле public?

  • @lebuhorskiyblog5897
    @lebuhorskiyblog5897 7 месяцев назад +1

    Круто

  • @yandexroot
    @yandexroot 7 месяцев назад

    38:20 - а зачем тут проверка только на null? А если cache->get(...) отдаст false? То он выдаст false наружу.. что не дело.

    • @vudaltsov
      @vudaltsov 6 месяцев назад +2

      Ну там по контракту возвращается default из метода get. И он по умолчанию null. Так что можно предположить, что кэш вернёт ?Report. Но поскольку дженериков в этом месте нет, то, строго говоря, лучше проверить instanceof.

  • @nightblure
    @nightblure 7 месяцев назад +2

    Скиньте ссылку на курс)

    • @makeitgit
      @makeitgit 6 месяцев назад

      Ссылка на slurm есть в описании видео, в комментарий не смогу приложить, автомодерация ссылку не пропустит

  • @mexvision-3556
    @mexvision-3556 3 месяца назад

    Люди добрые, подскажите где можно подписать петицию "за дженерики в php". Как долго нам придется писать эти громоздкие аннотации? По хорошему, их вообще при компиляции можно опускать. Они в 99% случаев, нужны лишь для удобного написания кода, чтобы не стрелять себе в ногу. Да, PHP интерпретируемый и с них толку практически нет, но как же удобно будет писать код. Атрибуты перекочевали с аннотаций, в чем проблема то же самое сделать и с дженериками?

  • @Wivern11
    @Wivern11 7 месяцев назад +1

    А вам гофер не нужен?

    • @mezhdu_skobok
      @mezhdu_skobok  7 месяцев назад

      Если интересно пройти собес по го, пиши в телеграмм @Gskoba

  • @UnitedFeodor
    @UnitedFeodor 6 месяцев назад

    45:48

  • @valentingerbey4297
    @valentingerbey4297 6 месяцев назад +1

    Классический сеньер, ивент-драйвинг😂, тип вообще не дупляет, что в мире последние 20 лет происходит, в описании написано солиды, ддд, архитектура, по факту, еле продукт разбил, инкапсуляция и инварианты - слова видел, как и кохижин собственно, вообще все базворды на уровне чтения документации, просто слова знает, да и за ооп тоже, есть класс значит ооп, в общем прискорбна, что индустрия таким вот переполнена, очень прискорбна😢😢😢 тупа 99 из 100 вот такое, в лучшем случае, а самое главное, что Валентин прекрасно понимает, но лицемерит говоря все топ, просто поощряет бестолковство

    • @makeitgit
      @makeitgit 6 месяцев назад +11

      Приходите на похожий собес. Расскажите, как нужно, я с удовольствием послушаю квалифицированного специалиста. Чужой опыт всегда полезен! Все контакты в описании

    • @eugenelepeshko8347
      @eugenelepeshko8347 3 месяца назад +1

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