Yapay Zeka Destekli Geliştirme
Bu web sitesi yalnızca bir kişisel portfolyo projesi olarak değil, aynı zamanda yapay zeka destekli yazılım geliştirme sürecinin küçük ama öğretici bir örneği olarak ortaya çıktı. Analizden tasarıma, gerçekleştirimden test sürecine ve canlıya alma aşamasına kadar her adımda insan geliştirici kararı ile yapay zeka desteği birlikte çalıştı.
Bir Web Projesinin Ortak Akılla İnşası: Yapay Zeka ve Developer Uyumu
Bu web sitesi yalnızca bir kişisel portfolyo projesi olarak değil, aynı zamanda yapay zeka destekli yazılım geliştirme sürecinin küçük ama öğretici bir örneği olarak ortaya çıktı. Analizden tasarıma, gerçekleştirimden test sürecine ve canlıya alma aşamasına kadar her adımda insan geliştirici kararı ile yapay zeka desteği birlikte çalıştı.
Yazılım geliştirme süreci çoğu zaman yalnızca kod yazmak olarak düşünülür. Oysa gerçek bir web uygulaması geliştirmek; ihtiyacı anlamayı, kapsamı belirlemeyi, veri modelini kurmayı, kullanıcı deneyimini tasarlamayı, güvenlik kararlarını vermeyi, test etmeyi ve sonunda uygulamayı güvenli biçimde yayına almayı gerektirir. Bu projede de süreç tam olarak böyle ilerledi.
Yapay zeka burada tek başına karar veren bir araç değil, geliştiricinin düşünme sürecini hızlandıran bir çalışma ortağı olarak konumlandı. Geliştirici hedefleri belirledi, kararları verdi, uygulamayı test etti ve canlı ortamda ortaya çıkan gerçek problemleri değerlendirdi. Yapay zeka ise seçenekleri görünür hale getirdi, kod iskeletleri önerdi, hataların olası nedenlerini ayrıştırdı ve teknik kararların daha sistematik alınmasına yardımcı oldu.
İnsan Geliştiricinin Rolü
- Projenin amacını ve kapsamını belirlemek
- Gerçek ihtiyaçlara göre karar vermek
- Kodu test etmek ve çalışan sistemi doğrulamak
- Canlı ortamda karşılaşılan sorunları değerlendirmek
- Son kullanıcı deneyimini gözlemlemek
Yapay Zekanın Rolü
- Alternatif mimari seçenekler sunmak
- Django model, view, admin ve template yapısını üretmek
- Hata ayıklama sürecinde olası nedenleri sıralamak
- Deployment adımlarını sistematik hale getirmek
- SEO, sitemap, robots.txt ve güvenlik kontrollerini hatırlatmak
1. Analiz: Önce Ne Yapılacağını Anlamak
Projenin ilk aşamasında kişisel web sitesinin temel amacı belirlendi. Site yalnızca bir CV sayfası olmayacak; kişisel marka, blog, projeler, teknik yetkinlikler ve iletişim gibi bileşenleri içeren bütünlüklü bir yapı olacaktı. Bu nedenle proje, basit bir statik sayfa yerine Django tabanlı dinamik bir web uygulaması olarak kurgulandı.
Bu aşamada yapay zeka, geliştiriciye seçenekleri yapılandırılmış biçimde sundu. Hangi sayfalar olmalı, admin panelinden hangi içerikler yönetilmeli, blog yapısı nasıl kurulmalı, projeler ayrı bir uygulama mı olmalı gibi sorular tek tek değerlendirildi. Böylece kodlamaya başlamadan önce proje zihinsel olarak netleşti.
2. Tasarım: Yapının Omurgasını Kurmak
Analizden sonra uygulamanın mimarisi şekillendi. Proje; core, blog, resume ve projects gibi uygulamalara ayrıldı. Böylece her modül kendi sorumluluğunu taşıyan daha düzenli bir yapıya kavuştu.
Blog yazıları için kategori, etiket, yayın durumu ve yorum sistemi; CV için eğitim, deneyim, yetenek ve sertifika modelleri; projeler için teknoloji ilişkileri ve detay sayfaları tasarlandı. Bu yapı, yalnızca bugünkü ihtiyaçları değil, ileride yapılabilecek genişletmeleri de dikkate aldı.
İyi bir yazılım tasarımı, yalnızca çalışan kod üretmez; gelecekte değiştirilebilir, genişletilebilir ve yönetilebilir bir yapı kurar.
3. Gerçekleştirim: Kodun Adım Adım İnşası
Gerçekleştirim aşamasında modeller, admin panelleri, formlar, view fonksiyonları ve template dosyaları adım adım oluşturuldu. Her adımda önce küçük bir parça geliştirildi, ardından çalışıp çalışmadığı test edildi. Bu yaklaşım, büyük hataların birikmesini engelledi.
Django admin paneli yalnızca varsayılan haliyle bırakılmadı; proje kimliğine uygun şekilde özelleştirildi. Site ayarları, sosyal bağlantılar, blog yazıları, yorumlar, projeler, teknolojiler ve CV bilgileri admin panelinden yönetilebilir hale getirildi. Böylece site canlıya alındıktan sonra kod yazmadan içerik güncellenebilecek bir yapıya kavuştu.
4. Test: Küçük Hataların Büyük Sorunlara Dönüşmesini Önlemek
Projede yalnızca sayfaların açılıp açılmadığına bakılmadı. Formlar, yorum onay sistemi, admin cevapları, 404 ve 500 hata sayfaları, medya dosyaları, statik dosyalar, sitemap ve robots.txt gibi birçok parça ayrı ayrı test edildi.
Canlıya alma sürecinde ortaya çıkan bazı problemler, testin neden önemli olduğunu gösterdi. Örneğin profil fotoğrafı ilk aşamada görünmedi; sorunun Nginx medya dosyası izinlerinden kaynaklandığı anlaşıldı. Daha sonra 1 MB üzerindeki dosya yüklemelerinde Nginx upload limitinin devreye girdiği görüldü ve client_max_body_size ayarıyla sorun çözüldü.
Form Testleri
İletişim formu, yorum formu ve honeypot alanları kontrol edildi.
Sunucu Testleri
Gunicorn, Nginx, static ve media dosya servisleri test edildi.
SEO Testleri
Sitemap, robots.txt, meta description ve Open Graph alanları kontrol edildi.
5. Deployment: Yerelden Canlı Sunucuya Geçiş
Deployment aşamasında proje DigitalOcean üzerinde canlıya alındı. GitHub üzerinden sunucuya çekilen proje için sanal ortam kuruldu, bağımlılıklar yüklendi, migration işlemleri çalıştırıldı ve statik dosyalar toplandı. Gunicorn servis olarak yapılandırıldı; Nginx ise uygulamayı dış dünyaya açan ters proxy olarak konumlandırıldı.
Domain yönlendirmesi, SSL kurulumu, medya dosyası izinleri, upload limiti ve yedekleme gibi canlı ortam kararları da bu sürecin parçasıydı. Ayrıca Gmail SMTP’nin DigitalOcean üzerinde çalışmaması nedeniyle e-posta gönderimi için Brevo API’ye geçildi. Bu karar, gerçek deployment sürecinde karşılaşılan teknik kısıtların nasıl alternatif çözümlerle aşılabileceğine iyi bir örnek oldu.
6. Yapay Zeka ve Developer Uyumu
Bu projenin en öğretici taraflarından biri, yapay zeka ile geliştirici arasındaki iş bölümünün doğal biçimde oluşmasıydı. Yapay zeka; kod önerileri, yapılandırma adımları, hata olasılıkları ve teknik açıklamalar sundu. Geliştirici ise her öneriyi bağlama göre değerlendirdi, test etti, düzeltti ve son kararı verdi.
Bu uyum, yapay zekanın geliştiricinin yerine geçtiği bir model değil; geliştiricinin üretkenliğini artırdığı bir modeldir. Çünkü yazılım geliştirme yalnızca doğru kodu üretmek değildir. Hangi kodun neden yazıldığını anlamak, gerçek ortamda çalışıp çalışmadığını görmek ve gerektiğinde karar değiştirmek geliştiricinin sorumluluğundadır.
Bu Süreçten Çıkan Temel Sonuç
Yapay zeka, yazılım geliştirme sürecinde güçlü bir yardımcıdır; ancak en iyi sonuç, geliştiricinin problemi tanımladığı, karar verdiği, test ettiği ve yapay zekayı bilinçli biçimde yönlendirdiği durumlarda ortaya çıkar.
Sonuç
Bu web sitesi; analiz, tasarım, gerçekleştirim, test ve deployment aşamalarından geçerek canlıya alınan bütünlüklü bir Django projesi oldu. Süreç boyunca yapay zeka, yalnızca kod üreten bir araç değil, kararları görünür kılan, alternatifleri düzenleyen ve hata ayıklama sürecini hızlandıran bir geliştirme ortağı olarak kullanıldı.
Sonuçta ortaya çıkan ürün yalnızca bir kişisel web sitesi değil; aynı zamanda yapay zeka destekli geliştirme pratiğinin somut bir örneğidir. Gelecekte yazılım geliştirmenin daha hızlı, daha açıklayıcı ve daha iş birlikçi hale gelmesinde bu tür insan-yapay zeka uyumlarının önemli bir rol oynayacağı açıktır.