«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Ларавел, чтобы пойти: мое путешествие и создание волоконного API -шаблона

Ларавел, чтобы пойти: мое путешествие и создание волоконного API -шаблона

Опубликовано в 2025-03-12
Просматривать:410

Laravel to Go: My Journey and the Creation of a Fiber API Boilerplate

после потраченного более четырех лет, погруженных в Ларавель, я очень знаком с архитектурой MVC (модель-видит). Его простота и структура делают радостью работать, и вдумчиво организованные папки Ларавела помогают разработчикам оставаться на пути. Вы всегда знаете, где разместить свой код, а также обширные встроенные инструменты-подключения к датабазе, Redis, очереди, миграции, ORM и многое другое-создают плавную установку. С учетом нескольких настроек в вашей среде ваше приложение готово к работе.

]

для меня подход Laravel's MVC остается одним из самых надежных. Модель определяет ваши данные, view определяет, что видят пользователи, и Controller управляет вашей бизнес -логикой. Это просто, но структурировано, и Laravel по умолчанию обеспечивает эту настройку, что делает ее отличной основой для разработки.

]

, но по мере продвижения моей карьеры, и я работал в разных отраслях и предприятиях, я понял, что подхода MVC Laravel не всегда было достаточно, особенно для сложных приложений.

]
]

] Расширение MVC Laravel для сложности

]

MVC сияет для простых приложений, но может терпеть неудачу, когда логика становится более сложной. Например, при использовании Laravel для API, слой view часто остается неиспользованным. Между тем, вкладывание всей логики в контроллерах может быстро привести к раздутым файлам, которые трудно поддерживать.

]

, чтобы решить эту проблему, я расширил структуру MVC Laravel, введя Service и Repository , создавая поток, как это:

]

контроллер → служба → Репозиторий → Model

]
    ]
  • ] Controller : обрабатывает проверку и направляет поток приложения.
  • ]
  • ] Service : управляет бизнес -логикой, разбитой в повторные функции.
  • ]
  • ] Repository : управляет взаимодействиями баз данных.
  • ]
  • ] model : определяет структуру данных.
  • ]
]

этот слоистый подход делает код более поддерживаемым и масштабируемым. Со временем я настолько привык к этой структуре, что было естественным принять ее в других проектах.

]
]

] Введите Go: совершенно новый вызов

]

, когда я начал работать с Go (Golang), это было похоже на то, что выходит на неизведанную территорию. GO сильно отличается от PHP и не имеет присущей структуре папок. Это также не объектно-ориентированный язык, поэтому я не мог просто воспроизвести то, что я знал из Ларавеля.

]

после некоторой проб и ошибок я решил придерживаться того, с чем я был знаком: csrm concept (Контроллер, служба, репозиторий, модель). Я адаптировал эту структуру, чтобы пойти, хотя это требовало некоторого творческого мышления. Кроме того, я исследовал рамки, которые могли бы упростить разработку. Я попробовал gin и fiber , в конечном итоге выбирая волокна для его скорости, современных функций и активного сообщества.

]
]

] Рождение моего волокна API Cowerplate

]

после более чем двух лет работы с Go и Fiber я решил создать шаблон для оптимизации разработки API. Это было не только для меня - я хотел помочь другим быстро настроить их проекты.

]

Результат: Fiber API CoalerPlate .

]

этот шаблон предназначен специально для API, поэтому он не включает такие функции, как рендеринг View или шаблонные двигатели. Структура папки черпает вдохновение от:

]
    ]
  • ] Стандарты макета проекта Golang
  • ]
  • ] Ayoub Zulfiqar's Project Mayout Gist
  • ]
]

я также позаимствовал много идей у ​​Laravel, таких как ORM, соединения базы данных, Redis, очереди и аутентификацию. Хотя это не так всеобъемлющее, как Laravel, этого более чем достаточно для построения общих API.

]
]

] Особенности шаблона

]

вот что в настоящее время предлагает паборпластин:

]
    ]
  1. ] аутентификация : упрощенное управление пользователями из коробки.
  2. ]
  3. ] Ошибка отчетности : интегрирован с Sentry.
  4. ]
  5. ] Мониторинг приложения : использует новую реликвию для понимания в реальном времени.
  6. ]
  7. ] Hot Reload : включает воздух для более быстрого разработки.
  8. ]
  9. ] статический код проверяет : использует golangci-lint.
  10. ]
  11. ] API документация : встроенная поддержка Swagger через Swag.
  12. ]
  13. ] Indection : Powered By Google Wire.
  14. ]
  15. ] развертывание : приходит с Docker и Supervisor для бесшовного развертывания.
  16. ]
]

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

]
]

] Строительство на будущее

]

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

]

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

]
]

] Начните

]

проверьте Fiber API Coilerplate и возьмите его для спина. Я надеюсь, что это поможет упростить ваше путешествие по развитию Go API так же, как и для меня. Давайте построим что -то удивительное вместе!

] ] ]
Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/granitebps/laravel-to-go-my-journey-and-ta-tareation-of-fiber-api-boilerplate-2pll?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с учебным пособием[email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3