技術書典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 パッケージ使ってみようかなー」 と思ったので違いを調べてみた。それぞれの使い方とかはネットに転…

GAE/Go の urlfetch のタイムアウトを設定する

ググると、旧 appgneine パッケージに対する設定方法しか引っかからないので、 google.golang.org/appengine に対する設定方法をメモとして残しておく。結論から言うと、 context.WithTimeout() or context.WithDeadline() を利用して設定する。以下は conte…

GAE の SocketAPI とは何か?

GCP

存在は知っていたが、 普段 GAE を利用する上で特に利用する機会がなかったので、 SocketAPI について調べてみた。 SocketAPI クオータ GCPサービスとSocketAPI 課金してないとエラー まとめ SocketAPIドキュメントは以下。 https://cloud.google.com/appeng…