塀の備忘録

上伊那ぼたん描いてます

go.opentelemetry.io/*のversionを上げたらCloud Buildで怒られた

起きたこと 任意のrenovate差分をmain mergeしてCloud BuildでCloud Run Servicesをデプロイしていた際、任意のService deployで「Cannot merge resource due to conflicting Schema URL」というエラーが出てデプロイに失敗した。 原因 go.opentelemetry.io/…

graphql-schema-linterの静的解析をGitHub Actionsで利用する

概要 graphql-schema-linterをGitHub Actionsで実行し、特定の配下に存在する.graphqlファイルの静的解析を行う。 PR差分を静的解析の対象とするためにreviewdogを利用する。 動機 RESTを採用していた前職の現場と異なり、現職の現場ではGraphQLがクエリ言語…

ベストバイ2022

はじめに FASHIONSNAP.COMが毎年12月に公開しているベストバイ企画が大好きなので自分でもやってみる。 余談だが、先日取材を受けた際に繊研新聞の記者さんにも「ベストバイ企画お好きですよね」とバレていて恥ずかしかった。 衣料品・ルームアイテム Carol …

PostgreSQLにおいてALTER文実行前に留意すべき点

はじめに PostgreSQLデータベースのスキーマ変更やインデックス追加を行う際は、ALTER文実行によるテーブルロックとその影響について事前考慮しておく必要があります。 2022年7月現在、MySQL 5.6以降では後述するオンラインDDLによってALTER文実行時でも多く…

gRPC関連の読み物

はじめに gRPCをゼロから学びたい人向けのドキュメント、ブックリストを備忘録的に記載しました。 適宜更新するかもしれません。 紹介一覧 公式 https://grpc.io/ 基本。 スターティングgRPC www.amazon.co.jp もともと同人誌として発行されていた書籍の商業…

google_project_iam_bindingでtfファイルをstraightforwardに書く

概要 TerraformでGCP IAM設定をする際、google_project_iam_bindingの利用には注意が必要だ。 bindingリソースの挙動を把握していないと、新規にロールを有効化した際に既存のbindingリソースから意図せずロールを剥奪してしまう可能性があるからだ。 では、…

GoのMinimal Version Selectionについて

はじめに 2022-01-08、オープンソースのnpmパッケージであるcolors.jsとfaker.jsの作者が、不具合を引き起こす実装を意図的に含めたこれらの最新バージョンを公開した。 それらを利用しているプロジェクトは影響を被り、問題のコードが含まれないバージョン…

B2Bサービス不具合問合せ対応の質を上げる

はじめに 顧客影響を伴う事象が本番環境において発生した場合、エンジニアは下記のような計画外の火消し業務に追われる。 インフラ系 SLO違反などを原因としたPager発報などに端を発するインフラ周りの復旧改善対応。 サービス系 サービスのユーザー、あるい…

”UNPHAT”と問題を構造的把握する大切さについて

はじめに ソフトウェアエンジニアであるOz Novaさんは2017年、自身のblogに”You Are Not Google”というタイトルの記事を投稿した。 彼はこの記事でエンジニアリングにおける「カーゴ・カルト」、つまりGAFAMに代表される成功したBig Techが採用しているよう…

Goで符号なし整数型を書式指定子で出力する際に注意すること

はじめに ある日、符号なし整数型で宣言した値に関わるエラー処理部において、ロギングのためにその値を出力させたかった。 値は後述のような構造体内で保持していたので、書式指定子%#vを用いたのだが、ログに吐かれた値は期待した10進数でなく、16進数にな…

go installしても$GOPATH/binにバイナリができない

はじめに M1 Mac上でDockerコンテナにdelveやAirをインストールしたところ、$GOPATH/bin下に実行バイナリが作成されなかった。 結論 $GOPATH/ └── bin/ └── $GOOS_$GOARCH/ └── dlv クロスコンパイルされていたことで、$GOPATH/binでなく$GOPATH/bin/$GOOS_$…