構築中。

名古屋のITインフラお守り係です。ITイベントへの参加記録などを残していきます。

DDD Talk MeetUp Online #0(4/20)・テスト駆動開発(TDD)オンライン勉強会 #1 「ライブコーディングで体感するTDD基礎」(5/4)

ずいぶん遅れての参加記録です(笑)。いずれも主催は DDD でお馴染みの松岡さん。

ddd-community-jp.connpass.com

ddd-community-jp.connpass.com

遅れたのは、GW 頃まで

github.com

こちらのお手伝い(といっても初心者向けの対応ばかりですが)をしていたのと、

note.com

本業?(いやそれ違うだろ)のこちらの作業をやっていたのが原因です…。

※前者の手伝いをしていたら、LAPRAS にこんなものが…。

f:id:hmatsu47:20200517224644p:plain
OSS シルバーコントリビューター?

というわけで、細かい内容はすっ飛ばして、それぞれについての感想などを。


まず DDD Talk MeetUp Online #0 ですが、初めて体験する Remo を使った勉強会&懇親会でした。

remo.co

LT は 3 本中 2 本が、いまはまだ珍しい(?)DDD の成功例のお話しでした。

その後、各テーブルに分かれてテーマ別のディスカッション兼懇親会でした。わたしは「既存のプロダクトに DDD を導入する場合、どこから導入するのが良いか?」というようなテーマのテーブルにずっと参加していた気がします。

自分の話で結構盛り上がったので楽しかったのですが、ちょっとテーマとずれてしまったり、長く喋り過ぎたりしたのが反省点です。


次に、テスト駆動開発(TDD)オンライン勉強会 #1。

TDD のライブコーディングを見るのは、お馴染み和田卓人さんが DevLOVE X で短縮バージョンの実演をされて以来ですが、和田さんとは少し違うスタイルの TDD を、和田さんなどプロの補足説明付きで見ることができて、とっても「お得」(という表現はアレですが)な時間となりました。

人によってスタイルが違うのを見るとつい「正解探し」に走ってしまいがちですが、目的に適う方法の中で、自分やチームのメンバーが最もしっくりくるものを模索して採用すればいいだけの話だと思いました。


次回は DDD と TDD のどちらが先になるのかわかりませんが、どちらが先でも楽しみです(DDD は本を読み直しておかねば)。

MySQL Casual Talks Online(gamma) Vol.2(4/17)

オンライン開催 2 回目、今回も「トークする人」側で参加しました。

mysql-casual.connpass.com

最初のまみーさんのONLY_FULL_GROUP_BY絡みの話、(「入口リンクが届かない」方の対応をしていて前半を聞くことができませんでしたが)質疑応答が「ガチュアル」だったり、次の tom__bo さんの話はテーマ自体がいつも通りガチュアルで質疑でもいつも通り(?)せじまさんからの温かいツッコミ(?)があったりしました。


そして、一人だけいつものゆるふわテーマで参戦。

話した内容は特に覚えてもらう必要はないのですが、

「公式マニュアル、情報がしっかり詰まってるので英語だからといって敬遠しないで!DeepL 翻訳があればほぼ日本語でも読めるよ!」

dev.mysql.com

www.deepl.com

ということだけ伝わればよかったかな、と。


shora_kujira16 さんのクラッシュリカバリ時の起動を速くする話、遅い原因がクラッシュリカバリではなく整合性確認と聞いて、思わず

と呟いたのですが、やはり共感してくれる人はほぼゼロだった…?

(ヤツはクラッシュ後の起動時、サーバ自体はいつも通り起動するものの、各 DB の整合性確認が走ってる間、その DB にアクセスすることができなかった…しかも確認が遅い。)


次回は…「観覧する人」側でゆっくり参加、できるかな?

DDDオンライン勉強会 #4「DDDのアーキテクチャ」(4/16)

今回は初の平日開催でした。

ddd-community-jp.connpass.com

ドメイン駆動設計 モデリング/実装ガイド」の第 5 章が今回のテーマ、というわけで

から

そして

に至るまでの流れと、

の比較が話の中心に。


正直、作るモノと解決したい課題によっては「ドメイン層自体が特定のインフラ技術に依存する」ことを無理に避ける必要がない場合もあるので、レイヤードアーキテクチャが必ずしもダメということでもないかな、とは思います。

「データベースの寿命はアプリケーションよりも長い」と言いますしね。

「DB のテーブル構造に引きずられないドメインモデルの作り方がわからない」という人も多そうでしたし(「NoSQL を使うイメージで」と言われても DDD を必要としている層は割と技術のバックグラウンドが RDB オンリーの層と重なるのではないか?と)、実際にわたしの目の前でもそういう光景が…(笑)。

フロントエンドの技術は目まぐるしく変わっていますが。


また、オニオンアーキテクチャとクリーンアーキテクチャのどちらが分かりやすいか・しっくりくるかについて、松岡さんは前者、チャットなどでは両者に分かれる結果になっていたのが面白かったです(でも、ある程度事前に想像はつきました)。

「アプリケーション層」か「ユースケース層」かの呼び方についても一部意見が分かれましたが、このあたりも「普段どのようなアプリケーションをメインターゲットとして開発しているのか」によるのかな、と。

いずれにしても、「ドメイン知識に限らず、開発手法なども含めて言葉の意味や用法が一致しないとコミュニケーションが成り立たずチームで開発するのは困難」なのは確かなので、先に開発チームとしての方針を合わせておくのは大事ですね。

(最近そんなのばっかり目の前で見てきました…普段リモート・輪番出勤が始まったのでそれを見る機会は減り、雑音が聞こえなくなってわたしのインフラ業務が捗るようになりましたが。)


今回も前例通り(?)質問回答タイムのほうが本編より長かった(笑)。

ただ、「前回以前の話を聞いていればわかる」「前回以前の質問と重複する」質問内容が増えてきたので、いたずらに時間を取られないよう何らかの対処が必要になってきたかもしれません。

それから、今回はライブコーディングは無い…と思いきや、質問回答タイムの途中でライブコーディングが始まったりしてなかなか内容の濃い勉強会でした。


明日は番外編で Remo を使った「DDD Talk MeetUp Online #0」があるので楽しみです。

ddd-community-jp.connpass.com