Play framework 2.0 Play frameworkは、Webアプリケーションを作る為のフレームワーク。 2.0からPlay framework自体がScalaで作り直されているらしい。 概要(感想) インストールが簡単。雛形も簡単に作れる。 sbtベースのコンソールでプロジェクトを操作するが、Eclipseにも対応している。 基本的にHTMLを記述する。「@」だけ特殊な意味を持ち、Scalaのコードを埋め込める。(『テンプレート』と呼ばれる) 『コントローラー』と呼ばれるScalaのクラスで、どのテンプレートを呼び出すか制御する。 Play自体がサーバー機能を持っているので、ブラウザーですぐ確認できる。 ソースを修正して、ブラウザー上で更新(F5)すると、すぐ反映される。(コンパイルが自動で行われる) Scalaへ戻る / 技術メモへ戻る メールの送信先:ひしだま
最近は業務でも再びPlayを使うようになったのでPlayの世の中の状況をリサーチするべくドワンゴさんで開催されたPlay Framework2 Meetupに行ってきました。個人的に参考になったセッションの内容をメモっておきます。 Play のこれまでとこれから @tototoshiさん オープニングはScalaとPlayの歴史。うんうん、そんなこともあったなーと思いながら聞いていた方も多かったのではないでしょうか。とてもよいまとめでした。LiftはScalaに興味を持ったプログラマの多くを撃退したという意味でかなり罪深い存在かもしれないというのは新たな発見でしたw ビューファーストという発想自体はよかったと思うんですけどねー。 やさしい Iteratee 入門 @kawachiさん 個人的にとても勉強になったセッションでした。IterateeはPlayを使う上で避けては通れない概念でなか
ドワンゴさんを会場としてお借りして Play meetup を行いました。ありがとうございました! http://connpass.com/event/6020/ 発表資料をTLから拾ってまとめましたのでどうぞ。 Play と Scala のこれまでとこれから/@tototoshi (開会挨拶的なもので特に面白くはないですが一応貼っておきます) やさしい Iteratee 入門 / @kawachi やさしいIteratee入門 from Takashi Kawachi play2のjsonと型クラス @xuwei_k http://xuwei-k.github.io/slides/play2typeclasses/ DSLからのコードジェネレーションで楽々Play開発 @takezoux2 Dslからのコードジェネレーションで楽々play開発 from Yoshiteru Take
以下で紹介されている方法ですが、Play 2.2およびcommons-daemonの最新版である1.0.15だと少し変わっていたのでメモ。 http://d.hatena.ne.jp/j5ik2o/20120322/1332397494 https://gist.github.com/j5ik2o/2156447 build.sbtに以下の依存関係を追加。 "commons-daemon" % "commons-daemon" % "1.0.15" Daemonインターフェイスを実装したApplicationクラスを用意します。NettyServerのインターフェースが少し変わっています。 package daemon import org.apache.commons.daemon.Daemon import org.apache.commons.daemon.DaemonContext
自分がソフトウェアエンジニアとして生み出している価値ってなんだろう?ということを考えていた時期があります。 SIer時代は新しい技術を使って今までできなかったことを実現するというよりも、生産性の向上によるコストダウン、もしくは同じコストでより多くの物を作れるようにするという課題に対して新しい技術を導入したり、プロセスを改善したりといった試行錯誤を繰り返していました。 生産性が競合に対するアドバンテージだとすると、それはソフトウェアそのもではなく、エンジニアリングが価値を産んでいたということになります。そう、僕たちはソフトウェアを作っているのに価値を生み出していたのは作っているソフトウェアそのものではなかったのです。 また、ときにはミドルウェアの検証や解析を行っていたことがありました。なかなか高度な技術力を要求される興味深い仕事だったのですが、これも自分たちで作り上げたソフトウェアが価値を提
引き続きデブサミ2014。 ドワンゴ吉村総一郎氏によるセッション「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」を聞きました。 いろんなところで良く聞くPHPレガシーコードにどう立ち向かったのか聞いてみたかったです。 案の定というか、想像以上のPHPレガシーコードっぷりにちょっと感動すらしましたがw profile 株式会社ドワンゴ 吉村総一郎氏 ウォーターフォール開発とアジャイル開発の両方のマネージャー経験 スライド ニコニコ生放送を書き直す理由 コードの技術的負債がやばい PHPで書かれている: 300万行! facebookで1000万行と言われているそう 1万行のクラスや4000行のメソッド 循環的複雑度600超のメソッドががが あまりに複雑過ぎて龍の巣と言われている(笑) まさに壊れかけのジェンガのよう 企画やスケジュールを優
rpscalaで「typesafehubのアカウントで色々web関連のplugin作ってるけどなんだろう?次期play2.3に向けての何かかな?」とか言いましたが、やはり大体予想通りだったようです。 PlayのMLでアナウンスがありました https://github.com/typesafehub/sbt-web https://groups.google.com/d/msg/play-framework/YLPAEnaE0FE/0G_rmv26uG8J play2.3では、デフォルトでこれに依存するみたいです。そして、設定すれば現状の2.2でも使えるようなこといってますね。 「なぜplay本体の内部で開発せず、独立したsbt pluginとして開発してるのだろう?」 という疑問がありましたが、2.2系でも使えるようにするという理由だったのでしょうか? あとは、勝手な予想としては「pla
PlayアプリをPostgreSQL対応してHerokuにデプロイ&自動テスト:Javaの常識を変えるPlay framework入門(終)(1/4 ページ) サーブレット/JSPを基にする重厚長大なJavaのWeb開発のイメージを変える軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。最終回は、作成したアプリを簡単にWeb上に公開する方法とPostgreSQL対応、テスト環境の構築と自動テストの実行の仕方を解説します。 前回の記事「Playの充実したテスト環境で行う5種のテスト」では、Play frameworkを使ったアプリのテストを紹介しました。今回はJavaを使ったPlay framework開発の入門連載の最終回として、作成したアプリを簡単にWeb上に公開する方法を紹介します。 アプリの公開には、「Heroku」というサービスを利用します。 フ
いささか旧聞ですが、2ヶ月ほど前にDBFluteのバージョン1がリリースされました。 DBFluteといえば、非常に強力で柔軟なO/Rマッパーです。 どれぐらい、強力で柔軟かというと、便利すぎて、DBFluteのv1.0リリースを記念として、社内DBFlute信者による布教活動勉強会が先日行われたほどです: 今回は、これを、JavaのPlay!Frameworkで使っちゃおうというのが、本記事です。 ただ、Play!Frameworkについては、最新の2.0ではなく、1.2系を使っています。 と言うのも、まだ2.0系とDBFluteの連携は試してないから、そもそも記事に出来ないという単純な理由です。 とまぁ、そんな前置きは置いておいて、とりあえず、進めていきましょう。 今回の環境 まず、今回の環境は以下の通りです。 特にDBサーバー等は予め用意しておいて下さい。 Play! Framwor
これは、Play framework 2.x Scala Advent Calendar 2013の7日目です。 誰得?なのかわかりませんが、標題の通り、自分が今までPlay2にしたpull requestまとめてみます。rejectされたものも一応いれておきます。Play2のScalaのアドベの参加者少ないらしいので、こんなネタでもいいよね。 グラフ https://github.com/playframework/playframework/graphs/contributors を見てみると、2013年12月7日現在、コミット数だと14位、24コミット。 pull reqの数としては、27回pull reqして、そのうち「5回reject、22回mergeされた」という感じか。 refactoring JavaParsers #467 なんか冗長な呼び出し方していたので、細かいリファ
あっ気づいたら、play2のScalaのアドベントカレンダー途切れてる・・・。 さて、play_jaのメーリングリストに「コンパイル速度遅いのでどうにかしたい」というような投稿があったので、せっかくなのでメーリングリストに直接返信するのではなく、blogに書いて、アドベントカレンダーのネタにしてしまいましょう。というわけで、これは Play framework 2.x Scala Advent Calendar 2013 の24日目です。 自分が思いつく限り、いくつか案を挙げてみます 経験上、コンパイル速度に直結するのはメモリ量よりCPUの性能です。もし数年前のPCならば、買い換えるだけでわかりやすくコンパイル速度は向上すると思います。 メモリをある程度大量に積んでいても、play開発用のsbtの起動時のJVMのパラメータが調整されてないと、メモリを十分に使い切れてない可能性があります。実
前回の記事「Play2(+JavaScript)アプリを高速化、最適化する4つのテクニック」では、キャッシュの利用方法や非同期通信を行う手法、クライアントサイドでJavaScriptをうまく扱うテクニックについて紹介しました。 今回はPlay framework 2.x(以下、Play2)を既存のWebサーバーと連携させる方法、並列処理や双方向通信を行う方法を紹介します。 WebサーバーとPlay2の連携 Webサーバーと連携する必要性 連載第2回記事「Play 2.0のアーキテクチャとディレクトリ構成の基礎知識」で解説をしましたが、Play2では「Netty」というHTTPサーバーを内包しており、それを使用してリクエストを処理します。そのため、Play2の起動ポートを80番に設定すれば通常のWebサーバーと同じようにアクセス可能です。 単純なWebアプリケーションの場合はこれで問題はない
なんだかすっかり遅くなっちゃったけど、Play1.2がリリースされたので、リリースノートを読みながら確認をば。 1.2 概要 全体的に、意欲的なアップデートと言えそう。 dependenciesコマンドの追加、テスト時のsurefireの出力サポート、等々、やっとCI周りがまともになり、さらにDB管理機構のEvolutionが++な感じ。 またこのバージョンからWebSocketが正式にサポートされた。 他にも非同期HTTP通信に関する意欲的な機能が追加されており、次世代な感じが満載。 依存関係管理機能がやっと追加 PlayはMaven非対応。なぜならGuillaumeがMaven嫌いだから。 MLでMavenで依存関係管理したい、っていう問い合わせがあるたび、ivy使えば、と突き放してきたわけですが、1.2でやっと機能が追加されました。 dependenciesコマンドです。 これはMa
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く