Привет, друзья!
Мы уже сделали два шага к созданию интернет-магазина: установили фреймворк Laravel и установили пакет Breeze, позволяющий регистрироваться и залогиниваться покупателям на сайте. То есть, у нас уже есть работающий интерактивный сайт. И до сих пор мы не написали ни одной строчки кода. А вот сегодня нам предстоит суперкраткий интенсивный курс по программированию продолжительностью аж в целых 10 минут.
Начнём с самого важного. Вам необходимо освоить так называемый git. Это система управления версиями. Она позволяет сохранять промежуточные результаты вашей работы. Почему это важно? Потому что настоящие правильные программисты двигаются от одной стабильной версии к другой стабильной версии. У них всегда всё работает в любой момент времени. Если не использовать git и хаотично исправлять код в разных модулях, у вас определённо накопится так называемый «технический долг», вы подзабудете где и что исправляли ранее и потеряетесь в своём собственном проекте. Он перестанет быть для вас понятен. Без использования версий вы неумолимо будете приближаться к катастрофе с каждой новой строчкой кода. С другой стороны, использование git гарантирует, что вы всегда легко и просто можете вернуться к чему-то стабильному, надёжному и понятному.
Git — это сама программа, работающая на вашем локальном компьютере. Вместе с ней крайне рекомендуется использовать какой-нибудь онлайн-сервис для хранения вашего проекта в интернет. То есть, каждую стабильную версию вы можете бесплатно сохранять в каком-нибудь облачном хранилище вне вашего компьютера. Таких сервисов множество. Наиболее популярный — это GitHub, но в настоящее время из-за санкций возможны разные приколы. В частности, GitHub отказывается напоминать пароль, если ваш email находится в российском домене .ru. Поэтому можете рассмотреть альтернативы. В России свой Git имеют Яндекс, Сбербанк, Департамент информационных технологий Москвы и булочная «Машенька» на первом этаже вашего дома.
Собственно, давайте уже попрограммируем. Я подумал, какую функцию можно было бы реализовать в самом начале и остановился на смене языка сайта. Если ваш сайт заточен под местную аудиторию, вы можете жёстко забивать во все шаблоны текст исключительно на русском языке, и всё будет замечательно работать. Всё, что мы сегодня напишем, вообще не обязательно для вашего интернет-магазина. Но на этом примере я хочу объяснить некоторые важные принципы вайб-кодинга в среде Laravel.
Для реализации смены языка мне пришлось вручную поправить или создать всего 5 файлов. Ещё несколько файлов нагенерилось специальными командами, такое мы уже видели на предыдущих шагах.
До начала работы узнайте у нейросетей, как сохранить вашу текущую стабильную версию в Git. Если вы в процессе экспериментов запутаетесь, то сможете к ней вернуться одной командой.
Ваш первый опыт реального программирования может затянуться. Несмотря на то, что затронем руками всего 5 файлов и вы увидите все правки и команды, цель на сегодня — не просто механически их повторить, а понять, как и почему это работает. Если бы вы решали эту задачу с нейросетями самостоятельно и вообще без опыта программирования, она могла бы занять и неделю, и две. Но не считайте это время потерянным! Наилучшее, что могут дать вам нейросети — это не готовый код, а ваши навыки и квалификация. В процессе вы обучаетесь. Рано или поздно окажется, что вам мелкую задачу решить самому будет проще и быстрее, нежели лезть в чат нейросети, формулировать запрос, копировать код в нужное место и проверять, насколько хорошо получилось. Потому примите за должное, что тупить на самых первых этапах — совершенно нормально! Потом всё пойдет, как по маслу.
Итак, что я реально делал для реализации смены языка сайта? Конечно, я спросил, есть ли стандартный пакет Laravel, который это делает. Для любой популярной задачи вы найдёте хотя бы один готовый пакет, а наверняка их будет несколько и придётся выбирать. Сегодня вместо Гугла я спрашивал китайскую нейросеть Qwen. Какую именно нейросеть использовать — это на ваш вкус. У меня выбор зависит от того, с какой ноги с утра я встал. Некоторые нейросети не позволяют загружать в чат с ними свой программный код, там можно только поболтать. Если вы хотите править что-то готовое, возможность показать нейросети свой код важна. Сейчас не очень важна. Я мог бы продолжить с Гуглом, просто сообщив ему, что у меня есть только что установленный Laravel с единственным пакетом Breeze. Если вы продолжаете диалог из предыдущих наших шагов создания интернет-магазина, то вообще никакая дополнительная информация Гуглу не нужна, он уже учитывает контекст и знает о состоянии вашего проекта.
На экране вы видели, какие вопросы я задавал и какие инструкции получил. Мне нужно было установить новый пакет, поправить несколько существующих файлов и создать один новый файл. Давайте посмотрим, что поменялось в проекте. Показать все отличия от предыдущей версии поможет, конечно же, Git.
composer.json и composer.lock обновились сами при установке пакета. Править в них руками ничего не надо, но нужно помнить, что эти файлы содержат информацию о пакетах. Забыли что в вашем интернет-магазине установлено или какая версия пакета — посмотрите в composer.json.
Сам программный код, который и меняет язык сайта, находится в папке Middleware. В прошлый раз я говорил, что обычно программный код складывают в контроллеры, и только гурманы раскладывают по сервисам, трейтам, хелперам и другим местам. В данном случае оправдано именно использование Middleware. Как следует из названия, это такой специальный способ выполнять какую-то функциональность, что называется, посреди дороги или «между делом». То есть, до выполнения основной функции, для которой предусмотрена какая-то страница, нужно проверить, а на каком языке эту страницу выводить-то. При этом никак не затрагивается функциональность самой страницы. Как она работала, так и работает, и понятия не имеет, что кто-то по пути у неё паспорт проверил.
Далее… Что запускает смену языка? Кнопочки или ссылки какие-то нужны. Где их размещать? В шаблоне страниц, разумеется! Как мы уже знаем, в среде Laravel мухи отделены от котлет, а программный код от внешнего вида страниц. Более того, в так называемых «ресурсах» отдельно от самих страниц лежат некоторые скрипты и стили. Скриптами мы будем называть то, что работает не на нашем сервере, а на компьютере или телефоне покупателя, который сейчас просматривает страницу нашего интернет-магазина. Работающая на стороне сервера часть софта называется бэкендом, а всё, что творится на стороне покупателя — фронтендом.
Итак, какие шаблоны у нас уже есть и где разместить ссылки на смену языка? Страница welcome.blade.php — это шаблон заглушки Laravel, титульная страница нашего сайта. Ей перевод не требуется, её мы в итоге просто выбросим и заменим на нормальную страницу с товарами.
В папке layouts находятся три главных универсальных шаблона сайта. Guest.blade.php — эта главная страница для незалогиненных гостей сайта. В неё вставляются все формы регистрации и залогинивания, которые размещаются в папке auth. То есть, шаблоны blade — это многоуровневая структура, где одни шаблоны могут вставляться в другие шаблоны. Guest.blade.php описывает общий вид страницы для гостей, а отдельные формы для конкретных страниц лежат в папке auth. Иерархическую структуру имеют и шаблоны для залогиненных пользователей. Главная страница для них — app.blade.php, в которую специальным тегом @include вставляется меню навигации сайта, определенное в шаблоне navigation.blade.php. С шаблонами разобрались. Пока ссылки для смены языка разместим в главном шаблоне для гостей. Возможно, целесообразно это сделать и в шаблоне навигации, но пока не будем.
Что еще нам критически важно знать и где еще потребовались правки? Пора познакомиться с роутами. Роуты, фактически, являются картой сайта, где указано, какие вообще страницы существуют, их адреса, а также видно, какие контроллеры и конкретные методы внутри контроллера отвечают за обработку страницы. Ну и какой шаблон при этом используется. То есть, когда вы сталкиваетесь с незнакомым проектом и желаете понять, что он вообще умеет и как работает, то первом делом смотрите на роуты в web.php
Собственно, главное сказано. Остальные правки минимальные. Какие именно? Middleware нужно зарегистрировать специальным образом в файле bootstrap/app.php. Нужно также указать в файле конфигурации, какие именно языки вы планируете использовать и язык по умолчанию. Ну и в папке lang лежат сгенерированные переводы для всех фраз. Поскольку мы еще не создавали никаких специальных страниц, а лишь использовали один стандартный пакет Breeze, то вручную переводить нам ничего не пришлось. Просто сохранили у себя готовенькое...
Представьте себе, но на этом наш суперинтенсивный курс по вайб-кодингу завершён. Сегодня вы в общем и целом познакомились с тем, как программировать в среде Laravel. Для этого вовсе не нужно досконально понимать, как он устроен. У нас по-прежнему в папках лежит где-то 10000 файлов, а мы знаем назначение всего десятка из них, и этого вполне достаточно для начала! Не нужно знать специальных команд каких-то языков программирования. Нужно только примерно представлять, где что лежит, понимать общие принципы работы и научиться правильно формулировать вопросы к нейросети. Если желаете углубиться в какой-то процесс — просто расспрашивайте нейросеть и экспериментируйте. Практика определяет ваш успех. Чем больше времени вы проводите в диалоге, тем лучше и точнее формулируете свои запросы.
Я вообще не разделяю мнения о том, что из-за нейросетей мы отупеем и разучимся делать что-то сами. Наоборот, нам очень повезло, что теперь у нас не просто есть интернет, в котором можно найти всё. Теперь у нас такой инструмент, который найдёт нужное и очень быстро свяжет это во что-то логически последовательное, избавит нас от рутины и позволит больше времени уделять чистому творчеству. Более того, я уверен, что имеется еще один побочный и крайне положительный эффект. Нейросети параллельно дрессируют нас быть хорошими людьми, как бы странно это ни звучало. Почему? По причине того, что нейросети «железные». С ними бесполезно спорить, им бесполезно что-то доказывать. Почти наверняка железка учтёт ваше раздутое эго и может даже извиниться, но при этом всё равно останется осадочек, что вы хренью какой-то занимаетесь, пытаясь переубедить бота. Со временем это приводит к выработке новых привычек. Вы перестаёте злиться без повода и спорить без нужды, а просто пытаетесь выработать более эффективный подход, как бы добиться наилучшего результата от туповатого, но всезнающего нечто. Так вы постепенно становитесь более уравновешенным и спокойным, и это происходит абсолютно автоматически только благодаря специфическому процессу, в котором участвуете.
Так что вайб-кодинг — это круто! Никто не рождается программистом-сеньором. И нет более эффективного способа им стать, нежели практика с нейросетями, которые бесплатно доступны 24/7, не психуют, не ленятся и не болеют.
Всем добра! Пока-пока!
Комментарии (0)