Bir geliştirici, kayıt veya ödeme gerektirmeden gezegendeki her deniz limanını ve havalimanını —3.804 liman ve 9.640 havalimanı— listeleyen ücretsiz ve aranabilir bir dizin yayınladı. theportindex.online sitesi, kullanıcıların verileri incelemesine veya tam veri setini CSV veya JSON formatında indirmesine olanak tanıyor.
Dizin neden gerekliydi
Oluşturucu, dünyanın deniz limanlarının temiz ve güncel bir listesini bulmaya çalışırken bir engelle karşılaştı: çoğu ticari teklif ödeme duvarlarının arkasında yer alıyor ve halka açık listeler genellikle yıllar öncesine ait oluyor. Eksik veya güncelliğini yitirmiş verilere güvenmek, analistlerin tabloları temizlemek için saatlerini harcamasına neden oluyor; bu da sektör genelinde biriken bir maliyet. Geliştirici; bir ABD hükümeti liman dizini, uluslararası bir konum kodu dizini ve topluluk kaynaklı bir havalimanı veri tabanından oluşan üç kamuya açık kaynağı bir araya getirerek, herkesin anında kullanabileceği tek ve birleşik bir referans oluşturdu.
Perde arkasındaki veri kaynakları
- NGA World Port Index – her tanınmış deniz limanı için temel ayrıntıları sağlayan bir ABD hükümeti derlemesi.
- UN/LOCODE – limanlar ve havalimanları için standartlaştırılmış tanımlayıcılar ekleyen Birleşmiş Milletler konum kodu sistemi.
- OurAirports – pist uzunlukları ve koordinatlar dahil olmak üzere havalimanı bilgilerinden oluşan, topluluk tarafından sürdürülen bir koleksiyon.
Her kaynak resmin farklı bir parçasını sunuyor ancak hiçbiri tek başına kullanıma hazır, aranabilir bir katalog sağlamıyor. Bunları birleştirmek basit bir kopyala-yapıştır işleminden fazlasını gerektirdi; geliştiricinin tutarsızlıkları, yinelenen girişleri ve eksik alanları çözmesi gerekti.
Verileri temizlemek: zorlukla kazanılan üç ders
- Gömülü yeni satırlar basit ayrıştırıcıları (parsers) bozar – Tırnak içindeki alanlarda satır sonları içeren CSV dosyaları, temel bir “yeni satırda böl” komutuyla ayrılamaz. Satırları bozulmadan tutmak için düzgün bir CSV ayrıştırıcısı şarttır.
- Aykırı değerler hataları gizler – Bazı petrol terminalleri, limanlara değil demirleme şamandıralarına ait olan 900 metre derinlikte değerler listeliyordu. Derinlik tabanlı sıralamaların güvenilirliğini korumak için mantıksız sayıları filtrelemek gerekiyordu.
- Sıfırlar genellikle yer tutucudur – sıfır olarak kaydedilen bir derinlik, genellikle suyun sığ olduğu anlamına değil, ölçümün bilinmediği anlamına gelir. Sıfırı eksik veri olarak işlemek, derinliğe dayanan her türlü analizin bütünlüğünü korur.
Ham sayıların ötesinde değer katmak
Dizin, koordinatları listelemekten daha fazlasını yapıyor. Limanlar için derinliği, güvenle yanaşabilecek gemi sınıflarına dönüştürerek tek bir metriği pratik bir karar yardımcısına dönüştürüyor. Havalimanları için ise pist uzunluğu, orada faaliyet gösterebilecek uçak tipleriyle eşleştirilerek pilotlara ve planlamacılara kapasite hakkında hızlı bir değerlendirme imkanı sunuyor.
Bir mekansal ızgara (spatial grid), her limanı en yakın havalimanlarına bağlayarak (ve tersi) siteyi bir keşif aracına dönüştürüyor. Kullanıcılar, örneğin belirli bir limana kısa bir sürüş mesafesinde hangi havalimanlarının bulunduğunu keşfedebilir; bu, çok modlu yük planlaması için yararlı bir özelliktir.
Ölçeklenebilir bir statik site motoru oluşturmak
Tüm ön yüz (front end), statik üretim (static generation) ile Next.js üzerinde çalışıyor. Derleme işlemi sırasında, her biri bir liman ve havalimanı için olmak üzere yaklaşık 14.000 sayfa önceden oluşturuluyor (pre-rendered). Herhangi bir veri tabanı veya sunucu tarafı mantığı bulunmadığı için site sürekli bir hesaplama maliyeti oluşturmuyor; sayfaları dünya çapında anında sunan bir içerik dağıtım ağı (CDN) üzerinde yaşıyor.
SEO tuzakları ve "zayıf içerik" çözümü
Binlerce şablon sayfa yüklemek, arama motorlarında "zayıf içerik" (thin content) olarak değerlendirilip sıralamaların cezalandırılmasına neden olabilecek kırmızı bayraklar oluşturabilir. Geliştirici, bir AdSense başvurusu reddedildiğinde bu sorunla karşılaştı. Çözüm, ziyaretçiler için tüm sayfaları yayında tutmak ancak her kategorideki en kaliteli ilk 400 sayfa dışındaki tüm sayfalara bir noindex direktifi eklemek oldu. Bu, tarayıcılara yalnızca en değerli sayfaların arama sonuçlarında görünmesi gerektiğini söyleyerek, tam veri setini sunmaya devam ederken güvenilirliği koruyor.
Kimler faydalanır ve sınırlar nelerdir
- Lojistik firmaları, birden fazla PDF dosyasını incelemek zorunda kalmadan bir kargo gemisinin limanın derinlik sınırlarına uygun olup olmadığını hızlıca doğrulayabilir.
- Havayolu planlamacıları, rota fizibilite çalışmaları için yararlı olan pist-uçak eşleştirmelerine anında erişim sağlar.
- Geliştiriciler ve araştırmacılar, özel araçlara aktarılabilecek temiz ve makine tarafından okunabilir bir veri dökümü elde ederler.
Proje için sırada ne var
Oluşturucu, ek özellikler için topluluktan geri bildirim istiyor.
Sonuç
Veri temizleme zahmetlerinin üstesinden gelerek, çıkarım katmanları ekleyerek ve statik oluşturma ile sunucu maliyetlerinden kaçınarak geliştirici; periyodik güncellemeleri kabul etmeye ve arama motoru yönergelerini takip etmeye razı olduğunuz sürece, yalın bir mimarinin küresel ölçekte kullanışlı bir araç sunabileceğini gösteriyor.
