タグ

ブックマーク / medium.com/@timakin (3)

  • GAE/Goにおけるコスト最適化 #golang – timakin – Medium

    Go Advent Calendar 2018 2日目の記事です。1日目はtenntennさんの「実装して理解するスライス #golang」でした。 せっかくなので実益に繋がる話を書くべきだと思っておりまして、今回はGoConでGAE/Go 2nd genに対して注目が集まっていたのもあり、「GAE/Goでの運用コスト最適化」について書こうと思います。 (とはいえ、この分野だとGCPUG界隈のsinmetalさんやvvakameさん、apstndbさんあたりが圧倒的に詳しく、僕が書くことに関してはやや恐縮するのですが) どれくらいコストを減らしたかサービスを運営する中で、クライアントからAPIが叩かれるだけでなく、クローラー等による大量のアクセスがある場合、いくら小規模でもかなり費用が可算できます。そしてそれは安いと評判であるGAEでも例外ではありません。 お財布が困窮していたわけではない

    GAE/Goにおけるコスト最適化 #golang – timakin – Medium
  • GoのAPIのテストにおける共通処理

    GoAPIを書くとき、参考になるユニットテストの話は非常によく見ます。Table Driven Testをしましょうとか、サブテストの実行とか、そのあたりの話はたくさん書かれています。 また、テストキャッシュなども出てきましたので、ユニットテスト周りの機能・ノウハウは充実していると感じてます。 一方で、httptestを使ってテストサーバーを立て、リクエスト/レスポンスの内容を検証する場合、単一のリクエストを検証する程度のサンプルにとどまっていたり、あまり共通でこういう処理を書いてるよ、みたいなノウハウがなく、自前で一から書くとなると非常に腰が重くなります。 事実自分はそういう経験をしました。そういった共通処理は普段internalパッケージの中の、testutilsとしてまとめる、などしています。 今回はGoで上記のようなテストを書く場合、どういう共通処理が必要となったかをテーマとして

    GoのAPIのテストにおける共通処理
  • テストコードとスピードのトレードオフ。加えてGoのAPIのテストについて。

    「テスト 書くべき」って検索すると玉石混交な記事がわんさか出てくるのですが、そもそもなんでこういった議論は常に紛糾するのでしょうか? 僕個人としては、テストコードというものへの捉え方はその現場の思想に密に依存しており、その前提を明示しないまま議論を進めると、「スピード感」「技術者の習熟度」「自社開発か否か」などの様々な変数の違いによって意見がい違い、容易に銃弾飛び交う戦場と化す、と考えています。 そのため、この議論を始めるのは下手をするとパンドラの箱をパカっと開けて、収集つかないことになるのかなーと思っています。 僕の置かれている前提ということで、流れ弾で死にたくないのでまず僕の前提を明らかにします。 個人的な趣味趣向の話まず個人的な立場を表明しておきますが、僕は書くまでは、億劫なんだけど書き始めたら割と好きで黙々と書いていたくなるタイプです。かといって、仕様がピョンピョン変わる現場での

    テストコードとスピードのトレードオフ。加えてGoのAPIのテストについて。
  • 1