TOP

Yeniden düzenleme nedir?

Tanım

Yeniden Düzenleme (Refactoring) – Yazılımın (yazılım) iç yapısında, dış davranışı değiştirmeden anlaşılmasını kolaylaştırmak ve değiştirmeyi daha hızlı hale getirmek için yapılan değişiklikler. Ayrıca, yazılımın dış davranışını değiştirmeden bir dizi yeniden düzenlemenin uygulanması yoluyla yazılımın yeniden yapılandırılmasıdır.


Yeniden düzenlemenin avantajları:

Yeniden düzenleme yapmanız gerektiğinde:

Kodda kötü kokular var (Smells Catalog) :

Olası yeniden düzenleme seçenekleri

  1. Moving Features Between Objects (Kodun tasämünün nesnelerinin arında aktarılması):

    • Move Method (Yöntem vurgulanmıştır) – ayrı yöntem çok uzunsa veya yorum elemanı kod induktuşla arı bir yöntemdir.
    • Move Field (Hareketli alan) - Başka bir sınıf tarafından tanımlanan alan, sık kullanıldığında gerçekleşir.
  2. Organizing Data (Veri düzenlemesi):

    • Encapsulate Field (Alan Kapsülleme) - OOP'nin ana prensibinden biri kapsülleme veya veri gzilemedir. Verilerin herkese halese hale mesiley nesenler, verinin değerleri, giriş sahibinin bilgisi olmadan okunabilir ve değiştirilebilir. Bu nedenle kapalı alan ve erişim yöntemlerini getiriyoruz.
    • Encapsulate Collection (Kapsül koleksiyonu) - genellikle sınıfın bir örnek koleksiyonu vardır. Bu koleksiyon bir seri, liste, küme veya vektör olabilir. Alıcı yönteminde koleksiyonun iade edilmesine gerek yoktur; çünkü kullanıcıların koleksiyonun içeriğini sınıf bilgisi olmadan değiştirmesine olanak tanır. Bu nedenle metodun döndürdüğü değer tuza kalacak hale ayarlanmalı ve öğe ekleme/çıkarma metodları oluşturmalısınız.
  3. Composing Methods (Kodu çıkartın ve birleştirin):

    • Extract Method (Yöntem vurgulanmıştır) – gruplandırılabilek bir kod partizi varsa, o parzıyı açımını anlatacak bir adla arı bir mesthöle koyun. Bu yöntem yorumların yerini alacaktır.
    • Inline Method (Yöntem yerleştirici) – bazen bir yöntemin tadasını onu çeğran kodun ıtışmayı hareket ettirmenizildiğinizin. Bazen bedenin metodu, ismin metodu da o kadar açıklanır. Başarısız olan birçok farklı yöntemin olduğu bir durum olabilir ve bu nedenle hepsini tek bir genel yöntemde bırakmak ve yöntemleri başka bir şekilde ayırmak daha iyidir.
    • Inline Temp (Geçici bir varliyin eklenmesi) – basit bir aydanin sadece bir kez atandığı tıldızın bir ışığın ızlerilmisi. Bazen böyle bir välätä äätä yeniden düzenleme tääää ääää ääää.
    • Replace Temp with Query (Geçici bir varligii bir method özoysıla modiker) – bir ifadenin değerini saklamak için geçici bir değişken kullanılır. Bu durumda ifadeyi bir şekilde değiştireceksiniz ve kodda bu değişkene yapılan tüm referanslar yeni şekilde değişecektir.
    • Split Temporary Variable (Geçici bir varliyi bilin) – birden çok kez farklı sonuçlar üretmek için kullanıldığında yalnızca bir geçici değişken uygulanır (gün içindeki bir döngüde kullanılan bir değişken olmadığı ve sonuca hiçbir değişken eklenmediği sürece). Bu durumda her terim için ayrı bir değişken oluşturuyoruz.
  4. Simplifying Conditional Expressions (İfadelerin türatında la başıtıştılınız):

    • Decompose Conditional (Koşullu operatörün ayrıştırılması) – kondollu bir kontrol zincirimiz odasında (if-then-else) çalıştırılır. Koşulu (if), ardından ve else'in bazi kişilerini arı medododelle omşeririziriz. Arızanın nedeninin iyi anlaşılmasına katkıda bulunur ve yöntem adları, kod bölümünün amacını netleştirir.
    • Consolidate Conditional Expression (Koşullu iwadninin bireşteşti) - önceki durum kontrolünde de aynı sonuçlar elde edildi. Tüm kontrolörler tek bir kondollu ijad veya mesthodde gehortmaniz meniz.
    • Consolidate Duplicate Conditional Parçalar – aynı kısım koşullu ifadenin tüm kısımlarında mevcuttur. Kodun bu kısmı ifadeden kaldırılmalıdır.
    • Remove Control Flag (Kontrol bayrağının kaldırılması) – bir dizi mantıksal ifadesi için kontrol bayrağı görevi gören bir değişken var. Bunun yerine break veya RETURN kullanıyoruz.
    • Replace Conditional with Polymorphism Değiştirmek – davranış nesnesi tyrune bdudi olan korondlu bir operatör olanda ve prässiliir. Koşullu operatör her dalını alt klasın kızdırır, yüklenmiş bir yöntemle hareket eder. Özet kaynak kodlanır.