OpenWeatherMapAPIを用いて天気情報を教えてくれるDiscordBot
・最近、Volareのメンバーと2人でGolangで共同開発する機会がありました。Volare内でteam-go-beginnerというチームが立ち上がり、そこにジョインしました。最初の活動として、2週間でDiscordBotを作ってみようということでした。 まず、どういったものを作ったかというと、まずOpenWeatherMapAPIを使用し、天気情報を取得します。取得した天気情報のJSONから配列を取り出す。「/東京」とテキストチャンネルに打つと、日本の現在時間から3, 6, 9, 12時間後の4つの天気予報を教えてくれるというものを作成しました。 工夫したところとして、そのまま都市名から天気情報を取得しようとすると、OpenWeatherAPIの「Tokyo,jp」などと入力フォーマットを遵守しなければならなかった。入力フォーマットを緩くしたいので、それが可能なGeocodingAPIを経由し入力から都市の緯度軽度を取得後、その緯度軽度から天気情報を取得するようにしました。 また、2週間を通しての感想として、短い期間でできることを取捨選択しつつ、何をするか決めることに時間がかかったこと。OpenWeatherMapAPIの無料枠のみでやろうとしたため、妥協しなければならかったところも幾つかあり、難しかったです。 一緒に組むことになった彼は、プログラミング歴は同じ1年近くで、インターンを通してプログラミングを習得してきたという。私とは真逆のタイプでプログラミングを習得したという。 彼はロジックから考え、必要なライブラリを剪定してゆく。一方私はというと、ネットに落ちている記事からコピペしながら、必要に応じて書き換えてゆく。私は最初、順調に手を動かすが、実装が進むと詰まって悩んでいる中、彼はスイスイと実装を進めていく。ロジックをわかっているからこそ、実装でわからないことを言語化出来たりが、私より上手い。そして、思う通りに実装出来る。 恵まれた環境で、0からプログラミングを習得してきた、プログラミング歴が同じ彼に対して、私は彼に嫉妬しました。私は「この1年何をやっていたのだ。」と思うと同時に、初めた彼を見習い、行動せずにはいられない。インターンにどうしても参加したいと思うようになりました。彼を見て、インターンに参加し、実績を積む大事さを知りました。