読者です 読者をやめる 読者になる 読者になる

seratch's weblog in Japanese

About Scala, Java and Ruby programming in Japaense. If you need English information, go to http://blog.seratch.net/

Skinny Framework 1.0.0-RC1 をリリース

English?

This is an article for Japanese developers. English article is here:

http://blog.seratch.net/post/77537302500/try-skinny-framework-1-0-0-rc1

Release Candidate 1

Skinny Framework 1.0.0-RC1 をリリースしました。基本的にはこれからは大きな機能追加はせずにバグの修正や API の最終的な確認・改善を行っていきます*1

これから約 1 ヶ月、いろんな方に試していただいて final を良い形でリリースできればと思っています。

まずチームに感謝

私一人の力ではありません。本業も忙しい中、contribute してくださった @BlackPrincess と @Arakaki の両氏と pull request を下さった全ての方に感謝いたします。

公式ドキュメント

こちらです。全て英語ですが、私が書いているので全部平易な表現で書かれています。

http://skinny-framework.org/

試す

Skinny Framework はすぐに試せます。JDK さえ入っていれば Mac OS XLinuxWindows を問わず skinny コマンドだけを使って起動するまではとても簡単に試せます。

wget https://github.com/skinny-framework/skinny-framework/releases/download/1.0.0-RC1/skinny-blank-app.zip
unzip skinny-blank-app.zip
cd skinny-blank-app
./skinny run

scaffold を試すのが理解の近道です。Rails と似た感じで*2、簡単に scaffold を試せます。基本的には動かしながら scaffold しても大丈夫です*3

./skinny g scaffold:jade members member name:String "nickname:String:varchar(64)" birthday:Option[LocalDate]
./skinny db:migrate
./skinny run

http://localhost:8080/members

にアクセスすると members テーブルの CRUD 画面が動作していることを確認できます。

テストを実行する

テストも大事ですね。db:migrate を忘れずに。

./skinny db:migrate test
./skinny test

カバレッジ計測も大事ですね。ということで scoverage を使えるようにしていますが

https://github.com/scoverage

./skinny scoverage:test

Skinny ORM の SkinnyCRUDMapper との相性が悪いようです。これはまだ詳細未調査なのでフィードバックできていないのですが、解決に向けて動いていければと思っています。

war ファイルをつくる

package コマンドを実行するだけです。build の下に生成されます。

./skinny package

スタンドアロン jar をつくる

Jenkins や GitBucket などダウンロードしてきた war ファイルを java -jar ですぐに Web サーバとして起動できるのは非常に便利ですが、そういうファイルをすぐにつくることもできます*4

こちらは素晴らしい sbt-assembly を使わせていただいていますが、skinny-blank-app.zip では既に諸々の設定がされているので、以下のコマンドを叩くだけ。

./skinny package:standalone

皆様のフィードバックをお待ちしています

*1:本当はもっと便利なものを入れたかったけど、ちょっと最近色々忙しいもので...これからも継続してやっていきます

*2:デフォルトの DB は SQLite3 ではなく、ローカルファイルの H2 Database ですが

*3:db migrate してない状態で model クラスをロードするとエラーになります

*4:拡張子は jar ですが