がくぞ @gakuzzzz 初期化子みたいな専用の言語機構をオブジェクトにもコレクションにも用意して個別に覚える必要があるのに比べて、applyが省略可能とい1個のルールのみでその辺までカバーできるシンプルなScalaが複雑だと言われるのは何故なんだぜ?
![ScalaとJavaの複雑さとは何か?](https://cdn-ak-scissors.b.st-hatena.com/image/square/0c21c7a6a4169e2d84c664028d05af58949b11e0/height=288;version=1;width=512/https%3A%2F%2Fs.tgstc.com%2Fogp3%2F8fab9d0aaa2f68637a7b4533bf184dc0-1200x630.jpeg)
がくぞ @gakuzzzz 初期化子みたいな専用の言語機構をオブジェクトにもコレクションにも用意して個別に覚える必要があるのに比べて、applyが省略可能とい1個のルールのみでその辺までカバーできるシンプルなScalaが複雑だと言われるのは何故なんだぜ?
Scala関西 Summit 2015での発表で触れていたN+1クエリ問題をなんとかするためのライブラリを公開した. 発表は以下のもので, ここでは「関係モナド」という名前で紹介していたけれど, これは口頭でも説明したように便宜上てきとーにつけた名前であって, とくにそういう名前のよく知られたモナドがあるというわけでもなければ, そもそもモナドであるかどうかはあまり本質的ではない. この発表のあとに, Rails (Active Record)でのbulletのようにN+1問題の検出をScalaでやる方法はないだろうか, と言っている人がいたので, そういうものを探していて辿りつけるとよかろうということで, bullet-scalaという名前にした. もちろんN+1問題の検出のためのライブラリというわけではないし, 動的に検出するのではなく原理的に問題が発生しないようにするものなので, 思
"新しい" とは、今まで全部無名classにコンパイルしてたラムダを、invoke dynamic使って動的に生成するようになるとかそういうやつ。 ラムダ以外の最適化もやってるようですが?詳しくは知りません。 Scala 2.12から正式に入るらしいですが、(これ書いてる時点から見て)つい昨日くらい(2015/06/25)に出たScala2.11.7でも、明示的にオプションを指定すれば、実験的オプションとしてですが、使えるそうです。 内部の仕組みは、以下のScaladays2015のスライド見るとか、あとは各自ググってください http://downloads.typesafe.com/website/presentations/ScalaDaysSF2015/T2_Rytz_Backend_Optimizer.pdf 公式に書いてありますが、2.11.7においてJava8のバックエンドを
便利なアクターフレームワークAkka*1でもZeroMQが使えるようなので、ネットに散らばっている情報を組み合わせながら実装してみた。一筋縄ではいかなかったので、自分がつまづいた箇所などを後学のためにメモしておこうと思う。Akka ZeroMQ Extensionに関する情報が少ないこと、そしてZeroMQ自体のインストラクションが少ないと感じたので、これからAkka ZeroMQ Extensionを使おうと考えている人の助けになれば幸いである。 ZeroMQとは 簡潔に説明すると、ZeroMQはBSDソケット風に扱うことのできるメッセージングフレームワークであり、ソケット等の低レイヤーの処理を隠蔽し、抽象化されたプロセス間メッセージングを提供する。また、ØMQ(zeromq)について調査する。により詳しい説明が存在するので、ZeroMQ自体についてより知りたい方はそちらを参照するとよい
Scalaをどうやって学ぶのがいいのか?ということはScalaを使い始めた数年前からずっと考えています。よく「Scalaは難しい」と言われますが、 どこが難しいのか? なぜ難しいのか? ということを、これまで書籍や雑誌記事、ハンズオンなど入門用のコンテンツを作ってきた経験を踏まえて整理してみました。 まず、Scalaが難しいといわれる理由のひとつに学ばなくてはならないものが多すぎるという点があげられます。Scalaはオブジェクト指向言語ですが、関数型言語の特徴的な機能を取り入れているため、きちんと理解するには両方の言語のイディオムを学ぶ必要があるためです。 ただ、Scala自体は必ずしも関数型言語の知識がなくても使えるように設計されています。最初はBetter Javaとして一般的な手続き型オブジェクト指向言語の延長として使い始めることができ、Scalaの特徴的な機能に触れていくことで少し
要点 Play framework 2.3.xとUTF-8について解説します Shift_JISでパーセントエンコードされたデータを扱う事の困難性を解説します 実際にPlay framework 2.3.xで上記のデータを受け取る方法について解説します Play frameworkとUTF-8 Play framework 2.3.x(Scala)は、UTF-8を標準的なcharsetとして扱っている*1。特にパーセントエンコーディングされたデータがGET/POSTメソッドで渡って来るときは、Content-Typeヘッダでcharsetを指定しなければUTF-8であるものとしてデコードされる*2。 PlayでShift_JISを扱う困難さ Shift_JISを扱うようなアプリケーション*3では、フォームの入力などとして渡って来たデータをUTF-8ではなくShift_JISとしてデコードし
qiita.com この記事を読んで、記事の本筋からはそれますが、前から思っていたことをつぶやいたのでまとめておきます。 前後関係がある Future 処理を一つの処理として抽出すればシンプルなケースではおかしなことにはならないと思うけど real world では横からはさみこみたくなる要件が継ぎ足されていくとつらくなる。— seratch_ja (@seratch_ja) 2015, 3月 26 そういう要件は本当は同期処理でやるのがよいわけで、そこをあえて Future とかコールバック関数縛りでやらなければならない理由が何かを考える。リソース効率とか膨大な同時接続への耐久性を可読性を犠牲にしてでも得たいのかという。— seratch_ja (@seratch_ja) 2015, 3月 26 適当に作るとデバッグとか運用のトラブルシュートとか大変になるし、開発の難易度はそれなりに上が
以前、ScalaJpのgitter.imでDDDについて議論が盛んに行われてたけど、いずれログが消えちゃうのがもったいなくて、ここに内容を貼付けます。 scalajp/public - Gitter 要約すると実践DDD本出たらみんなで読もうぜ。ってことで。 実践ドメイン駆動設計 (Object Oriented Selection) 作者: ヴァーン・ヴァーノン,高木正弘出版社/メーカー: 翔泳社発売日: 2015/03/17メディア: 大型本この商品を含むブログ (1件) を見る ホントは、自分のブログとかじゃなくてGistとかがいいんだろうけど、見た目を整えるのが一番楽なので、ここに掲載しておきます。 一応、最初にまとめるにいたった経緯↓ xuwei-k 2015年2月24日 gitter、無料だとログの保存期間2週間って話だったけど、実は現状全部残ってる https://gitte
Play 2.4 では今までの Plugin の仕組みが deprecated となり、 新たに Module という仕組みが導入されています。 Module はこれまた新たに導入された Runtime Dependency Injection の上に乗っかっています。 Play では Guice をデフォルトの DI 実装として利用しますが、 Guice 以外の実装を利用するユーザーもいるだろうということで、 ライブラリとして提供するモジュールについてはそこだけ Guice ではなく、Play 独自の Module という仕組みに沿った形で実装します。 アプリケーションの起動時と終了時にメッセージを表示する Play Module を実装してみましょう。 まずは処理の本体です。 package example import play.api._ import javax.inject._
このウェブサイトは販売用です! forodin.com は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、forodin.comが全てとなります。あなたがお探しの内容が見つかることを願っています!
RubyはScalaに比べてクソとかいう話ではなく、Scalaから見たRubyの興味深い点のご紹介みたいな趣旨の発表です。発表資料が見にくくて申し訳ございません。 なぜかトリに発表することになった結果、Scalaのイベントで延々とRubyの話をしてる異常者みたいな印象が強化されたけど、私はただ、言語の多様性について皆さんに考えていただこうと…… RubyとScalaの印象についてですが、動的でアジリティとハック性に優れるRubyと、静的で記述性が高くアカデミック要素の強いScalaという感じですね。エコシステムの変化が激しくて、関連フレームワークのアップデートを怠るとすぐ死ぬのはどちらにも共通した特性(そういうのがつらい人はジャバエイトをやるとよい)。 私はJava出身といってもmavenエコシステムに関する知識に乏しかったので、mavenの上に載ってるsbtの依存性管理には悩まされました
だいぶニッチな需要な気がしますが、つまり メインのコードやライブラリに依存した処理なので、project/ 以下のScalaファイルに色々書くだけでは無理*1 sbtのデフォルトでは、(task経由で)mainメソッドを実行させることはできても、その結果を直接Scalaのオブジェクトとして取得できない(そもそもmainには戻り値ないし、取得できても成功か失敗かのsys.exitの値くらいだし) という感じです。まぁとにかくサンプル書いたので貼っておきます。もっと短く書ける方法あったら教えて下さい あと、sbtは0.12.3(つまりScala2.9.2)なのに、mainはScala2.10など、sbt側と本体側でScalaのversionが異なる場合は、Scala標準ライブラリのクラス(SeqとかTupleとかその他全部)を使うと、受け渡しの際にバイナリ互換性が保証されないわけで、基本的には
configがJavaのライブラリでちょっと使いづらいのでScala用にラッパーを書きました。 https://github.com/kxbmap/configs configz というのもあったんだけど、これはScalaz力が足りず思ったように使えなかったです。 使い方 SBTのビルド定義に以下を追加します。 libraryDependencies += "com.github.kxbmap" %% "configs" % "0.1.0" Sample // sample.conf int.value = 42 int.values = [1, 2, 3] duration = 10ms bytes = 10k obj { foo = 23 bar = Hello } scala> import com.typesafe.config._ import com.typesafe.conf
しばらく前ですが、Scalive #1というところでLTしてきました。 Scalaのコンパイルを3倍速くした話 こういう実務寄りのScalaイベントって珍しい気がしますね。なんと発表者が誰もモナドって言わなかった!! その代わりコンパイル速度について言及されまくってましたが……。 3月末からScalaでアドテクやるという会社に転職したのでScalaでアドテクをやってますが、Rubyでソシャゲやるのとそれほど感覚は変わらない。どちらも制限時間付きの大量リクエストをさばく必要があるけど、それなりのインフラがあれば、あとはふつうに高品質なコードを書いて粛々とレスポンスを返すのみですよワハハ。なのでハイパフォーマンスまわりのおもしろい話はできません。まあ常識で設計してふつうに開発すればいいんじゃないの。とか言ってると強い人から殴られそうだな…… 最近は技術的負債の返済を主なミッションとしてビルドシ
github にあるライブラリを使うのにローカルにインストールして云々しようとして色々試していたら id:xuwei と id:j5ik2o に github にあるライブラリ、直接使えるよ m9(^Д^)プギャー と言われて涙目でした。 んで、 あんまり知られてないし、教えてやったんだからブログに書け!! と、id:j5ik2o に脅されたので涙目で書いているところです。 import sbt._ import sbt.Keys._ object ProjectBuild extends Build { lazy val root = Project( id = "root", base = file("."), settings = Project.defaultSettings ++ Seq( name := "coderwall-bot", organization := "o
このウェブサイトは販売用です! twiwt.org は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、twiwt.orgが全てとなります。あなたがお探しの内容が見つかることを願っています!
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く