Найти тему

Оптимизация Laravel + Vue проекта

Всем привет. Это моя первая статья-рассказ о своих рабочих буднях в роли full-stack web-разработчика. Надеюсь кому-то будет интересна моя рабочая рутина :)

Сегодня я занимался мелкими доработками в проекте. К примеру, у меня в проекте есть один большой контроллер, который отвечает за CRUD-взаимодействие с несколькими связанными сущностями. От него наследуются контроллеры каждой отдельной сущности, дополняемые своими уникальными переменными. Так вот сегодня убирал ряд переменных в классе, которые не нужны и больше не используются.

Были и всякие приятные мелочи и безделушки (ради такого и работаем :)) Как такая исключительная важная вещь, как выбор иконки для пункта меню из каталога MDI (Material Design Icons). Что называется "почувствуй в себе дизайнерскую жилку")

Помимо этого подчищал и всякие разные мелочи, как, например, вывод дебаг сообщений. О, как часто я про это забывал, теперь это входит в мой чек-лист перед пушем на прод. Это боль, когда прод ломается из-за того, что на проде дебаг выключен и вызов дебаггера там вызывает ошибку

Также сегодня постарался немного оптимизировать древовидный вывод связанных сущностей на одной из страниц. Я обратил внимание, что к базе данных делаются лишние запросы. Сначала не въехал почему, но потом понял. Изначально модели подгружались через функцию ::all(). И это как будто норм, но когда ты у такой модели обращаешься к ее отношениям, то идут дополнительные запросы в БД, поэтому чтобы единоразово выгрузить модель сразу с отношениями пришлось заменить ::all() на ::with()->get() и дополнительные обращения к БД сразу ушли

Кроме того, в контроллере CRUD работы с сущностями немного сократил кодовую базу. Вынес кое-какие повторяющиеся операции в отдельную функцию, а также сократил множество условных операторов if, заменив их на тернарный оператор или однострочный if. Вообще я очень фанатею с тернарный операторов, что в PHP, что в JS и стараюсь везде не забывать сокращать количество строк за счет них, конечно, когда это не в ущерб читабельности, тем более, что мне же самому еще потом с этим кодом возиться ^_^