Привет, я Тэмми Алему. Позвольте мне рассказать вам о моем увлекательном путешествии в качестве стажера Laravel. Я стремился получить опыт работы в отрасли, написать читаемый код и глубоко понять структуру. Вот как все это происходило, с проблемами, с которыми я столкнулся, и решениями, которые я нашел на этом пути.
Во время стажировки у меня было три основные цели:
Отраслевой опыт: получите практический опыт в профессиональной среде.
Читаемый код: пишите чистый, удобный в сопровождении и читаемый код.
Понимание фреймворка: Развивайте глубокое понимание фреймворка Laravel.
Мой путь начался с настройки среды разработки. Перед этой стажировкой я взаимодействовал с серверной частью, используя архитектуру внешнего интерфейса, либо через представления Blade, либо через JavaScript, включенный в Vite. Так что необходимости настраивать CORS и все такое я не особо видел. Затем меня познакомили с Почтальоном — ух ты, какой переломный момент!
Почтальон
Почтальон помог мне настраивать и редактировать HTTP-запросы, передавать параметры и значения, а также управлять аутентификацией и токенами носителя. Это расширило мое понимание структуры серверной части и того, как она работает. Увидеть данные в их необработанном виде и напрямую манипулировать ими было поучительно. Я понял, что, казалось бы, сложные серверные операции оказались проще, чем я думал поначалу.
Композитор
Композитор был еще одним важным инструментом. Я использовал его для установки пакетов и строго придерживался стандартов форматирования PHP PSR-4. Когда я говорю строго, я имею в виду именно это! Хаха. Я сталкивался с ошибками, когда не следовал стандартам, например при создании документации и обнаружении ошибок в пространствах имен из-за лишних пробелов или неправильных соглашений об именах для моделей и таблиц.
Настройка проекта включала в себя несколько ключевых шагов:
Управление репозиторием
Клонирование репозиториев и настройка среды поначалу было довольно утомительно — ха-ха, какая поездка! Меня познакомили с scribe:generate — пакетом, генерирующим документацию. Сначала я подумал: «Что?!» Еще одной проблемой было использование сеялок определенных классов. Я не понимал их назначение по сравнению с обычными сеялками, пока не понял, что php artisan db:seed --class=...Seeder напрямую запускает определенный класс сеялки, что полезно для индивидуального заполнения определенных таблиц или наборов данных.
Модель и обработка данных
Я выделил параметры, необходимые при добавлении новых атрибутов в модели и указанные типы данных. Крайне важно было познакомиться с сериализацией данных и преобразованием их в формат ответов. Я также научился использовать включения и включения по умолчанию для форматирования определенных данных и анализируемые включения для добавления данных в ответы.
Жаркая загрузка
Быстрая загрузка — одна из замечательных вещей, которые я узнал. Вместо ленивой загрузки, когда новый SQL-запрос выполняется в цикле, нетерпеливая загрузка выполняет один запрос для загрузки всех необходимых данных. Помощник with стал жизненно важным для эффективных запросов к базе данных, это заставило меня изучить красивые помощники, доступные в Laravel, какая разница!
Области запросов и построители
Я использовал области запросов, доступные контроллеру, для получения данных перед их преобразованием. Конструкторы запросов также стали моим помощником для упрощения поиска данных.
Контроллеры
Контроллеры обрабатывают базовую логику для различных типов запросов (GET, POST, UPDATE). Я научился писать конечные точки и четко комментировать документацию Scribe. Использование действий для извлечения повторно используемого кода в разные контроллеры обеспечило чистую структуру кода. Еще одним ценным уроком стала реализация методов try-catch при работе с базой данных.
Взгляды
Хотя представления и не использовались широко, в основном они использовались для форматирования ответов по электронной почте.
Разработка API
Я научился проектировать и реализовывать API-интерфейсы, следуя принципам RESTful, и тестировал их с помощью встроенных инструментов ведения журналов Laravel и Postman.
Эти знания подтолкнули меня к созданию и работе с Laravel Socialite, интеграции Google Auth для входа в систему и использованию Laravel Sanctum, прямо в моем профиле GitHub.
Проблемы
Поначалу разобраться в кодовой базе было сложно, особенно потому, что в Postman не было доступных маршрутов сбора данных. Мне пришлось их построить и понять структуру, которая иногда требовала дополнительных параметров и замедляла процесс разработки.
Мои поверхностные фундаментальные знания PHP также повлияли на мой прогресс, что привело к дополнительным затратам времени на выполнение задач.
Решения
Чтобы преодолеть эти проблемы, я сосредоточился на изучении основ и практиковался, работая над отдельной веткой помимо порученных мне задач. Я глубоко погрузился в понимание PHP, используя такие ресурсы, как «Программирование с помощью GIO», «Правильный путь PHP» и Laracasts — очень рекомендую их!
Не запоминать синтаксис — это нормально. Ха-ха, в подобных случаях я всегда ссылался на документацию. Чтение документации расширяет ваше понимание конкретной темы.
В целом мой опыт работы с командой был превосходным. Помимо оплачиваемой должности, они предлагали помощь в понимании и создании приложений. Команда, с которой я работаю, объясняет задачи, которые необходимо решить, и быстро реагирует на проблемы, с которыми я сталкиваюсь.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3