Portfolyo sitesini framework'süz kurmak

"Bu sitede React yok mu?" — yok. Ve bunu bir eksiklik değil, bilinçli bir karar olarak görüyorum. İşte gerekçelerim.

Önce problemi tanımlayalım

Bu siteye giren biri üç şeyi yapmak istiyor: projelere bakmak, hakkımda bilgi edinmek ve bana ulaşmak. Buna "içerik sunan" bir site deniyor. Gerçek zamanlı veri, kullanıcı hesapları ya da karmaşık etkileşim yok. İhtiyaç listelediğinde ortaya çok net bir şey çıkıyor: hızlı açılan, her yerde çalışabilen, güncellenmesi kolay sayfalar.

Framework ne kazandırırdı?

Dürüst olmak gerekirse: bileşen tekrarını azaltır, büyük ekiplerde tutarlılık sağlar, durum yönetimi gerektiren arayüzlerde hayat kurtarır. Bunlar gerçek avantajlar. Ama bu proje için hepsi ya gereksiz ya da pahalıydı.

  • Bir tanıtım sayfasında durum yönetimi neredeyse yok — sadece filtre ve menü var.
  • Bileşen tekrarı var, ama dosya sayısı 20 civarında; bir şablonu kopyalamak bir paket sisteminden daha anlaşılır.
  • Büyük ekip yok, tek kişiyim.

Saf HTML/CSS/JS ne kazandırdı?

1. Hız

Sayfalar derleme adımından geçmiyor, doğrudan sunuluyor. Çalışma zamanında indirilecek bir JavaScript paketi yok — olan tek dosya, filtre ve menüyü çalıştıran birkaç KB'lık bir betik. Bağlantısı yavaş bir telefonda fark ediliyor.

2. Taşınabilirlik

Bu klasörü alıp herhangi bir yere koyabilirsin: GitHub Pages, Netlify, kendi sunucun, hatta bir USB bellek. Bağımlılık yok, kurulum yok, sürüm çakışması yok. index.html'e çift tıklayarak bile çalışıyor.

3. Kalıcılık

Bir framework'ün API'si beş yıl sonra değişebiliyor ya da proje tamamen durabiliyor. HTML ve CSS ise on yıl önce nasıl yazıldıysa bugün de öyle çalışıyor. Portfolyo siteleri için bu, "bir daha elden geçmesin" anlamına geliyor.

4. Öğrenme

Her şeyi kendin yazdığında her satırın ne yaptığını biliyorsun. Animasyon, duyarlı düzen, erişilebilirlik gibi temel beceriler framework'ün arkasında gizlenmiyor.

Peki dezavantajları?

Her yerde aynı <header> bloğunu tekrar etmek zorundayım — bir sayfayı değiştirdiğinde diğerlerine de dokunman gerekiyor. İçerik çoğaldıkça bu iş büyüyor. Ayrıca tekrar eden yapıları bir şablon motoru olmadan yönetmek, büyük bir içerik sitesinde pratik değil.

Kural basit: içerik az, etkileşim azsa — saf web teknolojileri. İçerik çok, ekip büyük, durum karmaşıksa — o zaman framework düşünülür.

Sonuç

Bu site; filtre, menü, dil anahtarı ve iletişim formu dışında neredeyse hiç JavaScript içermiyor. Geri kalan her şey tarayıcının zaten bildiği şeyler. Bazen en iyi araç, yeni bir araç değil, elindekinin tam olarak ne yapabildiğini bilmek oluyor.

Proje detayları için projeler bölümüne göz atabilir, bir fikrin varsa bana yazabilirsin.