IT
Prisma には DB への Seeding の機能が搭載されています。 この機能を用いて、Docker コンテナで動作する MySQL に初期データの投入作業を行ってみたので、備忘録としてブログに残します。 環境 node 20.11.1 prisma 5.10.2 @prisma/client 5.10.2 docker co…
https://github.com/dariosn85/ts-jest-mocker interface や class のモックを簡単にできるようにしてくれるライブラリである、ts-jest-mocker についてのメモ 嬉しいこと interface を満たすための無意味なメソッド実装が不要になる。 初回実装、メンテナン…
何を当たり前のことを、みたいなタイトルだが最近実感していることなので。 レイヤードアーキテクチャ、ヘキサゴナルアーキテクチャ、オニオンアーキテクチャはアプリケーション固有のルールを実装するレイヤーを持つ。このレイヤーはアーキテクチャによって…
Go 1.20 で追加された errors.Join の挙動を調べてみたので、備忘録としてポストしておく。 errors.Join の概要 Go doc と実装をベースに概要を簡単にまとめる。 errors.Join は error を返す。返された error は内部的に引数に渡された可変数の error を保…
DynamoDB のテーブル設計は、RDB のそれとは異なる。 テーブル数はなるべく少なくして、非正規化したモデルを設計するべきである。 その背景を深く知るべく、「Amazon DynamoDB におけるシングルテーブル vs マルチテーブル設計」を読んで学んだ内容をまとめ…
新しいドメインを取る必要があってどのサイトで取ろうかなーと悩んだ末、AWS で取ることにした。 AWS 自体はがっつり触ってきたが、ドメイン取得はやったことがなかったので公式ドキュメントを参考にしながら進めた。 手順 Route53 のコンソールにて、[登録…
Slack の Block Kit という機能の存在を知った。 この機能を活用することで、リッチで読みやすく理解しやすい Slack メッセージを構築することができるそうだ。 やってみる Formatting text for app surfaces | Slack を参考に block を組み合わせてメッセー…
Go 1.18 でジェネリクスが導入されてからこれまで雰囲気でジェネリクスを使用してきました。 ここらでちゃんと仕様を体に覚え込ませたいと思い立ち、公式の文書を読みつつ手を動かした記録を記事として残すことにしました。 少しずつ理解を深めていく経緯を…
Amazon Aurora カスタムエンドポイントの仕様がかなり複雑であり、都度都度ドキュメントを参照するのが辛いので要点と気になる点を備忘録として記す。 概要 タイプ メンバー 参考 概要 カスタムエンドポイントは、任意の複数のDBインスタンスに接続するエン…
今年はいくつかのOSSにコントリビュートしたので、マージされた PullRequest を一覧で見たいなと思い検索方法を調査しました。 PRを一覧で見る https://github.com/pulls へアクセスすることで自分が作成したPRを一覧で取得できます。 OSSへのPRにのみ GitHu…
2023-12-02 に開催された「Go Conference mini 2023 Winter IN KYOTO」にオンライン参加しました。 今回は時間的に余裕があったので、ほとんど全てのセッションを聴くことができました。 本記事は、セッションの中でも特に興味深かったものについて簡単にま…
本記事はZennに投稿した記事の複製です。 先日、terraform-aws-providerにコントリビュートし、大規模?OSSへのコントリビュート経験をGETしました。 マージされた改修は、v5.26.0にて無事リリースされました。 https://github.com/hashicorp/terraform-prov…
Dirty Read の概念を学んだので、動作を試すのに Go の sql パッケージを使って検証スクリプトを書いてみる。 こういうのは手を動かしてみると記憶に残る。 検証はローカルで行う。 DBMSは MySQL を使う。 compose.yaml はこちら。 services: # MySQL mydb: …
ひょんなことから、プログラミング言語で記述されたバックエンドの実装をSQLで書き直す取り組みをすることになった。ちなみにデータベースエンジンはMySQL 5.7である。 実務でまともに触ったDBはDynamoDBが初めてでRDB何も分からないマンだったので、やらな…
タイトル通りです。 随時更新していく予定です。 入門 dev.classmethod.jp 埋め込み www.ryucom.co.jp tech.nri-net.com acro-engineer.hatenablog.com qiita.com tech.stmn.co.jp techblog.recochoku.jp データセット dev.classmethod.jp dev.classmethod.j…
mapの中身を綺麗にデバッグしたいので、mapをテーブル形式でコンソール出力したいことがあった。 ChatGPTに聞きつつ、軽い修正したら完成しそうなのでやってみた。 今回使用するModelはGPT-4である。 あなたはGo言語のプロフェッショナルです。 map型の値を…
Go言語は書き振りが冗長であると言われることが多々ある。 例えば、int型のスライスから値が10の値だけを抽出したい場合には下記のように書く。 package main import "fmt" func main() { intSlice := []int{1, 10, 100} result := []int{} for _, v := rang…
Go 1.20.0 が先日リリースされた。 気になる機能はいくつかあるが、職場にて math/rand パッケージが話題に上がっていたのでチェックしてみた。 ちなみに arena パッケージの実験的サポート、errors.Join 、context.Context の Cause あたりが気になる機能で…
HDDの基本的な用語や構成を全然覚えられず、都度検索しているので備忘録としてまとめます。 同じ内容を別のブログで以前公開していたのですが、ブログを閉じちゃったので再掲です。 プラッタ データを保存する円盤 プラッタは複数枚搭載 プラッタの片面また…
マネコンで作って terraform import して定義ファイルを作りたい。 とりあえずマネコンで全てデフォルト(チェックボックスの状態など変えず)で作った。 コマンドを実行する前に.tfファイルにリソース定義をしておく必要がある。 resource "aws_s3_bucket" "x…
Build Infrastructure | Terraform | HashiCorp Developer を参考に、Terraform のプロジェクト初期化から EC2 デプロイまでの手順を記す。 定義ファイルを作る。 touch main.tf 定義する。 version関連は先述のチュートリアルのコピペ。 AMI はCLIで2023.01…
はじめに マイクロサービス間の通信に使われると話題(相当流行遅れ)のgRPCを触ってみた。 実践 protocol plugin をインストールする。 $ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 $ go install google.golang.org/grpc/cmd/protoc-ge…
Neovim のインストールが済んだので設定ファイルを作りたい。 コテコテに拡張するつもりは今の所はないが、とりあえずファイルを作っておこうかなという考え。 作成 ~/.config/nvim以下にinit.luaを作る。 nvimディレクトリがまだ無かったのでAND演算子で先…
プログラマーとしてお給料をいただくようになって2年が経った。 この2年間使ってきたエディタは VSCode だ。 独学時代は VSCode を使ったり Vim を使ったり Atom を使ったりいくつかのエディタを試していた。 現職に就く直前は確かVimを使っていた気がするが…