Typelevel is an ecosystem of projects and a community of people united to foster an inclusive, welcoming, and safe environment around functional programming in Scala.
Typelevel is an ecosystem of projects and a community of people united to foster an inclusive, welcoming, and safe environment around functional programming in Scala.
リアクティブDDD実践入門 リアクティブシステムとドメイン駆動設計を組み合わせることがリアクティブDDDです。ChatWorkではすでにAkkaをフル活用した同様のシステムが運用されており、その経験から得られた知見を元に新しいDDDの設計スタイルを提案します。 主なトピックは以下です。 CQRS+Event Sourcingベースにしたアーキテクチャ構造の全体像 集約としてのアクターと永続化されるドメインイベント akka-httpのルート・ユースケース・集約アクタを一つのランナブルグラフに合成する方法 ReadModelUpdaterとDAOの実装 耐障害性のためのBackOffSupervisorとCircuitBreaker トークの長さ 40分 発表言語 日本語 聴衆の対象 中級者: 分野の基礎は分かるが、細かい所は不安 こんな人におすすめ AkkaやDDDに興味がある方 発表者
Akka Streams Kafka と Kafka Streams を両方運用している話 2016年に開発したChatWork のチャットメッセージングマイクロサービスは、Akka HTTP, Akka Streams をベースに Kafka のイベント処理に Kafka Streams を使用しました。 2017年に開発したWebhookマイクロサービスは、同じくAkka HTTP, Akka Streams をベースに Kafka のイベント処理は Akka Streams Kafka (旧名 Reactive Kafka) を使用しました。 現在どちらもプロダクションで稼働していますが、なぜ使い分けているのか? 何が違うのか? をお話しします。 トークの長さ 40分 発表言語 日本語 聴衆の対象 中級者: 分野の基礎は分かるが、細かい所は不安 こんな人におすすめ Akka にも K
ScalikeJDBC streams開発を通して学んだFlow API実装のポイント Java9にFlow APIが新たに加わっていることをご存知でしょうか。Flow APIはReactive Streams仕様と1対1に対応する、非同期ストリーム処理の標準仕様です。これは異なる複数のコンポーネント間の接続を共通化できるものです。既にAkka Streamsをはじめとして、AWS Java SDKでも実装が行われるなど、各種ライブラリの対応が進んでいます。しかし、Flow APIは仕様(Specifications)を定めるのみで、具体的な実装は含まれません。 Flow APIとは何かという概論は他に譲るとして、本セッションでは、ScalikeJDBC Streamsモジュールの実装を通して得た、Flow API(Reactive Streams)のより具体的な実装方法について解説します
私が書いたこともなかった10000ものcase class Sparkでデータのバリデーションを行うとき、またはKafkaトピックに対して読み込み/書き込みをおこなうとき、一般的にはScalaのcase classやJava Beanを使うことになると思います。 しかし、もしあなたのチームに5人の開発者しかおらず、10000以上のデータ型を処理するプロジェクトを数ヶ月以内に終わらせなくてはならないとしたらどうでしょう? hylomorphismsと宣言的な方法論を組み合わせることで、たとえ100もの異なるデータ元の数十の異なるテーブルからデータのバリデーションと変換を行う必要があっても、 定められた期間と予算内で正しく動作するコードを書くことが出来ます。 トークの長さ 40分 発表言語 英語 聴衆の対象 中級者: 分野の基礎は分かるが、細かい所は不安 こんな人におすすめ 数多くの型のデータ
仕事で役立つモナド変換子 モナド変換子。「なんですって?」「言ったとおりだよ。」 このセッションではモナド変換子がどういったものであるか、なぜ必要なのか、そして効果的に使う方法を見ていきます。 また、このやや複雑な題材を、より可読性や保守性が高く快適に開発できるコードに変えていくという崇高な意志を持って、 現実的な適用例とともに紹介していきます。 そしてモナド変換子が「effectスタック」を取り扱う道具の一つにすぎないことを示し、また他のツールに関するヒントもお見せしていきます。 注意 このトークのスライドには「モナド」や「関手」などが出てくるので一部の人々はギョッとしてしまうかもしれません。 覚悟して聞きに来てくださいね。 トークの長さ 40分 発表言語 英語 聴衆の対象 中級者: 分野の基礎は分かるが、細かい所は不安 こんな人におすすめ 関数型プログラミングによる抽象化の新しい手法を
Move fast and fix things ScalafixはScala向けのリファクタリング、lintツールです。 当初は、Scala 2.xをDottyにマイグレートするためのツールとして開発され、現在は汎用的になり、ライブラリ開発者や開発チームに採用されています。 このトークでは、Scalafixの数あるScalaツールの中での位置づけや、どのように役に立つのか、あなたのコードをチェックする独自のルールの書き方について話します。 トークの長さ 90分 発表言語 英語 聴衆の対象 初心者: 分野の事前知識を必要としない こんな人におすすめ 主にオープンソースのメンテナーをターゲットとした開発ツールの話ですが、自分たちのコードをリファクタリングしたいユーザーにとっても有用です。 発表者 Gabriele Petronella (buildo / co-founder)
Scalaによる純粋関数型プログラミングを用いた高速で並行なシステム スケーラブルで並行なシステムをメモリリークやスレッドリークを起こさず、しかも素早く開発することは命令形プログラミングやオブジェクト指向プログラミングではほとんど不可能であることがわかってきました。 AkkaのようなScalaフレームワークはこの問題を部分的に単純化しましたが、しかしそれは同値性の意味付け、型安全性、モジュールの結合性を犠牲にする形であり、結局は開発や保守のコストを大きく上昇させてしまいました。 このプレゼンテーションでは、強力な純粋関数型のEffectシステムであるScalaz 8 IOを用いて、型安全、並行、スケーラブルでリークのないアプリケーションを開発する方法を学びます。 そしてこれは今までにあった方法より素早く簡単でもあるのです。 このセッションの最後には私は、実務に携わるプログラマにとって純粋関
関数型プログラミングによるパフォーマンス 関数型プログラミングがマルチコアの問題をどのように解決するのかを聞いた事があると思います。今なお、関数型プログラミングでのパフォーマンスの問題がどのように起こるかについても聞いた事があるでしょう。もし過去10年間でこういった話を聞いたことがなかったら、おそらくどこかに隠れていた人じゃないかと思います。どうやって(某国の大統領が言うところの)「オルタナティブ・ファクト」つまり嘘や誇張から事実を見抜くことができるのでしょう? この講演では、関数型プログラミングが優れたパフォーマンスを提供し、マルチコアの要求を満たすことができるかどうかの問題を解決するために、現在のプラットフォームの内部動作についての話をします。 この講演では、ソフトウェアパフォーマンスを管理する最も関連性の高い法則について説明し、最も要求水準の高いセクタである金融業界での開発・実装で得
Scala製システムを3年間運用することで起きた様々なことへの対処 ぼくの所属するチームではMackerelというサービスのサーバーサイドをScalaで構築しており、正式リリース後の運用を開始してから3年が経ちました。 システムを3年間も運用していると、本当に様々なことがあります。 フレームワークやライブラリのバージョンアップへの追随 提供している一部の機能の廃止とそのソースコード類の破棄 負債化への対処 システムの成長に伴うインフラ基盤の拡張 このセッションでは、Scalaで構築されたMackerelの運用の中で、 わたしたちが3年間どのように様々な問題に対処していったかをお話できればと思います。 トークの長さ 40分 発表言語 日本語 聴衆の対象 中級者: 分野の基礎は分かるが、細かい所は不安 こんな人におすすめ Scala製システムの長期運用に興味がある人 これから新しくScalaで
実践ScalaでDDD(改訂版) 昨今のプロダクト開発において、DDD(ドメイン駆動設計)はもはや当たり前になりつつあります。 Scalaの強力な言語機能と豊富な表現力はDDDとも相性が良いですが、その反面、DDD本来の抽象度の高さもあってどう設計・実装するかに明確な答えはなく、迷いどころ満載です。 このセッションでは、現場での経験をもとにScalaでのDDD実践の一例をご紹介します。 ※Scala関西Summit 2017、関ジャバ’17 10月 でお話した内容の改訂版となります。 今回は、いままでお話しきれなかった部分、その後さらに得た知見も盛り込んでお話したいと思います。 トークの長さ 90分 発表言語 日本語 聴衆の対象 中級者: 分野の基礎は分かるが、細かい所は不安 こんな人におすすめ DDDを実装する言語としてScalaを検討されている方。 DDDをScalaで実装されている方
DDDでServerlessなWebアプリケーションフレームワークを作った Serverless Architectureは、スケーラビリティやセキュリティ、インフラ保守といった様々な力仕事から解放されるアーキテクチャとして普及しています。 ServerlessなWebアプリケーションは、気軽に始められて良いのですが、ある程度、規模が大きくなると、途端に修正工数が膨らみ、メンテナンスがしんどくなってきます。 そこで、ドメイン駆動設計を用いてServerless Architectureを構築することを考え、実際に取り組んできました。 その過程で得たノウハウをフレームワークにしました。 当セッションでは、フレームワークの使い方や設計思想を紹介します。 なお、前回のScalaMatsuriで発表させていただいた内容を一年かけて昇華しております。 トークの長さ 40分 発表言語 日本語 聴衆の対
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く