メインコンテンツへスキップ
見出し画像
Photo byjankenpon_gcp

GitHubが正だと思ってたら、普通に壊れた話

    最近ちょっと痛い学びがあったので、メモがてら残しておきます。

    アプリ開発してると、バージョン管理って「ちゃんとやってるつもり」になりがちなんですよね。自分も完全にそうでした。

    ちなみに非エンジニアですが、JavaScriptの基礎はudemyで学びました。

    で、今回なにが起きたかというと、

    「正はGitHubにある」と思い込んでたのが、そもそものズレでした。

    気づいたら、
    ・GitHubのコード
    ・Firebaseに上がってるもの
    ・TWAでビルドしたもの
    ・Playストアに出てるもの

    これが全部、微妙に違う状態。

    しかも自分の中では「GitHubが正」っていう前提で動いてるから、
    GitHubを見て「これが正しいはず」→でも実際の挙動は違う → さらに混乱、みたいな流れに。

    冷静に見れば当たり前なんですが、
    運用がズレた瞬間に、“正”もズレるんですよね。


    最初は「一部直せば戻るでしょ」と思ってました。

    でも実際は、触れば触るほどズレが広がる。
    ある設定は新しいのに、別は古いまま、みたいな。

    で、途中でこう思いました。

    「じゃあ4日前に戻せばいいんじゃない?」

    いわゆる切り戻しっぽいやつです。

    実際、4日前の状態はちゃんと動いてたので、
    そこを基準に復元しようとしたんですが…

    これが逆に、さらにカオスになりました。

    理由はシンプルで、
    「4日前に正しかった“環境一式”」ではなくて、
    “GitHubのコードだけ”を戻そうとしたから。

    他の環境(Firebaseやビルド済みのもの)は今のままなので、
    結果として「過去と現在のミックス状態」になってしまった。

    これ、かなり危ないやつでした。


    で、どうしたかというと。

    一回あきらめて、GPTに相談しました。

    そこで出てきたのが、

    「中途半端に戻すより、基準決めて再構築した方が早い」

    という方向。

    正直「また作り直しか…」って思ったんですが、
    やってみたらこっちの方が圧倒的に早かったです。

    むしろ、あのまま切り戻しにこだわってたら、
    たぶんもっと時間溶けてました。


    今回の反省ポイントをまとめるとこんな感じです。

    まず一つ目。
    「正」がどこかを“思い込み”で決めていたこと。

    GitHub=正、にしてたけど、実態はそうじゃなかった。
    本当は「運用としてどこを正にするか」を決めないと意味がない。


    二つ目。
    切り戻しは“環境ごと”戻さないと意味がないこと。

    コードだけ戻してもダメで、
    ビルド・デプロイ・設定含めて揃ってないと、むしろ壊れる。


    三つ目。
    ビルド成果物をちゃんと追えてなかったこと。

    TWAでビルドしたものを「完成品」として扱ってたけど、
    その元がどの状態かをちゃんと紐づけてなかった。

    だから、差分が追えない。


    四つ目。
    違和感を放置したこと。

    「あれ?なんか変だな」はだいたい正しい。
    今回も、その時点で止まっていればここまで崩れなかった。


    再構築後は、かなりシンプルにしました。

    ・どこを正とするかを明確にする
    ・そこからしかデプロイしない
    ・ビルド元を必ず記録する

    この3つだけでも、かなり安定します。

    あと、「戻せる状態」をちゃんと残すようにしました。
    これ、精神的にもめちゃくちゃ大事。


    今回の一番の学びはこれです。

    「GitHubにある=正」ではない。
    「運用として正にしている場所」が正。

    そしてもう一つ。

    「中途半端な切り戻しは、だいたい悪化する」

    当たり前なんだけど、実際に崩れるとよく分かるやつ。


    個人開発してると、このへん曖昧になりがちなので、

    ・正をどこに置くか決める
    ・そのルールを守る
    ・切り戻すなら“全部”戻す
    ・迷ったら再構築も選択肢に入れる

    ここ、大事です。

    自分は今回でだいぶ懲りました。

    でもまあ、その分ちょっと強くなった気もします。

     
     
    2児の父。好きなことは「将棋」「ピアノ」。本業の傍らWebアプリ開発にも挑戦中。

    あなたへのおすすめ