「個人負担分まで入っているのでは」と言われて調べたら、原因は別のところにあった — 社会保険料の見積もりの話
一人で法人を経営し、自分に役員報酬を払っています。役員報酬をいくらにするかを考えるために、法人の人件費や個人の税金を見積もるツールを自分用に作っています。
Carbonで日付処理のバグを防ぐ:タイムゾーンと不変性の落とし穴
PHP/Laravel で日付を扱うなら Carbon はほぼ必須のライブラリですが、「タイムゾーン」と「ミュータブル(可変)性」の 2 つを理解していないと、テストでは通るのに本番で日付がずれる、集計が 1 件だけ狂う、といった再現しづら…
FakerとファクトリでテストデータをリアルにするPHPテスト術
PHPのテストにおける「テストデータの作り方」は、品質と保守性を大きく左右します。['name' = 'test', 'email' = 'a@a.com'] のようなベタ書きは書き始めこそ速いものの、カラムが増えるたびに全テストへ波及し、…
GitHub Actions の matrix strategy で複数環境テストを一気に回す
ライブラリやアプリケーションを複数の言語バージョン・OS・依存バージョンの組み合わせで動かすとき、CI をバージョンごとにコピペしていると、ジョブ定義がすぐに肥大化して保守できなくなります。
レガシーをクリーンアーキ化するとき「バグを直さない」勇気が要る — characterizationテストと原典忠実移植
肥大化したコントローラを抱えた業務システムを、クリーンアーキテクチャ寄りの構成(Controller → UseCase → Repository)へ段階移植した経験を一般化してまとめます。核心は3つです。
「ガチャの確率」を実装したら、それは確率ではなく重み付けだった
あるアミューズメント系システムの案件で、いわゆる「ガチャ(抽選)」機能を実装する機会がありました。仕様書には当たり前のように 「確率」 という言葉が並んでいたのですが、要件を詰めていくうちに、運用側が本当に求めていたのは確率そのものではなく…
DB設計の失敗パターンと改善事例 ― 現場でよく踏む地雷とその外し方
アプリケーションの寿命は、DB設計の質にかなり左右されます。コードはリファクタリングで直せますが、テーブル設計の失敗は本番データを抱えたまま直すことになるため、修正コストが桁違いに高くなります。
GitHub Copilot 入門 — コード補完を使いこなす
GitHub Copilot は、コード中に自然言語コメントや途中まで書いたコードを与えると、続きの候補を提示してくれる AI ペアプログラミングツールです。本記事では、導入からエディタ上での基本操作、補完の精度を引き上げるコツ、そして「使…
パスワードを持たないログイン設計:「コードがあれば通す、無ければ作る」を安全に実装する
ある子ども向けアミューズメント系システムの案件で、通常とはかなり毛色の違う認証要件に出会いました。
React の useState / useReducer 使い分けガイド
React で状態管理をするとき、まず最初に手が伸びるのは useState です。多くの場面ではそれで十分ですが、状態が絡み合ってくると useState の羅列がだんだん破綻していきます。そこで登場するのが useReducer です。
