2024年の振り返りと2025年の抱負

明けました 2024年の振り返り 2024年の初めは漠然としていました。しかし、蓋を開けてみれば、新規事業におけるサポートや設計のテコ入れ、チームメンバーとのコミュニケーションなどで、慌ただしく過ぎていった気がします。 (多少私が一日の長があることか…

「コネクティング ザ ドッツ」を自らつなげにいく

2025年1月末でGMOペパボ株式会社を退職します。現在有給消化中になります。 領域を広げた6年間 ダーマの神殿だった 「ダーマの神殿に行った気持ちで」と入社したGMOペパボ株式会社(以下ペパボ)での日々は確実に自分のソフトウェアエンジニアとしての領域を…

任意の文字列をマスクするmaskedioパッケージを作ったが実装に不満がある

Go

runnでトークンやパスワードといった機密データをマスクする機能を作りたかったので、そのためのパッケージを作りました。 github.com 機能は単純で、maskedio.NewWriter(w io.Writer) で、任意の io.Writer を内包したインスタンス *maskedio.Writer を作成…

エラーをスタックトレースも含めて構造化ログで取得できる github.com/k1LoW/errors を作った

Go

エラーパッケージを作った話です。 www.m3tech.blog 私は、上記のエントリの「ぼくがかんがえるエラー処理の要件」に完全同意*1で、パフォーマンスをある程度犠牲にしてでもスタックトレースを「カジュアルに」受け取りたいと考えています。 また、 tech.kan…

パッケージのgo.modのgoディレクティブのバージョンを最新の1つ前のマイナーバージョン(oldstable)に強制するoldstableを作った

Go

いやあ、おっしゃる通りだなあ。packageのエコシステムを考えると気にしていかないとだhttps://t.co/JgKigJp564— k1LoW (@k1LoW) 2024年6月30日 確かに、あまり気にせずgovluncheckに引っ掛かったら即、最新バージョンに上げていたので良くないなあと反省。 …

PHPカンファレンス福岡2024に参加した #phpconfuk

参加してきました。 phpcon.fukuoka.jp 今回は雨ということもあり、ちょっと子供のイベントごとのお手伝いをして、午後から参加しました(晴れだったら朝からベローチェの予定だった)。 とはいえ、いつものFFB。入った途端に一瞬でPHPカンファレンス福岡で…

Go Conference 2024に参加した #gocon

Go

Go Conference 2024に参加/登壇してきました。 gocon.jp 前日のUnofficial Pre Partyから参加させていただき、2日間Goの話題に浸かってしました。 moneyforward.connpass.com 2日に渡って理解した range over func いろいろ楽しかったのですが、印象に残って…

最近、参照したり共有したりすることが多いURL

「user そーだい」で検索することN回目— k1LoW (@k1LoW) 2024年4月15日 soudai.hatenablog.com gihyo.jp scrapbox.io scrapbox.io よく参照するならまとめておけばいいじゃない。 ラインナップからフェーズ的なものについては察してください。 ガッチガチに…

APIテスティングツールに必要なのはテストケースごとのIDなのではないか #cicd_test_night

先日、機会をいただきましてCI/CD Test Night #7でAPIテスティングツール*1を開発している中で考えていることをお話しさせていただきました。 testnight.connpass.com 詳細はスライドをご覧ください。 speakerdeck.com APIテストはスモールテストと比べて効…

PHPerKaigi 2024に参加した #phperkaigi

今年も参加してきました。 phperkaigi.jp 聴講した発表へのフィードバックも終わり、このエントリで私のPHPerKaigi 2024はフィニッシュです。 #runn開発者会議 最近恒例の廊下での会議ですが、テストランナーのシンタックスの改善の方向性についてどうしても…

contextのキャンセル時にtesting.T.Cleanupのようにクリーンアップ処理を実行できるパッケージdonegroupを作った

Go

contextのキャンセルとそれに対応したクリーンアップ処理 Goにおいてcontextはさまざまな値を伝搬させるために使用します。その1つがキャンセル信号です。 ctx, cancel := context.WithCancel(context.Background()) defer cancel() contextを通じてキャンセ…

octocov-action v1 をリリースしました

追記 with.workdir: は with.work-dir: に変更になっています https://t.co/RsAqx9wVhT の v1 リリース作業をしている— k1LoW (@k1LoW) 2024年1月24日 octocov-action v1 をリリースしました。octocov-actionはoctocovをGitHub Actionsで使う際に使用するAct…

2023年の振り返りと2024年の抱負

2023年の振り返り 2023年は私にとっていろいろ思いを巡らせる年となりました。将来とか家族とか人生とか。内容は割愛しますが、HIPHOPクラシックを1つだけ貼っておきます。 open.spotify.com 2023年の抱負は「書く」でした。はじめてZenn Bookを書いたりなど…

GoのHTTPミドルウェアやその周辺パッケージを配布する新しいGitHub Orgをはじめました

Go

このエントリは GMOペパボエンジニア Advent Calendar 2023 および、 Go Advent Calendar 2023 シリーズ3 の19 日目の記事です。 以下のエントリでも少し触れられていますが、現在プロキシサーバをGoで書くプロジェクトがあります。 ten-snapon.com k1low.ha…

カジュアルに使えるスタブサーバとしてhttpstubとgrpcstubを作って使っている

Go

このエントリは Go Advent Calendar 2023 12 日目の記事です。 Goのテスティングパッケージで一番好きなパッケージは net/http/httptest です。 テスト実行時に実際にHTTPサーバを立ててHTTPリクエストを受けるというシンプルかつ強力なアプローチが良いです…

Go Conference mini 2023 Winter IN KYOTOに参加してきた #kyotogo

Go

京都に行ってきました。 Go Conference mini 2023 Winter IN KYOTO kyotogo.connpass.com すでに、ne-sachirouさんによりスライド資料などが集められています。感謝! scrapbox.io 「miniとは?」となるGoで濃縮された1日になりました。運営の皆様、本当にあ…

GitHub Actions上で安定したベンチマーク環境を得る(ただし、相対比較専用)

現在、実験的にですが少しパフォーマンスを気にしたいパッケージを書いています。 ちなみに、その1つはリバースプロキシです。 github.com 「気にしたいパフォーマンス」というのは以下の2つです。 現在のGoの実装がNGINX(のリバースプロキシ機能)と比べて…

スタブの役割をするためだけに生まれてきたバイナリstubin

Go

複数のコンポーネントが連動するアプリケーションのテストを書くとき、「どこまでを本物を使ってどこからモックするか」みたいな話は開発の現場のいたるところであると思います。 「要はバランス」だったり「答えは現場の数だけあ」ったり*1。 外部コマンド…

octocovで任意のメトリクスを記録できるようにした(カスタムメトリクス)

Go

octocov octocovはコードカバレッジのためのツールキットです。 github.com コードカバレッジなどのコードメトリクスを手元のターミナルで確認したり、GitHub ActionsのActionとしてPull Requestにレポートしたりできます。 計測したコードメトリクスを、さ…

テストでしか使わないパッケージをgo.modに含めない方法

Go

元エントリは↓で、これが全てです。 dev.to 最高じゃんhttps://t.co/c1hfSYhgx2— k1LoW (@k1LoW) 2023年8月26日 Goでツールではなくライブラリ(パッケージ)を作っているとき、テストにしか使わないパッケージがgo.modに入って依存関係ができてしまうのが、…

PHPカンファレンス福岡2023に参加した

PHPカンファレンス福岡2023に参加してきました。 phpcon.fukuoka.jp ホームでのカンファレンス開催と参加 私は福岡に住んでいます。その福岡のカンファレンスが、復活しました。実に4年ぶりとのことです。 4年で様々なことが変わりました。その変化の中、あ…

gh auth loginで作成されたクレデンシャルだけで生活するためにgh-doを作った

やっとgh auth loginで得たクレデンシャル(OSのセキュアストレージに保存されているもの)のみを使う生活になったぞ— k1LoW (@k1LoW) 2023年5月15日 GitHub CLIの gh auth login で作成されたクレデンシャルはOSのセキュアストレージに保存されるようになり…

Calendar Versioningを扱うパッケージ/ツールとしてcalverを作った

Go

提供する機能とは関係なくリリースを定期的に実施するようなプロダクトや、バージョンにSemantic Versioning(以下SemVer)のような意味付けがしにくいプロダクトの場合、バージョン管理手法にCalendar Versioning(以下、CalVer)というものが採用されるこ…

OSSとPHPerKaigi 2023

3月23日から25日までPHPerKaigi 2023に参加してきました。 phperkaigi.jp 参加してみての感想は、一言で表すと かつて思い描いていたカンファレンスと、想像以上を提供してくれるカンファレンスの融合を体験できて楽しかったし嬉しかった です。 想像以上の…

tblsをセットアップするGitHub Actionとしてsetup-tbls(を作るツールとしてgh-setup)を作った

タイトルが何を言っているのかよくわからないと思いますので順を追って紹介したいと思います。 tblsをセットアップするGitHub Actionとしてsetup-tbls を作った setup-tblsはtblsをインストールしてくれるGitHub Actionです。 github.com 各所で「ないの?」…

データベースドキュメント生成コマンド tbls 更新情報(Mermaid対応 / schema.json / tbls outの強化)

Go

久しぶりのtblsの新機能紹介エントリです。 ドキュメントのER図出力にMermaidを指定できるようになりました ER図の出力フォーマットにMermaidを指定できるようになりました。次のように er.format: セクションか --er-format オプションに mermaid を指定す…

「runn クックブック」はじめました

昨年からrunnというオペレーション自動化ツールを開発しています。 runnの認知のされ方としては「インテグレーションテスティングツール」とか「シナリオテスティングツール」といったほうがいいかもしれません。 github.com runnにはさまざまな機能がありま…

2022年の振り返りと2023年の抱負

2022年の振り返り 2022年はそれなりに変化のあった年でした。 仕事もですがプライベートの方面で多くの変化がありました。一番大きいのは引越しです。変化を嫌う私としては当時本当にストレスだったのですが、今、「引っ越していなかったら」と思うとゾッと…

octocovのコードメトリクスをMackerelで可視化する

この記事はMackerel Advent Calendar 2022の5日目の記事です。3年ぶりのMackerel Advent Calendarへの参加です。 4日目は id:buty4649 さんで、サーバの温度を監視するmackerel-plugin-thermalを作った - ぶていのログでぶログでした。自宅サーバ、私にはま…

octocovで実現できる3つのレポートコメントの方法

octocovはコードメトリクスを取得してPull Requestにレポートをコメントしたり、設定したデータストアに記録することができます*1。 今回はoctocovで実現できる3つのレポートコメントの方法を紹介します。 Pull Requestへのレポートコメント Pull Requestへ…