LoginSignup
2

More than 3 years have passed since last update.

posted at

updated at

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

#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
What you can do with signing up
2