Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】I put every government fee on my site in a CSV, with an expiry date

2026年10月28日に「Dev.to」が公開したITニュース「I put every government fee on my site in a CSV, with an expiry date」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

政府手続き情報を最新に保つサイトLankaSolveは、全ての情報をCSVで管理。情報源と次回確認日、変更頻度を記録し、再確認時期を自動調整する仕組みで情報の鮮度を維持する。公式情報以外の出典も明記。静的サイトとデータ駆動で効率的に運用し、情報源を公開し信頼性を高めている。

ITニュース解説

ウェブサイトで最新の情報を正確に保つことは、特に情報が頻繁に変わる場合には非常に難しい課題となる。多くの「パスポートの取得方法」のような行政手続きに関するウェブページでは、書かれた当初は正しかった情報が、時間が経つにつれて古くなり、誤った情報になってしまうことがよくある。これは、情報の出所が不明確であったり、いつ再確認すべきかの記録がないために起こる。

スリランカの政府手続きに関するガイドサイト「LankaSolve」の運営者は、この問題に対し、たった一人で数百もの政府関連情報を正確に保つための効果的な方法を開発し、実践している。彼が直面したのは、「いかに多くのページを書くか」ではなく、「いかに少ないチームで多くの事実を真実に保ち続けるか」という問いだった。その解決策の中心にあるのは、情報の管理方法とウェブサイトの構築方法に工夫を凝らすことである。

まず最も重要なのは、すべての情報を「データとして」一元的に管理することだ。LankaSolveでは、外部から取得したすべての事実、例えば手数料、申請書の番号、締め切り、役所の住所などを、CSV(Comma Separated Values)という、表計算ソフトで簡単に開ける形式のファイルに記録している。このファイルには、「データID」「情報の種類」「具体的なデータ項目」「値」「単位」「情報源となった機関」「情報源のタイトル」「情報源のURL」「情報源が発行された日付」「最後に検証した日付」「次に確認すべき日付」「情報の変動性(変わりやすさ)」「備考」といった項目が設けられている。このルールは非常に厳格で、公式な情報源が明確でないスリランカの料金や規則、要件は、たとえよく知られた情報であってもサイトには掲載しない。これは、信頼性を担保する上で極めて重要な原則である。特に「次に確認すべき日付」という項目は、情報が静かに古くなり、いつの間にか誤った推測に変わってしまうことを防ぐために欠かせない。

次に、情報の変わりやすさに応じて再確認の頻度を変えている。すべての情報が同じ速さで古くなるわけではないため、LankaSolveでは情報の「変動性」を三つの段階に分類している。「GREEN」は、数学的な定数や普遍的な事実(例:面積の換算値)など、決して変わらない情報であり、これらは再確認する必要がない。「YELLOW」は、料金や税率など、たまに変わる公式な数値である。これらは数ヶ月に一度の頻度で再確認を行う。そして「RED」は、頻繁に変わる情報や、解釈が必要な情報である。これらには短い再確認期間が設定され、特に自動化された決定や計算に利用する場合には、意図的な承認が必要とされる。例えば、スリランカ警察のオンライン申請が一時停止され、後に再開された際には、この「RED」に分類された情報は毎週再確認され、サイトには状況を示すバナーやタイムラインが掲載された。これにより、情報が変更された際に、関連する一つのデータ項目を修正するだけで、サイト全体の整合性を保つことができた。

さらに、政府が公式には公開していないが、広く知られている情報についても、その扱い方を明確にしている。例えば、運転免許の模擬試験に関する情報では、合格点、試験時間、問題数などが公式サイトには載っていない場合がある。LankaSolveでは、このような情報も「教習所や試験準備資料から得られた情報である」という情報源を明記して掲載している。広く一般に浸透している数字であっても、それが公式なものでない場合は正直にその事実を記載することが、信頼性を損なわないために大切である。また、手続きに必要な公式フォームについては、可能な限り該当する政府機関の公式PDFファイルへ直接リンクを貼るようにしている。もしフォームがオンラインポータルで生成されるものならそのポータルへ、中央で管理されていない場合はリンクを貼らない、という明確なルールを設けることで、誤った情報への誘導を防いでいる。

サイトに組み込まれた計算機能の実装方法も特徴的である。EPF/ETF(年金基金)、VAT(付加価値税)、ローンなどの計算機能は、ウェブサイトのデザインや表示とは完全に分離された、純粋なJavaScriptの「関数」として作られている。ここでいう「純粋」とは、特定の入力値に対して常に同じ結果を返し、ウェブページの見た目や他の部分の状態に一切影響を与えない、独立した計算ロジックを指す。このような設計にすることで、計算機能が正しく動作するかどうかのテストが非常にシンプルになり、高い信頼性を保つことができる。

ウェブサイト全体の構築方法もシンプルさにこだわっている。LankaSolveは「静的サイト」として構築されている。これは、訪問者がページを見るたびにサーバーでプログラムが動いてページを生成するのではなく、あらかじめすべてのページがHTMLファイルとして作られており、それをウェブブラウザに表示する仕組みである。Astroというツールを使ってウェブサイトを作り、Cloudflare Pagesというサービスで公開しているため、特別なデータベースや複雑なサーバーは必要ない。ガイドのコンテンツは独立したデータファイルに保存され、共通のテンプレートがそれを読み込んで表示するため、手数料などの情報が変更された場合でも、データファイルを修正するだけで済む。これは、ウェブサイトの運用コストを極限まで抑える上で非常に効果的な方法である。

最後に、情報の信頼性を高めるために、検証済みの情報源ページを一般に公開している。すべての情報源がウェブサイトの内部ファイルに留まっていたら、ユーザーはサイトを信用する根拠を持てない。そこで、「いつ、どこで情報を確認したか」をリスト化したページを設けることで、ユーザーがサイトの情報を信頼できる透明性を提供している。

このような取り組みは、システムエンジニアを目指す初心者にとっても多くの示唆を与える。ウェブサイトやシステムを開発する際には、情報の正確性をどのように保つか、変化に対応できる柔軟な設計をどう実現するか、そして少ないリソースで効率的に運用できるかを常に考える必要がある。すべての事実に更新日と次回確認日を設定すること、情報を一元的に管理し、システムのテンプレートに散りばめないこと、公式情報ではない部分も正直に明記すること、そして新たな機能やページを追加する際には、その作成コストだけでなく、将来のメンテナンスコスト(特に情報再確認の手間)を考慮に入れることが、長期的に成功するプロジェクトを支える鍵となるのである。

関連コンテンツ

関連IT用語

関連ITニュース