Seorang pembangun telah melancarkan indeks percuma yang boleh dicari yang menyenaraikan setiap pelabuhan laut dan lapangan terbang di planet ini—3,804 pelabuhan dan 9,640 lapangan terbang—tanpa memerlukan pendaftaran atau pembayaran. Laman web tersebut, theportindex.online, membolehkan pengguna melayari data atau memuat turun set data penuh dalam format CSV atau JSON.

Mengapa indeks ini diperlukan

Penciptanya bertujuan untuk mencari senarai pelabuhan laut dunia yang bersih dan terkini, namun menghadapi jalan buntu: kebanyakan tawaran komersial memerlukan langganan berbayar, manakala senarai yang tersedia secara awam sering kali sudah ketinggalan zaman selama bertahun-tahun. Bergantung kepada data yang tidak lengkap atau lapuk memaksa penganalisis membazirkan masa berjam-jam untuk membersihkan hamparan kerja (spreadsheet), satu kos yang semakin meningkat dalam industri ini. Dengan menggabungkan tiga sumber awam—indeks pelabuhan kerajaan AS, direktori kod lokasi antarabangsa, dan pangkalan data lapangan terbang berasaskan komuniti—pembangun tersebut telah menyusun satu rujukan tunggal yang disatukan yang boleh digunakan oleh sesiapa sahaja dengan serta-merta.

Sumber data di sebalik tabir

  • NGA World Port Index – satu kompilasi kerajaan AS yang menyediakan butiran asas bagi setiap pelabuhan laut yang diiktiraf.
  • UN/LOCODE – sistem kod lokasi Pertubuhan Bangsa-Bangsa Bersatu, yang menambah pengenal pasti piawai untuk pelabuhan dan lapangan terbang.
  • OurAirports – koleksi maklumat lapangan terbang yang diselenggara oleh komuniti, termasuk panjang landasan dan koordinat.

Setiap sumber menawarkan perspektif yang berbeza, tetapi tiada satu pun yang secara bersendirian menyediakan katalog yang sedia untuk digunakan dan boleh dicari. Menggabungkannya memerlukan lebih daripada sekadar salin-tampal; pembangun tersebut perlu menyelesaikan ketidakkonsistenan, entri pendua, dan medan yang hilang.

Pembersihan data: tiga pengajaran yang sukar diperoleh

  1. Baris baharu (newline) yang tertanam merosakkan parser ringkas – Fail CSV yang mengandungi pemutusan baris di dalam medan berpetikan tidak boleh dipecahkan dengan arahan split on newline yang asas. Parser CSV yang betul adalah penting untuk memastikan baris kekal utuh.
  2. Nilai pencilan (outlier) menyembunyikan kesilapan – beberapa terminal minyak menyenaraikan kedalaman 900 meter, satu angka yang sepatutnya untuk pelampung tambatan, bukan pelabuhan. Penapisan nombor yang tidak munasabah adalah perlu untuk mengekalkan kredibiliti kedudukan berasaskan kedalaman.
  3. Sifar selalunya merupakan penanda tempat (placeholder) – kedalaman yang direkodkan sebagai sifar biasanya bermaksud ukuran tersebut tidak diketahui, bukannya air itu rata. Menganggap sifar sebagai data yang hilang dapat mengekalkan integriti sebarang analisis yang bergantung pada kedalaman.

Menambah nilai melampaui angka mentah

Indeks ini melakukan lebih daripada sekadar menyenaraikan koordinat. Bagi pelabuhan, ia menterjemah kedalaman kepada kelas kapal yang boleh berlabuh dengan selamat, menukarkan satu metrik tunggal kepada alat bantuan keputusan yang praktikal. Bagi lapangan terbang, panjang landasan dipetakan kepada jenis pesawat yang boleh beroperasi di sana, memberikan juruterbang dan perancang penilaian keupayaan secara sepintas lalu.

Grid spatial menghubungkan setiap pelabuhan ke lapangan terbang terdekatnya dan sebaliknya, menjadikan laman web ini sebagai alat penerokaan. Pengguna boleh menemui, sebagai contoh, lapangan terbang mana yang terletak dalam jarak pemanduan singkat dari pelabuhan tertentu—satu ciri yang berguna untuk perancangan kargo pelbagai mod (multimodal).

Membina enjin tapak-statik pada skala besar

Keseluruhan bahagian hadapan (front end) berjalan pada Next.js dengan penjanaan statik. Semasa proses pembinaan, kira-kira 14,000 halaman—satu untuk setiap pelabuhan dan lapangan terbang—dijana terlebih dahulu (pre-rendered). Oleh kerana tiada pangkalan data atau logik bahagian pelayan (server-side), laman web ini tidak menanggung kos pengkomputeran berterusan; ia hidup pada rangkaian penghantaran kandungan (CDN) yang menghantar halaman secara serta-merta ke seluruh dunia.

Perangkap SEO dan penyelesaian kandungan nipis (thin-content)

Memuat naik beribu-ribu halaman templat boleh menimbulkan tanda amaran kepada enjin carian, yang mungkin menganggap laman web tersebut sebagai "kandungan nipis" (thin content) dan mengenakan penalti pada kedudukan carian. Pembangun menghadapi masalah ini apabila permohonan AdSense ditolak. Penyelesaiannya adalah dengan mengekalkan set halaman penuh untuk pelawat tetapi menambah arahan noindex kepada semua halaman kecuali 400 halaman berkualiti tinggi teratas dalam setiap kategori. Ini memberitahu pengumpul data (crawlers) bahawa hanya halaman yang paling berharga sahaja yang patut muncul dalam keputusan carian, sekali gus mengekalkan kredibiliti sambil tetap menawarkan set data yang lengkap.

Siapa yang mendapat manfaat, dan apakah hadnya

  • Syarikat logistik boleh mengesahkan dengan cepat sama ada kapal kargo muat dengan had kedalaman pelabuhan tanpa perlu mencari dalam pelbagai PDF.
  • Perancang syarikat penerbangan mendapat akses segera kepada pemetaan landasan-ke-pesawat, yang berguna untuk kajian kebolehlaksanaan laluan.
  • Pembangun dan penyelidik menerima data mentah yang bersih dan boleh dibaca oleh mesin yang boleh diimport ke dalam alatan tersuai.

Apa yang seterusnya untuk projek ini

Penciptanya sedang meminta maklum balas daripada komuniti mengenai ciri-ciri tambahan.

Rumusan

Dengan menangani kerumitan pembersihan data, menambah lapisan inferens, dan mengelakkan kos pelayan melalui penjanaan statik, pembangun ini menunjukkan bahawa seni bina yang ramping mampu menghasilkan alat yang berguna secara global—asalkan anda bersedia menerima kemas kini berkala dan sentiasa mematuhi garis panduan enjin carian.