タグ

scalaに関するw650のブックマーク (131)

  • Scala with DDD

    32. trait Entity[ID <: Identity[_]] { ! /** エンティティの識別子。 */ val identity: ID ! override final def hashCode: Int = 31 * identity.## ! override final def equals(obj: Any): Boolean = obj match { case that: Entity[_] => identity == that.identity case _ => false } ! } 33. trait Identity[+A] extends Serializable { ! def value: A ! } ! object EmptyIdentity extends Identity[Nothing] { ! def value = throw E

    Scala with DDD
    w650
    w650 2013/11/29
  • Scala Tutorials

    Start the Basic Scala Tutorial NOTE: We are working on fixing the "live run" of scala code, our appologies for the inconvenience

    w650
    w650 2013/11/22
  • Scalaで型クラス入門 - still deeper

    型クラスについてつらつら考えていたことをまとめておきます。マサカリ歓迎。 型クラスって? 型クラスとは一言でいうと。 アドホック多相 を実現するもの です。モから始まる名状し難いあれとは直接は関係ありません。 ではアドホック多相とは何かというと 異なる型の間で共通したインターフェースでの異なる振る舞いを 定義済みの型に対して拡張する ような多相のことです。 異なる型間での共通したインターフェースでの異なる振る舞い Javaの継承やインターフェース、Scalaのtraitを用いることで、異なる型間での共通したインターフェースを管理することができます。 trait SomeTrait { def someMethod(): String } class Foo extends SomeTrait { def someMethod(): String = "foo" } class Bar ex

    w650
    w650 2013/11/19
  • Twitter: 大きなトラフィックに耐えうるアーキテクチャーへの変更 - ワザノバ | wazanova.jp

    https://blog.twitter.com/2013/new-tweets-per-second-record-and-how 少し前、8月のTwitterエンジニアブログのエントリーですが、アーキテクチャー変更について触れているポストなので、取り上げてみます。 1) 背景 2010年のワールドカップ時点でのトラフィックがさばききれなかった時点での状況は、 200人のエンジニアが、単一のRailsのコードベースで大量のユーザとトラフィックに対応する構造であった。 MySQLのストレージシステムは、一つのマスタと一時的にシャーディングされるスレーブの構成で、読込み/書込みともにスループットの限界にきている箇所がでていた。 フロントエンドRubyマシンは期待通りのトラフィックをさばけていなかったが、技術的な解決ではなく、サーバの追加でしのいでいた。 コードベースは、可読性とパフォーマン

  • Scala sbt 独自のTaskを定義してみる - kaishitaeiichiの日記

    sbtのタスク sbtを起動中とする。tasksと入力すると一覧がでる。 > tasks This is a list of tasks defined for the current project. It does not list the scopes the tasks are defined in; use the 'inspect' command for that. Tasks produce values. Use the 'show' command to run the task and print the resulting value. clean Deletes files produced by the build, such as generated sources, compiled classes, and task caches. compile Com

    Scala sbt 独自のTaskを定義してみる - kaishitaeiichiの日記
    w650
    w650 2013/10/16
  • sbt を理解するための sbt 自体のソースの読み方 - xuwei-k's blog

    sbt でわからないことがある場合、だいたい wiki をみる sbtのドキュメントはgithubのwikiからscala-sbt.orgに移りました! ソースを読む メーリングリストで質問する StackOverflowで検索 or 質問 というような選択肢になります。*1 それで、英語が微妙な自分の場合、結局ソースをみることが多いわけです。それで、今までそれなりにsbtのソースを読んでいるので、自分なりに思った sbtのソースのどこから読めばいいのか? 全体としてどういう構成になっているのか? をちょっと書いてみようかと思います。 (そろそろsbt0.12が出るはずですが)このblog書いている時点の安定版であるsbt0.11.2を基準にして書きます。まぁこれから書くようなことは、sbt0.12になってもあまり変わらないはずです。 1. まず Keys.scala 読め https:/

    sbt を理解するための sbt 自体のソースの読み方 - xuwei-k's blog
    w650
    w650 2013/10/03
  • Play Framework 2: Read the application version defined in Build.scala

    I use the Play Framework 2.0 (2.0.3). I have a Java project and want to read the application version (appVersion) defined in Build.scala. What I already saw is that it's possible to read certain configuration details from the Application object provided to Global.java, but didn't find a key called appVersion or similar.

    Play Framework 2: Read the application version defined in Build.scala
    w650
    w650 2013/08/19
  • 翻訳: "Cake Pattern: The Bakery from the Black Lagoon" - Okapies' Archive

    はじめに NEScala 2013 での Daniel Spiewak (@djspiewak) さんの基調講演 "Cake Pattern: The Bakery from the Black Lagoon"(スライド、動画)*1の抄訳です。記事の公開については、講演者の Spiewak さん、および配信元である Marakana Inc. さんに許可を頂いています。Thank you for your great kindness! 講演者の Spiewak さんは、Scala のディープな活用で有名な Precog の開発に携わっている方です。”モナドはメタファーではない (Monads Are Not Metaphors)”の著者でもあります。 この講演は、昨年のブログ記事 "Existential Types FTW" の議論をさらに掘り下げたもので、Precog での "Ca

    w650
    w650 2013/07/16
  • Scalaにおける細かい最適化のプラクティス - xuwei-k's blog

    列挙順自体はとくに意味ありません。あと「どの最適化がどのくらい速くなるのか?」を詳細に計ったことはないですし、「原理的にこうなってるから(ry」というのを説明するに過ぎません。中には「JITで無意味になるようなどうでもいい細かすぎること」も書いてありますし、最適化のトレードオフとして失うものもあるので、そのあたり自己責任でお願いします。当に最適化が必要とされる場合は、以下のものを無闇に実行するよりまず計測したほうがいいのは、言うまでもありません。*1 1. private[this]をつかえ scalaのvalやvarは、private[this]にしたときのみ、直接のフィールドアクセスになります(それ以外ではメソッド呼び出し)。シングルトンのobjectの場合も同様です。private[this]をつけられる場合はできるだけつけましょう 2. なんでもかんでもListをつかうな 最初の

    Scalaにおける細かい最適化のプラクティス - xuwei-k's blog
    w650
    w650 2013/07/09
  • GitBucket 1.0リリースしました - 新・たけぞう瀕死の日記

    warファイルをサーブレットコンテナにデプロイするだけで利用可能なGithubクローン、GitBucket 1.0をリリースしました。 https://github.com/takezoe/gitbucket 当初の目標(6月末)からは少し遅れてしまいましたが、Gitリポジトリの作成、リポジトリビューア、Wiki、Issuesなどは一通り実装しており、なんとか実用に耐えうる機能は揃っているのではと思います。フォークやプルリクエスト、タイムライン、チーム管理、メール通知などまだまだ未実装の機能は多いですが、今後のバージョンアップで随時機能を追加していきます。 フレームワークとか 少し話は変わりますが、GitBucketはScalaで書かれており、フレームワークとして以下のものを組み合わせて使用しています。 Scalatra scalatra-forms(Play2のフォームのようなバリデーシ

    GitBucket 1.0リリースしました - 新・たけぞう瀕死の日記
    w650
    w650 2013/07/05
    s
  • GitHub star 数で見る Scala DB アクセスライブラリ事情 - seratch's weblog in Japanese

    以前、こちらでお話しした時のネタだったのですが http://playframeworkja.doorkeeper.jp/events/4219 GitHubGoogle Code の star 数で ScalaDB アクセスライブラリのランキングをつくってみました。もちろんたくさん star がついているからといって必ずしも優れたライブラリとは限らないわけですが、ある程度の指標にはなるはずです。 スターの数は 6/26 23:30 頃、私が確認した時点での数字です。() つきになっているものはフレームワークの一部の機能として DB アクセスが提供されているものです。 そうすると、来は Anorm がダントツ一位になるわけですが、Play2 の将来のバージョンで外される見込みなので除きました。また、Lift Framework の DB アクセスもありますが、こちらは Lift

    GitHub star 数で見る Scala DB アクセスライブラリ事情 - seratch's weblog in Japanese
    w650
    w650 2013/06/27
  • SQLSyntaxSupport による DRY な SQL ライフ - seratch's weblog in Japanese

    ScalikeJDBC Interpolation 1.4.7 から experimental 扱いで SQLSyntaxSupport という機能が追加されました。この記事ではこの機能の概要について紹介します。 https://github.com/seratch/scalikejdbc/tree/develop/scalikejdbc-interpolation SQLInterpolation とは何か まず ScalikeJDBC の SQLInterpolation とはどういうものかをご紹介します。なお SQLInterpolation は Scala 2.10.0 の新機能に依存していますので Scala 2.9 環境では使用できません。 まず、このようなマッピング先を用意しておいて import scalikejdbc._ case class Group(id: Long

    SQLSyntaxSupport による DRY な SQL ライフ - seratch's weblog in Japanese
    w650
    w650 2013/06/21
  • ドメインモデルの関連を表現するには - じゅんいち☆かとうの技術日誌

    たとえばこんなモデルがあって、相互に依存しているケースを考えよう。 注意:説明を簡単にするために、varを利用しています。 従業員1 2 3 4 5 class Employee( val id: Long, val name: String, var depertment: Option[Depertment] = None ) 部署1 2 3 4 5 class Depertment( val id: Long, val name: String, var employees: Seq[Employee] = Seq.empty ) 利用例1 2 3 4 5 val employee = new Employee(1, "KATO") val depertment = new Depertment(1, "Dev") employee.depertment = Some(depertm

    w650
    w650 2013/06/04
  • 脈々と続く系譜 -

    ま・・・まさか・・・一瞬目を疑ったけど、間違いありません!とても、優しいご近所のおじさんが、突然、ヅラを被ってる!!! まぁね、自分がハゲたら・・・って考えたら、確かに悲しいと思う。見た目老けちゃうし、人の視線も気になるだろうし。でも、突然の変化って、そりゃ急過ぎますよー! 見ちゃダメ!気付かない振りしなくちゃ失礼!そう何度も心に言い聞かせつつ、「おはようございまぁす」と、ご挨拶する毎日が、これほど苦痛になるとはね・・・。 こっちが10円ハゲになっちゃいそう。しかも、何故それをチョイス?って聞きたくなるような、オールバックタイプだもん。 生え際、不自然過ぎだから、きっとハゲ期を知らない人が見ても、バレちゃうんじゃ?あぁ誰か、込み上がる笑いを完全に消す方法を教えて! 日常に潜む、このヅラ地獄、私はもう耐えられそうないよーー! 残暑、ヤバ過ぎ。これ、何着れば良いのか、気で分んなくなってきちゃ

    脈々と続く系譜 -
    w650
    w650 2013/05/28
  • Play 2.1 のテスト中に、OutOfMemoryError などが出てテストが途中で止まる場合の対策 - xuwei-k's blog

    OutOfMemoryErrorでなくても、stacktraceにObjectOutputStreamがどうとか、java.net.SocketException: Socket closedとか、見慣れないよくわからないstacktrace出る場合もあります。かつ、テストが途中で止まっても、最終的な結果はsuccessと表示される場合もあります。 Play2.1からテストがforkされたJVM上で行われるようになったけど、これ URL が、Play側で設定されてないから簡単にメモリ不足でテストが死ぬ。のでこれ URL と同じようなことしないといけない 2013-02-05 15:18:24 via web テスト用のサーバー起動させると簡単にメモリ不足になってこの現象に遭遇するので、必ずjavaOptions設定しておきましょう。*1 簡単に解説しておくと、Play2.1から*2最近sb

  • ScalikeJDBC の新しい DSL - seratch's weblog in Japanese

    ScalikeJDBC に新しく SQL を組み立てるための DSL を追加しようとしています。次のリリースバージョンを 1.6.0 とし、scalikejdbc-interpolation でこの DSL が利用可能になる想定です。手前味噌ですが「なかなか便利なのでは?」と思っています。 (追記:5/16) 1.6.0 としてリリースしました。お試しください。 http://git.io/scalikejdbc sandbox で試す どういったものかというと、実際に動かしてみるのがわかりやすいと思います。まず sandbox をダウンロードしてみてください。 git clone git://github.com/seratch/scalikejdbc.git cd scalikejdbc/sandbox sbt console sbt console を起動すると、簡単なデータが準備さ

    ScalikeJDBC の新しい DSL - seratch's weblog in Japanese
    w650
    w650 2013/05/13
  • Enterprise Scala Adoption Tips | @lightbend

    As more enterprise organizations adopt Scala/Akka/Play, we find it important to help them engage the community effectively.  This involves providing them with information about where they can find resources to empower their developers to learn as much about these technologies as possible, as well as to directly engage with the community on a daily basis.  By following these steps, the likelihood o

    Enterprise Scala Adoption Tips | @lightbend
    w650
    w650 2013/04/17
  • Scala2.11から、case classやメソッドの22制限が緩和されるらしいですよ! - xuwei-k's blog

    https://github.com/scala/scala/pull/2305/files 試しに引数が200個あるメソッドや、case classくらいまでならいけた。それ以上で、例えば1000くらいになると、コンパイラが変なところで落ちるか、"ClassFormatError: Too many arguments in method ..."とかになる 2013-03-31 21:48:39 via web URL 22制限がなくなる件、微妙に反響あったから補足しておくと、2.11.0.finalがでるのはおそらく一年後くらいなので、それまでは今のままですよ…念のため 2013-04-01 21:04:55 via Twitter for iPad https://github.com/scala/scala/pull/2426 メソッドのパラメータは、最大254個までになるみたい

    w650
    w650 2013/04/02
  • Scala Conference in Japan 2013でのスライドを公開しました - たけぞう瀕死ブログ

    Scala Conference in Japan 2013で発表させていただいた「使ってわかったScalaのここがダメ!Play2によるシステム開発事例」のセッションで使用したスライドを公開しました。 海外の方も参加されるとのことでスライドは頑張って英語で作ってみました。そんなに難しいことは書いてないので意味は伝わるかと思いますが、おかしなとこがあるのはご容赦ください。 基スライドでネタ出しをして、要点は口頭で話すという流れだったのでスライドだけ見ても言いたいことがあまり伝わらないかもしれません。いろいろと文句ばかり書いていますが、当に言いたかったのは個々の問題点がどうこうということではなく、以下の二点です。 Scalaは充分に実用的な言語ですが、Javaと同じ感覚で使うと痛い目を見ることもあるので注意して欲しいということ(新しいものを導入して失敗すると悪いイメージを払拭するのが大変

    Scala Conference in Japan 2013でのスライドを公開しました - たけぞう瀕死ブログ
    w650
    w650 2013/03/12
  • Scala for Java Programmers (Short Edition) - Speaker Deck

    JavaプログラマのためのScala入門 (Short Edition) v1.1 目次: - Scala とは? - case クラス - パターンマッチ - コレクション -- コレクション演算 -- 不変コレクション -- 並列コレクション - Option 型

    Scala for Java Programmers (Short Edition) - Speaker Deck
    w650
    w650 2013/03/11