devfest 2017 tokyo の発表資料です。
当日は入室できない人もいたらしい & 機材トラブルで10minほど開始が遅れてしまった
ということで申し訳なく思っています。
また、立ち見する価値がある内容を提供できたのだろうか? とも思っています。
スライドは単体でも発表内容が伝わるように文章を多めに載せているので、
是非確認してみてください。
100ページ越えていますが・・・。
#DevFest_room2 入れなかった。。
— t.junichi (@tjun1) 2017年10月9日
ものすごい立ち見人数 #Devfest17 #DevFest_room2
— バトルプログラマー柴田智也@少女終末旅行 (@tomoya_shibata) 2017年10月9日
ルーム2これから並ぶ方はまず無理だろう宣言入りました #DevFest17
— バトルプログラマー柴田智也@少女終末旅行 (@tomoya_shibata) 2017年10月9日
goのセッション待ちの人たちが列を作ってる
— ozawa (@ozawa940) 2017年10月9日
#DevFest17
発表資料の背景
当初は golang のコードベースでレイヤ実装を紹介する予定だったのですが、資料を作っている過程で
レイヤ実装の注意点(ルール)を知らなければ、
「なぜそういう実装になるのか?」が伝わりづらいなと感じました。
そこで、「レイヤ実装の注意点(ルール)」をメインコンテンツにしようと決めました。
なので、「レイヤ内実装」というわりには抽象的な話になってしまった気もします。
ここら辺は難しいですね・・・。
機会があれば、さらに実装に踏み込んだ話や
発表ではあまり振れることのできなかったドメインレイヤの実装についても
お話させていだければと思います。
twitter上の反応
あとで、は、ない。#DevFest17 #DevFest_room2
— micchie (@micchiebear) 2017年10月9日
これはおっしゃる通り。
完全に抽象化することができないケースもありますね。
ここがなかなか難しいところ。
↓
なにを抽象化するのかは大事だけど永続化技術によって担保できることが違うので完全に抽象化もできないですね。RDBとKVSでは任意のフィールドで検索できるかどうかという違いがあるので使う永続化技術の影響をdomain層のインタフェースが受けることもある #DevFest_room2
— morikuni (@inukirom) 2017年10月9日
infra層に依存しないようにerrorを入れ替えているの丁寧で良いって思ったけど、元のエラー情報をどのように処理してるのかとか、ログとかどうしてるのかとかが気になったのであとで聞こう #DevFest17 #DevFest_room2
— songmu (@songmu) 2017年10月9日
細かいレイヤーの名前は違えどほとんど同じだ #devfest_room2
— そな太 (@sonatard) 2017年10月9日
そーいえば、DIPとして説明してなかったなと・・・。
最初のレイヤ図にちょろっと書いただけで説明するの忘れてしまった・・・。
↓
依存性逆転の原則の話 #devfest_room2
— そな太 (@sonatard) 2017年10月9日
SendGridInterface ってのは確かに無いな…w #Devfest17 #DevFest_room2
— バトルプログラマー柴田智也@少女終末旅行 (@tomoya_shibata) 2017年10月9日
interface, 抽象として機能させる名前, Repository #DevFest_room2 #DevFest17
— micchie (@micchiebear) 2017年10月9日
こちら仰る通りです。
発表後に修正したスライドに差し替えようと思ったのですが、
slideshare では差し替えられない(?) みたいなので、
時間見つけて調べてみます。
以前は差し替えられた気がするのですが・・・。
ありがとうございました。
↓
2つめUserAddはInputではなくOutputかな #devfest_room2
— そな太 (@sonatard) 2017年10月9日
発表資料上のコードだけだとそー見えてしまいますが、
コマンドではないですね。
ただ、コマンドでもいいとは思します。
ここは好みですかね。
↓
CommandHandlerっぽい #DevFest_room2
— morikuni (@inukirom) 2017年10月9日
アプリケーションレイヤがusecase#DevFest17 #DevFest_room2
— micchie (@micchiebear) 2017年10月9日
ヘキサゴナルアーキテクチャは初耳 #Devfest17 #DevFest_room2
— バトルプログラマー柴田智也@少女終末旅行 (@tomoya_shibata) 2017年10月9日
Infra層調べる。 #DevFest17
— masato_ka (@masato_ka) 2017年10月9日
なるほどinterfaceをDomain層に置いて、実装はインフラに置く。各層の責務を考えるとそうなる。コート改修は変わらない。
— masato_ka (@masato_ka) 2017年10月9日
素晴らしい資料> RT
— ふそやん (@azihsoyn) 2017年10月9日
usecase層の名前いいな
— ふそやん (@azihsoyn) 2017年10月9日
serviceから変えようかな
やはり実装はinfra層なのかなー
— ふそやん (@azihsoyn) 2017年10月9日
interfaceの実装の置き場今も悩んでる
— ふそやん (@azihsoyn) 2017年10月9日
いいかんじに言語化されてる神資料👀 https://t.co/AwlEV3GO32
— TatsuyaYagi (@t_yagiDD) 2017年10月9日
インターフェースの引数に注意する件、共感が止まない https://t.co/12Z17k0tXB
— timakin (@__timakin__) 2017年10月9日