モジュラモノリスで表現する複雑なドメイン領域と境界 / Expressing complex domain regions and boundaries with 'modular monoliths
これはScala Advent Calendar 2015, Embulk Advent Calendar 2015, Couchbase Advent Calendar 2015の14日目の記事です。 昨日はOE_uiaさんの「Scala標準のPromiseがAndroidで便利だという話」(Scala), daichikeさんの「N1QLがJSONデータモデルの柔軟さを引き出す」(Couchbase)でした。 Couchbaseへの書き込みを行うEmbulkのOutputプラグインをScalaで書いてみたのでその紹介と手探り感を記事にした。 EmbulkプラグインはJavaまたはRubyで書くことができるが、すでにJavaプラグインをScalaで書く試みをされている方はいるようで、 embulkのpluginをScalaで作ってみようと思った時の備忘録や、 実際にScalaで書かれてい
Scaps is a search engine for discovering functionality in Scala libraries (or in other words, a Hoogle for Scala). You can use both type signatures and keywords in your search queries. Example Queries max: Int – An integer value with `max` in it’s name or doc comment. max: (Int, Int) => Int – A function taking two ints and returning Int. max: Int => Int => Int – Same query as above but in curried
以前、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
このエントリはScalaアドベントカレンダーの3日目です。昨日は Kuchitama さんのScalaがつないでくれた縁-NetflixMeetup Kyoto 開催後記- でした。 前おき この記事は、タイトル通りFreeモナドとCoyonedaを扱うものの、あまりそれらの直接的な話やモナモナした話ではなく、そこに至るまでの実装のあれこれを『Scalaのプログラミングとして』手探りで追ってみよう、というものです。 その過程で、特に型引数(型変数)や高階型や、それらが継承時にどう扱えるかというあたりのScalaの基本にたっぷり触れます。 なので、Freeモナドに興味がない方でも 型引数で A とか F[_] とか出てくると、まだちょっとこわい Scalaでいざプログラミングすると型が合わずつまづく事が多い という方にも、役に立つ部分があると思うので参考にぜひ読んでみてもらいたいです。 もち
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 では、一つの戦略に落ち着くまで三つの異なる方法を試した
11. hprof: JVM標準 プロファイラ • jvmオプションつけてsbt compile • 結果はjava.hprof.txtに出力されま す $ sbt -J-agentlib:hprof=cpu=samples,depth=5 clean compile 12. 結果見る • depth=5で荒い解析 • クラスのロードが大量にされている……? rank self accum count trace method 1 12.04% 12.04% 2158 300093 java.util.zip.ZipFile.getEntry 2 9.90% 21.95% 1775 300065 java.lang.Throwable.fillInStackTrace 3 7.21% 29.16% 1293 303874 java.lang.Class.forName0 4 5.40% 3
Tagged Typeとは?ある型と値は同じだけど違う型を持たせる いくつか実装がある 今回はScalaz 7.1.0-RC1のものについて Scalaz 7.0.xまでとは挙動が異なる shapelessにも存在する Scalaでの実現方法を考えたのがshapeless作者のMiles Sabinさん 7.0.xと同様のものがshapeless.tag、7.1.0-RC1と同様のものがshapeless.newtypeとして定義されている Tagged Typeとは?scala> import scalaz.Tag import scalaz.Tag scala> sealed trait Foo defined trait Foo scala> "Hello, Scalaz!" res0: String = Hello, Scalaz! scala> Tag[String, Foo](
class: center, middle # Scalazの歴史と概要 <a style="font-size: 10%" rel="license" href="http://creativecommons.org/licenses/by/2.1/jp/"><img alt="クリエイティブ・コモンズ・ライセンス" style="border-width:0" src="http://i.creativecommons.org/l/by/2.1/jp/88x31.png" /></a> --- class: middle <img src="https://pbs.twimg.com/profile_images/1931553270/xuwei.gif" width="100" height="100" /> - twitter [@xuwei_k](https://twitter.
Latest Stable Release 0.23.27 Latest Milestone Release 1.0.0-M41 License Apache 2.0 Typeful http4s servers and clients share an immutable model of requests and responses. Standard headers are modeled as semantic types, and entity codecs are done by typeclass. Functional The pure functional side of Scala is favored to promote composability and easy reasoning about your code. I/O is managed through
列挙順自体はとくに意味ありません。あと「どの最適化がどのくらい速くなるのか?」を詳細に計ったことはないですし、「原理的にこうなってるから(ry」というのを説明するに過ぎません。中には「JITで無意味になるようなどうでもいい細かすぎること」も書いてありますし、最適化のトレードオフとして失うものもあるので、そのあたり自己責任でお願いします。本当に最適化が必要とされる場合は、以下のものを無闇に実行するよりまず計測したほうがいいのは、言うまでもありません。*1 1. private[this]をつかえ scalaのvalやvarは、private[this]にしたときのみ、直接のフィールドアクセスになります(それ以外ではメソッド呼び出し)。シングルトンのobjectの場合も同様です。private[this]をつけられる場合はできるだけつけましょう 2. なんでもかんでもListをつかうな 最初の
なんか型クラスとか言うと型の怖いひとたちが怖い話をワイワイしてるイメージがありますよね。わたしはあります。「で、それって何がうれしいのよ」とか、そういう話はあまりされていないような印象がありますね(あくまで印象です)。その上 "Scala の implicit parameter は型クラスの一種" とか言われると「暗黙的な引数がなんで型クラスの一種なんや!!!意味がわからん!!!!」となります。わたしはなりました。 というわけでそのへんについて勉強したので書きます。 そもそも型クラスってなんや Haskellとかにあるやつですね。アドホック多相を実現するもの、らしいです。すごい、いきなり意味がわからない。 というわけで、まずは「アドホック多相ってなんなの」という話からして行きます。 さて、まずは「多相」から行きましょう。この文脈で言う多相とは、簡単に言えば「引数にいろんな型を取れる」とい
あなたは、Javascript で開発をしようと思って一歩を踏み出したけれど、 まだできていないという状況ではありませんか? もしかして、 Scala は知っているけど JavaScript は使いたくない JavaScript は使っているけどメンテナンスがしんどい 型...型... ・・・このような悩みをお持ちではないでしょうか? このウェブサイトは、これらのお悩みをお持ちのあなたのために作りました。 Scala を JavaScript に変換するツールがあったら、今すぐ欲しい!とあなたがお思いなら、 この先を読む必要はありません。 こちらからお申し込みいただき、このサイトを読む時間を実装にあててください。 さて、 Scala は知っているけど JavaScript は使いたくない JavaScript は使っているけどメンテナンスがしんどい 型...型... このような理由で実装が
全国のScalaを愛する皆様、お久しぶりです。 毎年大盛況を収めるScalaMatsuriを、2024年も開催することが決定しました!また、同時に本イベントにおけるセッションも同時に募集を開始します! ScalaMatsuri 2024の開催概要 ScalaMatsuri 2024のセッション募集 セッション応募フォーム ScalaMatsuri 2024 で聞きたいセッションのカテゴリーのアンケート結果について オフライン開催のScalaMaturi 2024 を一緒に再始動させましょう 〆 ScalaMatsuri 2024の開催概要 ScalaMatsuriはアジア最大規模のScalaをテーマとした技術カンファレンスであり、開催国の日本のみならず、世界中からスピーカーと参加者が集まるイベントです。 Scalaに関わる情報共有、知識共有、新しい繋がりの構築など、幅広い場を提供します。前
概要 SlickはScalaのCollection操作っぽい記述でDBにSQLを投げることができる。 どう書くとどういったSQLが投げられるのかは普通に使ってるだけだとイマイチわからないので。よく使いそうな記述とそれによって生成されるSQLについてまとめてみる。 SQLは改行を入れたりエスケープ文字を消したりして、多少見やすくしてます。SLick1.0.1を使ってますが、ざっと見た感じでは2.0.0-RC1でもほとんど変わらない。 クエリの出力方法 実行クエリはH2に対して TRACE_LEVEL_SYSTEM_OUT=2 を指定することで、H2が受け取ったクエリを標準出力させている。DBによって多少の出力クエリの違いはあると思われる。 import scala.slick.driver.H2Driver.simple._ Database.forURL( "jdbc:h2:mem:tes
English? This is an article for Japanese developers. English article is here: http://blog.seratch.net/post/77537302500/try-skinny-framework-1-0-0-rc1 Release Candidate 1 Skinny Framework 1.0.0-RC1 をリリースしました。基本的にはこれからは大きな機能追加はせずにバグの修正や API の最終的な確認・改善を行っていきます*1。 これから約 1 ヶ月、いろんな方に試していただいて final を良い形でリリースできればと思っています。 まずチームに感謝 私一人の力ではありません。本業も忙しい中、contribute してくださった @BlackPrincess と @Arakaki の両氏と pull
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く