未分類
「個人負担分まで入っているのでは」と言われて調べたら、原因は別のところにあった — 社会保険料の見積もりの話

一人で法人を経営し、自分に役員報酬を払っています。役員報酬をいくらにするかを考えるために、法人の人件費や個人の税金を見積もるツールを自分用に作っています。

続きを読む
php備忘録
Carbonで日付処理のバグを防ぐ:タイムゾーンと不変性の落とし穴

PHP/Laravel で日付を扱うなら Carbon はほぼ必須のライブラリですが、「タイムゾーン」と「ミュータブル(可変)性」の 2 つを理解していないと、テストでは通るのに本番で日付がずれる、集計が 1 件だけ狂う、といった再現しづら…

続きを読む
php備忘録
FakerとファクトリでテストデータをリアルにするPHPテスト術

PHPのテストにおける「テストデータの作り方」は、品質と保守性を大きく左右します。['name' = 'test', 'email' = 'a@a.com'] のようなベタ書きは書き始めこそ速いものの、カラムが増えるたびに全テストへ波及し、…

続きを読む
CI/CD
GitHub Actions の matrix strategy で複数環境テストを一気に回す

ライブラリやアプリケーションを複数の言語バージョン・OS・依存バージョンの組み合わせで動かすとき、CI をバージョンごとにコピペしていると、ジョブ定義がすぐに肥大化して保守できなくなります。

続きを読む
未分類
レガシーをクリーンアーキ化するとき「バグを直さない」勇気が要る — characterizationテストと原典忠実移植

肥大化したコントローラを抱えた業務システムを、クリーンアーキテクチャ寄りの構成(Controller → UseCase → Repository)へ段階移植した経験を一般化してまとめます。核心は3つです。

続きを読む
php備忘録
「ガチャの確率」を実装したら、それは確率ではなく重み付けだった

あるアミューズメント系システムの案件で、いわゆる「ガチャ(抽選)」機能を実装する機会がありました。仕様書には当たり前のように 「確率」 という言葉が並んでいたのですが、要件を詰めていくうちに、運用側が本当に求めていたのは確率そのものではなく…

続きを読む
MySQL備忘録
DB設計の失敗パターンと改善事例 ― 現場でよく踏む地雷とその外し方

アプリケーションの寿命は、DB設計の質にかなり左右されます。コードはリファクタリングで直せますが、テーブル設計の失敗は本番データを抱えたまま直すことになるため、修正コストが桁違いに高くなります。

続きを読む
未分類
GitHub Copilot 入門 — コード補完を使いこなす

GitHub Copilot は、コード中に自然言語コメントや途中まで書いたコードを与えると、続きの候補を提示してくれる AI ペアプログラミングツールです。本記事では、導入からエディタ上での基本操作、補完の精度を引き上げるコツ、そして「使…

続きを読む
php備忘録
パスワードを持たないログイン設計:「コードがあれば通す、無ければ作る」を安全に実装する

ある子ども向けアミューズメント系システムの案件で、通常とはかなり毛色の違う認証要件に出会いました。

続きを読む
JavaScript備忘録
React の useState / useReducer 使い分けガイド

React で状態管理をするとき、まず最初に手が伸びるのは useState です。多くの場面ではそれで十分ですが、状態が絡み合ってくると useState の羅列がだんだん破綻していきます。そこで登場するのが useReducer です。

続きを読む