サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
tech.yyh-gl.dev
go test のキャッシュを消すのは簡単$ go clean -testcache 以上です! $ go test ./... ok github.com/oxequa/realize (cached) ok github.com/oxequa/realize/realize (cached) このように (cached) となっていたものが、、、 $ go clean -testcache $ go test ./... ok github.com/oxequa/realize 0.086s ok github.com/oxequa/realize/realize 0.389s このように、実行時間が表示されており、キャッシュが消えていることが分かりますね。 ちなみに、キャッシュを無視する方法はもうひとつあり、 以下のように -count=1 をつけてやればOKです。 $ go tes
簡単まとめシリーズ 今回は 集約とトランザクション境界 について、 自分のわからないところを調べたので、メモとして残しておきます。 集約 集約の説明を『ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本』 から拝借すると、 「データを変更するための単位として扱われるオブジェクトの集まりを集約といいます」とのこと。 ↓ もうすこし具体的に言うと DDDではエンティティと値オブジェクトというものがありますが、 値オブジェクトを直接触らず、 エンティティ経由でしか変更しないようにするというものですね。 このような制限をかけることで、 ひとまとまりにされたオブジェクト間で維持されるべき不変条件を守ることができます。 トランザクション境界 基本的な考えとしては、集約ごとにトランザクションを貼ります。 ↑この基本を守るためにも、理想としては正しいモデリングにより、 正しいトランザクシ
Tech Talk vol.2 Backend Engineer 〜マイクロサービスの冪等性〜connpassハッシュタグ:#merpay_techtalk質問板merpay社で開催された勉強会です。 参加者のツイートも含めてメモを残しておきます。 かなり雑なのでコンテキストが読み取れないところもあると思いますが、 なにかの参考になれば幸いです。 (@sonatard さんの実況にとても助けられました。 ありがとうございました!) 1. 500万ユーザーを支える残高の冪等性登壇者:(@knsh14) スライド 参考スライド (ベースとなる話は↑これ) 残高管理サービス(Balance Service)使ってるDBはCloud Spanner 外部サービスや他のマイクロサービスには依存してない DeleteなしでCRUのみ かなりシンプルで冪等性を担保しやすい 冪等性があるAPI最初に成功し
DMM Advent Calendar 2019本記事は DMM Advent Calendar 2019 の 9日目 の記事です。 私は現在、DMM.com の CDS というチームに所属し、 主にユーザレビュー基盤 のバックエンドを開発しています。 今回は、Go用Linterである GolangCI-Lint を軽く紹介した後に、 GolangCI-Lint のハマリポイントとその解決策である設定周りの話をします。 Linter 導入していますか?突然ですが、みなさんの開発環境には Linter が導入されているでしょうか? 私の所属するチームでは、 コーディング規約違反 および コンパイラでは見つけられないエラー を検知するために、 ローカルと CI において Linter を回すようにしています。 GoにおけるLinterGoの場合、Linterがデフォルトで用意されているうえに、
はじめに Web API のセキュリティ周りについて調べていると、 「OAuth 2.0」や「OpenID Connect」という単語をよく見かけると思います。 さらに調べると、「アクセストークン」と「IDトークン」という単語に出会いました。 しかし、この2つのトークンの違いについて、 いまいち理解ができていなかったので、今回は両者の違いを調べてみました。 加えて、トークンについて調べる中で、 OpenID Connectが生まれた経緯も知ることができたのでメモしておきます。 2つのトークンの違い アクセストークン と IDトークン、両者は役割が大きく異なります。 アクセストークン:認可(リソースへのアクセスコントロール=あるリソースへの権限(readやwriteなど)を持っているかどうか確認すること) IDトークン:認証(その人が誰かを確認すること) 名前のままでした。 認可に使うための
Terraform とは最近流行りの IaC です。 つまり、コードベースでインフラリソースを管理するためのツールです。 中でもTerraform はクラウドに特化した IaC ツールという立ち位置です。 AWSやGCP, Azure などの他に様々なクラウドプラットフォーム に対応しています。 (ちなみに、Vagrant 開発元の HashiCorp 社が開発しています) 今回やることTerraform で AWS 上に下記のような環境を自動構築します。 ECS でデプロイされるサービスは ECR から引っ張ってくるようにします。 そして、そのサービスは Aurora を使うシステムを想定しています。 【⚠注意⚠】上記構成はお金が発生します! まったくもって無料枠ではありません! 【⚠注意⚠】今回独自ドメインを使用していますが、ドメイン取得に関しては省略しています。 今回やる内容は…僕が
Go3 Advent Calendar 2019本記事は Go3 Advent Calendar 2019 の 8日目 の記事です。 ではでは、早速本題に入っていきます。 モック使ってますか?みなさんモックコードは書いていますか? テストコードを書いているなら、ほぼ必ず登場するあのモックです。 DB処理や関数のモックなどいろいろありますよね。 そんなモックコードですが、作ったり管理するのめんどくさいなぁとか思ってないですか? モックだからといって雑なコードになっていませんか? 今回は、外部API通信のモック化にフォーカスし、 モックコードの作成・管理コストを軽減する VCR ライブラリ を紹介します。 VCR ライブラリ とは?VCR(Video Cassette Recorder)とは、通信を保存し、再生するライブラリです。 つまり、APIリクエストの初回通信の内容を保存し、 次回以降そ
TypeScript Advent Calendar 2019本記事は TypeScript Advent Calendar 2019 の 2 日目の記事です。 内容としては、TypeScript 初級者のための TypeScript 入門です。 基礎的な内容から入り、 最終的には、企業や個人の技術ブログを参考に、 React の実プロジェクトにおいて、 どのように TypeScript が使われているのか紹介できればと思います。 (APIリクエスト周りのTypeScript活用事例を紹介) 今日の記事を読んで TypeScript に入門し、 今後の TypeScript Advent Calendar をお楽しみいただけると幸いです! 基礎編TypeScript とはTypeScript は Microsoft 社によって開発され、 現在は OSS として開発が進められています。 「T
更新(2019年10月30日)初回投稿から3ヶ月経ちました。 この3ヶ月で新しく得た知見を基に、内容を一部アップデートしました。 今回やることGoのディレクトリ構成についていろいろと調べる中で、 こちらの資料 がとても分かりやすかったので、 今回はこちらを参考にGoでWeb APIを作っていきたいと思います。 加えて、本プロジェクトでは、DDD と レイヤードアーキテクチャー を取り入れます。 (内容はほぼレイヤードアーキテクチャになってしまいましたが…) DDD については、「DDD を Go とレイヤードアーキテクチャでやるなら、こんな感じかな?」という個人の見解レベルです。 パッケージ構成の参考になれば幸いです。 (ですので、ドメインモデルは重度のドメイン貧血症に陥っていますw) 釣りタイトルみたいになっちゃっててすみません🧝♀️ 環境MacOS Mojave 10.14.6Go
このページを最初にブックマークしてみませんか?
『tech.yyh-gl.dev』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く