после потраченного более четырех лет, погруженных в Ларавель, я очень знаком с архитектурой MVC (модель-видит). Его простота и структура делают радостью работать, и вдумчиво организованные папки Ларавела помогают разработчикам оставаться на пути. Вы всегда знаете, где разместить свой код, а также обширные встроенные инструменты-подключения к датабазе, Redis, очереди, миграции, ORM и многое другое-создают плавную установку. С учетом нескольких настроек в вашей среде ваше приложение готово к работе.
]для меня подход Laravel's MVC остается одним из самых надежных. Модель определяет ваши данные, view определяет, что видят пользователи, и Controller управляет вашей бизнес -логикой. Это просто, но структурировано, и Laravel по умолчанию обеспечивает эту настройку, что делает ее отличной основой для разработки.
], но по мере продвижения моей карьеры, и я работал в разных отраслях и предприятиях, я понял, что подхода MVC Laravel не всегда было достаточно, особенно для сложных приложений.
]MVC сияет для простых приложений, но может терпеть неудачу, когда логика становится более сложной. Например, при использовании Laravel для API, слой view часто остается неиспользованным. Между тем, вкладывание всей логики в контроллерах может быстро привести к раздутым файлам, которые трудно поддерживать.
], чтобы решить эту проблему, я расширил структуру MVC Laravel, введя Service и Repository , создавая поток, как это:
]контроллер → служба → Репозиторий → Model
]этот слоистый подход делает код более поддерживаемым и масштабируемым. Со временем я настолько привык к этой структуре, что было естественным принять ее в других проектах.
], когда я начал работать с Go (Golang), это было похоже на то, что выходит на неизведанную территорию. GO сильно отличается от PHP и не имеет присущей структуре папок. Это также не объектно-ориентированный язык, поэтому я не мог просто воспроизвести то, что я знал из Ларавеля.
]после некоторой проб и ошибок я решил придерживаться того, с чем я был знаком: csrm concept (Контроллер, служба, репозиторий, модель). Я адаптировал эту структуру, чтобы пойти, хотя это требовало некоторого творческого мышления. Кроме того, я исследовал рамки, которые могли бы упростить разработку. Я попробовал gin и fiber , в конечном итоге выбирая волокна для его скорости, современных функций и активного сообщества.
]после более чем двух лет работы с Go и Fiber я решил создать шаблон для оптимизации разработки API. Это было не только для меня - я хотел помочь другим быстро настроить их проекты.
]Результат: Fiber API CoalerPlate .
]этот шаблон предназначен специально для API, поэтому он не включает такие функции, как рендеринг View или шаблонные двигатели. Структура папки черпает вдохновение от:
]я также позаимствовал много идей у Laravel, таких как ORM, соединения базы данных, Redis, очереди и аутентификацию. Хотя это не так всеобъемлющее, как Laravel, этого более чем достаточно для построения общих API.
]вот что в настоящее время предлагает паборпластин:
]репозиторий также включает в себя пример кода и подробный readme , чтобы направлять вас через каждую папку и функцию.
], в то время как коборная пластина уже функциональна, я планирует расширить его дальше, добавив такие инструменты, как миграции, слушатели событий и команды. Это развивающийся проект, предназначенный для роста с его пользователями.
]вы можете исследовать и использовать шаблон. Не стесняйтесь настраивать его - добавьте инструменты, которые вам нравятся или удаляйте те, которые вам не нужны. Если у вас есть предложения или запросы функций, создайте проблему или отправьте запрос на вытяжение.
]проверьте Fiber API Coilerplate и возьмите его для спина. Я надеюсь, что это поможет упростить ваше путешествие по развитию Go API так же, как и для меня. Давайте построим что -то удивительное вместе!
] ] ]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3