地方でリモートワーク

プログラミング、先物、fx,仮想通貨なんでもやります

問題を小さく切り分ければ不可能なことはない。一ヶ月前の自分には想像もつかなかった機能が実装できた話

スポンサーリンク

f:id:ihatov08:20160424010832j:plain

 

金曜日の午後、自社サービスで機能追加の依頼を受けました。「ZIPファイルでデータベースからデータとってくる機能追加してくださーい。フォルダで階層構造にして、その中にファイルで入れてくださいね」と言われました。

そんなんできるのか!?できたとしても何日かかるんだ!?と猛烈に不安になりましたが、意外とできちゃってかなりの自信になったので記録として残しておきます。

 

依頼を受けたときはとてつもなく不安だった

CSVファイルでデータをもってくる機能を追加することは、Rubyにライブラリが標準装備されているし、参考コードがたくさんあったので比較的簡単に機能実装できることはわかっていました。しかし、ZIPファイルでダウンロードしてフォルダの階層構造にするなんて、ググってもあんまり出てこないし、どうすればいいんだ!?と内心かなり焦っていました。

例えるなら、車で標準装備されているオーディオでCDを聞くのは簡単だけど、カーナビを自分で買ってきて取り付けるのは難しいですよね!?そんな感じです(わかりづらい)

問題を小さく切り分ければいい

そんなときに、以前に先輩プログラマの方から頂いたアドバイスをふと思い出しました。

問題を小さく切り分けて取り組むことは、プログラミングで大事なことですよー

 

そうだ!これだ!と思い、問題を小さく切り分けて、いきなりZIPファイルをダウンロードする機能を実装するんだ!と考えるのではなく、小さく切り分けながら、自分ができることを少しずつ実装していきました。

 

その日のうちに機能実装できた!

とはいえ、ひとりで「うーーん」と唸りながら取り組んでいると、チームのみんなが助けてくれて、その日のうちに機能が実装できました。改善の余地はまだまだありますが、時間をかければできないことはない!と思うことができて、かなり自信になりました。そのときの記事がこちら。

qiita.com

 

まだまだこれから

熟練プログラマの方からすれば、簡単なことかもしれませんが、1ヶ月前の自分からすると、かなりできることが広がってきました。

今後もどんな難しい壁にぶち当たっても、「問題を小さく切り分ける」ことで乗り切っていきたいと思います。