DDDとコードとしての正しさ

DDD

ドメイン駆動設計 #1 Advent Calendar 2018の14日目を担当する@pospomeです。今回はDDDとコードとしての正しさについて書いてみようと思います。 DDDは設計手法である コードとしての正しさ コードとしての正しさを見失う ユースケースの日本語を"そのまま"…

Goの並列テストと現在時刻に依存した実装について

Mercari Advent Calendar 2018 の13日目は株式会社メルペイ認証基盤チームの @pospome がお送りします。メルカリのアドベントカレンダーで特定の実装パターンの網羅集みたいなやつを書こうと思ったんだけど、組み合わせ爆発でまとめきれそうにないな・・・。…

技術書典5にて販売した "pospomeのサーバサイドアーキテクチャ" をBOOTHから購入できるようにしました。

技術書典5にて販売した "pospomeのサーバサイドアーキテクチャ" をBOOTHから購入できるようにしました。以下から購入できます。 価格は技術書典と同じ1000円です。 booth.pm技術書典に来てくださった方への特典として価格を少し上げたり、 内容を落としたり…

【10/5 更新】技術書典5にサークルとして参加します。

技術書典5にサークルとして参加することになったので、 書籍の詳細についてまとめました。techbookfest.org[追記] BOOTHから購入できるようにしました。 pospome.hatenablog.com 書籍のざっくり情報は以下です。 書籍の目次はこちら サーバサイドのアプリケ…

Cloud Next 2018 MicroServices & APIs

こちらのイベントでの登壇資料です。 Cloud Next 2018 のセッションの中でアプリケーションエンジニアに役立ちそうな内容をまとめています。 mercari.connpass.com MicroServices & APIs from pospome

decorator, presenter, exhibit という3つの実装パターンについて

@a_suenami さんのこのツイートの Decorator, Presenter, Exhibit が気になったので調べてみた。表示に関するデザインパターンは大きくDecoratorパターン、Presenterパターン、Exhibitパターンの3つがあります。で、Exhibitパターンが一番柔軟ですが小さいア…

Go における FunctionalOptionPattern と MethodChaining について考える

きっかけ FunctionalOptionPattern MethodChaining MethodChaining の問題点 Error フィールドによる解決方法 Error フィールドによる解決方法の問題 1. 各メソッドでエラーが発生しないような印象を受ける 2. エラーチェックを忘れそう その1 3. エラーチェ…

書籍「Real World HTTP」の学習効率の高さについて

今更ながら、Real World HTTP を読んでみたので、 学習効率という視点で感想を書いてみようと思う。www.oreilly.co.jp 対象となる読者が広い スラスラ読める 好きなところから読める 一通り目を通すことを推奨 Go言語は関係ない キャッシュの仕様 HTTP2が載…

golang の「埋め込み」を利用した実装アンチパターン

最近、time.Time を独自の struct で埋め込んだ実装をみかけたので書いておこうと思った。結論から言うと、 標準パッケージやライブラリで定義されている型に対して「埋め込み」を使うと、 コードが正常に動かなくなる可能性があるので、 注意した方がいいと…

GAE の TaskQueue(PushQueue) で、delay パッケージと HTTP の受け口(handler)を定義するのは何が違うのか?

GCP

TQ を利用するとき、 いつもはタスクを受ける HTTP の受け口(handler)を定義して、 taskqueue パッケージで実装を完結させていただけど、 「今回は delay パッケージ使ってみようかなー」 と思ったので違いを調べてみた。それぞれの使い方とかはネットに転…