emahiro/b.log

Drastically Repeat Yourself !!!!

DynamoDB の Scan の挙動がわからなかたので調べた話

Overview DynamoDB の Scan 操作について AWS のマネジメントコンソールと API 直叩きで返ってくる List が違う、ということがあったので調べてみました。 どう違ったのか? 以下のような事象が起きてました。 AWS マネジメントコンソール上からあるテーブル…

DynamoDB で Update GSI しようとしてやらかした話

Overview 何をしたのか? 何が起きたか どうして起きたか? 今後どうすればいいか まとめ Overview タイトルの通りなのですが、DynamoDB の Global Secondary Index(以下 GSI) を更新するにあたり、更新方法でミスったのでことの顛末を備忘録として記載しま…

Lambda の同時実行数を制限する

aws

Overview タイトルの通りです。 久しぶりに Lambda on Serverless Framework を触っていて忘れていたので備忘録です。 Conclusion Lambda の同時実行数を制限するには Reseved Concurrency の設定を 1 にします。 Serverless Framework は function の reser…

chi で独自の middleware 使う

go

Overview chi で独自 middleware を使う上で使い方を忘れていたのでその備忘録。 備忘録 router.Use(func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // middleware でやりたい処理 next.S…

AWS Go SDK V2 を使ってみる

Overview AWS SDK for Go V2 について AWS の設定をロードする 独自で環境変数を持ってる場合 DynamoDB を使う DynamoDB クライアントを Load する リソースを更新する expression はまだ feature だった 余談: 毎回めんどいなーところと思うところ Transact…

strings.Split は分割できない時でも長さ1の slice を返す。

go

https://play.golang.org/p/ss6gWvidE2u でなんで長さ 1 の slice が返ってくるんだろーって悩んでたのですが、、、 // Split slices s into all substrings separated by sep and returns a slice of // the substrings between those separators. // // If…

Slack のスレッド利用「原則非推奨」という実験をやってみた

Overview 背景 振り返り Good More 個人的な所感 コミュニケーションコストについて 最後に Overview 僕の担当してるプロジェクトの Slack チャンネルで1週間限定で スレッド利用原則非推奨 というルールを作って運用してみた振り返りです。 プロジェクトに…

参照型変換メソッドを func で表現する

go

Overview タイトルの通りなんですが、Go の struct をするときにその struct のあるフィールドを参照型にすることがあると思います。 この参照型のフィールドに値を代入するために、プリミティブな型を参照型に変換するだけの関数を作成することがあるかと思…

同一文字列を繰り返す strings.Repeat

go

Overview テストケースで使えそうな strings の機能を教えてもらったので書いておきます。 テストケース書くときに使えることを教えてもらったhttps://t.co/tvtsGQjufL— ema (@ema_hiro) 2021年1月19日 Strings.Repeat https://golang.org/pkg/strings/#Repe…

DBで絵文字を保存するときは文字列長に注意する

Overview https://ema-hiro.hatenablog.com/entry/2021/01/19/141854 にて文字数をカウントするのは難しい話を書きましたが、追加の余談で、DBに絵文字付きのテキストを保存する時には、文字列長に注意しないといけないことについても記載します。 ‍‍‍ がど…

Go で文字数をカウントする

go

Overview Go 言語で文字数をカウントする方法について記載します。 そもそも文字数を数えるとは? LINE Engineering のこのブログが詳しくてわかりやすいです。 engineering.linecorp.com ある文字列の文字数を計算するときに、コンピューター上で「何文字」…

Firebase deploy via Github Actions

Overview Firebase 上で動作している Nuxt で書かれたアプリをGithub Actions 経由で Deploy する機構を作った話です。 手順 前提 以下の前提が必要です。 デプロイ権限を持っているFirebase アカウントがあること。 デプロイするための Firebase Token を取…

コンテナで Lambda を動かす

Overview 12 月の re:invent で Lambda のパッケージングフォーマットにコンテナイメージがサポートされたので、少し遅くなりましたが、デプロイまで試してみました。 今回はランタイムに Go を使用してます。 このエントリは以下のドキュメントを参考にして…

僕の価値観 ~ 2021 年 ver ~

あけましておめでとうございます。 2021年一発目のブログが記念すべき 250 投稿目です。 自分でもよく続いてるなと思います。 2021年1発目に何を書こうか迷ってたんですが、現時点の自分の価値観をエンジニアリングに関するところと、キャリア全般に関すると…

2020 年の振り返り

振り返りの最後です。 Overview 2020 やったこと 転職 引っ越し 在宅勤務 仕事忙しい 遠出しなかった 2020年やったこと - 番外編 キャッシュフローが改善した 投資継続した 運動継続した 自炊継続した 2021年どうする? Overview 30代に突入してしまった今年…

2020年買ったものたち

振り返り記事第3弾です。 もうそろそろネタ切れなので明日は多分お休みします。 Overview 2020年買って良かったと思ったものを振り返ります。 今年はなんといっても Covid-19 の影響で原則在宅勤務になった1年だったので在宅ワークの設備を整えるための物が…

半年間テックリードをしてみての振り返り

年末なので振り返り記事2段目です。 Overview 今回は現職で今年の7月から半年間テックリードをやってみての振り返りをしてみたいと思います。 前提 僕について キャリアの中でリードという立場でチームを作ることになったのは初めて。 Covid-19 の影響で初め…

テストを書くことについて個人的な考え

年末というのもあって色々振り返り記事を書いていきます。 一応他にもエントリを用意してますが、これで終わるかもしれません笑 振り返りも兼ねて思考を吐き出してるので、若干文章が拙いかもしれないのはご容赦ください。 Overview TL;DR テストを書いた方…

Elastic Container Registory に Image をアップロードする

Overview Lambda on Container を試す際に Elastic Container Registory (以下 ECR) にコンテナイメージをアップロードする必要がありました。 このエントリではその ECR に Docker イメージをアップロードする方法について記載します。 以下に書かれてる内…

Go で unused なコードを検出する

go

Overview staticcheck を使って unused なコードを一括で検査します。 Install $ go get honnef.co/go/tools/cmd/staticcheck ref: https://staticcheck.io/docs 検出する U1000 がどこからも参照されていないコードの警告コードになるので、検査結果を grep…

AWS Lambda 向けに trace 付き Logger を作った

Overview 業務で AWS Lambda を使用してとある実装をしたのでその紹介です。 久しぶりに業務でOSS作りました。https://t.co/5fNBhiRsle— ema (@ema_hiro) 2020年11月19日 github.com なぜ作ったのか? Lambda 上でログを吐くとデフォルトで Cloud Watch Logs…

Firestore が絡んだテストで事前にデータを生成し終わったら削除する

Overview テストを書くときにテストの実行前にデータを作成し、終わったら削除したくなる時がありますね?僕はあります。 Firestore が絡んだテストを書くときに Firestore Emulator を起動した状態で実際にデータを作成して、終わったら削除する場合の実装…

Eureka Advent Calendar 2020 に投稿しました。

所属してる企業のアドベントカレンダーに記事を投稿しました。 Lambda にガッツリ触れた際の振り返りについて書いています。 興味がありましたら是非ご一読ください。 medium.com

MOKUMOKU ONSEN #3 に行ってきました

Overview 定期的に行っている開発合宿に行ってきたログです。 行き先 今回は函館です。 GoTo キャンペーンを使ったので、普段なら考えられないリゾートホテルに宿泊できました。 www.hotespa.net 進捗 ずっっっっっと停滞していたアウトプットをやってました…

Github Actions のビルドマトリックスを使う

Overview Github Actions のビルドマトリックスを使って複数の Go のバージョンでテストを行う方法について記載します。 ビルドマトリックスとは? Github Actions のドキュメントに書いてあります。 docs.github.com strategy.matrix を指定すると matrix …

VSCode の Explorer でファイルやディレクトリを非表示にする

Overview タイトルの通りです。 node_modules などのディレクトリがあると一度開くだけで Explorer がとても広がってしまうのが鬱陶しなくなってしまったので非表示にすることにしました。 手順 Setting.json に以下を追加するだけです。 "files.exclude": {…

A little copying is better than a little dependency について考えてみる

これはたまに書いてる自分自身の思考の dump の一つです。 思考を吐き出してるだけなので、所々話が飛んでるかもしれないですがご愛嬌で。 サマリ そもそも依存が嫌われるわけ 意味が違うコピペ 依存先の継続的な更新がある場合にのみ依存する 結局大事なの…

プライベートリポジトリを go get する

Overview go get でプライベートリポジトリを fetch するのに、コケてその調査で時間を溶かすことが何度か重なったので対応方法について記載します。 またプライベートリポジトリに依存してるプロジェクトで Github Actions を回すときもプライベートリポジ…

python のバージョン起因で gcloud コマンドの実行に失敗する

GCP

Overview タイトルの通りです。 gcloud components update したら python のバージョン違いで gcloud コマンドが動かなくなったのでその解決方法について記載します。 エラーの内容 Traceback (most recent call last): File "/Users/$UserName/google-cloud…

Firestore の Go SDK でドキュメントを操作する

Overview Firestore の基本的な操作 取得 Get GetAll 追記 Save 更新 firestore.FieldPath Transaction Overview firestore でドキュメントを操作するベースとなる方法を記載します。 ※ Go の実装で書いてます。 ref: https://godoc.org/cloud.google.com/go…