You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/tr/7-bank-project/3-data/assignment.md

7.1 KiB

Kod Yeniden Düzenleme ve Dokümantasyon Ödevi

Öğrenme Hedefleri

Bu ödevi tamamlayarak, profesyonel geliştiricilerin günlük olarak kullandığı temel yazılım geliştirme becerilerini pratik yapacaksınız. Kodunuzu sürdürülebilirlik için organize etmeyi, soyutlama yoluyla tekrarı azaltmayı ve gelecekteki geliştiriciler (kendiniz dahil) için çalışmanızı belgelemeyi öğreneceksiniz.

Temiz ve iyi belgelenmiş kod, birden fazla geliştiricinin iş birliği yaptığı ve kod tabanlarının zamanla geliştiği gerçek dünya web geliştirme projelerinde çok önemlidir.

Ödevin Genel Bakışı

Bankacılık uygulamanızın app.js dosyası, giriş, kayıt ve kontrol paneli işlevselliği ile önemli ölçüde büyüdü. Kodun okunabilirliğini, sürdürülebilirliğini artırmak ve tekrarı azaltmak için profesyonel geliştirme uygulamalarını kullanarak bu kodu yeniden düzenleme zamanı.

Talimatlar

Mevcut app.js kodunuzu aşağıdaki üç temel yeniden düzenleme tekniğini uygulayarak dönüştürün:

1. Yapılandırma Sabitlerini Çıkarın

Görev: Dosyanızın üst kısmında yeniden kullanılabilir sabitlerle bir yapılandırma bölümü oluşturun.

Uygulama rehberi:

  • Sunucu API temel URL'sini (şu anda birden fazla yerde sabit kodlanmış) çıkarın
  • Birden fazla işlevde görünen hata mesajları için sabitler oluşturun
  • Tekrarlanan rota yolları ve öğe kimliklerini çıkarmayı düşünün

Örnek yapı:

// Configuration constants
const API_BASE_URL = 'http://localhost:5000/api';
const ROUTES = {
  LOGIN: '/login',
  DASHBOARD: '/dashboard'
};

2. Birleşik İstek Fonksiyonu Oluşturun

Görev: createAccount() ve getAccount() arasındaki tekrarlayan kodu ortadan kaldıran yeniden kullanılabilir bir sendRequest() fonksiyonu oluşturun.

Gereksinimler:

  • Hem GET hem de POST isteklerini işleyin
  • Uygun hata işleme ekleyin
  • Farklı URL uç noktalarını destekleyin
  • İsteğe bağlı olarak istek gövdesi verilerini kabul edin

Fonksiyon imza rehberi:

async function sendRequest(endpoint, method = 'GET', data = null) {
  // Your implementation here
}

3. Profesyonel Kod Dokümantasyonu Ekleyin

Görev: Kodunuzu, mantığınızın "neden"ini açıklayan açık ve yardımcı yorumlarla belgeleyin.

Dokümantasyon standartları:

  • Fonksiyon dokümantasyonu ekleyerek amacını, parametrelerini ve dönüş değerlerini açıklayın
  • Karmaşık mantık veya iş kuralları için satır içi yorumlar ekleyin
  • İlgili işlevleri bölüm başlıklarıyla gruplandırın
  • Belirgin olmayan kod kalıplarını veya tarayıcıya özgü çözümleri açıklayın

Örnek dokümantasyon stili:

/**
 * Authenticates user and redirects to dashboard
 * @param {Event} event - Form submission event
 * @returns {Promise<void>} - Resolves when login process completes
 */
async function login(event) {
  // Prevent default form submission to handle with JavaScript
  event.preventDefault();
  
  // Your implementation...
}

Başarı Kriterleri

Yeniden düzenlenmiş kodunuz şu profesyonel geliştirme uygulamalarını göstermelidir:

Örnek Uygulama

  • Sabitler: Tüm sihirli dizeler ve URL'ler açıkça adlandırılmış sabitlere çıkarılmıştır
  • DRY Prensibi: Ortak istek mantığı yeniden kullanılabilir bir sendRequest() fonksiyonunda birleştirilmiştir
  • Dokümantasyon: Fonksiyonlar, amaçlarını ve parametrelerini açıklayan açık JSDoc yorumlarına sahiptir
  • Organizasyon: Kod, bölüm başlıkları ve tutarlı formatlama ile mantıksal olarak gruplandırılmıştır
  • Hata İşleme: Yeni istek fonksiyonunu kullanarak geliştirilmiş hata işleme

Yeterli Uygulama

  • Sabitler: Çoğu tekrarlanan değer çıkarılmış, ancak bazı küçük sabit kodlanmış değerler kalmış
  • Faktorizasyon: Temel bir sendRequest() fonksiyonu oluşturulmuş, ancak tüm uç durumları ele almayabilir
  • Yorumlar: Anahtar fonksiyonlar belgelenmiş, ancak bazııklamalar daha eksiksiz olabilir
  • Okunabilirlik: Kod genel olarak iyi organize edilmiş, ancak bazı iyileştirme alanları mevcut

Geliştirme Gerekiyor

  • Sabitler: Birçok sihirli dize ve URL dosya boyunca sabit kodlanmış olarak kalmış
  • Tekrar: Benzer işlevler arasında önemli kod tekrarı mevcut
  • Dokümantasyon: Eksik veya yetersiz yorumlar, kodun amacınııklamıyor
  • Organizasyon: Kod açık bir yapı ve mantıksal gruplamadan yoksun

Yeniden Düzenlenmiş Kodunuzu Test Etme

Yeniden düzenlemeden sonra, bankacılık uygulamanızın hala doğru çalıştığından emin olun:

  1. Tüm kullanıcı akışlarını test edin: Kayıt, giriş, kontrol paneli görüntüleme ve hata işleme
  2. API çağrılarını doğrulayın: sendRequest() fonksiyonunuzun hem hesap oluşturma hem de alma işlemleri için çalıştığından emin olun
  3. Hata senaryolarını kontrol edin: Geçersiz kimlik bilgileri ve ağ hataları ile test yapın
  4. Konsol çıktısını inceleyin: Yeniden düzenleme sırasında yeni hataların tanıtılmadığından emin olun

Teslimat Yönergeleri

Yeniden düzenlenmiş app.js dosyanızı şu şekilde gönderin:

  • Farklı işlevsellikleri organize eden açık bölüm başlıkları
  • Tutarlı kod formatlama ve girintileme
  • Tüm fonksiyonlar için eksiksiz JSDoc dokümantasyonu
  • Yeniden düzenleme yaklaşımınızııklayan kısa bir yorum

Bonus Görev: Uygulamanızın mimarisini ve farklı işlevlerin nasıl birlikte çalıştığınııklayan basit bir kod dokümantasyon dosyası (CODE_STRUCTURE.md) oluşturun.

Gerçek Dünya Bağlantısı

Bu ödev, profesyonel geliştiricilerin düzenli olarak gerçekleştirdiği türde kod bakımını yansıtmaktadır. Endüstri ortamlarında:

  • Kod incelemeleri, bu ödevde olduğu gibi okunabilirlik ve sürdürülebilirliği değerlendirir
  • Teknik borç, kod düzenli olarak yeniden düzenlenip belgelenmediğinde birikir
  • Ekip iş birliği, yeni ekip üyelerinin anlayabileceği açık ve iyi belgelenmiş koda bağlıdır
  • Hata düzeltmeleri, uygun soyutlamalarla iyi organize edilmiş kod tabanlarında çok daha kolaydır

Burada pratik yaptığınız beceriler - sabitleri çıkarmak, tekrarı ortadan kaldırmak ve açık belgeler yazmak - profesyonel yazılım geliştirme için temel niteliklerdir.


Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.