バックエンド

linknameの利用制限はGoの後方互換性に抵触するか

はじめに 発生した事象 エラーの原因 linknameって? もともとlinkenameは後方互換性の対象ではなかった 後方互換性の例外 1. unsafeパッケージをインポートしたもの 2. 構造体リテラル 3. メソッド 4. ドットインポート 5. Sub-repositories まとめ はじめ…

Go言語入門:簡単なHTTPサーバとテストの実装を徹底解説

はじめに net/httpとは? 実装 サンプルコード コードの各部分の解説 テスト サンプルコード 各テストケースの解説 1. 正常系 2. クエリパラメータが設定されていない場合 3. リクエストメソッドが異なる場合 まとめ この記事は、DMMグループ Advent Calenda…

PHPからGoへのリライトで学んだこと

はじめに リライトの概要 大変だったこと PHP のコードを理解することが前提 Go の言語特性を活かせない 良かったこと フレームワークに頼りきらない実装方法が身につく 既存サービスの実装理解の向上 命名統一によるコードレビューの効率化と生産性向上 ま…

TCPのhalf-open connectionsが発生したので紐解いてみた

はじめに 環境 今回発生した問題 half-open connectionsに関する余談 half-open connectionsが発生した原因と解消方法 cloud nat Istio Nginx 最後に はじめに この記事は DMMグループ Advent Calendar 2024 6日目の記事です。 こんにちは、プラットフォーム…

日時フィールドの丸め処理を入れて検索のレスポンス改善をした話

はじめに 結論 やったこと 得られた結果 検索システムの簡易理解 DMMの検索システム概要 Solrのクエリと検索システムにおけるキャッシュについて Filter Query (フィルタクエリ) Solrにおけるキャッシュ 検索システム全体でのキャッシュの考え方 実施背景 実…

Dagger Go SDKからgo-gitとgo-githubへ ~ モノレポのCIの書き換えと実装比較 ~

はじめに Dagger Go SDK / go-git / go-github とは Dagger Go SDK プログラマブルであること ポータブルであること 参考資料 go-git 参考資料 go-github 参考資料 Dagger Go SDK 以前のお話 Dagger Go SDK から go-git と go-github へ書き換えた背景 前提 …

APIゲートウェイ'Gen2-GW'の負荷試験の取り組み

はじめに 負荷試験実施の背景 環境 シナリオ シナリオの作り方 機能を軸にシナリオを作成する バックエンドのレイテンシを再現する 負荷試験中に遭遇した問題 CPUスロットリングによるレイテンシ悪化 HPAによる対応 Resource Limitsによる対応 ネットワーク…