Hanamiとは
公式サイト
Ruby on RailsのようなRubyのWebフレームワークです。
2017年にバージョン1がリリースされた比較的新しめのフレームワークで、Railsに近いところもあります。
RailsがMVCベースで、規約に乗っかればスピード感もってサービスを立ち上げるのに強みがあるのに比べ、Hanamiは、DDDの思想がベースにあり、より柔軟にシンプルに設計できることを重視し、長期的なメンテナンスを考え作られているようです。
詳しい解説はこちらをご覧ください。
HanamiはRubyの救世主(メシア)となるか、愚かな星と散るのか
今回は公式のgetting startedに沿って、立ち上げるところまでやっていきます
Hanami getting started
開発環境
-
Mac
-
ruby v2.6.2
プロジェクト作成
まずはhanamiをインストールし、プロジェクトを生成しましょう。
rails new
のようにhanami new <projectname>
で、プロジェクトが生成されます。
$ gem install hanami
$ hanami -v
1.3.1
$ hanami new hanami-sample
ディレクトリ構成は以下のようになります。
.
├── Gemfile
├── README.md
├── Rakefile
├── apps
│ └── web
│ ├── application.rb
│ ├── assets
│ │ ├── favicon.ico
│ │ ├── images
│ │ ├── javascripts
│ │ └── stylesheets
│ ├── config
│ │ └── routes.rb
│ ├── controllers
│ ├── templates
│ │ └── application.html.erb
│ └── views
│ └── application_layout.rb
├── config
│ ├── boot.rb
│ ├── environment.rb
│ └── initializers
├── config.ru
├── db
│ ├── migrations
│ └── schema.sql
├── lib
│ ├── hanami-sample
│ │ ├── entities
│ │ ├── mailers
│ │ │ └── templates
│ │ └── repositories
│ └── hanami-sample.rb
├── public
└── spec
├── features_helper.rb
├── hanami-sample
│ ├── entities
│ ├── mailers
│ └── repositories
├── spec_helper.rb
├── support
│ └── capybara.rb
└── web
├── controllers
├── features
└── views
└── application_layout_spec.rb
Railsとほぼ同じ構成ですが、DDDで言うところのドメイン層のビジネスロジックがlib
ディレクトリに配置されているのは異なる点ですね。
アプリ立ち上げ
プロジェクトを作成できたら、依存関係をインストールして、アプリを立ち上げましょう。
$ bundle install
$ bundle exec hanami server
[2019-07-05 04:37:35] INFO WEBrick 1.4.2
[2019-07-05 04:37:35] INFO ruby 2.6.2 (2019-03-13) [x86_64-darwin18]
[2019-07-05 04:37:35] INFO WEBrick::HTTPServer#start: pid=76404 port=2300
portは2300で立ち上がるので、http://localhost:2300にアクセスしましょう。
おわりに
今回は立ち上げるところまで行いました。
実際のコードの中身を見ていくところも今後記事にしていきたいと思います。