Как я начал делать сайты на Go и зачем вообще, если есть PHP?

Php vs Go
Php vs Go

Если честно, когда то я тоже думал, что PHP это единственный нормальный способ делать сайты. Ну реально, куда ни ткни везде WordPress, Laravel, всякие CMS, куча плагинов, шаблонов. Установил, настроил, и всё у тебя уже есть сайт. Да, местами кривенько, но работает же. Особенно для MVP вообще топчик. Мне и самому приходилось делать сайты на PHP и делать это профессионально на протяжении 10 лет, и всё устраивало и все было прекрасно, пока не начались проекты посложнее.

В какой то момент у меня начали появляться задачи, где уже не хватало того, что может предложить PHP. Типа нужно API, которое быстро отвечает, одновременно обрабатывает много запросов, держит вебсокеты, делает что то в фоне. Вот тут начались тормоза. Я пробовал оптимизировать, настраивал Nginx, фигачил кеширование, выкручивался как мог, но всё равно было ощущение что где то что то проседает. И в какой то момент я понял, что я больше времени трачу на борьбу с ограничениями самого стека, чем на разработку продукта.

Вот тогда я и начал смотреть в сторону Go. Сначала, если честно, он мне показался каким то слишком строгим и даже в какой сто степени сухим чтоли. Типизация, компиляция, всё надо писать и делать руками. Я был в лёгком недоумение как вообще на этом сайты делают? Но когда я взял простой проект и попробовал всё собрать на Go это было прям открытие. Так еще и куча всяких фреймворков есть типо Fiber, Gin, Wails и т д и все они опен соурс. Буквально за пару вечеров я написал работающий API, подключил шаблоны, сделал базу, всё разложил по папкам. И самое главное всё работало быстро. Прям молниеносно. Я скомпилировал один бинарник, закинул его на сервер, и он сразу запустился. Без Apache, без FPM, без всей этой дичи, которая обычно сопровождает PHP.

Я начал кайфовать от процесса. В Go ты понимаешь, что происходит. Если ты что то написал оно работает ровно так, как ты написал. И когда система начинает обрастать функционалом, когда появляется авторизация, CRUD, админка, API ты не чувствуешь, что всё превращается в кашу. У тебя всё под контролем. Да, где то дольше, чем в Laravel. Но зато ты уверен в своём коде.

И вот что я понял PHP хорош, когда надо быстро и просто. Но если ты хочешь делать что то серьезное, что то, что потом будет масштабироваться, жить долго, выдерживать нагрузку Go в этом плане реально даёт другие возможности. У него нет той гибкости, как у PHP, в плане шаблонов и фреймворков, но у него есть сила, которую ты начинаешь ценить со временем.

Так что да, сайты на Go делают. Не всегда это быстро, но ты получаешь мощный фундамент. И что самое главное ты растёшь как разработчик. Потому что начинаешь не просто "писать сайт", а реально строить систему. Ты думаешь, как она будет масштабироваться, как обрабатывать ошибки, как логировать, как деплоить. Это уже другой уровень ответственности и мышления.

Я не сразу понял, зачем мне Go. Сперва думал, что это просто ещё один модный язык, хайп прошёл забудут. Но когда начал использовать его в реальных проектах, особенно там, где нужна стабильность, скорость, масштабируемость понял, что PHP уже не тянет на уровне архитектуры. Не потому что он плохой, а потому что он другой. Он был создан в другую эпоху, под другие задачи. Сейчас сайты это уже не просто HTML со страничками. Сейчас это полноценные системы с очередями, с микросервисами, с real time, с API, с мобильными приложениями, которые всё жрут через backend.

И вот под это всё Go ложится просто идеально. Он может показаться непривычным. Возможно, не сразу будет получаться. Но если пройти этот порог, если вкатиться ты начинаешь реально кайфовать. Ты понимаешь, как работает сеть, как обрабатываются запросы, что происходит внутри. Ты как будто становишься не просто кодером, а инженером или даже архитектором, который строит фундамент под что то большое.

Так что если ты сейчас разрываешься между PHP и Go просто попробуй. Не надо сразу переводить все проекты. Возьми один. Маленький. И сделай его с нуля на Go. Просто сам напиши backend. Сделай базу, роутинг, логику. Пройди этот путь один раз, второй раз и если надо будет третий раз и ты поймёшь, зачем вообще всё это.

Я не говорю, что Go лучше PHP. Просто у каждого свой контекст. Я просто для себя понял, что когда хочу сделать по настоящему мощную штуку я иду в Go. А для MVP я использую теперь PHP.

3
4 комментария