$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

2023-08-01から1ヶ月間の記事一覧

より少なく、しかしより良く - 「エッセンシャル思考」読んだ

エッセンシャル思考 最少の時間で成果を最大にする作者:グレッグ・マキューンかんき出版Amazon 自分がなんでもやりたいタイプなので、この本に書いてあることは中々刺さった。幸福になるには「より少なく、しかしより良く」を追求すべきという本。プライベー…

スムーズに進行するためのエンジニアリングタスク分割の工夫

会社の振り返りで「エンジニアリングの作業タスクがうまく分割できていそうだったが、その知見を共有してほしい」と言われたので、自分がどう考えてタスク分割をしているかをこの記事で共有したい。 この記事のスコープとすること・しないこと タスク分割を…

Goで実際にどのパッケージがコンパイルされたかを確認する

Goでどのパッケージが再コンパイル予定か確認する - $shibayu36->blog;の続き。前回は大体のコンパイル計画を知る形だったが、今度は実際にどのpackageがコンパイルされたかを確認する方法についてメモ。 まずgoのコマンドは-xオプションを使うことで実行さ…

Goでどのパッケージが再コンパイル予定か確認する

build cacheがうまく使えているかを調べる必要があり、どのパッケージが再コンパイル予定かを確認するコマンドを調べたのでメモ。ちょっと自信がない部分もあるので間違っているところがあったら教えてください。 先に結論から言うと、go listを使った以下の…

ある特定のパターンにヒットする次の行が特定のパターンだった時に削除するワンライナー

あるディレクトリ以下で特定のパターンにヒットする行を全て削除する - $shibayu36->blog;に引き続き、やり方を模索してみた。 たとえばgolangを使っていて、ある処理をt.Cleanupに寄せたので対応するdeferを全部消したい時がある。 // StartHogeHelperの中…

優れたテストスイートの4本の柱を学ぶ - 「単体テストの考え方、使い方」を読んだ

良いテストケースの作成手法を学ぶ - 「はじめて学ぶソフトウェアのテスト技法」を読んだ - $shibayu36->blog;に引き続き、ソフトウェアテストの知識について言語化を進めたいと考え、「単体テストの考え方、使い方」を読んだ。 単体テストの考え方/使い方作…

良いテストケースの作成手法を学ぶ - 「はじめて学ぶソフトウェアのテスト技法」を読んだ

ソフトウェアテストに関する知識をもう少し言語化したいなと思い、「はじめて学ぶソフトウェアのテスト技法」を読んだ。 はじめて学ぶソフトウェアのテスト技法作者:リー コープランド日経BPAmazon この本では主に良いテストケースの作成手法について学べた…

妻が書いた「めんどくさがりやの自分の機嫌を取る暮らし」が発売されました

PRです。妻が書いた「めんどくさがりやの自分の機嫌を取る暮らし」が本日発売されました。 めんどくさがりやの自分の機嫌を取る暮らし (BAMBOO ESSAY SELECTION)作者:てらい まき竹書房Amazon 僕から見ても、妻はめんどくさがりやなのに「こんな生活がしたい…

Goでstruct内に定義されたタグの内容を再帰的に取得する

あるstruct構造の中のdbというタグの内容に何が含まれているかをすべて取得したい時があったため。 たとえばこういう構造があったとして type Timestamp struct { CreatedAt time.Time `db:"created_at"` UpdatedAt time.Time `db:"updated_at"` } type Json…

MQTTのトピックフィルターによる購読をトライ木を使って実装する

最近趣味でMQTTブローカーの実装をしてみている。その中でトライ木を使うとトピックフィルターによる購読の実装を簡単に行えるというのが面白かったのでブログにしておく。 なおトライ木はHTTP Routerの実装にも使われることがあり、そういう点でも一度実装…

MQTTプロトコルをブローカーを実装しながら学ぶ

clusterのリアルタイム通信サーバーの漸進的な進化 - Cluster Tech Blogを見て、リアルタイム通信の仕組みに興味を持った。しかし、MQTTプロトコルは使ったことがなく、どのようなプロトコルなのか、何がそんなに効率的なのか、なぜIoTなどでよく使われるの…