https://2019.scalamatsuri.org/#schedule
2019 06 28
- 並列並行の理解が数年進んでないことがよくわかった
- メッセージングと AWS と CQRS も実践が全く進んでない
- 知り合いが年々減るけど、知ってる人が増えていく
- 聞いてわかる内容とやってる内容の乖離が大きくなっていく
- 毎年来てるけど、もう少し言った後の自分に還元しないとなー
https://2019.scalamatsuri.org/#schedule
2019 06 28
資料欲しいぞーー
(これ scala.js の話だったのか...??)
導入
可変データ構造の例 オプティマイザ変化検知のアルゴリズム
インスタンスの設計
muttable な状態が他の invocation に引き継がれる
重要なのは、そのクラスの state が外から閲覧できないこと
状態が観測不可能なモジュールを fp, oo procedure を組み合わせて作ろう
scala.js で使ってる例
sealed trait and final class
oop には open class hierarchy ってのがあるぞ
LinkerBackend
関数型でも似たことが出来るぞ
the M word は避けて通れません
custom monad というのが scala.js のコードにあります
型クラスってなに
ってなるので、砕いて言うよ
っていうのを型システムがやってくるのが型クラス
ストラテジを型から自動導出できる仕組みだぞ
scala でどうするか
抜粋
>
を生やしたりするよscalaz, cats
scala3
arg1 > arg2
って形で演算子を間に1つ置いて定義できるようになったらしい、haskell ぽいなpath traversal
/
区切りしかしてなかったので\\
等を対象にしたよserver side request forgery
http://example.com#@evil.com/foo.txt
#@
ってなにunsafe deserialization
xml extternal entity
まとめ
質疑
JVM における基礎と純粋関数型言語における実現手段について話すよ
並行処理
並列処理
2つの砦が離れている場合、戦車が狙いを定めるのに時間がかかる
コード多めだったので詳細は資料待ち
このセッションは要復習...
公平性
Green Thread
Fiber
がんちゃんと会って色々しゃべってたら部屋に入り損ねた...
一番聞きたかったセッションなので、仕方ないので床で...画面見えない...
差別化したい箇所だけに集中出来るようにしたいねってなった
リニューアルが超多くて、毎回インフラから作ってた
ドメインモデルが大体できて、動くモノを作ろうって段階では、5人くらいでモブプロをしたよ
流れが出来たらモブプロを辞めて、モジュール毎にどんどんやっていった
別チームが開発する可能性があったので、コンテキストマップをきっちり作っておいた
システムのあるべき構造に則ってチームをアサインしよう
頭で考えなきゃいけないオブジェクトが増えてきたなって思ったら分割を考えてみる
エンティティが 15, VO が 300 くらいあります
Foundation
domain に repository の io があると副作用が発生してしまうので、そうじゃあない層にした
scanamo なんてのがあるのかw
ちょっと聞き逃したけど、何かをドメインに置いて良いかについて話している
case class の詰め替えに悩んだので、ドメインイベントに関してはアリにした
なんか抽象的な本が多いので、実践を共有しました
質疑
とても良い
こむらさきなんて苗字珍しいな、一瞬驚いたけどw
座れたし事前に資料も手に入れられたので、すごい余裕を持って聞ける...
導入
ドメイン、特にリポジトリを取り上げるよ
それらってドメインなの?
使い方
いや、みんな大好きな M を使えば大丈夫
ついったしててちょっと聞いてなかった
DDD って oop が基礎になってるって言うけど、違うとは思わないけど fp だって蚊帳の外ではないんだぞ
本の内容を踏まえた上でやるよ
オニオンの外側が「詳細」で内側が「方針」
実践
F[_]
やらモナドエラーやら出てきたここまでが方針の話、ここからは詳細の話
zio ってのを使ってみたよ
ん?これ?? -> github