4 년 이상 Laravel에 몰입 한 후 MVC (Model-View-Controller) 아키텍처에 매우 익숙해졌습니다. 단순성과 구조와 함께 일하는 것이 기쁨이되며 Laravel의 신중하게 정리 된 폴더는 개발자가 추적을 유지하는 데 도움이됩니다. 코드를 어디에 배치 할 것인지 항상 알고 있습니다. 광범위한 내장 도구 (디자베이스 연결, Redis, 대기열, 마이그레이션, ORM 등)는 설정을 원활하게 만들 수 있습니다. 환경에 대한 몇 가지 조정만으로도 앱이 갈 준비가되었습니다.
Laravel의 MVC 접근 방식은 가장 강력한 것 중 하나입니다. 모델 은 데이터를 정의하고 보기 는 사용자가 보는 내용을 결정하고 컨트롤러
는 비즈니스 로직을 관리합니다. 간단하면서도 구조화되어 있으며 Laravel은 기본적 으로이 설정을 제공하여 개발을위한 훌륭한 프레임 워크가됩니다.그러나 내 경력이 진보하고 산업 및 비즈니스에서 일하면서 Laravel의 MVC 접근 방식이 항상 복잡한 응용 프로그램에 충분하지 않다는 것을 깨달았습니다.
MVC는 간단한 응용 프로그램을 위해 빛나지 만 논리가 더 복잡해지면 부족할 수 있습니다. 예를 들어, API에 Laravel을 사용할 때 보기
레이어는 종종 사용되지 않습니다. 한편, 모든 논리를 컨트롤러에 넣으면 유지하기 어려운 파일이 신속하게 이어질 수 있습니다.이 문제를 해결하기 위해 서비스 리포지토리 레이어를 소개하여 Laravel의 MVC 구조를 확장하여 다음과 같은 흐름을 만듭니다 :
컨트롤러 → 서비스 → 저장소 → 모델
이 계층화 된 접근 방식은 코드를보다 관리 가능하고 확장 가능하게 만듭니다. 시간이 지남에 따라 나는이 구조에 너무 익숙해되어 다른 프로젝트에서 그것을 채택하는 것이 자연 스럽습니다.
내가 Go (Golang)와 함께 일하기 시작했을 때, 그것은 미지의 영역으로 들어가는 것 같은 느낌이 들었습니다. GO는 PHP와는 상당히 다르고 고유 한 폴더 구조가 부족합니다. 또한 객체 지향 언어가 아니므로 Laravel에서 알고있는 것을 간단히 복제 할 수 없었습니다.
약간의 시행 착오 후, 나는 내가 친숙한 것을 고수하기로 결정했다 : csrm 개념 (컨트롤러, 서비스, 저장소, 모델). 창의적 사고가 필요했지만이 구조를 적용했습니다. 또한 개발을 단순화 할 수있는 프레임 워크를 탐색했습니다. 나는 gin 및 fiber 를 시도했으며 궁극적으로 속도, 현대적인 기능 및 활성 커뮤니티를위한 섬유를 선택했습니다.
GO 및 Fiber와 함께 2 년 이상 작업 한 후 API 개발을 간소화하기 위해 보일러 플레이트를 만들기로 결정했습니다. 이것은 나에게만 적합한 것이 아니라 다른 사람들이 자신의 프로젝트를 신속하게 설정하도록 돕고 싶었습니다.
결과 : 섬유 API 보일러 플레이트 .
이 보일러 플레이트는 특별히 API를위한 것이므로 뷰 렌더링 또는 템플릿 엔진과 같은 기능은 포함되지 않습니다. 폴더 구조는 다음에서 영감을 얻습니다.
나는 또한 ORM, 데이터베이스 연결, Redis, 대기열 및 인증과 같은 Laravel에서 많은 아이디어를 빌 렸습니다. Laravel만큼 포괄적이지는 않지만 일반 API를 구축하기에 충분합니다.
보일러 플레이트가 현재 제공하는 내용은 다음과 같습니다.
리포지토리에는 예제 코드와 자세한 readme 가 포함되어 각 폴더 및 기능을 안내합니다.
보일러 플레이트는 이미 기능적이지만 마이그레이션, 이벤트 리스너 및 명령과 같은 도구를 추가하여 더 확장 할 계획이 있습니다. 사용자와 함께 성장하도록 설계된 진화하는 프로젝트입니다.
보일러 플레이트를 탐색하고 사용하는 것이 좋습니다. 원하는 도구를 사용하거나 필요하지 않은 도구를 사용자 정의하십시오. 제안 또는 기능 요청이있는 경우 문제를 만들거나 풀 요청을 제출하십시오.
Fiber API BoilerPlate 를 확인하고 스핀을 받으십시오. GO API 개발 여정을 나와 마찬가지로 단순화하는 데 도움이되기를 바랍니다. 함께 놀라운 것을 만들어 봅시다!
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3