タグ

ブックマーク / tototoshi.hatenablog.com (4)

  • Slick ガイド - tototoshi の日記

    この記事は Play or Scala Advent Calendar 2012 の 4日目です 去年 ScalaQuery の記事を書いたのですが、今年はその後継、Slick です。 Slick とは? Slick とは Typesafe stack に名を連ねる Typesafe 社お墨付きの ORM です。以前は ScalaQuery と呼ばれていたものが、Slick と名称を変更し、開発が続けられています。現在の最新は 0.11.2 です。 Slick は Scala 2.10 をベースに開発されていて、マクロなどの新機能も利用されています。現時点ではORMとしてデファクトスタンダードではなく、Squeryl と人気を二分している状態です。 Slick を使うメリット・デメリット Slick のメリットはなんといってもかっこいいシンタックスだと思います。Scala のコレクションの

    Slick ガイド - tototoshi の日記
  • Slick でテーブル定義のコードを自動生成する - tototoshi の日記

    Slick 2系では experimental 扱いではありますが、コード生成の機能が含まれていて、 めんどうなテーブル定義のコードを自動生成することができます。ちょっとやってみましょう。 テスト用のテーブル、こんな感じです。 slickcodegenexample=# CREATE TABLE users ( id serial PRIMARY KEY, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, birth_date timestamp NOT NULL ); コード生成機能は slick 体の jar ではなく、slick-codegen と言う jar に含まれています。使用しているデータベースに合わせた jdbc driver も必要です。それぞれ build.sbt の libraryD

    Slick でテーブル定義のコードを自動生成する - tototoshi の日記
  • 図で分かるfoldLeft - tototoshi の日記

    foldLeft って map, filter, foreach といった他の高階関数に比べて難しい気がします。多分いきなり「畳込み」とか「アキュムレータ」とか言うからだめで、手続き脳フレンドリーな言い方は「ループの変形」なんじゃないかと思いました。実は書くだけだったら手続き的ループから機械的に変換できます。 こういう目で見ると、map, filter が foldLeft で実装しろみたいなありがちな練習問題もとても簡単ですね。 ちょっと複雑なものも一回ループで書いてしまってそれから foldLeft に変形するというズルができます。

    図で分かるfoldLeft - tototoshi の日記
    marshi
    marshi 2015/03/07
  • sbt 0.12.x から導入された binary version について - tototoshi の日記

    Play 2.1-RC1 を使おうとしたらいろいろハマったのでまとめました。 scala 2.9系, sbt 0.11系 までの依存管理 scala の異なるバージョンのScala用にビルドされたライブラリは使えないことがあります。 例えば、Scala2.8と2.9ではバイナリ互換性がないので、2.8向けにコンパイルされたライブラリは、2.9のプロダクトで使用することはできません。 使用すると、クラスが見つかりません、メソッドが見つかりません、など、まあなんらかのエラーで死にます。 この問題があるため、ScalaではライブラリのバージョンをScalaのバージョン込みで管理する必要があります。 artifactID の後ろに Scala のバージョンをくっつけるのがスタンダードです。 libraryDependencies += "com.example" % "utility_2.9.1"

    sbt 0.12.x から導入された binary version について - tototoshi の日記
    marshi
    marshi 2015/02/25
  • 1