タグ

scalaに関するokinakaのブックマーク (58)

  • 実戦での Scala: Cake パターンを用いた Dependency Injection (DI) · eed3si9n

    2011-04-23 Akka の作者として益々注目を集めている Jonas Bonér が 2008年に書いた “Real-World Scala: Dependency Injection (DI)” を翻訳しました。翻訳の公開は人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2008年10月6日 Jonas Bonér 著 2011年4月22日 eed3si9n 訳 さて、実戦での Scala シリーズ第二弾の今回は、Scala を用いた Depenency Injection (DI) の実装をみていきたい。Scala は、備わっている言語機構だけを用いても何通りかの DI を実現できる非常に豊かでディープな言語だが、必要に応じて既存の Java DI フレームワークを使うこともできる。 Triental では、一つの戦略に落ち着くまで三つの異なる方法を試した

  • ScalaのWebアプリケーションフレームワーク「Play Framework」入門 ~(1)環境構築とスタートアップアプリの作成

    はじめに 最近の関数型言語ブームの中で、高い生産性と高い品質を誇る言語であると注目を浴びているのが「Scala」です。今回は、このScalaのWebアプリケーションフレームワークである「Play Framework」(以下、Play2)について紹介します。 「Scala」はTwitterやLinkedInなどのサービスで利用されており、2013年は日で初めてScalaに特化した大規模なカンファレンスが開かれたり、さまざまな情報媒体で取り上げられたりと、ここ1、2年で急激に人気が高まっているのではないでしょうか。 Play2はJVM上で動作し、これまでのJavaで開発するエンタープライズアプリケーションで多く採用されたサーブレットやJSPのアーキテクチャを採用せず、独自のMVCモデルのアーキテクチャを持っており、スケールアウトしやすい構造になっています。 連載では、開発者にもフレンドリー

  • Play2(+JavaScript)アプリを高速化、最適化する4つのテクニック

    Play2(+JavaScript)アプリを高速化、最適化する4つのテクニック:Scala+Play 2.0でWebアプリ開発入門(10)(1/2 ページ) 2.0からScalaに対応したWebアプリ開発の人気軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。今回は、EHCacheを使うキャッシュ機構、非同期HTTP通信、Google Closure Compilerを使うJavaScriptの最適化、RequireJSを使うJavaScript依存関係の解決方法について解説します。 前回の記事「Play2におけるJSONおよびCoffeeScriptの使い方」では、Play2でJSONやCoffeeScriptを使用する方法を紹介しました。 今回も、Play2でよく使用されるであろう、以下のさまざまな機能を紹介します。 「EHCache」を使うキャッシ

    Play2(+JavaScript)アプリを高速化、最適化する4つのテクニック
  • ScalaでWebAppの開発に必要なN個のこと - tototoshi の日記

    PerlでWebAppの開発に必要なN個のこと - Islands in the byte stream の Scala 版です。 あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずScalaについて知っていることを書いた。 パッケージマネージャ sbt が全てやってくれる。Scala のバージョン管理も、ライブラリのバージョン管理も。 http://www.scala-sbt.org/ Maven や gradle を使用することもできる。 アプリケーションサーバ Scala の Web アプリは 2 つのタイプに分けられる。Java の Servlet API を使用するものと、使用しないものである。どのフレームワーク、ライブラリを使うかによって変わっ

    ScalaでWebAppの開発に必要なN個のこと - tototoshi の日記
  • マルチコア時代のプログラマは関数脳になろう〜Scala・Clojure〜 - Tech-Sketch

    前回 の記事では、関数型プログラミングの概念とJava8による実装例を示しました。しかしJava8のリリースは来年まで延期されてしまったため、今すぐ試してみるには少しハードルが高いかもしれません。 そこで今回は、Java7のJVM上で動作する代表的な関数型プログラミング言語、 Scala と Clojure を紹介します。 Scalaとは では、 Scala から紹介しましょう。 ScalaはJVM上で動作するプログラミング言語で、関数型の特徴とオブジェクト指向の特徴を合わせ持った、欲張りな言語です。 JVM上で動作するため、既存の膨大なJavaライブラリをそのまま流用でき、JVMのパフォーマンスチューニングノウハウを最大限活用することができます。またJavaよりも豊富な記述形式を持ちながらもJavaオブジェクトをそのまま扱え、強力な型推論を持った静的型付け言語でもあるため、定型的で冗

  • Effective Scala

    Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) [translated by Yuta Okamoto (@okapies) and Satoshi Kobayashi (@scova0731)] Table of Contents 序章 書式: ホワイトスペース, 命名, インポート, 中カッコ, パターンマッチ, コメント 型とジェネリクス: 戻り型アノテーション, 変位, 型エイリアス, 暗黙 コレクション: 階層, 使う, スタイル, 性能, Java コレクション 並行性: Future, コレクション 制御構造: 再帰, Return, forループと内包, require と assert 関数型プログラミング: 代数的データ型としてのケースクラス, Option, パターンマ

    Effective Scala
  • デバッグ機能やエディタが強化されたScala開発Eclipseプラグイン「Scala IDE 3.0」リリース | OSDN Magazine

    米Typesafeは3月20日、Scala開発向けのEclipseプラグイン「Scala IDE for Eclipse 3.0」を公開した。デバッガ統合、エディタの改善、プラグイン機構の導入など多数の機能が加わっている。 Scala IDE for Eclipseは、EclipseにScala開発用の機能を追加するEclipseプラグイン。ScalaJavaが混在したプロジェクトをサポートし、各プロジェクトの依存性追跡や両言語間での相互参照が可能という。ライセンスはBSDスタイルのScala License。 Scala IDE for Eclipse 3.0は、2011年12月に公開されたバージョン2.0以来のメジャーリリースとなる。大きな変更点としてはセマンティックハイライトや型表示、ソースジェネレーターなどエディタの強化が挙げられている。シンタックスハイライト、リファクタリングな

    デバッグ機能やエディタが強化されたScala開発Eclipseプラグイン「Scala IDE 3.0」リリース | OSDN Magazine
  • Slick(旧Scala Query)を使ったScalaによるDBアクセス | DevelopersIO

    Scala QueryとSlick ScalaQueryとは、ScalaRDBを扱うための低レベルなライブラリです。 RDBのデータをコレクションのように扱うことができ、シンプルで自然な記述でDBへのアクセスができるので人気があります。 今回使用するSlickとは、このScalaQueryの後継として開発されているライブラリです。 ScalaQueryを汎用化し、RDB以外にもさまざまなデータソースを扱えるようにするのことを目標に開発されています。 環境構築 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.4 sbt : 0.12 Scala : 2.10.0 M7 Slick : 0.11.1 なお、プロジェクトのテンプレート作成のためgiter8を使用するので、Homebrewでインストールしておいてください。 ※別にインストールしなくてもsbtのプロジ

  • カリー化、遅延評価などScalaの文法総まとめ&今後

    カリー化、遅延評価などScalaの文法総まとめ&今後:スケーラブルで関数型でオブジェクト指向なScala入門(11)(1/3 ページ) 前回のおさらいと今回の内容 前回の記事「Scalaの並行処理とアクター、並列コレクション」では、Scalaが標準で持つ「並行処理ライブラリ」と「並列コレクション」の基的な使い方を紹介しました。 今年2月から10回に渡ってやってきた「スケーラブルで関数型でオブジェクト指向なScala入門」も、いよいよ今回が最終回です。今回は、いままでの連載で紹介しきれなかった内容や、今後のScalaを紹介します。 第1回記事「EclipseでScalaプログラミングを始めるための基礎」では、Scala標準のREPLとScala IDEで動作を確認してみました。記事のサンプルコードは、どちらで確認しても問題はありませんが、対話的に実行でき、1文ごとにコードの結果が分かって

    カリー化、遅延評価などScalaの文法総まとめ&今後
  • Play!2.0始めました(1) - argius note

    Scala(&Java)で利用可能な" Play framework 2.0 "を始めてみました。 今回は、2012-05-02にリリースされた、バージョン2.0.1を使っています。 簡単な紹介 文字列の外部化と国際化 Viewのビルド後のリフレッシュ 他のページにエラーがあると全部が使えない Cygwinで使えない? SUB-URIのprefixオプション Play framework(以下Play)は、フルスタックのWebアプリケーションフレームワークです。 Home � Playframework playframework/Play20 (github) 特色やセールスポイントについては、ホームページでアピールされているので、そちらを参照にしていただくとして... ドキュメントが分かりやすいし、とっつきやすい感じでいいですね。(ただやっぱりScalaは貧弱なmyPCでは重いので、S

    Play!2.0始めました(1) - argius note
  • ビルドシステムの選択肢 - Gradle 1.0 リリース

    Rustが再評価される:エコシステムの現状と落とし穴 In this article, we share findings and insights about the Rust community and ecosystem and elaborate on the peculiarities and pitfalls of starting new projects with Rust or migrating to Rust from othe...

    ビルドシステムの選択肢 - Gradle 1.0 リリース
  • 第24回 Scalaをとりまく開発環境/ツール(後編)

    連載も、今回でいよいよ最終回となります。今回は、テスティングフレームワークやライブラリの中で近年よく使われるようになってきたものを紹介していきます。 連載が始まった2008年6月は、Scala言語そのものが注目され始めた時期で、ライブラリは未整備でした。オープンソースのScalaライブラリは少なく、何かしようと思うとJavaのライブラリを直接呼び出すか、ラッパーを自分で書く必要がありました。 翻って現在、完全に成熟しているとはいえないものの、多くの実用Scalaライブラリが登場しています。HTTPクライアント、JSONライブラリ、O/Rマッパ、I/O、コマンドラインパーザ、Webアプリケーションフレームワーク等がいくつも存在しています。 Scalaの主要なライブラリは、前回紹介したビルドツールsbtのビルド定義ファイルbuild.sbtに、どのライブラリのどのバージョンに依存しているか

    第24回 Scalaをとりまく開発環境/ツール(後編)
  • 自分が作ったScalaライブラリをMaven Centralリポジトリに登録する方法 (GaedsをSonatype OSSRHにデプロイしたよ\(^o^)/) | PAB@求職活動中

    求職活動中とありますが、活動報告というよりは、技術の話題を多めでいきます。Scalaが大好きなので特にScalaの話が中心になると思います。 最近「Gaeds」というScalaのライブラリを作っているのですが、 Maven Centralリポジトリから使えるようにしたので、 その経験を元にScalaのライブラリをMaven Centralリポジトリに登録する方法を解説したいと思います。 と言っても、他にドキュメントがないというわけではなく、 むしろわかりやすいドキュメントが既にたくさんあるのですが、 ただ手順自体が結構複雑なので、 僕のほうでも情報をまとめておきたいと思います。 まず、おおまかに方法を説明すると、 ライブラリをMaven Centralリポジトリに直接登録するのではなく、 「Sonatype OSSRH (OSS Repository Hosting Service)」とい

  • Scala School

    Other Languages: 한국어 Русский 简体中文 About Scala school started as a series of lectures at Twitter to prepare experienced engineers to be productive Scala programmers. Scala is a relatively new language, but draws on many familiar concepts. Thus, these lectures assumed the audience knew the concepts and showed how to use them in Scala. We found this an effective way of getting new engineers up to spe

  • 第30回 Scalaをネイティブサポートした「Play Framework 2.0」 | gihyo.jp

    2.0で大幅に拡張されたPlay Framework 連載の第14回、第15回で「Play Framework」(⁠以下、Play)というJavaアプリケーション開発フレームワークを紹介しました。Playは、Ruby on Railsのように簡単なコマンドだけでMVCスタイルのWebアプリケーションの雛形を構築し、開発をスタートさせることができるフレームワークです。 2012年3月13日、そのPlayの新バージョン「Play framework 2.0」(⁠以下、Play 2.0)がリリースされました。この新バージョンでは、核となるアーキテクチャに大幅な変更が加えられました。主なポイントとしては次のような項目が挙げられています。 JavaおよびScalaのネイティブサポート 強力なビルドシステムの構築 型安全性へのフォーカス 非同期プログラミングのより強力なサポート データストアとモデル

    第30回 Scalaをネイティブサポートした「Play Framework 2.0」 | gihyo.jp
  • Java開発で泣かないためのPlay frameworkの基礎知識

    Javaの常識を変える「Play framework」とは 「Play framework」は、サーバサイドJavaScalaのためのMVCフレームワークです。この連載では、主にJavaのフレームワークとしてのPlay frameworkを紹介していきます。でも「Javaで、Web向けで、MVCで……」なんて、ありふれた感じですよね。それなら「Scalaで、どう作るのか」という話の方が興味あるという方もいるでしょう。 しかし、Play frameworkはバージョン1まではJavaのフレームワークとして作られていました。また、ScalaJavaVM上で動作するプログラミング言語です。つまり現在の最新バージョンの2でも基礎の部分で動いているのはJavaです。Play frameworkを知るためには、まず基礎から固めていくのが正攻法だと思います。Scalaについて知りたい読者は、以下の記

    Java開発で泣かないためのPlay frameworkの基礎知識
  • 第23回 Scalaをとりまく開発環境/ツール(前編)

    連載もいよいよ今回が最終回となります。連載が開始した2008年6月はScalaも黎明期であり、初回記事を見るとScalaの対象バージョンが2.7.1となっています。記事執筆中の2012年1月における最新安定版が2.9.1であることを考えると、長く続いたものです。今回のテーマは、「Scalaをとりまく開発環境」です。 今回は、最終回ということもあり、現在使えるScala用IDE、開発ツールなどについて概要を紹介してみたいと思います。もちろん、記事のスペース上、また、Scalaワールドが広くなった事もあり、載せられなかったものが多数ありますので、その点は了解いただければと思います。「開発環境」と一口に言っても多岐にわたるので、2回に分けて、前編では、各種Scala用IDEとsbtの紹介、後編はScalaTest、Specs2などのテスティング フレームワークやその他の重要なライブラリなどの

    第23回 Scalaをとりまく開発環境/ツール(前編)
    okinaka
    okinaka 2012/02/15
    scala界も知らないうちにだいぶ変わってた
  • 第22回 Liftウェブフレームワークを使う(その2)

    前回はLiftの基的な使い方を紹介し、簡単なウェブアルバムサービスを作りました。今回はこのウェブアルバムサービスを拡張しながら、より発展的なLiftの機能やテクニックを紹介していきます。 今回紹介することは次の通りです。 ユーザーアカウントの扱い方 Boxモナドを使ったテクニック Ajaxの実装方法 前回作ったウェブアルバムサービスではすべてのアルバムが公開されました。しかし、実際は家族や友人だけにみてほしい場合もありますよね。例えば結婚式やオフ会での写真を参加者だけで共有したり、子供の成長の記録を家族や親戚で共有できたらとても便利です。 今回は前回のウェブアルバムサービスを拡張し、いろいろな人に使ってもらえるようアカウントを導入し、アルバムごとの権限を導入し、ユーザーが設定できるようにします。 1. アカウントの導入 まずはユーザーアカウントを導入します。Liftにはユーザーアカウント

    第22回 Liftウェブフレームワークを使う(その2)
  • プログラミング言語Scala 日本語情報サイト

    Created by mhanada on 2011-12-25. Updated: 2012-02-11, 23:29 日Scalaユーザーズグループ発足に伴い、今後は日Scalaユーザーズグループのサイトにニュースを掲載することにいたしましたのでそちらをご覧いただくようお願いします。

  • Scala Advent Calendar JP 2010 Day 22: Scala Actor + NIO - cooldaemonの備忘録

    この記事は Scala Advent Calendar JP 2010 22 日目(12/28)です。 Scala Actor + NIO で Echo server を書いてみました。 毎度の事ですが、突っ込み添削大歓迎です。 Source 解る方用の説明をさらっと行うと、Actor は Thread Pool として利用しており、NIO 単体で利用するより高速に動作します。当然、接続毎に Thread を消費するよりも高速です。コードは、Supervisor と FSM という考え方を使って整理しています。 詳細な説明は、コード全文の後に行います。 不要な var が二カ所ありましたので削除しました。*1 import scala.actors.{Actor, TIMEOUT, Exit} import scala.actors.Actor.State.{New, Terminated

    Scala Advent Calendar JP 2010 Day 22: Scala Actor + NIO - cooldaemonの備忘録