Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Ruby Webフレームワーク ~Hello Hanami world~

More than 1 year has passed since last update.

Hanamiとは :cherry_blossom: :cherry_blossom: :cherry_blossom:

公式サイト
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にアクセスしましょう。

起動できていれば、以下画面が表示されます。
スクリーンショット 2019-07-05 4.38.58.png

おわりに

今回は立ち上げるところまで行いました。
実際のコードの中身を見ていくところも今後記事にしていきたいと思います。

hakshu
ソフトウェアエンジニア。Web系 メイン言語はJavaScript 最近はAngularとRailsで開発しています。
classi
学校の先生・生徒・保護者向けのB2B2Cの学習支援Webサービス「Classi(クラッシー)」 を開発・運営している会社です。
https://classi.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away