はじめに
タイトルどおり、2ヶ月で90%くらいのコードが消えた。
アドバイスもらうのは重要だねって話。
技術的な話ではなく、メンタル的な学びを共有します。
頑張って自分だけで実装した
9月、本番データベースからシードデータを作るってタスクを割り振ってもらった。
ざっくりと書くと
- RDSでDBのスナップショットをとる
- AWSのGlueでDBのスナップショットからテーブル構造を取得
- 2を元にGlueでデータをCSV出力
- CSVをローカルに落とし、seedデータとして整形
みたいな流れだ。
1,2の部分は良かったのだが、3のCSV取得で大変冗長なコードを書いていた。
以下の画像みたいにテーブルごとにGlueのJobを書いて、一つずつ回していたのだ。
一応for文で回してみたのだが、なぜか空のCSVしか出力されない。
「仕方ない。。。それぞれJob作るか。」
そう思って、テーブルごとにコードを書いたわけだ。
しかし、コードは冗長だったものの、
その後無事に、目的の要件「本番データベースからシードデータを作る」は達成できた。
その後先輩エンジニアにアドバイスを貰った
それから1ヶ月位経ってから、
「AWSのコンソール上ではなく、Docker上で動くようにする」
というタスクが動き始めた。
いい機会だったので、上述の顛末を相談しよう。
そう思って、docker基盤を作ってくれた先輩エンジニアに、
色々と今までの話を共有して、アドバイスを貰った。
「ん。これって、JobBookmarkのせいじゃない? ほら、ここをdisableにすれば良さそう。」
「え、、、」
そう聞いて、上の画像のページを見ると、JobBookmarkという項目がある。
まじか。コンソール上で変更できることを完全に見逃していた。
実はJobBookmarkに原因があることは分かっていたため、lambdaで一つずつdisableにしていたのだ。
実際にここを変更したところ、for文でつつがなく回せるようになった。
そして、上記のlambdaの関数も不要になった。
「まだ、いらない部分あるよ。」
「え、、、」
そんなこんなで、2ヶ月で9割のコードが消えたのである。
まとめ
個人的には、コードの綺麗さよりも、期間内に実装できるかが大事だと思っている。
しかし、今回の場合、アドバイスを貰っていれば、大幅に実装時間を減らすことができたはずだ。
特に新人エンジニアは自分を過信しないようにしよう。
そして、積極的にアドバイスをもらおう。
自分の知らない知識も増える。
私のように、「この時間なんだったんだ。。。」と思うことも減る。
ということで、周りを頼ろうという話でした。