49 Days of Ruby: Day 41 -- 웹 프레임워크: Hanami
2646 단어 ruby
어제, 우리는 인기 있는 Ruby 웹 프레임워크 중 일부를 간단히 살펴보는 며칠 간의 여정을 시작했습니다. 우리는 Sinatra를 조사하는 것으로 시작했고, 오늘 우리는 Hanami를 탐험할 것입니다.
Hanami은 모든 기능을 갖춘 웹 응용 프로그램입니다. Models, Views 및 Controllers를 나타내는 MVC 접근 방식을 기반으로 합니다. 내일 Ruby on Rails를 볼 때 MVC의 또 다른 예를 보게 될 것입니다.
MVC 란 무엇입니까?
MVC 접근 방식은 웹 애플리케이션의 작업을 고유한 범주로 구성하는 방법입니다. 응용 프로그램을 정신적으로 구성할 수 있는 기회를 제공합니다. 이는 복잡성이 증가함에 따라 도움이 될 수 있으며 또한 증가하는 파일의 양을 문자 그대로 구성할 수 있는 기회를 제공합니다.
분해해 봅시다.
모델은 애플리케이션에 있는 데이터 개체의 표현입니다. 논리와 해당 데이터를 관리하는 규칙을 제어합니다. 예를 들어 데이터베이스에 사용자 테이블이 있는 경우 해당 데이터 개체를 관리하기 위해
User
모델이 필요합니다.보기는 애플리케이션의 프레젠테이션 계층입니다. 그것은 방문자가 상호 작용하는 것입니다.
컨트롤러는 입력(예: 사용자 입력)과 모델 및 보기 간의 흐름을 관리합니다.
MVC는 웹 개발 디자인의 믿을 수 없을 정도로 널리 퍼진 형태입니다. 프로그래밍 언어 커뮤니티에서 반복되는 패턴을 찾을 수 있습니다.
하나미는 MVC를 어떻게 합니까?
하나미의 MVC
Hanami는 코드의 각 부분이 가능한 한 그 역할만 수행하도록 노력합니다. 각 클래스와 확장하여 각 파일은 단일 책임을 고수해야 합니다.
다음 예는 Hanami Getting Started Guide 에서 직접 가져온 것입니다.
Hanami의 모델은 Ruby gem 코드의 주요 부분이
lib
안에 있는 것처럼 앱의 lib
폴더 안에 있습니다. 다음은 Bookshelf
라는 모델의 예입니다.lib
├── bookshelf
│ ├── entities
│ ├── mailers
│ │ └── templates
│ └── repositories
└── bookshelf.rb
entities
폴더는 모델 코드가 들어갈 곳이고 repositories
폴더는 실제 데이터베이스 테이블과 상호작용하는 로직이 들어갈 곳입니다.Hanami의 보기는
apps
폴더 안에 있습니다. 기본 하위 폴더는 web
이지만 다른 하위 폴더 아래에 고유한 웹 보기 구조를 원하는 만큼 가질 수 있습니다.다음은
apps/web
폴더에 대한 파일 구조의 예입니다.apps/web
├── application.rb
├── assets
│ ├── favicon.ico
│ ├── images
│ ├── javascripts
│ └── stylesheets
├── config
│ └── routes.rb
├── controllers
├── templates
│ └── application.html.erb
└── views
└── application_layout.rb
위와 같이 앱의 모든 설정이 들어가는 파일
application.rb
이 있습니다. 컨트롤러는 controllers
폴더로 이동하고 보기는 views
폴더로 이동합니다. 사용자가 앱에 액세스할 수 있는 다양한 웹 경로와 해당하는 컨트롤러 작업을 설명하는 config/routes.rb
도 있습니다.내일 우리는 Ruby on Rails에서 MVC가 어떻게 보이는지 볼 것이며 구조가 얼마나 다른지 알게 될 것입니다.
오늘 남은 시간 동안 Get Started Guide !
49 Days of Ruby의 다음 편으로 내일 다시 오세요! 해시태그와 함께 Twitter에서 대화에 참여할 수 있습니다.
Reference
이 문제에 관하여(49 Days of Ruby: Day 41 -- 웹 프레임워크: Hanami), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bengreenberg/49-days-of-ruby-day-41-web-frameworks-hanami-14hg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)