GroovyによるDCIアーキテクチャのサンプル実装で明らかになった2つの問題点をScalaによって解決する。 導入 前回のエントリでは、DCIアーキテクチャの構想に従った実装を示しつつ、言語的な制約から来る問題点を2つ提示しました。以下に再掲します。 ミックスインしたロールクラスにキャストすることができないため、ロールクラスを使用する際に型の安全性が確保されていない。追記:asTypeを使用することで、ミックスインしたクラスへのキャストが可能です。uehaj様より指摘を頂きました。(2010/06/04) ロールクラスが定められたふるまいを実行するためにはデータ構造についての知識が必要だが、それを静的に保証することができていない。 これらはいずれも型の安全性に関する問題で、アーキテクチャの問題というよりは言語仕様の問題です。そこで今回はScalaを使用し、これらの問題をトレイトと抽象メン
今更ながらScalaの起動方法まとめ。 Scala インタープリタ ちょいと試すにはインタープリタ。 >scala Welcome to Scala version 2.8.0.RC2 (Java HotSpot(TM) Client VM, Java 1.6.0_12). Type in expressions to have them evaluated. Type :help for more information. scala> val str = "scala" str: java.lang.String = scala scala> def rev(str:String) = str.reverse rev: (str: String)String scala> rev(str) res1: String = alacs コンパイルして実行 Hello.scala として以下
sbaz にて scala-tool を取得すると、各種ツールのプラグインが入手できます。ここでは vimプラグインを適用してみます。 sbaz によるscala-tool-supportの取得 以下のコマンドにてscala-tool-supportを取得します。 > sbaz install scala-tool-support planning to install: scala-tool-support/2.8.0.RC2 Installing... Downloading: http://scala.epfl.ch/downloads/packages/scala-tool-support-2.8.0.RC2.sbp 182.0K/182.0K DoneScalaのインストールディレクトリ中の /misc/scala-tool-support に各種ツールのプラグインが取得されます
● [Scala] play scala はじめの一歩 インストール インスコ手順 scala 本体 play framework play scala module 1. scala これからはじめる人は2.8系(まだRCだけど)がお薦めです。(2.7 からいい感じに進化してるので)。ディストリのパッケージはまだ2.7系のはずなので、本家http://www.scala-lang.org/downloads から取ります。 2.8の 最新版(2010/05/04現在は scala-2.8.0.RC1.tgz) をDL 適当な場所に展開 その scala-2.8.0.RC1/bin に PATH を追加 あと java も適当に入れます (ubuntu なら sun-java6-jre とか) scala と打って、console が立ち上がればOK。(終了はCtl-dで) 2. play
Starting up the project (Scala version)IntroductionIn this tutorial you will learn the play framework by coding a real web application, from start to finish. In this application, we will try to use everything you would need in a real project, while introducing good practices for play application development.We have split the tutorial into several independent parts. Each part will introduce more co
1階受付:インストール等 / 1階案内版:コマンド / 2階:書き方 / 3階:文と式 / 4階:関数 / 5階:オブジェクト指向 / 6階:型 / 7階:注釈等 / 屋上:言語仕様要約 / 雲:scalaパッケージ概観 / 青空:その他の付属パッケージ概観 なお、以上の解説はJavaの文法とコマンドや標準ライブラリ等を一応知っていることを前提(現行のScalaはなおJavaライブラリへの依存度が高くScalaだけで完結できる状態では無い。なお、Scalaのコンパイラ自体はJava1.4用のコードも吐けるが、標準ライブラリが多く1.5を前提としている)とし、その違いだけをとりあえずは書き留めるものである。もっぱら文法やライブラリ参照用であることを目指しているので、例や特長等は次のリンクを参照されたい(なおただし、原著者たちの配慮にもかかわらず、それらの例は関数型言語に関する事前の概要的把握
● [Scala] Webフレームワーク play scala 「play」という凄い Web フレームワークがある。何が凄いかと言うと、まずは名前だ。だって "play" だよ?検索し辛いにも程がある。この衝撃は、http load balancer の "pen" 以来だ。ググっても無駄に時間がかかるので公式サイトを載せておこう。 http://www.playframework.org/ 日常会話にも困る場合があるので、サイト名から「playframework」と呼ばれることが多い。管理者の tw 名も @playframeworkであり、hashtagも #playframework なので、play は単なるコマンド名で、こっちの方が正式名という認識でいいのかもしれない。(gem と rubygems の関係に近い) play scala で、本来 Java 用の play(fr
● [Scala]「Scala開眼」が凄い件 Scala の深い部分を検索すると必ずヒットするサイト 「Scala開眼」 http://www.h7.dion.ne.jp/~samwyn/Scala/scalaindex.htm が凄すぎる。この人は何者なの?文章を少し読むだけで只者じゃないことがわかる。一言にすれば天才。 Scalaへの深い理解を持ち 多方面の膨大な背景知識を武器に 圧倒的な概念の整理力と 優れたワードセンスと表現力で 体系的に形式的にScalaを説明している 特に、凡人なら10行くらいかけてグダグダ説明しそうなものを、片っ端から漢字2文字ぐらいの言葉で簡潔かつ的確に表現(説明)していくその姿には畏敬の念すら感じる。入門書だけでは「Unit型」が結局何なのか理解できずにモヤモヤとしていたのだが、このサイトには概念の理解を最優先にする姿勢が見え、誤解を恐れない直球な説明に鼻
● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc
先日、ホームビデオを作っていた時のこと。 NASからローカルに動画ファイルをコピーしようとしたら、「残り6時間」とか言われてしまいました。...
Getting started with BDD and ScalaTest In the behavior-driven development style, you specify the behavior of the code with text and verify that behavior with tests. ScalaTest has three traits that facilitate this style: Spec, WordSpec, and FlatSpec. Although three traits all facilitate BDD, they differ in the way they let you express the specification text. Note: Trait FeatureSpec can also be cons
大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,株式会社豆蔵を経て,現在は合同会社シンプルアーキテクト代表社員であり,株式会社匠Business Placeのチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 Javaなど,オブジェクト指向や手続き型のプログラミングの経験はあるけれど,関数型のプログラミングは初めてという皆様のための,そして筆者自身のための「関数脳のつくり方」シリーズのSecond Season(First Seasonはこちら)。今回は「モナド」を取り上げま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く