cat posts/gcp-%e3%81%a7%e9%9a%9c%e5%ae%b3%e5%af%be%e7%ad%96-dr-%e7%92%b0%e5%a2%83%e3%82%92%e8%a8%ad%e8%a8%88%e3%81%99%e3%82%8b-cloud-dns-%e3%83%95%e3%82%a7%e3%82%a4%e3%83%ab%e3%82%aa%e3%83%bc%e3%83%90.md

【正論】半年後のワイ、今書いたコードの経緯を1ミリも覚えてない

1 風吹けば名無し 2026/06/13(土) 21:04:00 ID:Ft8Me1sf
半年後のワイは今書いたコードの背景を一切覚えてない
それを前提に設計しとるわ

2 風吹けば名無し 2026/06/13(土) 21:05:23 ID:Wn3cT7yk
わかる
3ヶ月前のコードが他人のコード

3 風吹けば名無し 2026/06/13(土) 21:06:08 ID:Ft8Me1sf
>>2 せやから環境をコードで管理するようにした
Docker Compose で開発・本番を同一構成にしとる

4 風吹けば名無し 2026/06/13(土) 21:07:16 ID:Wn3cT7yk
>>3 メリットあるんか

5 風吹けば名無し 2026/06/13(土) 21:08:47 ID:Ft8Me1sf
>>4 サーバーが壊れても git clone して docker compose up -d で戻せる
それだけで精神的にかなり楽や

6 風吹けば名無し 2026/06/13(土) 21:09:40 ID:Bj9vL4hd
ログはどうしとる

7 風吹けば名無し 2026/06/13(土) 21:10:56 ID:Ft8Me1sf
>>6 構造化した

// 以前
console.error("Something went wrong")

// 今
logger.error({ endpoint: req.path, userId: req.user?.id, message: err.message })

8 風吹けば名無し 2026/06/13(土) 21:11:34 ID:Bj9vL4hd
>>7 前者ひどくて草

9 風吹けば名無し 2026/06/13(土) 21:12:35 ID:Ft8Me1sf
>>8 障害が起きたとき、前者は何もわからんかった

10 風吹けば名無し 2026/06/13(土) 21:13:59 ID:Xs2gR6pm
テストは

11 風吹けば名無し 2026/06/13(土) 21:14:45 ID:Ft8Me1sf
>>10 「壊れたら困る場所」だけや
カバレッジ100%より、一度バグった箇所とビジネスロジックの核心部分をカバーするほうが実用的やった

12 風吹けば名無し 2026/06/13(土) 21:15:54 ID:Xs2gR6pm
>>11 全部書こうとすると挫折するからな

13 風吹けば名無し 2026/06/13(土) 21:17:26 ID:Ft8Me1sf
>>12 ほんまそれ

14 風吹けば名無し 2026/06/13(土) 21:18:20 ID:Xs2gR6pm
コメントは

15 風吹けば名無し 2026/06/13(土) 21:19:37 ID:Ft8Me1sf
>>14 「なぜ」だけ書く
「何をしてるか」は変数名・関数名で伝わるからな
本当に非自明な判断だけ一行コメント残す。それで十分やった