Web geliştirme, bir tasarımı çalışan sayfalara dönüştürmekten çok daha geniş bir alan. Kullanıcının ekranda gördüğü bölüm çoğu zaman projenin yalnızca son katmanını oluşturuyor. Bunun arkasında veri yapısı, kullanıcı akışları, yetkilendirme, yönetim paneli, entegrasyonlar, performans, güvenlik ve sunucu ortamı gibi birbiriyle bağlantılı birçok parça bulunuyor.
Benim için iyi bir web projesi yalnızca yayına alındığı gün çalışan proje değildir. Yeni özellikler eklendiğinde dağılmaması, farklı kullanıcı ihtiyaçlarına uyarlanabilmesi ve aylar sonra kodun başına dönüldüğünde hâlâ anlaşılır kalması gerekir. Bu nedenle geliştirme sürecinde yalnızca istenen ekranı hazırlamaya değil, o ekranın sistemin geri kalanıyla nasıl ilişki kurduğuna da odaklanıyorum.
Bu kategoride PHP, Laravel, Livewire ve WordPress başta olmak üzere aktif olarak kullandığım teknolojilerle ilgili içerikler paylaşacağım. Veritabanı ilişkilerinin nasıl kurulacağı, yönetim panellerinin nasıl planlanacağı, kullanıcı rollerinin nasıl ayrıştırılacağı ve harici servislerin projeye nasıl dahil edileceği gibi konuları ele alacağım. Yeri geldiğinde tek bir hata mesajının peşinden gidecek, yeri geldiğinde ise bütün projenin yapısını etkileyen mimari kararları konuşacağım.
Bir formun neden veri kaydetmediği, queue işlemlerinin neden çalışmadığı veya canlı sunucuda ortaya çıkan bir hatanın nasıl çözüleceği de bu kategorinin konusu olacak. Ancak yalnızca çalışan çözümü paylaşmakla yetinmeyeceğim. Sorunun neden oluştuğunu, hangi kontrollerin yapılması gerektiğini ve benzer durumlarda nasıl bir yol izlenebileceğini de anlatmaya çalışacağım. Çünkü bir komutu kopyalayıp çalıştırmak o anki problemi çözebilir; problemin kaynağını anlamak ise aynı hatayla tekrar karşılaşıldığında gerçek anlamda zaman kazandırır.
Web geliştirme sürecinde doğru teknik seçimin her zaman en yeni teknoloji anlamına gelmediğini de düşünüyorum. Bazı projelerde Laravel ve özel bir yönetim paneli doğru çözüm olurken bazı projelerde WordPress ihtiyaçları daha hızlı ve verimli karşılayabilir. Benzer şekilde her etkileşim için ağır bir JavaScript yapısına ihtiyaç duyulmayabilir. Kullanılacak aracın popülerliğinden önce projenin gerçek ihtiyacına, bakım sürecine ve gelecekte nasıl büyüyeceğine bakmak gerekir.
Bu nedenle burada yalnızca belirli teknolojileri anlatan öğretici içerikler olmayacak. Bir web projesine başlamadan önce hangi soruların sorulması gerektiği, yanlış veri modelinin ileride hangi sorunlara yol açtığı, hazır paketlerin ne zaman fayda sağladığı ve ne zaman projeyi gereksiz yere sınırlandırdığı gibi karar süreçlerine de yer vereceğim.
Frontend ile backend arasındaki ilişkinin doğru kurulması da ele alacağım konulardan biri olacak. Kullanıcıya sade görünen bir işlemin arka tarafta nasıl çalıştığını, tasarım kararlarının veri yapısını nasıl etkileyebildiğini ve gerçek içerik eklendiğinde arayüzün neden beklenmedik biçimde değişebildiğini somut örneklerle inceleyeceğim.
Kısacası Web Geliştirme kategorisi; kod parçalarının arka arkaya sıralandığı bir dokümantasyon bölümü olmayacak. Çalışan, yönetilebilir ve büyümeye açık web projeleri üretirken karşılaşılan gerçek sorunlara, alınan teknik kararlara ve bu kararların sonuçlarına odaklanacak.
Buradaki içeriklerin amacı herkese uyan tek bir doğru yöntem sunmak değil. Aynı sorunun farklı projelerde neden farklı çözümler gerektirebildiğini göstermek ve geliştirirken yalnızca bugünü değil, projenin devamını da düşünmek olacak.