並び順

ブックマーク数

期間指定

  • から
  • まで

361 - 400 件 / 400件

新着順 人気順

Scalaの検索結果361 - 400 件 / 400件

  • 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層をいい感じに書いてみる
          • ScalaScriptで実装する AlfredからSlackに簡単投稿 | DevelopersIO

            はじめに こちらのブログ(Scala で簡単スクリプト Ammonite を試す) でScalaで簡単なスクリプトが書けるAmmoniteに入門しました。Ammonite にはScalaで簡単にスクリプトが書ける ScalaScript という機能あるため、何か作ってみたくなりますよね。 以前 Alfredから簡単にSlack分報をPostする 機能をGoで実装しましたが、こちらをScalaScriptで再実装してみます。 完成デモ Alfredを起動して t [メッセージ] で分報チャンネルに投稿します。 実装 準備 Ammonite Ammoniteについて紹介したブログはこちら Alfred プロ Alfredのworkflow機能を使うにはproバージョン(有料)が必要です Slackのトークン Bolt入門ガイドがとても参考になります トークンとアプリのインストール までで大丈夫

              ScalaScriptで実装する AlfredからSlackに簡単投稿 | DevelopersIO
            • toolkit/docs/problem-matchers.md at master · actions/toolkit

              You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                toolkit/docs/problem-matchers.md at master · actions/toolkit
              • Functional Error&Retry Handling

                This presentation includes these following three things: 1. Error Handling with MonadError 2. Retry Handling with cats-retry Sample Code: https://github.com/Hiroki6/SampleFunctionalErrorAndRetryHandling

                  Functional Error&Retry Handling
                • Fast Parallel Testing at Databricks with Bazel

                  Unified governance for all data, analytics and AI assets

                    Fast Parallel Testing at Databricks with Bazel
                  • Statement

                    I stand with Yifan I believe Yifan’s story, because it’s consistent with my experience of Jon Pretty as a manipulative, abusive, and dishonest person. I stand by her decision to come forward, and I want to share my account of his interactions with me to corroborate her story and establish that this is a pattern of harmful behavior on his part. Similar to Yifan’s experience, Jon Pretty and I met at

                    • 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
                      • GitHub - windymelt/zmm: 解説動画生成ツール

                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                          GitHub - windymelt/zmm: 解説動画生成ツール
                        • GitHub Actionsでテストのエラーをわかりやすく表示する - たけぞう瀕死ブログ

                          CircleCIにはJUnit形式のテストレポートを食わせてテスト結果をわかりやすく表示してくれる機能があるのですが、GitHub Actionsでも同じようなことができないかなと思って調べてみたところ、以下のアクションを使えばできそうなので試してみました。 github.com 使い方は簡単で、テスト実行後にこんな感じの設定を追加するだけ。 - name: Publish Test Report uses: mikepenz/action-junit-report@v2 if: always() with: report_paths: '**/build/test-results/test/TEST-*.xml' Scalaプロジェクトの場合、sbtがtarget/test-reportsディレクトリ配下にJUnit形式のテストレポートを出力してくれるのでreport_pathsを以下の

                            GitHub Actionsでテストのエラーをわかりやすく表示する - たけぞう瀕死ブログ
                          • ScalaMatsuri 2024開催決定!CFPも募集開始! #ScalaMatsuri - ScalaMatsuri運営ブログ

                            全国のScalaを愛する皆様、お久しぶりです。 毎年大盛況を収めるScalaMatsuriを、2024年も開催することが決定しました!また、同時に本イベントにおけるセッションも同時に募集を開始します! ScalaMatsuri 2024の開催概要 ScalaMatsuri 2024のセッション募集 セッション応募フォーム ScalaMatsuri 2024 で聞きたいセッションのカテゴリーのアンケート結果について オフライン開催のScalaMaturi 2024 を一緒に再始動させましょう 〆 ScalaMatsuri 2024の開催概要 ScalaMatsuriはアジア最大規模のScalaをテーマとした技術カンファレンスであり、開催国の日本のみならず、世界中からスピーカーと参加者が集まるイベントです。 Scalaに関わる情報共有、知識共有、新しい繋がりの構築など、幅広い場を提供します。前

                              ScalaMatsuri 2024開催決定!CFPも募集開始! #ScalaMatsuri - ScalaMatsuri運営ブログ
                            • 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.

                                • ScalaMatsuri 2019で「実践 Clean Architecture」の発表とスポンサー&ブース出展させていただきました - Chatwork Creator's Note

                                  おはこんばんちわ。 藤井 ( @yoshiyoshifujii ) です。 この度、2年ぶり3回目のScalaMatsuri登壇の機会をいただきました。ありがとうございます。 発表資料は以下です。 speakerdeck.com 使用しているツールの関係で、資料の下部の文字が切れております。以下のリンクから文字が切れてない完全版の資料がご参照いただけます。 https://yoshiyoshifujii.github.io/slides/2019/06/28/clean-architecture-in-practice-at-scalamatsuri2019.html また、サンプルとして作成したソースコードのリポジトリは、以下になります。 github.com それでは、以下にスポンサー&ブース出展の件と感想などを書きます。 スポンサー&ブース 今年は、Chatworkに所属を移してのS

                                    ScalaMatsuri 2019で「実践 Clean Architecture」の発表とスポンサー&ブース出展させていただきました - Chatwork Creator's Note
                                  • Things happening before start coding with Metals ~behind the curtain of daily coding~ #ScalaTokyo でLTしました - たにしきんぐダム

                                    Scala Tokyo 2020/09/25 開催の scala.tokyo で Things happening before start coding with Metals ~behind the curtain of daily coding~ という気取ったタイトルのLT(10分)をしました。 イベント主催の皆さん、21時を回っていたのに僕の発表を最後まで聞いてくれた人たち、本当にありがとうございました! scala-tokyo.connpass.com 内容としては以下のような感じ。需要あるのかわからなかったけれどTwitterを見ていると結構反応が良く嬉しい。そのうち内容をまとめて英訳してブログにでも投稿しようと思う。 scalaのIDE(language server)であるmetals のvscode pluginであるmetals-vscodeをインストールした状態で

                                      Things happening before start coding with Metals ~behind the curtain of daily coding~ #ScalaTokyo でLTしました - たにしきんぐダム
                                    • -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
                                        • 『なっとく!関数型プログラミング』は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の技術ブログ
                                          • Alp開発日誌 Day6 「ScalaMatsuri2019で発表してきました」 - 道産子エンジニア

                                            開発が佳境のアルプですが、Scalaを使っている企業としてのプレゼンスを上げるべくイベントへの参加も積極的に行っています。 結果的にはScala界隈マップにのったり二次会で話題になるくらいですが、多くの方から認知をしていただけたと思います。 ScalaMatsuriへの参加を決めたのは、率先してスタッフとして活動していた取締役の竹尾の影響もあります。開発者フレンドリーな精神を経営メンバーがもっているのはアルプの強みです。せっかく参加するのであれば、いち参加者としてではなく当事者意識を持ってエンジョイ(登壇)してみようとCFPへ応募していました。 僕のバックグラウンドはKotlinでのモバイルアプリ開発なので、なんとなく全く別なコミュニティへの参加の怖さがありました。ですが、 AndroidとiOSの垣根を超えたコラボレーションは増えていますし、こにふぁーさんの前例もあるので、言語を跨いだ開

                                              Alp開発日誌 Day6 「ScalaMatsuri2019で発表してきました」 - 道産子エンジニア
                                            • Functional and Reactive Domain Modeling 各章まとめ - Qiita

                                              Functional and Reactive Domain Modelingとは、ドメイン駆動設計(DDD)の関数型プログラミング(FP)とリアクティブプログラミング(RP)によるアプローチを書いた本 1. 関数型ドメインモデリング:イントロダクション 変更可能なステートを避ける - 変更可能なステートは管理が難しく、非決定性につながる 参照透過性 - FPは、参照透過なモデルコンポーネントを設計する能力を提供する。モデルの振る舞いが純粋関数で構築されていることで合成性を得られ、小さな関数から大きな関数を作ることができる 自律的成長 - 関数型の設計と思考で、モデルは自律的に成長する。純粋性故にモデルは数学的に扱うことができ、推論ができる コアドメインに集中する - DDDの原則を使用してモデルを構築すると、リポジトリやファクトリといったパターンに基づいて編成されたエンティティや値オブジ

                                                Functional and Reactive Domain Modeling 各章まとめ - Qiita
                                              • 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
                                                  • 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 の話
                                                    • gatlingのレスポンスボディをCirceでデコードする | DevelopersIO

                                                      はじめに GatlingでAPIテストを記述しているとリクエストボディのJSONに対するアサーションを記述する場合があります。公式にはJSON PathでJSONの中身を取り出すAPIが提供されています。 Gatling Checks こんな感じです。 // JSON Response { "foo": 1, "bar" "baz" } jsonPath("$..foo").ofType[Int] // will match 1 Circeでパースしたい Scalaを使っているとCirceでVOにマッピングしたくなるのが人情です。やってみます。 こうなる そして、いきなりですが、こうなります。(コード全体はこちらにあります) object CirceOps { type ParseResult[A] = Either[Throwable, A] type RequestBodyType =

                                                        gatlingのレスポンスボディをCirceでデコードする | DevelopersIO
                                                      • 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
                                                        • Performance guide · Bloop

                                                          A major goal of Bloop as a build server for the Scala programming language is to be as fast as possible, by default, with no sacrifices in correctness or compromises in user experience. In spite of these constraints, Bloop is in fact as fast as or faster than the most popular build tools in the Scala ecosystem. However, it is easy to go astray without an appropriate set of tools that identify regr

                                                          • 既存のアプリケーションからAkkaを切り離して大幅なコスト増を回避する - Chatwork Creator's Note

                                                            みなさん、こんにちは!Chatworkの原田 (@shinharad) です。 今回は、私が最近取り組んでいる、既存のScalaアプリケーションからAkkaの依存を切り離す準備を進めている話を書こうと思います。Akkaの切り離し方は色々あると思いますが、一つの方法として参考にしていただければと思います。 なお、現時点ではAkkaを切り離すことでコスト面での効果が最も大きいアプリケーションを対象として進めています。今後他のアプリケーションも同様にAkkaを切り離すかどうかは、状況を見ながら判断していくことになりそうです。 Akkaを切り離すに至った背景 Akkaは、並行・分散システムの構築をサポートするツールキットで、弊社ではこれまで多くのScalaアプリケーションで採用してきました。Akkaのエコシステムは包括的かつ強力で、Web APIやストリーム処理、分散処理など、アプリケーションの特

                                                              既存のアプリケーションからAkkaを切り離して大幅なコスト増を回避する - Chatwork Creator's Note
                                                            • ScalaTest

                                                              Using matchers ScalaTest provides a domain specific language (DSL) for expressing assertions in tests using the word should. Just mix in should.Matchers, like this: import org.scalatest.flatspec._ import org.scalatest.matchers.should._ class ExampleSpec extends AnyFlatSpec with Matchers { ... You can alternatively import the members of the trait, a technique particularly useful when you want to tr

                                                              • 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カクテル
                                                                      • sbtのAutoPluginを理解する(requires, trigger, autoImport) - Qiita

                                                                        プラグインとは? sbtのプラグインは、簡単に言うと「ビルド定義の外付け」です。 複数のプロジェクト間にまたがる設定を共通化できます。 また外部ツールやフレームワークを使うときに、それ用のプラグインを読み込まないとそもそも動かなかったりします。 そういったときはproject/plugins.sbtにプラグインを追加することで、必要としている設定を読み込ませることが出来ます(こっちのほうがメインかも)。 例えば、フレームワークとしてPlayFrameworkを使いたいなら、以下のようにaddSbtPluginでPlayFramework用のプラグインを追加してあげる必要があります。 auto pluginとは? プラグインを使ったビルド定義の拡張を簡便にするための仕組みです。 sbt 1.0より前は、auto plugin以外の方法でプラグインを制御することも可能でした(そもそもauto

                                                                          sbtのAutoPluginを理解する(requires, trigger, autoImport) - Qiita
                                                                        • アルプでの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 for Everything: From Frontend to Backend Applications - Scala Matsuri 2020

                                                                            Scala for Everything: From Frontend to Backend Applications - Scala Matsuri 2020 Scala is a powerful language; You can build front-end applications with Scala.js, and efficient backend application servers for JVM. In this session, we will learn how to build everything with Scala by using Airframe OSS framework. Airframe is a library designed for maximizing the advantages of Scala as a hybrid of ob

                                                                              Scala for Everything: From Frontend to Backend Applications - Scala Matsuri 2020
                                                                            • ScalaのEffを使ってDDDのUseCase層をいい感じに書いてみる - Qiita

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

                                                                                ScalaのEffを使ってDDDのUseCase層をいい感じに書いてみる - Qiita
                                                                              • The programmer that controls the `traverse`, controls the code.

                                                                                class: center, middle # The programmer that controls the `traverse`, controls the code. Scala Matsuri 2023 2023/04/15<br> @gakuzzzz --- class: left, top ## Who am I * Manabu NAKAMURA * Twitter: [@gakuzzzz](https://twitter.com/gakuzzzz) * Tech to Value Co.,Ltd. CEO * Alp, Inc. Tech Lead --- class: left, top ## Note The Scala code in this slide uses version 3.2.2. It uses [cats](https://typelevel.or

                                                                                • Caliban

                                                                                  High performance While all public interfaces are pure and immutable, the library's internals are optimized for speed. Minimal boilerplate No need to manually define schemas for every type in your API. Let the compiler handle the tedious work. Excellent interoperability Out-of-the-box support for major HTTP server libraries, effect types, JSON libraries, and more.