「情報の集約、可視化」を通したエンジニア的貢献
昨今のコロナウイルス対策に対してエンジニアがどんな貢献を出来るか考えた場合
- コロナウイルス情報の集約
- 可視化(リスト化、グラフ化など)
が、手近なweb技術で出来ることかと思います。
僕はRapidAPIというAPI提供サービスでコロナウイルス情報が簡単に取得出来ることを知ったため、後者の可視化に焦点を当てて下記のサイトを作りました。
作ったサイト
https://growsic.github.io/covid-overview/
Qiita記事
https://qiita.com/growsic/items/2dd16151bf5444974e20
コロナウイルス関連サイトの開発増加
RapidAPI公式の記事によると、コロナウイルスの情報APIに関する検索、利用が直近大幅に増えているとのことです。

需要に答えるように、RapidAPIの中でも十数本のコロナウイルスの統計情報のAPIが公開されています。
情報のソースはどこ?
作ったサイトをSNSで公開していたところ、知人に
「情報のソースはどこ? この手の情報サイトに手を出すなら情報はきちんと扱った方が良いよ」
と言われ、便利に使える/作れることばかり考えて、情報の信頼性担保は深く考えていなかったことに気付き、改めて考えてみることにしました。
※ RapidAPIのリンクはDataSourceとしてサイトに載せていたため、情報の提示は初期から行っていました
情報を正しく提示する責任
趣味のサイトを公開する分には、対象情報に不整合があろうと特に問題はありませんが、
社会的大問題を扱う場合は一定の責任が伴います。
twitterに端を発した、マスク品薄問題に見るバタフライエフェクト
個人が何となしに呟いた「マスクが品切れになるらしい」という根拠のない情報発信で、実際に品薄になるに至りました。
コロナウイルス関連サイトを作って公開する際、正しく情報提供・情報開示をしないと、良かれと思って作ったサイトがかえって混乱を招いてしまうことがありえます。
最低限やるべきこと
リリースするに当たって最低限やっておくべきことを考えていました。
利用する情報ソースを詳しく調べる
今回僕が使ったAPIで言うと、「15分おきに更新される」と概要に書いてあったものの、使用している体感としてリアルタイムでないことを感じていました。
またどこから情報を具体的に取っているかも正確に把握していなかったので、APIドキュメントやdiscussionを見て回りました。
APIに関するdiscussionに
we collect and sort the data from different sources in order to display the most recent. We have developed a bot that starts from Google and analyzes the sites with the most data
とあり、Google検索から各サイトを分析して取得するbotを作って提供していることが分かりました。
それゆえに15分おき更新を実現しているようですが、取得元のサイトがいつ時点の情報を取り扱っているか保証出来なく、いつbotが走っているのか分からないため、別のサイトで表示されている値と異なる可能性があることが分かりました。
日本の反映が遅く見えるのは、日本に関するbotが走る頻度とタイミングではないかと推測されます。
扱うデータソースをサイトに載せる
そもそも、利用しているAPIの値が絶対に正しいことは誰にも保証出来ません。
サイト閲覧者が自分でデータの可否を判断出来るように、取得元の情報をリンク付きで載せておく方が良いです。
もしスクレイピング等独自に収集したデータであれば、開示出来る範囲でデータの収集方法を載せておくのが良いと思います。
データ表示がバグっていないか念入りに確認
データソースが正しくても、実装にバグがあって過大/過小に表示されたり、表示されなかった場合は異なった印象をサイト閲覧者に与えてしまう可能性があります。
今回作ったサイトでいうと、
-
ページング処理にバグがあり、ランキングの下一桁が9の国が表示されていない
(国が多すぎて途中まで気付かなかった) -
日本がランキンググラフにいない
(日本だけのif文処理を書いたらリストに追加し忘れていた)
など、正常系は正しく動いていても、特定のケースにおいてバグっているケースは多々起きえます。
特異なパターンでも正しくデータが表示されているか、公開前に念入りに見ておいた方が良いです。
最後に
こんなことも気を付けた方が良いなどあれば、是非教えてください。
エンジニアの開発で少しでも助けになるものを作って行けたらと思っています。