В прошлой статье мы рассказали, почему Compo Soft решила уйти от привычного PHP‑стека и перейти на Java ради выхода в сегмент Enterprise. Но если кто‑то подумал, что за этим решением последовал массовый найм Java‑разработчиков — нет. Мы пошли по куда более хардкорному пути: взяли всю свою PHP‑команду и начали переобучать ее на Java. Полностью c нуля. И без отрыва от производства.

В этом материале — честная и подробная история о том, как это происходило. Почему выбран формат интервью — вместо обычного повествовательного рассказа о кейсе. Тут все просто, прямая речь от первого лица всегда интереснее и ярче, плюс не надо оттачивать формулировки и превращать их в скучный корпоративный текст. Поэтому — интервью с Владимиром Гантуриным, техническим директором Compo Soft, без купюр, с примерами и парой нелицеприятных фраз про Hibernate. В общем, слоган «Невозможное — возможно» оказался вполне рабочим.

Поехали.

С какой точки стартовали, и кто переобучался

Владимир Гантурин, технический директор Compo Soft
Владимир Гантурин, технический директор Compo Soft

Владимир Гантурин (В.Г.): Переобучение было для всей команды и началось вовсе не с обязательного «Всем пройти первый уровень JavaRush до конца недели». Процесс шел волнами, если так можно выразиться. Сначала была первая волна — четверо сеньоров, которым было интересно и которые готовы были экспериментировать в поисках наиболее эффективного процесса обучения. Потом — вторая, третья, четвертая волна: это были все остальные разработчики, в зависимости от своей мотивации, загруженности и желания вписаться в новую архитектуру.

Важно: переобучение шло параллельно с поддержкой проектов на PHP. Приходилось выделять отдельные полные дни на обучение, лавируя между дедлайнами. То есть полдня пишешь на PHP, полдня учишься писать на Java. Привет, раздвоение личности.

Подчеркну никто из разработчиков не был поставлен перед ультиматумом — «Или переходишь на Java, или увольнение». Нет. Мы продолжали — и до сих пор продолжаем — поддерживать и в чем‑то развивать старую платформу на PHP. Она обслуживает текущих клиентов, получает обновления, доработки, поддержку. Так что любой разработчик, кому комфортно было оставаться в PHP‑стеке, мог спокойно выбрать этот путь — и остаться в команде без какого‑либо давления.

Кто хотел расти и пробовать новое — вписывался в Java‑направление. Такой подход позволил сохранить мотивацию, команду и плавно запустить миграцию технологий без ломки всей компании через колено.

Как готовились к учебе, и кто менторил

(В.Г.): Самым важным оказалось не техническое, а ментальное переобучение. Команде открыто объяснили: через год, а скорее полтора — хотим, чтобы весь стек был на Java, и если хотите — включайтесь. Без прессинга, на добровольной основе. Многие подключились — и это сработало лучше любого KPI.

Был внутренний ментор — и это был я, Владимир Гантурин. Я и лекции читал, и архитектуру показывал «на пальцах», и обучение курировал индивидуально — подстраиваясь под опыт и специализацию. Позже появился core‑team — ядро Java‑команды, где каждый отвечал за свое направление: безопасность, поиск, eCommerce, данные. Остальные могли обращаться за консультациями — по модели «техподдержка 2.0».

Плюс я как CTO активно общался с коллегами из других сфер — е‑коммерции, банков, производств. Реальные кейсы и опыт людей из отрасли — лучший метод обучения.

Сообществам — отдельное спасибо за поддержку

(В.Г.): К слову, менторство не замыкалось внутри команды. Мы активно взаимодействовали с сообществом, и в некоторых случаях это дало даже больше, чем книжки и официальная документация.

Особая благодарность Т1 — за технологические конференции, в частности Angular Meetup. Благодаря этим мероприятиям мы познакомились с крутыми инженерами, обсудили подходы, проверили идеи и убедились, что движемся в правильном направлении. Это общение в итоге определило выбор Angular как фронтенд‑стека.

Большую роль сыграло русскоязычное Angular‑сообщество и смежные Telegram‑каналы. Многие участники этих чатов стали нашими друзьями. Там можно было задать вопрос «в лоб», получить ответ, совет по архитектуре и свежую боль с продакшена — все в одном флаконе. Это сильно ускоряло процесс принятия решений.

Что касается бэкенда, здесь не обошлось без:

  • pro.jvm — крупнейшее сообщество JVM‑разработчиков на русском языке;

  • конференций Joker — с реальными кейсами и глубоким разбором технологий;

  • материалов и курсов от OTUS — как бесплатных, так и платных.

Когда ты можешь в любой момент найти разбор настоящих кейсов от практиков, а не листать условный туториал «Как сделать REST API за 5 минут» — переобучение перестает быть абстракцией. Оно становится реальной инженерной практикой.

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

Использовали ли курсы, книги, воркшопы?

(В.Г.): Жесткой методички у нас точно не было. Формат обучения — адаптивный: кто‑то любит читать документацию, кто‑то — смотреть онлайн‑уроки. Использовали все:

  • Java Core (теория + практика);

  • Spring и Spring Boot — основа всей архитектуры;

  • Hibernate (а к нему мы еще вернемся);

  • Elasticsearch — потому что поиск в Enterprise должен быть быстрым;

  • CI/CD, менеджеры пакетов, Angular — все, что нужно для жизни.

Воркшопы делали сами: разбирали кейсы, писали небольшие модули, обсуждали ошибки

Где было больно: что самое сложное — язык, экосистема, архитектура?

(В.Г.): Воркшопы делали сами: разбирали кейсы, писали небольшие модули, обсуждали ошибки — не Java. Язык, экосистема, даже Spring — все заходит, если ты не первый день в разработке. Особенно если устал от хаоса, который приносит динамическая типизация PHP.

Самым сложным делом была организация рабочего дня у участников обучения. Когда ты утром фиксишь баг в PHP‑монолите, днем учишься писать микросервис на Java, а вечером деплоишь все на staging — мозг начинает греться.

Было ощущение, что работаем в двух реальностях одновременно. Но никто не уехал в направлении «Канатчикова дача» (москвичи и любители творчества В.Высоцкого поймут). Хотя моментами было близко к этому.

Сколько времени занял путь от “Java for Dummies” до “Пишем прод”

(В.Г.): Первые пробные шаги в сторону Java мы начали делать еще в 2018 году. Тогда это были скорее эксперименты: изучение экосистемы, «пробы пера» с микросервисами, попытки разобраться, как вести проекты без привычного PHP‑монолита. Никто не ставил задачу «запустить в прод к НГ 2019». Это была плавная разведка боем.

Но уже в 2020 году мы вышли в прод с первым клиентским решением на Java. То есть от первых экспериментов до полноценной продакшен‑системы прошло около 1,5 лет. И это при том, что:

  • никто не сидел на курсе Java с утра до вечера — обучение шло параллельно с проектной работой;

  • команда одновременно поддерживала и развивала проекты на PHP;

  • стек и архитектура рождались прямо на месте — не по шаблону, а по живым требованиям платформы.

Сравните: типичный онлайн‑курс по Java для начинающих (например, в США на Coursera) рассчитан на 3–6 месяцев при условии нескольких часов в неделю. Bootcamp'ы и коммерческие интенсивы — на 4–9 месяцев при полной занятости. После этого человек, в лучшем случае, выходит на уровень «я джун».

У нас же разработчики не просто «выучили язык», а начали писать рабочие сервисы в связке с фреймворками (Spring, Hibernate, Kafka), настраивали CI/CD, проектировали API. По сути, за это время они выросли от опытных PHP‑разработчиков до Java‑инженеров уровня middle и выше, но с пониманием предметной области, архитектуры и уже работающим продом за плечами.

Также можно сравнить, что типичная карьера Java‑разработчика до уровня самостоятельной разработки в проде занимает 1,5–2 года после переобучения. Мы этот путь прошли быстрее — за счет вовлеченности, правильного менторства и задач, которые с самого начала были реальными.

Так что «полтора года до прода» — это интенсивный, но достижимый производственный цикл переобучения команды с сохранением качества, темпа и получения искомого бизнес‑результата.

Какие практики оказались наиболее полезными

(В.Г.): Оказалось, что лучшее, что можно сделать — это вести базу знаний. Не в духе «поместим все в Confluence и забудем», а именно живую, с:

  • архитектурными схемами,

  • примерами кода,

  • типовыми решениями задач,

  • граблями и обходными путями.

А еще — вовлекать людей через практику. Самый крутой способ обучения: берешь задачу «из песочницы» и делаешь рабочий модуль.

Как устраняли разрыв между динамической (PHP) и статически типизированной (Java) разработкой

(В.Г.): Для наших PHP‑разработчиков, уставших от ошибок типа Call to undefined method stdClass, переход в мир строго типизированных классов был скорее облегчением. Да, нужно больше писать. Но и IDE подсказывает больше, и багов на ровном месте меньше. Так что никакого «культурного шока» не случилось — скорее наоборот: наконец‑то можно наводить порядок.

Мысль простая: если ты долго работаешь с динамической типизацией, то к определенному моменту у тебя появляется устойчивая аллергия на магические баги. На переменные, которые «иногда массив, а иногда строка», на null, который прополз в самое неожиданное место, или на →name, который сработал на одном окружении, но не на другом.

В Java такие трюки не пройдут: если метод не существует — он даже не скомпилируется. И это оказалось не тормозом, а наоборот — опорой. Да, код становится иногда больше бойлерплейта. Зато IDE (будь то IntelliJ IDEA или Eclipse) понимает весь типовой граф, автодополнение работает как надо, и можно быть уверенным, что если компилируется — то оно, скорее всего, работает.

Мы подошли к вопросу прагматично:

  • Разбирались в core‑принципах типизации: наследование, интерфейсы, generics;

  • Учились правильно использовать аннотации и валидацию на уровне моделей (например, @NotNull, @Size, @Pattern);

  • Обращали внимание на такие вещи, как DTO vs Entity, чтобы не городить бесконечно мутирующие объекты, как это часто происходит в PHP;

  • Стали по‑новому относиться к ошибкам — они теперь всплывают раньше, на этапе компиляции, а не в проде (баги особенно любят всплывать ночью).

Один из наших разработчиков после нескольких месяцев на Java написал в командный чат: «Раньше я боролся с багами после релиза. Теперь они не дают мне собрать проект».

Также многое дал сам процесс написания интерфейсов. В PHP это часто считается избыточностью — «зачем интерфейс, если можно просто вызвать метод напрямую?». В Java контракт важнее имплементации. Это меняет мышление: ты начинаешь проектировать код вперед, а не латать его по ходу.

Отдельный бонус — тестируемость. С жесткой типизацией стало проще писать unit‑тесты и «мокать» зависимости. Компилятор стал нашим первым «ревьюером».

В целом, переход на статическую типизацию ощущался как упорядочивание и взросление. Да, больше кода. Зато он говорит с тобой честно.

Вывод: в PHP ты просто надеешься, что переменная содержит то, что надо. В Java ты уверен, потому что компилятор тебя не пустит дальше.

Что использовали из фреймворков

(В.Г.): Тут трудно быть оригинальными:

  • Spring Boot — база всей архитектуры.

  • Spring Security, Spring Data, Spring Cloud — как по нотам.

  • Немного Quarkus — пробовали на легких сервисах.

  • Hibernate — тут еще скажу ниже.

Вот как‑то так.

А песочница была?

(В.Г.): Обучение не было отвлеченным от практики. Песочница — это наш боевой тренажер, где каждая задача выглядела как мини‑проект. Разработчик учится, но при этом пишет компонент, который позже идет в прод. Это экономило время и сразу окупало обучение.

Поэтому полноценная «песочница» у нас была — и даже не одна. Мы настроили отдельные экспериментальные стенды и инстансы, специально предназначенные для обучения и обкатки решений. В них можно было не бояться «сломать прод» — вся инфраструктура была изолирована, но при этом имитировала реальные условия разработки.

Сразу договорились: обучение — это не просто «посмотри курс и поставь галочку», а включение в реальную разработку. Поэтому в программу входили конкретные практические задачи — например, сделать законченный модуль ядра платформы. Не «в вакууме», а с настоящим API, базой данных, бизнес‑логикой и UI.

Пример из песочницы:

Одна из типовых задач — модуль управления производителями. Это, казалось бы, простой CRUD‑список (create/read/update/delete), но с деталями:

  • фильтрация, сортировка, пагинация;

  • типовой интерфейс;

  • бизнес‑валидация;

  • интеграция с системой конфигураций;

  • частичная генерация кода (через внутренний генератор);

  • остальное — руками, чтобы разобраться в архитектуре.

Мы написали подробную пошаговую инструкцию, как сделать такой модуль: какие классы создать, как связать их между собой, где шаблон, где кастом, как устроена генерация. В результате разработчик осваивал Java, Spring и структуру платформы на практике, а полученный модуль внедрялся в реальную платформу и шел в прод.

Подход «учись через полезное» сработал отлично: разработчик учится быстрее, когда видит, что его код живет в реальной системе.

Как оценивали готовность разработчиков

(В.Г.): Сначала — этим экзаменатором был я как CTO. Потом — core‑team. По‑домашнему: без сертификаций и тестов. На деле все видно по диалогам, code review и архитектурным решениям. Если разработчик говорит «давайте вынесем этот сервис в отдельный контейнер и повесим circuit breaker» — это уже не джун.

Как изменилась структура команды после обучения

(В.Г.): Java‑архитекторы не пришли снаружи — они выросли из core‑команды, которая участвовала в создании платформы с нуля. Границы между ролями размыты: если ты эксперт в части платформы, ты и отвечаешь за ее развитие. Все по‑честному.

Рыбацкие истории о том, что пошло не так 

(В.Г.): Hibernate. Он может быть полезным, а может — устроить ад. Без глубокого понимания, как он работает внутри, можно получить неочевидные проблемы с производительностью. Нам пришлось пересматривать стратегию его использования, обучать разработчиков более глубоко и внедрять ограничения.

Учитесь на чужих ошибках: Hibernate — не магия, а инструмент. Используйте его с умом.

Итог: стоит ли повторять наш путь?

«Ха‑ха, лучше не ходить по этой дорожке», — улыбается CTO Compo Soft.

(В.Г.): Да, это было тяжело. Да, можно сломать все. Да, потребуется железная воля, вечерние эксперименты, и постоянная работа над собой.

Но если вы точно знаете, зачем переходите на другой стек — то этот путь проходим. Главное — не насильно, а с мотивацией. Не «вы все должны», а «вы можете — и получите от этого удовольствие и кратный рост в скиллах».

Заключение

Переход с PHP на Java в Compo Soft был не просто сменой языка. Это была смена мышления: от скриптов к архитектуре, от костылей к контрактам, от «лишь бы работало» — к «это можно масштабировать и сопровождать».

И если вы стоите перед выбором — менять стек или нет — подумайте не только о технологиях. Подумайте, готовы ли вы и ваша команда расти вместе с системой. Если да — идите не оглядываясь, и все получится.

Комментарии (38)


  1. RodionGork
    14.10.2025 07:51

    Посмотрел и предыдущую статью заодно - в общем вы очень странный путь выбрали и пошли по нему странным способом.

    Сейчас если с PHP и переписывают то на Go. Джава это прекрасно но в бэкенде "Run everywhere" абсолютно неактуально - у вас всё будет крутиться в кластере в однотипных контейнерах на линуксе. Нативная компиляция сэкономит изрядное количество денег на инфраструктуре. Java жирная. Go не фонтан конечно, но я сам мигрировал сюда после 10+ лет в Java и пока выглядит так что это не была моя фантазия, а весь энтерпрайз потихоньку движется в этом направлении.

    Ну и не говоря уж о том что м.б. вы зря с PHP уходили. Я так понимаю проблема была не в нём а в том что напедалили монстра в котором самим уже страшно было разбираться. Ну и решили что для решения проблем нужно просто махнуть шашкой / серпом / волшебной палочкой и сейчас сразу станет все хорошо. Ждём что вы через 10 лет о чудо-решении на "Java + MACH" напишете :)


    1. Alexufo
      14.10.2025 07:51

      Энтерпрайз потому что на джава, кому ты продашь продукт на пыхе, в банк, например?


    1. denis_iii
      14.10.2025 07:51

      В Java давно есть компиляция в натив, включая Spring Boot. Что позволяет комплексно отлаживать большие и сложные системы в JVM и компилировать стабильные версии в натив, включая виртуальные потоки.


    1. gun2rin
      14.10.2025 07:51

      Переписать с пхп на го - классика ) это самое простое и понятное что можно сделать. Весь вопрос то не только в потреблении ресурсов и "жирности" - а есть еще ряд факторов по которым го не подходит для определенных вещей. Либо подходит, но больно ) Насчет того, что весь ентерпрайз движется в этом направлении - тут очень спорно. Трудно согласиться.


  1. hedgehog1
    14.10.2025 07:51

    взяли всю свою PHP‑команду и начали переобучать ее на Java.

    А в чем заключалась мотивация самой команды? Зачем опытному разрабу переучиваться на джуна, еще и в Java, где не легко и не просто, лет 5-7 потребуется для уровня "уверенный мидл".


    1. gun2rin
      14.10.2025 07:51

      Да в принципе все стали понимать что PHP уходит. Есть пара ребят которые ушли по классике в GO. Но Java была неплохой альтернативой. Ребятам было интересно. Ну и насчет 5-7 лет - это не так совсем. Если человек - серьезный senior на PHP - я считаю год-полтора и он в Java как минимум middle+ будет. Сама основа быстро заходит. Инженерный опыт тут больше играет роль.


      1. hedgehog1
        14.10.2025 07:51

        PHP уходит

        Я бы и про Java не сказал, что она куда-то вместо чего-то приходит. Запросто может сдуться за 5-7лет до пенсионеров с не повышающимися зарплатами.

        Если человек - серьезный senior на PHP - я считаю год-полтора и он в Java как минимум middle+ будет

        Никем он не будет за год-полтора. Чтобы пойти на hh и получить работу с нормальными деньгами, придется очень много зубрить и сильно приврать опыт Java. По одному проекту, переписанному командой джунов, вряд ли прокачаешь актуальный на рынке стек.


        1. gun2rin
          14.10.2025 07:51

          в Java нет ничего супер сложного. По мне оно поудобнее и поприятнее пхп в разы. Если специалист хорошо ориентируется в архитектурных подходах и в инфраструктурных делах - ну уровень высокий если в целом, ничего сложного перекатиться в жаву не вижу. Сейчас есть другая проблема конечно с HR и рынком труда. Много волков и вкатышей. Это проблема влияет на всех. Тут вот сложно ответить на вопрос как именно сегодня быть. Зубрить особо ничего не надо, как я уже сказал - подходы везде очень похожие - оно просто должно заходить. Если ты опытный в чем-то - то другое легко зайдет. Это же не переучивание с пилота самолета на капитана корабля.


          1. hedgehog1
            14.10.2025 07:51

            в Java нет ничего супер сложного

            В большинстве ЯП нет ничего сложного, но включиться в разработку весьма не просто. У меня ощущение, что вы переоцениваете свою команду. У меня на прошлой работе был опыт работы с двумя стеками, мне об этом не говорили при найме, но потом оказалось, что проект пишется дважды, каждый исходник сохраняется в два репозитория. Часть клиентов сидела на одной СУБД, а часть на другой.

            Так вот я вам скажу, что меня не хватило, чтобы влезть в мир чужой для меня СУБД и там прокачаться хотя бы на уровне мидла. Да, синтаксис и основы учатся за год, но это уровень - джун. А вот дальше уже нужно наступить себе на горло, чтобы разобраться с чем-то, такими темпами я бы лет за 10 вышел на мидла.


            1. gun2rin
              14.10.2025 07:51

              Могу сказать следующее. Команда именно разработки - почти 20 человек. Часть команды - это ребята которые всю жизнь работали на java/spring стеке - и проблем с нашими проектами у них нет. Кроме того, мы работаем с крупными интеграторами, где свои команды разработки, которые онли-жава - внедряют наши продукты. Там вся наша кодовая база проходит внутреннюю валидацию. Естественно, мы как вендоры с ними взаимодействуем - и с лидами и с архитекторами и с линейными разработчиками и с тестерами. Получаем обратную связь. Вопросов к нашей архитектуре, коду, подходам и т.д. - не возникает критичных. Кроме того, интеграторы интеграторами - часто у заказчиков своя вообще технологическая база и команда - и с ними мы тоже прекрасно работаем. По крайней мере тьфу тьфу никто не говорил - ой че это вы такое наделали, какой ужос. Насчет СУБД... мм... ну мы поддерживаем например postgres и oracle - ну платформа в смысле. Поддержку oracle конечно не просто было подвозить (клиент захотел) - но опять же ничего ужасного.


              1. hedgehog1
                14.10.2025 07:51

                Часть команды - это ребята которые всю жизнь работали на java/spring стеке

                Это уже малость проясняет ситуацию. А остальные, кто изначально сидел на php, остались в команде джунами для перекладки джейсонов, видимо от безысходности.

                но опять же ничего ужасного.

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


                1. gun2rin
                  14.10.2025 07:51

                  Нативные жависты к нам пришли уже после того как у нас в прод вышла платформа. Так что тут мимо. Иначе они бы не пошли к нам - т.к. не интересно.


                  1. hedgehog1
                    14.10.2025 07:51

                    Я уже окончательно запутался в вашей истории, нативные жависты к вам пришли работать на php, а потом вы их переучили обратно?


                    1. gun2rin
                      14.10.2025 07:51

                      ахаха. у нас была платформа на пхп. и команда на пхп. мы уперлись в определенные потолки и узкие горлышки и начали смотреть что с этим делать. Сделали MVP на жаве. Пилотным клиентам понравилось - они решили вложиться - вот полтора года мы выпускали пилот. Выпустили, у клиентов поперло все и полетело - они довольны. Мы стали остальную команду переучивать и после этого уже возникла необходимость расширять штат - начали брать целевых спецов.


                      1. hedgehog1
                        14.10.2025 07:51

                        Все равно не понятно, что было раньше, курица или яйцо. Кто писал MVP на жаве, если была команда на пхп? Кто сопровождал это до момента переучивания и найма нативных спецов.

                        Мы скоро придем к тому, что никто никого не переучивал, а все занимались своим делом, негодных просто уволили.


                      1. gun2rin
                        14.10.2025 07:51

                        MVP делал я, потом подключил пару ребят еще. У меня опыт с Java уже был. Я с ней работал еще с 2005 года.


                      1. hedgehog1
                        14.10.2025 07:51

                        Ну то есть заголовок "Как мы за 1.5 года переобучили с PHP на Java всех разработчиков" даже не рядом с правдой. В команде из 20 человек, кто-то уволился, кто-то имел опыт с 2005г, а половину нативных и вовсе потом наняли.


                      1. gun2rin
                        14.10.2025 07:51

                        Да почему. 20 человек это сегодня. На тот момент было человек 7-8 кажется. Все PHP.


                      1. hedgehog1
                        14.10.2025 07:51

                        Ну так все сходится, из 7 человек 3 работали с Java с лохматых годов, кто-то уволился, остальных потом нативных наняли. Итого было переучено 1,5 пхписта ))

                        У вас администрация команды не пыталась выйти в окно с таким размером команд? Или в командах больше никого нет, кроме разрабов?


                      1. gun2rin
                        14.10.2025 07:51

                        странная у вас математика ))


            1. KoIIIeY
              14.10.2025 07:51

              Там mvc, тут mvc, там сервисы и солид, тут так же.

              Плюс ллмки сейчас на любой банальный аопрос мгновенно отвечают что и почему.

              Ндигственно, жава дурацкая, котлин - вот выбор.


              1. gun2rin
                14.10.2025 07:51

                котлин топ да, прикольно что котлин с жавой интероперабельны. можно подключить ядро на жава и новый проект на котлине запустить ) у нас такое даже в роадмепе есть


    1. atues
      14.10.2025 07:51

      Да ерунда :) Пару месяцев на привыкание к синтаксису и в полный рост можно клепать круды, да джейсоны туда-сюда перекладывать. Тем более, примеров как это делается пруд пруди. А там, по ходу дела, постепенно догонят и остальное.

      Вот для нагрузок, многопоточки, безопасности и прочих действительно сложных вещей, нужны сильные и опытные специалисты. Но немного. Их и правда, не один год "готовить" надо. Таких лучше нанять


      1. hedgehog1
        14.10.2025 07:51

        можно клепать круды, да джейсоны туда-сюда перекладывать.

        Это стоит 120-150к на рынке труда, еще задолбаешься проходить фильтры эйчаров и собеседования с литкодом. Не понятно, зачем ради этого переучиваться с php.


        1. atues
          14.10.2025 07:51

          Так я понял из статьи, что разрабов им искать не надо: достаточно своих пхп-шников доучить


          1. hedgehog1
            14.10.2025 07:51

            А в каком месте у меня написано "искать"?


            1. atues
              14.10.2025 07:51

              Вы писали, что надо проходить фильтры эйчаров и собеседования с литкодом. В случае поиска на стороне - да. А своих - зачем пропускать через эту мясорубку? Поэтому и написал, что искать им никого не надо: из тех, кто есть вырастят


      1. gun2rin
        14.10.2025 07:51

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


        1. cpud47
          14.10.2025 07:51

          Многопоточности ни в пхп, ни в питоне нет. Они там это другими средствами решают (многопроцессность, gil и пр). То есть, сколько бы опыта не была в том же пхп, человек там не узнает про атомики, CAS, memory orderings и happens before.

          Аналогичная проблема со структурами данных: ну не научиться человек делать кастомные хешмапы в пхп. Поэтому тоже придётся учиться этому с нуля.


          1. gun2rin
            14.10.2025 07:51

            там есть надстройки типа swoole и либы для коллекций. но такое, согласен


          1. atues
            14.10.2025 07:51

            Вроде в 3.14 запилили настоящую многопоточность и как-то gil обошли? Или я ошибаюсь?


          1. bondeg
            14.10.2025 07:51

            В PHP разработчик обязан знать про атомарность и тот же cas, как один из вариантов её реализации, в виду того, что один и тот же запрос может быть обработан параллельно дважды (кликнули на кнопку дважды, кулхацкеры и т.д.).

            А зачем ему учиться делать кастомные хешмапы, когда у него есть массивы?


  1. WebMonet
    14.10.2025 07:51

    Как я понял, вы устали плохо писать на РНР, поэтому решили начать хорошо писать на Java.

    Я себе тоже в каждом новом проекте говорю, что уж этот то я точно буду делать чисто и аккуратно...


    1. gun2rin
      14.10.2025 07:51

      ну не то что плохо. но легаси поднабралось конечно плотное. там платформа была еще до всяких autoload-ов и namespace-ов сделана и мигрировала потом на новые версии пхп


      1. bondeg
        14.10.2025 07:51

        И в чём проблема была тогда прикрутить рядом новую платформу и постепенно переводить кодовую базу на неё?

        А так, рефакторинг ради рефакторинга выходит, плюс бонусом оверхед на смену ЯП.


        1. gun2rin
          14.10.2025 07:51

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


  1. deniskorbakov9
    14.10.2025 07:51

    Спасибо за статью

    а были те люди которые попробовав джаву не решились с ней работать и остались на пхп проекте ?


    1. gun2rin
      14.10.2025 07:51

      Прям на PHP остаться полностью никто не пожелал. Если мы берем для php-проектов PHP разработчика - он на Java команду обычно смотрит какое-то время и перекатывается в итоге ))

      Был один сотрудник. Причем он неплохо влился, но решил все же в go уйти впоследствии, года 4 назад. Так же были пара ребят джавистов - один ушел в моб разработку на flutter и один просто перешел в другую компанию.