LoginSignup
4
2

More than 1 year has passed since last update.

実装したコードが2ヶ月で90%消えた話

Last updated at Posted at 2022-12-05

はじめに

タイトルどおり、2ヶ月で90%くらいのコードが消えた。

アドバイスもらうのは重要だねって話。

技術的な話ではなく、メンタル的な学びを共有します。

頑張って自分だけで実装した

9月、本番データベースからシードデータを作るってタスクを割り振ってもらった。

ざっくりと書くと

  1. RDSでDBのスナップショットをとる
  2. AWSのGlueでDBのスナップショットからテーブル構造を取得
  3. 2を元にGlueでデータをCSV出力
  4. CSVをローカルに落とし、seedデータとして整形

みたいな流れだ。

1,2の部分は良かったのだが、3のCSV取得で大変冗長なコードを書いていた。

以下の画像みたいにテーブルごとにGlueのJobを書いて、一つずつ回していたのだ。

Glue_Studio_-_Jobs.png

一応for文で回してみたのだが、なぜか空のCSVしか出力されない。

「仕方ない。。。それぞれJob作るか。」

そう思って、テーブルごとにコードを書いたわけだ。

しかし、コードは冗長だったものの、
その後無事に、目的の要件「本番データベースからシードデータを作る」は達成できた。

その後先輩エンジニアにアドバイスを貰った

それから1ヶ月位経ってから、
「AWSのコンソール上ではなく、Docker上で動くようにする」
というタスクが動き始めた。

いい機会だったので、上述の顛末を相談しよう。
そう思って、docker基盤を作ってくれた先輩エンジニアに、
色々と今までの話を共有して、アドバイスを貰った。

「ん。これって、JobBookmarkのせいじゃない? ほら、ここをdisableにすれば良さそう。」

Glue_Studio_-_Editor.png

「え、、、」

そう聞いて、上の画像のページを見ると、JobBookmarkという項目がある。

まじか。コンソール上で変更できることを完全に見逃していた。

実はJobBookmarkに原因があることは分かっていたため、lambdaで一つずつdisableにしていたのだ。

実際にここを変更したところ、for文でつつがなく回せるようになった。
そして、上記のlambdaの関数も不要になった。

「まだ、いらない部分あるよ。」

「え、、、」

そんなこんなで、2ヶ月で9割のコードが消えたのである。

まとめ

個人的には、コードの綺麗さよりも、期間内に実装できるかが大事だと思っている。

しかし、今回の場合、アドバイスを貰っていれば、大幅に実装時間を減らすことができたはずだ。

特に新人エンジニアは自分を過信しないようにしよう。
そして、積極的にアドバイスをもらおう。

自分の知らない知識も増える。
私のように、「この時間なんだったんだ。。。」と思うことも減る。

ということで、周りを頼ろうという話でした。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2