LoginSignup
2

More than 3 years have passed since last update.

adonis.jsをつかってみた #GWアドベントカレンダー 1日目

Last updated at Posted at 2019-04-26

#GWアドベントカレンダー「使いたかったもの使ってみたカレンダー(1人アドベントカレンダー)」の1日目、27日記事です。

ストックが無いままGWを迎えてしまったので、早速ピンチですが、
なんとか頑張っていきたいと思います。

本題:adonis.jsをつかってみた

使ってみたアドベントカレンダーなので、どう使ったか、所感として良さそうだったか/微妙だったか って観点で書いていきたいと思います。構築の仕方とか、そういうのには触れません。

何に使ったか

GWアドベントカレンダーのシステムを作るのに使いました。

スクリーンショット 2019-04-26 23.14.43.png

使った機能としては

  • 基本機能

    • HTTPルーター
    • コントローラー
    • セッション
    • バリデータ
    • ビュー(Edge)
    • ロガー
  • セキュリティ

    • 認証
    • CSRF
  • データベース

    • ORM
    • マイグレーション
  • 外部ライブラリ

良さそうなところ/面白かったところ

全体として、MVC全部サポートします!というスタイルはとても良かったです。

使った機能で良さそうだったところ

  • ORMが入ってるのでモデルをいちいち定義しなくていい
  • async/awaitがデフォルトで概念として入っている
  • 認証入れるのがかなり楽
  • requireの代わりにuseが使えて、プロジェクトルートからのパスでrequireができる
  • サービスとしてはよくやる、フォーム入力させてバリデータで弾いたらもとのフォームに戻して、その時入力したデータは引き継いで・・・みたいなのがすごくやりやすい。
  • CSRFとか、めんどくさくて忘れがちなところがデフォルトで入っている

使ってないけど良さそうだったところ

  • mysql, postgresqlだけじゃなくradisもサポート
  • userモデル作られたら〇〇する というイベントもサポート
  • HTTPだけじゃなくてwebsocketもデフォルトでサポート(websocket ルーティングができる)
  • Twitter認証等のSNSログインもサポート! 
  • 通常のテストはもちろん、ブラウザテストもサポート!
  • ファイルストレージもS3とかをサポート!

もうほんとに、これ一つで全部入ってる!!ってのがすごい売りです。expressインストールして、sequelizeいれて、あ、viewはejsいれてみたいなことがないです。

今回firebase入れてtwitter認証してしまいましたが、それすらもサポートされてるのはもう意表を突かれました。サポートするはずがないと思いこんでてすみませんでした

あんまりイケてないところ

  • ドキュメントが読みにくい
    公式サイトだと使用例が載っていますが、仕様が載ってなくて、どんなコマンド一覧があるの?が全くわかりませんでした

  • パーツごとに分割されている
    各パーツ(ORMやView,バリデータなど)が結構分割されていて、ドキュメントも詳しくわそっち見てね!になっている。
    adonis.js本家のサイトだとほぼ問題が解決できず、そこのリンク先のパーツごとの資料を見る必要がある。でそのパーツも別に他の人が作ってるわけでなくadonisが作ってる

  • 日本人で使ってる人を見ない
    qiitaとかだと数人が使ってみた程度ですね。なんで日本で人気でないんだろう?

  • ジェネレータ
    せっかくMVCオールインワンフレームワークなのに、モデル生成コマンドを使ってもREST APIのコントローラーを自動生成したりしてくれない。railsやfuelPHPとかはしてくれたのに。。。

あとはそれぞれ独立したモジュール(ビュー:Edge、モデル:knex)などはまた別記事で感想書こうと思います。

総合評価

とても使いやすいフレームワークでした!
ドキュメントの部分が結構残念でしたが、ユーザー数が増えれば解決する問題なのかなと思います。(本家にも頑張って欲しいですが)
布教活動でもしようかな・・・。

ちなみにExpressとの流行り具合比較はこんな感じ。

スクリーンショット 2019-04-26 23.30.03.png

うーむ。がんばれ!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2