並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 281件

新着順 人気順

Scalaの検索結果241 - 280 件 / 281件

  • Scala を使っている海外有名(big) tech 企業の紹介

    2021年には Scala 3 がリリースされて激アツなのに、google のサジェストでも "Scala オワコン" がでてきて悲しいですね😢 どこぞのインフルエンサーの影響でしょうか... ほかにも 有名OSS作者の travis brown さんがサヨナラしちゃったり... JetBrains さん: わが社のスカラチームは二番目に大きなチームですよ😊 JetBrains さん: だれも Scala 使ってないらしいので Fleet で Scala はさぽーとしませ~ん🤪 Kotlin を使ってね😊 (一応、JVM言語の読み込み・解析は可能なようですが Scala のシンタックスハイライトや補完機能は導入されていないようです.) なんてことがあったり... Scalaはオワコン?🤔 せっかくなので調べてみました!😖 以下 Scala を使っている big tech とその

      Scala を使っている海外有名(big) tech 企業の紹介
    • Tuples bring generic programming to Scala 3

      ⚠️ Beware of Scams: since Feb 2024, scammers are using fake Scala websites to sell courses, please check you are using an official source. Tuples allow developers to create new types by associating existing types. In doing so, they are very similar to case classes but unlike them they retain only the structure of the types (e.g., which type is in which order) rather than giving each element a name

        Tuples bring generic programming to Scala 3
      • Bloop · Compile, test and run Scala code fast

        Be more productive in Scala and reduce your compile-edit-test workflow. Use Bloop to enjoy an optimized developer experience that provides features from incremental to batch compilation, from running and debugging on the JVM to building Scala.js or Scala Native applications. Bloop integrates with IDEs and text editors to provide a short feedback cycle and reliable compiler diagnostics. Use Bloop w

        • Scalaのカレンダー | Advent Calendar 2019 - Qiita

          The Qiita Advent Calendar 2019 is supported by the following companies, organizations, and services.

            Scalaのカレンダー | Advent Calendar 2019 - Qiita
          • Scala を覚えてお金に困らなくなった話

            2010年くらいに Scala というプログラミング言語を勉強し始めて今で約10年。そのおかげで、今ではお金に困らなくなったという昔話。 もちろん、「Scala を覚えておけばお金稼げますよ!そのために、私がやっているセミナーを受講しましょう!」とか、そういう話では無い。 Scala を覚えて、なんでお金に困らなくなったかというと主に理由は3つ。 新しい言語を勉強すること自体によって、あるいはコミュニティの人に影響を受けて色々勉強するようになって、プログラマーとしての実力が上がり、もらえるお金が増えたScala がその後色んな場面で使われるようになって需要が増えたScala コミュニティの人経由で仕事がもらえたビッグデータ(Spark)の仕事はお金が良かった関わった会社でストックオプションをもらって、その会社が上場した 最初の1つは、どの言語を勉強していても多分それなりに同じ効果が得られた

              Scala を覚えてお金に困らなくなった話
            • ScalaのEffを使ってDDDのUseCase層をいい感じに書いてみる

              *Qiitaに掲載していたものと同じ内容をこちらに移転しました(作者は同じです)。 今回のサンプルコードはyu-croco/ddd_on_scalaに掲載していますので、気になる方は覗いてみてください。 経緯 Scala(PlayFramework) x DDDでアプリケーションを実装する際、UseCase層(Application層)を実装する際に辛さが出てくる。 何が辛いかと言うと、型のネストである。 というのも、 UseCase層ではエンティティ操作の過程で仕様周りのバリデーションをやることになりEitherが出てくる 例:ハンターがモンスターから素材を剥ぎ取るためには、モンスターが既に死んでいる必要がある (PlayFrameworkだと特に)Repository層での呼び出してFutureが出てくる そのため、UseCase層での各処理の型合わせが必然的に複雑になる傾向にある。

                ScalaのEffを使ってDDDのUseCase層をいい感じに書いてみる
              • TypeScript の便利な型変形を なんとかして Scala.js で使う / Emulating TypeScript Utility Types in ScalaJS

                https://opt.connpass.com/event/169724/

                  TypeScript の便利な型変形を なんとかして Scala.js で使う / Emulating TypeScript Utility Types in ScalaJS
                • Scalaでバイトコードに出力されるparamterにドットが含まれることへの対応 - Magnolia Tech

                  docs.oracle.com 4.2.2. Unqualified Names Names of methods, fields, local variables, and formal parameters are stored as unqualified names. An unqualified name must contain at least one Unicode code point and must not contain any of the ASCII characters . ; [ / (that is, period or semicolon or left square bracket or forward slash). なるほど、仕様書にそう書かれているのか。 先日のエントリでなぜそんなチェックをしているのか分からないと書いたけど、Javaの仕様書には

                    Scalaでバイトコードに出力されるparamterにドットが含まれることへの対応 - Magnolia Tech
                  • Practical FP in Scala

                    Practical FP in Scala: A hands-on approach, is a book for intermediate to advanced Scala developers. Aimed at those who understand functional effects, referential transparency and the benefits of functional programming to some extent but who are missing some pieces to put all these concepts together to build a large application in a time-constrained manner. Throughout the chapters we will design,

                      Practical FP in Scala
                    • Scala Group / 株式会社スカラ -

                      BUSINESS スカラグループは、あらゆるステークホルダーに対して新たな価値を創造する機会を提供する『価値共創プラットフォーム』です。 私たちは、AI/IoTと価値創造理論を基盤に、「地球上の誰一人として取り残さない世界の実現」、「全ての人々の幸せと人類の進歩」、 「全てのステークホルダーの心をつかむ価値創造力の向上」という3つのテーマに貢献していきます。 クライアントへのサービス

                        Scala Group / 株式会社スカラ -
                      • Release Scala 2.13.0 · scala/scala

                        We are delighted to announce the availability of Scala 2.13.0! Release summary 2.13 improves Scala in the following areas: Collections: Standard library collections have been overhauled for simplicity, performance, and safety. This is the centerpiece of the release. Standard library: Future is faster and more robust. Elsewhere, useful classes and methods have been added. Language: Literal types, p

                          Release Scala 2.13.0 · scala/scala
                        • 2021年の最新技術を使った場合のScalaのコンパイル速度 - xuwei-k's blog

                          ここでいう最新技術とは以下です。 JDK8や11よりも、17の方が速い? M1 Macが速い?(2021年最新のM1 Maxではなく、2020のMacbook Pro 13インチのM1です・・・。M1 Max欲しい!!! => 最後に追記したぞ) Scala 2より3の方が速い? 自分の最近の経験上、それらが速いはず?なので。 上記は、全部場合による(projectによる)かもしれないし、あまり変わらないパターンも含まれているかもしれませんが、とりあえず一部(Scala 2自体のcompile)を除いて、上記の条件でコンパイル速度を計測してみたら、 数年前の感覚と比較して結構速い感じがあったので、それの計測結果の共有です。 個々の条件をもっと細かく変えるのは、組合せ爆発して辛いので、誰か気になった人はやってみてください。 何年も前と比べるとsbtでの依存解決もだいぶはやくなったし、ビルド速

                            2021年の最新技術を使った場合のScalaのコンパイル速度 - xuwei-k's blog
                          • Scalaが日本で衰退し始めている理由を説明します

                            どういったコンピュータ言語にも栄枯盛衰はあるのですが、日本において「Scala」という言語がここ数年で「右肩下がり」になってしまった原因と、コミュニティの「心理的安全」の重要性について、僕なりの視点で簡単にお話してみました。 --- ★動画の中で参照した記事 Ruby→Go→Scalaという習得順序がエンジニアの爆速の成長に最適である理由 - Qiita https://qiita.com/poly_soft/items/1feaa1ec5ecab08dc6db ★オンラインサロン「雑食系エンジニアサロン」 https://zsksalon.com ★雑食系ビジネス大学(YouTube新チャンネル) https://www.youtube.com/channel/UC2PpsPaCBhYTWCj40wVJRyw ★Twitter https://twitter.com/poly

                              Scalaが日本で衰退し始めている理由を説明します
                            • almond · A Scala kernel for Jupyter

                              Ammonite is a modern and user-friendly Scala shell. Almond wraps it in a Jupyter kernel, giving you all its features and niceties, including customizable pretty-printing, magic imports, advanced dependency handling, its API, right from Jupyter. This also makes it easy to copy some code from notebooks to Ammonite scripts, and vice versa.

                              • java経験者のScala入門メモ [トレイト、メソッド] - Qiita

                                今回はトレイトとメソッド タイトルどおり、今回はトレイトとメソッドについて トレイトは実はjavaユーザには馴染み深い内容だったりする メソッドはどちらかというと使い方より、仕組みであったりScalaでの定義であったり 知っておくべきではあるけど、つまらない内容になりそうな感じ trait(トレイト) trait(トレイト)はjavaユーザーには馴染み深いものです なぜならScalaでのtraitはJavaでのinterfaceとほとんど同じだからです ちょっと余談ですが本当にinterfaceとそっくりで interfaceをいくつも実装することは出来ても、クラスの多重継承は出来ないという点も同じです 逆に何が違うかというと javaのinterfaceには出来なかったメソッドに実装をもたせることが出来るという点です トレイトの定義 定義はこれまで紹介したものの様に「trait」で宣言し

                                  java経験者のScala入門メモ [トレイト、メソッド] - Qiita
                                • Kotlin と Scala の比較 - blog.8-p.info

                                  水島さんが Scalaの学習コストについての私見 で、 実際、Scala難しいならKotlinも難しいとなりそうなくらい両者は似ている……というより、KotlinはScalaの主要な機能をほぼ継承しているのですが、その辺りはJetBrainsのマーケティングが上手なのと、ライブラリの互換性を軽視しなかったこと、厳格な立場をとる人があまりいないこと、JetBrainsの政治がうまい辺りが主要因だろうなと感じています(これは悪口ではなくて、逆にLightbendの言語マーケティングが上手くなかったというのが正直な実感です)。 と書いていたけれど、マーケティング、互換性、コミュニティ、政治、といってしまうのは、言語も含めたソフトウェアそのものの違いを無視しすぎていると思うので、そういう話をします。 Kotlin と Mapped Types 以前に書いた、Kotlin のコレクションと Mapp

                                  • Scala 3で型レベル自然数をやってみたらすごく簡単になってた - kmizuの日記

                                    Scala 3、正式リリースされてからそこそこ経ってますが皆さん使ってますか?実は自分は、主にIntellij IDEAのScala 3対応に不安もあってScala 2.13系列をずっと使い続けて来たのですが、最近はScala 3対応も進んできたようなので乗り換えを始めることにしました。で、手始めにということで型レベル自然数(型レベルペアノ数)を定義してみることにしました。 型レベル自然数は読んで字の如くで、型のレベルで自然数をエンコーディングしちゃおうって技です。依存型のある言語なら最初からあるので、わざわざ型レベル自然数とか大仰な言い方しなくてもいいのですが、それはそれとして論より証拠。早速、Scala 3で型レベル自然数を定義してみます。 enum Nat { case Zero case Succ[A <: Nat](v: A) } 定義はこれだけです。簡単ですね。Scala 2だ

                                      Scala 3で型レベル自然数をやってみたらすごく簡単になってた - kmizuの日記
                                    • GitHub - mmalek06/JsonSql: SQL micro-dialect implementation for querying JSON objects. Written purely in Scala.

                                      In order to be able to parse text documents correctly, some baseline syntax had to be established. When it comes to Json itself, it may look as you like, no restrictions here. Though, when it comes to SQL, it needs to abide to certain rules: Fields should always be surrounded by double quotes: "example.field". String constants should always be surrounded by single quotes: 'I\'m a string constant!'

                                        GitHub - mmalek06/JsonSql: SQL micro-dialect implementation for querying JSON objects. Written purely in Scala.
                                      • 今から関数型プログラミングを学ぶとしたら、ScalaとHaskell、どっちがオススメですか? | mond

                                        mondでこの質問への回答を読んでみましょう

                                          今から関数型プログラミングを学ぶとしたら、ScalaとHaskell、どっちがオススメですか? | mond
                                        • -WconfオプションでScalaコンパイラの警告を抑制する - たけぞう瀕死ブログ

                                          Scala 2.13.2で-Wconfというオプションが追加されており、コンパイラが出力する警告を細かくカスタマイズすることができるようになっています。このオプションはScala 2.12系にもバックポートされており、Scala 2.12.13で利用可能です。 www.scala-lang.org たとえばScalaコンパイラは-deprecationオプションを指定すると非推奨のAPIの使用に対して警告を出力しますが、build.sbtに以下のような設定を追加することで、自動生成されたコードに対しては警告を出力しないようにできます。 scalacOptions := Seq( "-deprecation", "-Wconf:cat=deprecation&src=src_managed/.*:s" ) 指定方法は-Wconf:<filters>:<action>,<filters>:<a

                                            -WconfオプションでScalaコンパイラの警告を抑制する - たけぞう瀕死ブログ
                                          • How Scala works at Mercari

                                            Production-ready stream data pipeline in Merpay, Inc

                                              How Scala works at Mercari
                                            • PantsビルドシステムがJava、Scala、Goを新たにサポート

                                              Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                PantsビルドシステムがJava、Scala、Goを新たにサポート
                                              • 『なっとく!関数型プログラミング』はScalaで説明されている本だけど読んだらHaskellのdoもわかるようになった - nakaoka3の技術ブログ

                                                関数型プログラミング言語については、以前にHaskellの本を読んでみたりして、興味はあったのだが正直あまり理解できてなかった。 『なっとく!関数型プログラミング』はScalaのコードで関数型プログラミングを説明している本だ。最近邦訳が発売されて話題になっていたので買って読んでみた。 www.seshop.com この本で入れ子のflatMap の説明から、Scalaの for 内包表記 を説明しているところを読んで、Haskell の do もこれかということに気がついた。 リストの場合 // 入れ子のflatMap val result = List(1, 2).flatMap { x => List(10, 20).flatMap { y => List(100, 200).map { z => x + y + z } } } // for内包表記 val result2 = for

                                                  『なっとく!関数型プログラミング』はScalaで説明されている本だけど読んだらHaskellのdoもわかるようになった - nakaoka3の技術ブログ
                                                • How To Use Scala At Work - Airframe In Action at Arm Treasure Data

                                                  How To Use Scala At Work - Airframe In Action at Arm Treasure Data

                                                    How To Use Scala At Work - Airframe In Action at Arm Treasure Data
                                                  • From Java through Scala to Clojure

                                                    JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング JavaプログラマこそScalaやClojureを試してみよう!

                                                      From Java through Scala to Clojure
                                                    • Scalaのメソッドのパラメータ名をリフレクションで取得する - Magnolia Tech

                                                      長い人生、生きていれば、Scalaで実行時にメソッドのパラメータ名を取得したくなることが一度や二度有りますね。 そんな時のためのやり方のメモです。 package example import scala.reflect._ import com.thoughtworks.paranamer.{BytecodeReadingParanamer, CachingParanamer} case class Person(name: String, age: Int) case class Company(会社名: String) case class Country(`country-code`: String) case class Planet(`star.cluster`: String) object GettingParameter { val paranamer = new Cac

                                                        Scalaのメソッドのパラメータ名をリフレクションで取得する - Magnolia Tech
                                                      • Scala用のRisonパーサを作ってみた - たけぞう瀕死ブログ

                                                        RisonというのはJSONライクかつURLに埋め込みやすいようURLエンコーディングが最小限になるよう設計されたデータフォーマットだそうで、Kibanaなどで使われているそうです。日本語だと以下の記事が詳しいです(自分もこの記事を見てRisonを知りました)。 qiita.com すでにJavaScriptやPython、Golangなど様々な言語向けのライブラリが存在するようですが、Scala用のライブラリが見当たらなかったので久しぶりにScalaのパーサコンビネータライブラリを使って実装してみました。 github.com こんな感じで使います。 import com.github.takezoe.rison._ val parser = new RisonParser() // parse parser.parse("(name:Lacazette,age:27)") match

                                                          Scala用のRisonパーサを作ってみた - たけぞう瀕死ブログ
                                                        • NetflixがOSS化したScala/Spark用ノートブックPolynoteを試してみる - たけぞう瀕死ブログ

                                                          もう1年以上前の話になりますが、NetflixがSpark対応のScala用ノートブックPolynoteをOSS化したという話がありました。 netflixtechblog.com 既存のノートブックではScalaを使っていてもコード補完などがあまり効かないものが多く、まとまったコードを書くときは結局IDEを使うという感じになりがちなのですが、PolynoteはScalaを第一言語としてサポートする珍しいノートブックで、コード補完などの機能も充実しているようなので遅ればせながら試してみました。 インストール Sparkを使う場合、まずは先にSparkをインストールしておく必要があります。とりあえずローカルモードで動かすだけであればSparkのリリースディストリビューションをダウンロードして適当なディレクトリに展開しておくだけでOKですが、Polynoteは内部的にspark-submitコ

                                                            NetflixがOSS化したScala/Spark用ノートブックPolynoteを試してみる - たけぞう瀕死ブログ
                                                          • Scalaでfindify/s3mockによるテストを行おうとしてエラーにハマった結果max8github/s3mockでカバーした話 | DevelopersIO

                                                            はじめに ScalaでS3を利用した処理のテストを行いたい場合に、findify/s3mockを使う方法をよく見かけます。stackoverflowでもコード例を見かけるために非常に手間が省けるのですが、実際にやってみると環境によってはかなり頭を抱えるトラップがあります。 Bucketは作れる putObjectはエラーになる エラーの原因と、対処方法についてまとめました。 エラーの原因 なにがエラーで何がエラーじゃないのか、loggerを使って詳細を確認しました。その結果、 ファイル追加は正常に行われる 追加した後の処理がエラーになる という厄介な状態になっていることがわかりました。つまり、ファイルは置かれても例外によりassertがエラーになります。 原因としては、PutObject実行時にモックサーバがjdk.internal.ref.Cleanerによる500 Internal S

                                                              Scalaでfindify/s3mockによるテストを行おうとしてエラーにハマった結果max8github/s3mockでカバーした話 | DevelopersIO
                                                            • Explicit term inference with Scala 3

                                                              ⚠️ Beware of Scams: since Feb 2024, scammers are using fake Scala websites to sell courses, please check you are using an official source. Explicit term inference with Scala 3 One of the most striking changes for developers adopting Scala 3 is the introduction of a new syntax to replace the implicit mechanism used in previous Scala versions. The motivation behind the new syntax is that the same im

                                                                Explicit term inference with Scala 3
                                                              • JVM の非同期処理: Scala Cats Effect 3 の Fiber(軽量スレッド) とthread per core の話

                                                                JVM の非同期処理: Scala Cats Effect 3 の Fiber(軽量スレッド) とthread per core の話 JVM における Thread と Thread Pool 現行の JVM のデザインでは非同期処理には Thread を使う. JVM の Thread は OS thread の薄いラッパーで OS にその処理を委譲している. そして OS での Thread の作成・管理には OS リソース やハードウェアリソースの割り当てが必要になる. また複数の Thread のコンテキストスイッチもコストが高い. Thread Pool とは、相対的に高コストで希少な資源である Thread を使いまわして効率をよくするための概念である. さて、コンピューターから見ると Thread の作成と管理は高コストで、Thread はハードウェアの性能にもよるがたかだ

                                                                  JVM の非同期処理: Scala Cats Effect 3 の Fiber(軽量スレッド) とthread per core の話
                                                                • Scala 3 Release Party

                                                                  Scala 3 release is becoming a reality! Join us celebrating the long-awaited release of our favourite language. Hear from Martin Odersky & the Scala 3 team and ask them any burning questions about Scala 3 you have in mind.

                                                                    Scala 3 Release Party
                                                                  • onboarding_for_scala_team.pdf

                                                                    ログイン読み込んでいます…

                                                                      onboarding_for_scala_team.pdf
                                                                    • AWS LambdaでScala 3をContainer imageで動作させる - Lambdaカクテル

                                                                      先日(といっても結構前のことだが)、Scala 3のLTSサポートバージョンである3.3.0がリリースされた。Scala 3の開発が円熟してきているようで嬉しい。これからも元気でいてね。今回はScala 3をAWS LambdaのContainer imageを使って動作させる手法についてお伝えしたい。令和ではお盆の精霊はコンテナに乗ってやってくるぞ。 www.scala-lang.org これまでもこのブログではAWS LambdaでScala 3を動作させる方法を紹介してきたが、アーティファクトのサイズが大きくなると、JARを直接デプロイする方式ではアーティファクトに250MBのサイズ制限が生じるという問題があった。機械学習などを利用するアプリケーションではこのサイズ制限によりLambdaの利用に制約が生まれがちである(ただし、アーティファクトにJVMを含まなくても良いためサイズ効率は

                                                                        AWS LambdaでScala 3をContainer imageで動作させる - Lambdaカクテル
                                                                      • Announcing Scala.js 1.4.0

                                                                        Jan 12, 2021. We are excited to announce the release of Scala.js 1.4.0! This release complements the module splitting support, introduced in Scala.js 1.3.0, with support for dynamic module loading. It is now possible to structure an application such that specific features are only loaded if necessary, the first time they are used. In addition, this release significantly improves the performance of

                                                                          Announcing Scala.js 1.4.0
                                                                        • Scala CLIのDockerイメージを使うと本当に簡単にシングルバイナリを生成できて便利 - Lambdaカクテル

                                                                          Scala CLIのおもしろい使い方を見付けたのでメモ。これまでと比べてはるかにScalaのちょっとしたスクリプトのシングルバイナリを生成できるようになるので、本当にGolangみたいに簡単にちょっとしたツールを作れるようになった。 scala-cli package Scala Nativeはシングルバイナリを生成できる Dockerイメージを利用すると便利 用途 クロスコンパイルはまだできなそう まとめ 過去の記事 scala-cli package Scala CLIにはpackageというサブコマンドがあり、これを利用するとScala ScriptをそのままUber JAR(直接実行できるJARファイル)にビルドできるのでなかなか便利だ。 しかもなんと--nativeオプションを使うことでバックエンドがScala Nativeに切り替わり、ネイティブバイナリを生成できるようになる。

                                                                            Scala CLIのDockerイメージを使うと本当に簡単にシングルバイナリを生成できて便利 - Lambdaカクテル
                                                                          • ヴァレオ、第3世代LiDAR「SCALA 3」や「パントマイム」など新技術をデモ

                                                                              ヴァレオ、第3世代LiDAR「SCALA 3」や「パントマイム」など新技術をデモ
                                                                            • WEB+DB PRESS Vol.125で「Scala 3クイックツアー」を執筆しました - shinharadの日記

                                                                              10月23日(土)発売のWEB+DB PRESS Vol.125で一般記事「新登場!Scala 3クイックツアー」というScala 3の入門記事を執筆しました。今回はこの記事について紹介します。 WEB+DB PRESS Vol.125、どこよりも早い表紙画像です! 今号は作って学ぶプログラミング言語のしくみ、GraphQL完全ガイド、速習DynamoDBを大特集!10月23日発売です!#wdpress pic.twitter.com/9EBxQIzgzf— WEB+DB PRESS編集部 (@wdpress) 2021年10月6日 記事の内容は、Scala 3が登場した背景やどんな機能が追加されたのか、なぜ変わったのかを紹介しています。記事を一通り読んだあと「Scala 3のことをもっと知りたい!書きたい!」と思っていただけるような内容を目指しました。 対象読者は、「Scala 2を触っ

                                                                                WEB+DB PRESS Vol.125で「Scala 3クイックツアー」を執筆しました - shinharadの日記
                                                                              • アルプでのScala 3移行

                                                                                class: center, middle # アルプでの<br/>Scala 3 移行 <https://alp.connpass.com/event/239935/> Scalaを使ったSaaSプロダクト開発の<br/>裏側お見せします! 2022/3/4 --- class: middle <img src="image/xuwei.gif" alt="icon" style="zoom: 0.3" /> - twitter [@xuwei_k](https://twitter.com/xuwei_k) - github [@xuwei-k](https://github.com/xuwei-k) - blog <https://xuwei-k.hatenablog.com> --- class: middle ## 近況 - 相変わらず某社でScala書く仕事してます - もう3年

                                                                                • ScalaのEffを使ってDDDのUseCase層をいい感じに書いてみる - Qiita

                                                                                  経緯 Scala(PlayFramework) x DDDでアプリケーションを実装する際、UseCase層(Application層)を実装する際に辛さが出てくる。 何が辛いかと言うと、型のネストである。 というのも、 UseCase層ではエンティティ操作の過程で仕様周りのバリデーションをやることになりEitherが出てくる 例:ハンターがモンスターから素材を剥ぎ取るためには、モンスターが既に死んでいる必要がある (PlayFrameworkだと特に)Repository層での呼び出してFutureが出てくる そのため、UseCase層での各処理の型合わせが必然的に複雑になる傾向にある。 サンプル 例として、なんちゃってモンハンを想定して「ハンターがモンスターにダメージを与える」というユースケースを実装してみる。 *いろんな突っ込みがあると思うのですが、マサカリはヤメてください。 forの

                                                                                    ScalaのEffを使ってDDDのUseCase層をいい感じに書いてみる - Qiita