Bu repo, yazılım geliştiriciler için refactoring konusunda bir rehber niteliği taşımaktadır. Temiz kodun ne olduğundan, teknik borçtan, ne zaman ve nasıl refactoring yapılacağına kadar geniş bir yelpazede bilgi içermektedir. Ayrıca, kod kokuları olarak bilinen ve kod kalitesini düşüren sorunlara ve bu sorunların nasıl giderilebileceğine dair pratik tekniklere odaklanmaktadır.
Refactoring, mevcut bir kod tabanını değiştirerek onu daha temiz, daha okunabilir ve daha bakımı kolay hale getirme sürecidir. Refactoring'in amacı, kodun işlevselliğini değiştirmeden, ancak daha iyi tasarlanmış, daha modüler ve daha kaliteli bir şekilde olmasını sağlamaktır. Bu süreç, kod kokularını gidermeyi, tekrar eden kodu azaltmayı, karmaşıklığı azaltmayı ve kodun genel kalitesini artırmayı hedefler. Refactoring, yazılım geliştirme sürecinde sürekli bir iyileştirme ve optimizasyon çabası olarak görülmelidir.
-
📒 Giriş
-
📒 Kod Kokuları (Code Smells)
-
📒 Refactoring Techniques (Refactoring Teknikleri)
-
📖 Moving Features between Objects (Özellikleri Nesneler Arasında Taşıma)
-
📖 Organizing Data (Verileri Düzenleme)
- 📌 Self Encapsulate Field
- 📌 Replace Data Value with Object
- 📌 Change Value to Reference
- 📌 Change Reference to Value
- 📌 Replace Array with Object
- 📌 Duplicate Observed Data
- 📌 Change Unidirectional Association to Bidirectional
- 📌 Change Bidirectional Association to Unidirectional
- 📌 Replace Magic Number with Symbolic Constant
- 📌 Encapsulate Field
- 📌 Encapsulate Collection
- 📌 Replace Type Code with Class
- 📌 Replace Type Code with Subclasses
- 📌 Replace Type Code with State/Strategy
- 📌 Replace Subclass with Fields
-
📖 Simplifying Conditional Expressions (Koşullu İfadeleri Basitleştirme)
-
📖 Simplifying Method Calls (Yöntem Çağrılarını Basitleştirme)
- 📌 Rename Method
- 📌 Add Parameter
- 📌 Remove Parameter
- 📌 Separate Query from Modifier
- 📌 Parameterize Method
- 📌 Replace Parameter with Explicit Methods
- 📌 Preserve Whole Object
- 📌 Replace Parameter with Method Call
- 📌 Introduce Parameter Object
- 📌 Remove Setting Method
- 📌 Hide Method
- 📌 Replace Constructor with Factory Method
- 📌 Replace Error Code with Exception
- 📌 Replace Exception with Test
Dökümanı oluştururken bazı yerlerde terimlerin Türkçe karşılıklarını bulmakta çok güçlük çektim. Haliyle bazı başlıklar yeteri kadar açıklayıcı ve net olmamış olabilir. Bu konularda ve elbette Türkçe çevirilere katkıda bulunmak isterseniz, lütfen aşağıdaki adımları izleyin:
- Bu depoyu fork'layın.
- İlgili dosyayı düzenleyin veya yeni bir bilgi ekleyin.
- Yanlış çeviri veya ekleme yapmak istediğin yerleri özgürce düzenleyebilirsiniz!
- Değişikliklerinizi görmem ve onaylayabilmem adına lütfen bir pull request oluşturun.
Katkı contribution'larını ve önerileri memnuniyetle karşılayacağımdan emin olabilirsiniz 🤗 !
Bu çeviriler Refactoring Guru'nun orijinal içeriği temel alınarak oluşturulmuştur. Elbette kendimce yorumlamaya ve açıklamaya çalıştığım bir o kadar alan bulunuyor. Bununla beraber, orijinal içeriğin lisansı geçerli olacaktır. Lütfen orijinal içeriğin lisans koşullarına uyun.
Orijinal İngilizce kaynağa buradan erişebilirsiniz.