【解説】開発ライブ実況#4 VS Code編 by 株式会社メルカリ AI & Searchチーム AIエンジニア #mercari_codecast

メルカリAI & SearchチームAIエンジニアのしぶいです。このブログは、先日行った開発ライブ実況イベントのまとめです。

  • 開発ライブ実況とは、コーディングの様子を、開発者本人と実況者がライブ実況するイベントです。使っている言語、エディタ、ドキュメントの見方、テストの書き方などを、実況を聞きながら見ることができます。 アーカイブ動画 : https://www.youtube.com/playlist?list=PL5y9uEm8_ypV4pQypp7IGN3b-mq2bf65Z

開発環境

使用したもの

VS Code を使用しました。

使い始めたきっかけ

3年くらい前に「最近流行ってるものを試してみよう」という軽いノリで使い始めました。それまではEclipseやVisual StudioやVimやAtom等々を使ってきました。 アプリを作るときは専用の開発環境を使います(AndroidにはAndroid Studio、ARにはUnity+Visual Studio等々)が、そうでない限りはVS Codeで書いています。

使い続けている理由

環境(PC、OS)が変わっても安定してインストールすることができて、各種言語での開発ができるのが使い続けている理由です。カスタマイズしなくてもストレスなく書ける点が気に入っています。

こだわりポイント

あまりカスタマイズしないのがこだわりです。アドオンもオートコンプリートとフォーマッター以外は有効化していません。 私は開発環境や言語が変わったり、サーバを操作したりと、環境がちょくちょく変わるので、どんな環境でも同じ手順でコーディングできるようにしています。自分専用のキーバインディングやカスタマイズをすると、いざ標準仕様のターミナルでコードを書こうとしたときに操作ミスしてしまうので、それを避けるようにしています。

課題とアウトプット

課題

Todoの参照と登録ができるAPIを作りました。

コーディング画面

こーでぃんぐがめん

ライブ実況動画

https://youtu.be/WbDeffpXS2s

使用したプラグインや参考URLリンクなど

TabNineというアドオンを使っています。 https://www.tabnine.com/ TabNineはディープラーニングを使用したオートコンプリートです。メルカリでもディープラーニングを活用した入力補助機能を提供しているので、同じディープラーニング × オートコンプリートを応援したいと思って使い続けています。

イベント終了後の Q&A

ご視聴&ご一読ありがとうございました。 Dockerfileから書き始めている点が意外と反応良いようで嬉しい限りです。前述のとおり、開発環境が変わることがあるのと、プログラムの本番実行環境はPCではなくサーバになるので、書いたコードをどこでも同じように動かせるよう、実行環境はDockerコンテナに統一するようにしています。 機械学習の開発では、モデルの学習と推論は別環境になります。モデルを学習環境に依存させないように、早い段階から推論モデルをDockerで動かせるようにしておく(≒推論することを考えて学習コードを書いていく)ことを意識しています。

twitterの反応

ログは、私は最初のうちはところどころで出力させておいて、後で不要なログを消すようにしています。これも機械学習の推論システムを作っているときの教訓なのですが、前処理や推論の途中経過で型指定や計算が間違っていて、出力される結果が想定外というケースがあります(猫の画像をPOSTしたのに「スマホ」と出力されたり)。APIとしてはエラーにならないためデバッグが難しいのですが、入力値や型、途中の計算を確認するため、開発中はログを多く仕込むようになりました。

おわりに

ありがとうございました。 VS Code編と言いつつ、あまりVS Codeの機能を有効活用していない内容になってしまいましたが、楽しんでいただけたのであれば幸いです。