初めて書いたクソコード、元気にしていますか?私は元気にやっています。
こんにちは〜〜!!鳥と犬のかいぬしです。
こちらクロスマート・テック Advent Calendar 2024の7日目の記事です🎄
早速ですが、クロスマートに転職して一年が経ちました。
2週間Sprint、まだ10回くらいしか回ってない感覚だったけど25Sprintくらいやっていた。はやい。
この一年を振り返ると、多くの経験と学びがありました。
そして一言で表すと、すごく楽しい一年でした。
(多分性格も明るくなったと思う…。)
ただ、ふと思い返すと、エンジニアとしての原点とも言える「初めて書いたクソコード」を思い出します。あのコードがなければ、今の私はいなかったかもしれない…。今日はその思い出とともに、この一年を振り返ってみたいと思います。
あの頃書いた クソコード
エンジニアになって四ヶ月目、ひよっこのあたいは初めて任されたプロジェクトでAPIを作ります。
仕様はシンプル。「GETメソッドでブログ記事一覧のタイトルや作成日時と、ついでにお気に入り数も返してほしい」というもの。(実際はちょっと違う)
「研修で似たようなのやったし、一日あれば終わるっしょ^_^」と高を括ってコードを書き始めました。これが火を吹きます。
具体的には、N+1問題を引き起こしたあの恐怖のコード。(のサンプル)
// laravel
$users = User::all();
foreach ($users as $user) {
$posts = Post::where('user_id', $user->id)->get();
foreach ($posts as $post) {
$favorites = Favorite::where('post_id', $post->id)->count();
echo "{$post->title}: {$favorites} favorites";
}
}
ん〜〜〜〜〜怖い。テストに出そうなくらい完璧なクソコード。
今振り返ると、なんて無邪気で恐ろしいコードでしょうか。恐ろしいを通り越して、もはや可愛さもあります。
実際このAPIが原因でサーバーが落ち、めちゃくちゃ怒られることになります。
(レビュー体制が整っていなかったのも問題ではある)
転職してからの一年
私はクソコード問題以来、APIのパフォーマンス、元よりN+1問題に異常なほど敏感になっていました。サービスを落としてしまった罪悪感、そしてその後のリカバリーの大変さ…。もう二度と同じ思いはしたくない、絶対にサービスを落とさないという気持ちで、日々の仕事に取り組みました。
ちょうど私が入社した頃から(?)、サービスの利用ユーザーの増加に伴ってパフォーマンス問題が浮き彫りになる場面が増えていました。
「やりたかったこと」が目の前に!
正直、日々の新機能開発をこなしながら、こうした課題に対応するのは大変でした。
実際のところ内心では
キタァ!!こういうのがやりたかったんだよ☆*:.。. o(≧▽≦)o .。.:*☆
と、むしろテンションが上がっていました。
自分が過去に苦しんだ問題に真正面から向き合える環境は、何だかんだで楽しかったんです。これこそ、自分が成長するために必要な課題だと思えました。
具体的にどんな対応をしたのかは、下記の記事に書きました。みてね!!
「失敗はむしろ武器になる」を体現した一年
「初めて書いたクソコード、元気に動いてますか?」
正直に言うと、あのコードはもう動いていないと思います。動いていたら逆に怖いので、誰か助けてあげてほしい。でも、私の中ではあのコードは今も元気に生きています。ずっと忘れないだろうな・・・
私の失敗からの学びが、今のエンジニアとしての基盤を作っているからです。
転職してからの一年は、挑戦と成長の連続でした。そして、この一年を通して感じたのは、「どんな失敗も成長につながる」ということ。だから、これからも失敗を恐れずに、新しいコードを書き続けたいと思います!
おわり!
明日の記事もお楽しみに✌️