Kategoriler
Eser Adı Yazar Yayınevi Açıklama İçindekiler Barkod
Arama  
Ana Sayfa Sipariş Takip Üyelik Yardım İletişim
 
 
Bülten
   

×
Kaliteli Yazılım Nasıl Geliştirilir?
Kod Düzenleme Teknikleri ¦ Tasarım Şablonları (Design Patterns) Yazılım Test Yöntemleri
Temmuz 2022 / 2. Baskı / 304 Syf.
Fiyatı: 340.00 TL
24 saat içerisinde temin edilir.
 
Sepete Ekle

Diğer Baskılar
 Baskı Tarih Fiyatı İndirimli
 1. Eylül 2021 95.00 TL 59.00 TL (%38) Sepete Ekle
   

Gördüğü yoğun ilgi sonucunda, üst üste ek baskılar yapan kitabın, güncellenmiş 2. Baskısı yapılmıştır.

Programlama öğrenirken hep yeni bir projeye başlayacakmışız gibi düşünsek de gerçek hayat senaryoları bundan biraz farklıdır. Yazılım projeleri genellikle uzun zaman önce başlanmış ve geliştirilmiştir. Farklı programcılar tarafından devralınarak geliştirilmeye devam eder. Bu durumda kodların anlaşılır ve yönetilebilir olması önemlidir. Bu kitap ile uzun soluklu yazılım projelerinin nasıl temiz ve anlaşılır tutulabileceği, devralınan eski kodların nasıl düzenlenip geliştirilebilir hale getirileceği ile ilgili teknikler anlatılmıştır.

Ayrıca, kod düzenleme teknikleri kadar önemli olan kodu düzenleyebilmek için sahip olunması gereken temel konular makaleler ile açıklanmış, gerçek hayat senaryolarından örnekler verilmiştir.

Kitapta 22 kirli kod belirteci ve 70 kod düzenleme tekniğine yer verilmiş, konuların daha iyi anlaşılması için her biri kod örnekleriyle açıklanmıştır.

Kitap, yeni başlayan yazılımcılardan, alanında uzman geliştiricilere ve yöneticilere kadar geniş bir kitleye hitap etmektedir.

Konu Başlıkları
Kod Düzenleme Teknikleri
Kirli Kod Belirteçleri
Nesne Yönelimli Programlama
Tasarım Şablonları (Design Patterns)
Yazılım Mimarileri
Yazılım Geliştirme Süreçleri
Yazılım Test Yöntemleri
Güvenli Yazılım Geliştirme
Barkod: 9789750278471
Yayın Tarihi: Temmuz 2022
Baskı Sayısı:  2
Ebat: 16x24
Sayfa Sayısı: 304
Yayınevi: Seçkin Yayıncılık
Kapak Türü: Karton Kapaklı
Dili: Türkçe
Ekler: -

 

İÇİNDEKİLER
İçindekiler
Ön Söz  5
Teşekkür  7
Bu Kitap Kimin İçin Yazıldı?  15
Kitabın Amacı  17
2. Baskıda Yapılan Değişiklikler  19
Birinci Bölüm
KALİTELİ YAZILIMIN TEMELLERİ
1. NESNE YÖNELİMLİ PROGRAMLAMANIN 4 PRENSİBİ  22
Sosyal Bir Aktivite Olarak Yazılım Geliştirme  29
2. TASARIM ŞABLONLARI (DESIGN PATTERNS)  31
2.1. En Çok Kullanılan 9 Tasarım Kalıbı  32
2.1.1. Yapıcı (Creational)  32
2.1.1.1. Singleton (Tek Nesne)  32
2.1.1.2. Builder (İnşa Eden)  33
2.1.1.3. Factory (Fabrika)  34
2.1.2. Yapısal (Structural)  34
2.1.2.1. Adapter (Adaptör)  34
2.1.2.2. Decorator (Dekoratör)  35
2.1.2.3. Facade (Cephe)  35
2.1.3. Davranışsal (Behavioral)  36
2.1.3.1. Observer (Gözlemci)  36
2.1.3.2. Strategy (Strateji)  37
2.1.3.3. State (Durum)  38
Versiyon Kontrol Sistemleri Nasıl Kullanılmalı?  40
3. SOLID PRENSİPLERİ  43
Güzel Ortalamadır  46
4. YAZILIM MİMARİLERİ  48
4.1. En Çok Kullanılan 10 Yazılım Mimarisi Kalıbı  49
4.1.1. Katmanlı Mimari  49
4.1.2. MVC  50
4.1.3. SOA (Servis Tabanlı Mimari)  51
4.1.4. Mikroservis Mimarisi  52
4.1.5. Mikrokernel (Plug–In)  53
4.1.6. Pipeline (Boru Hattı Mimarisi)  54
4.1.7. CQRS (Command and Query Responsibility Segregation– Komut ve Sorgu Sorumluluklarının Ayrılması)  55
4.1.8. Event Sourcing (Olay Kaynaklı Mimari)  56
4.1.9. Broker Pattern (Aracı Mimari Kalıbı)  57
4.1.10. Event Driven Architecture (Olaya Dayalı Mimari)  59
Yazılımcının Sırt Çantasında Neler Olmalı?  61
5. YAZILIMIN 10 KALİTE ÖZELLİĞİ  64
Yazılım Geliştirmede Kırık Camlar Teorisi  67
6. YAZILIM TEST YÖNTEMLERİ  68
6.1. Fonksiyonel Testler  69
6.1.2. Birim Testler  69
6.1.3. Entegrasyon Testleri  69
6.1.4. Sistem Testi  69
6.1.5. Kabul Testi  69
6.2. Fonksiyonel Olmayan Testler  70
6.2.1. Performans Testi  70
6.2.2. Güvenlik Testi  70
6.2.3. Kullanılabilirlik Testi  70
6.2.4. Uyumluluk Testi  70
Yazılımda Ölçüm Yöntemleri  71
7. YAZILIM GELİŞTİRME SÜREÇLERİ  74
7.1. Waterfall (Şelale) Modeli  74
7.2. V Modeli  75
7.3. Çevik Yöntemler  76
Teknik Borç Nedir?  80
8. GÜVENLİ YAZILIM GELİŞTİRME  83
İkinci Bölüm
KOD DÜZENLEME TEKNİKLERİ
1. KOD DÜZENLEMEYE GİRİŞ  87
1.1. Refactoring Nedir?  91
1.2. Refactoring Ne Değildir?  94
1.3. Neden Refactor Etmeliyim?  95
1.4. Neden Refactor Etmemeliyim?  97
Bir Restorasyon Hikayesi  97
1.5. Refactoring Yazılım Geliştirme Süreçlerinin Neresinde?  98
1.6. Refactoring Nasıl ve Ne Zaman Uygulanır?  99
1.7. Refactoring Otomatik Olarak Yapılamıyor Mu?  101
1.8. Doğru Refactor Edebilmek İçin Sahip Olunması Gereken Temeller  102
1.9. Yöneticime Kod Düzenlemeyi Nasıl Anlatırım?  106
1.10. Refactoring Başarı Ölçütleri Nelerdir?  107
1.11. Hangi Araçları Kullanabilirim?  108
2. PROBLEMİN TESPİTİ  109
2.1. Kirli Kod Belirteçleri  110
2.1.1. Tekrarlayan Kod (Duplicated Code)  112
2.2.2. Uzun Metod (Long Method)  114
2.2.3. Büyük Sınıf (Large Class)  117
2.2.4. Uzun Parametre Listesi (Long Parameter List)  119
2.2.5. Alakasız Değişiklikler (Divergent Change)  121
2.2.6. Av Tüfeği Ameliyatı (Shotgun Surgery)  123
2.2.7. Özellik Kıskançlığı (Feature Envy)  125
2.2.8. Veri Grupları (Data Clumps)  127
2.2.9. İlkellik Takıntısı (Primitive Obsession)  128
2.2.10. Anahtar İfadeleri (Switch Statements)  129
2.2.11. Paralel Kalıtım Hiyerarşileri (Parallel Inheritance Hierarchies)  132
2.2.12. Tembel Sınıf (Lazy Class)  134
2.2.13. Spekülatif/Kurgusal Genellik (Speculative Generality)  135
2.2.14. Geçici Alanlar (Temporary Field)  137
2.2.15. Mesaj Zincirleri (Message Chains)  140
2.2.16. Ortadaki Adam (Middle Man)  142
2.2.17. Uygunsuz Samimiyet (Inappropriate Intimacy)  144
2.2.18. Farklı Arayüzlerden Alternatif Sınıflar (Alternative Classes with Different Interfaces)  146
2.2.19. Eksik Kütüphane Sınıfı (Incomplete Library Class)  148
2.2.20. Veri Sınıfı (Data Class)  150
2.2.21. Reddedilen Miras (Refused Bequest)  152
2.2.22. Yorumlar (Comments)  153
2.3. Bazen Kodu Okumak Yetmez  156
2.3.1. Kuş Bakışı Bakın – Code City Aracı  156
2.3.2. VKS Geçmişine Bir De Bu Gözle Bakın  157
2.3.3. Kod Karmaşıklığı  159
2.3.4. İsimlendirme  160
2.3.5. Dolaylı Bağımlı Kodları Tespit Etmek  160
2.3.6. Commit Mesajları Çok Şey Anlatabilir – Kelime Bulutları (Word Cloud)  161
3. KOD DÜZENLEME TEKNİKLERİ  161
3.1. Yazılımda Kon–Mari Tekniği  162
3.2. Refactoring Teknikleri Kataloğu  164
3.3. Şekilsel Değişiklikler  170
3.3.1. Ayırma  170
3.3.1.1. Metotları Bölme (Extract Method)  171
3.3.1.2. Sınıfları Bölme (Extract Class)  172
3.3.1.3. Üst Sınıf Oluşturma (Extract Superclass)  174
3.3.1.4. Alt Sınıf Oluşturma (Extract Subclass)  176
3.3.1.5. Arayüz Oluşturma (Extract Interface)  177
3.3.1.6. Geçici Değişkenleri Ayırma (Split Temporary Variable)  180
3.3.1.7. Koşul İfadelerini Metotlara Ayırma (Decompose Conditional)  182
3.3.1.8. Sorgu ve Kayıt İşlemlerini Ayırmak (Separate Query from Modifier)  183
3.3.1.9. Geçici Değişkenleri Metotlara Ayırma ( Temp With Query)  185
3.3.1.10. Parametreleri Metoda Çevirme ( Parameter with Explicit Methods)  187
3.3.2. Birleştirme  189
3.3.2.1. Sınıfları Birleştirme (Inline Class)  189
3.3.2.2. Metotları Parametre ile Birleştirme (Parameterize Method)  191
3.3.2.3. Alanları Üst Sınıfta Birleştirme (Pull Up Field)  192
3.3.2.4. Metotları Üst Sınıfta Birleştirme (Pull Up Method)  194
3.3.2.5. Yapıcı Metotları Üst Sınıfta Birleştirme (Pull Up Constructor Body)  196
3.3.2.6. Koşul İfadelerini Birleştirme (Consolidate Conditional Expression)  198
3.3.2.7. Tekrarlı Koşul Bloklarını Birleştirmek (Consolidate Duplicate Conditional Fragments)  200
3.3.2.8. Hiyerarşileri Birleştirme (Collapse Hierarchy)  201
3.3.2.9. Alt Sınıfları Üst Sınıfta Alan Halinde Birleştirme ( Subclass with Fields)  203
3.3.3. Taşıma  204
3.3.3.1. Alanı Taşıma (Move Field)  205
3.3.3.2. Metodu Taşıma (Move Method)  206
3.3.3.3. Alanı Alt Sınıfa Taşıma (Push Down Field)  207
3.3.3.4. Metodu Alt Sınıfa Taşıma (Push Down Method)  208
3.3.4. Ekleme  209
3.3.4.1. Parametre Ekleme (Add Parameter)  210
3.3.4.2. Parametrelere Yapılan Atamalar için Değişken Oluşturma (Remove Assignments to Parameters)  211
3.3.5. Temizleme  214
3.3.5.1. Metodu Kaldırma (Inline Method)  214
3.3.5.2. Değişkeni Kaldırma (Inline Temp)  216
3.3.5.3. Yorumları Silme (Remove Comments)  217
3.3.5.4. Parametreyi Kaldırma (Remove Parameter)  218
3.3.5.5. Kontrol Bayraklarını Kaldırma (Remove Control Flag)  219
3.3.6. İsimlendirme  220
3.3.6.1. Metotları İsimlendirme (Rename Method)  220
3.3.6.2. Sayıları Sabitlerle İsimlendirme ( Magic Number with Symbolic Constant)  222
3.3.6.3. Karmaşık İfadeleri için Değişken Oluşturma (Introduce Explaning Variable)  223
3.4. Mantıksal Değişiklikler  224
3.4.1. Algoritmayı Güncelleme (Substitute Algorithm)  224
3.4.2. Koşul İfadeleri  226
3.4.2.1. İç İçe Koşul Bloklarını Sıralı Bloklara Çevir ( Nested Conditional with Guard Clauses)  226
3.4.2.2. Koşulları Poymorphism ile Değiştir ( Conditional with Polymorphism)  227
3.4.3. Veri Yapıları  229
3.4.3.1. Alanları Kapsülleme (Encapsulate Field)  230
3.4.3.2. Kendi Alanlarını Kapsülleme (Self Encapsulate Field)  231
3.4.3.3. Koleksiyonları Kapsülleme (Encapsulate Collection)  232
3.4.3.4.Paylaşılan Veri Yapısını Çoklamak (Duplicate Observed Data)  234
3.4.3.5. Referansı Değere Çevirme (Change Reference to Value)  236
3.4.3.6. Değeri Referansa Çevirme (Change Value to Reference)  238
3.4.3.7. Tek Taraflı İlişkileri Çift Taraflıya Çevirme (Change Unidirectional Association to Bidirectional)  239
3.4.3.8. İki taraflı İlişkiyi Tek Taraflıya Çevirme (Change Bidirectional Association to Unidirectional)  240
3.4.4. Nesneleştirme  241
3.4.4.1. Diziyi Objeye Çevirme ( Array with Object)  242
3.4.4.2. Veri Alanlarını Objeye Çevirme ( Data Value with Object)  243
3.4.4.3. Veritabanı Kayıtlarını Veri Sınıflarına Çevirme ( Record with Data Class)  244
3.4.4.4. Parametreleri Objeye Çevirme (Introduce Parameter Object)  245
3.4.4.5. Tip Kodlarını Sınıfa Çevirme ( Type Code with Class)  247
3.4.4.6. Null Obje Oluşturma (Introduce Null Object)  248
3.4.4.7. Obje Alanlarını Bir Araya Toplama (Preserve Whole Object)  250
3.4.4.8. Metodu Metot Objesine Çevirme ( Method with Method Object)  251
3.4.4.9. Yapıcı Metotları Fabrika Metoda Çevir ( Constructor with Factory Method)  253
3.4.5. Hiyerarşiler  255
3.4.5.1. Metotları Form Taslağı Olarak Uygula (Form Template Method)  255
3.4.5.2. Kalıtım Yerine Delegasyon Kullan ( Inheritance with Delegation)  258
3.4.5.3. Delegasyon Yerine Kalıtım Kullan ( Delegation with Inheritance)  259
3.4.5.4. Tip Kodları Yerine Alt Sınıf Kullan ( Type Code with Subclasses)  261
3.4.5.6. Tip Kodlarını State/Strategy Şablonuna Çevir ( Type Code with State/Strategy)  264
3.4.6. Sınıflar Arası Erişimler  266
3.4.6.1. Delegasyonu Gizle (Hide Delegate)  266
3.4.6.2. Ortadaki Adamı Kaldır (Remove Middle Man)  268
3.4.6.3. Metotları Gizle (Hide Method)  270
3.4.6.4. Gerekli Olmayan Atama Metotlarını Kaldır (Remove Setting Method)  271
3.4.6.5. Alt Sınıfa Dönüşümleri Kapsülle (Encapsulate Downcast)  272
3.4.6.6. Davranışı Sınıfa Taşı (Moving Behavior into the Class)  274
3.4.6.7. Parametreyi Metoda Çevir ( Parameter with Method)  275
3.4.6.8. Yerel Eklenti Sınıfı Oluştur (Introduce Local Extension)  277
3.4.6.9. Yabancı Metot Oluştur (Introduce Foreign Method)  278
3.4.7. Hata Ayıklama ve Kontroller  280
3.4.7.1. Hata Kodlarını Exception ile Değiştir ( Error Code with Exception)  280
3.4.7.2. Exceptionları Testler ile Değiştir ( Exception with Test)  282
3.4.7.3. Assertion Kullan (Introduce Assertion)  284
4. DİĞER DÜZENLEME ALANLARI  285
4.1. Veritabanı Düzenleme (Database refactoring)  285
4.2. UML Düzenleme (UML refactoring)  287
4.3. Mikroservisleri Düzenleme (Refactoring microservices)  289
4.4. Mimari Düzenleme (Architectural refactoring)  290
Son Söz  293
Kaynakça  295
Kavram Dizini  297
 


Şermin Metin
Şubat 2024
175.00 TL
Sepete Ekle
Mehmet Yitmen
Mart 2023
175.00 TL
Sepete Ekle
Mehmet Yitmen ...
Mart 2023
220.00 TL
Sepete Ekle
Mesud Fehim Baydar
Ocak 2023
225.00 TL
Sepete Ekle





 

İÇİNDEKİLER
İçindekiler
Ön Söz  5
Teşekkür  7
Bu Kitap Kimin İçin Yazıldı?  15
Kitabın Amacı  17
2. Baskıda Yapılan Değişiklikler  19
Birinci Bölüm
KALİTELİ YAZILIMIN TEMELLERİ
1. NESNE YÖNELİMLİ PROGRAMLAMANIN 4 PRENSİBİ  22
Sosyal Bir Aktivite Olarak Yazılım Geliştirme  29
2. TASARIM ŞABLONLARI (DESIGN PATTERNS)  31
2.1. En Çok Kullanılan 9 Tasarım Kalıbı  32
2.1.1. Yapıcı (Creational)  32
2.1.1.1. Singleton (Tek Nesne)  32
2.1.1.2. Builder (İnşa Eden)  33
2.1.1.3. Factory (Fabrika)  34
2.1.2. Yapısal (Structural)  34
2.1.2.1. Adapter (Adaptör)  34
2.1.2.2. Decorator (Dekoratör)  35
2.1.2.3. Facade (Cephe)  35
2.1.3. Davranışsal (Behavioral)  36
2.1.3.1. Observer (Gözlemci)  36
2.1.3.2. Strategy (Strateji)  37
2.1.3.3. State (Durum)  38
Versiyon Kontrol Sistemleri Nasıl Kullanılmalı?  40
3. SOLID PRENSİPLERİ  43
Güzel Ortalamadır  46
4. YAZILIM MİMARİLERİ  48
4.1. En Çok Kullanılan 10 Yazılım Mimarisi Kalıbı  49
4.1.1. Katmanlı Mimari  49
4.1.2. MVC  50
4.1.3. SOA (Servis Tabanlı Mimari)  51
4.1.4. Mikroservis Mimarisi  52
4.1.5. Mikrokernel (Plug–In)  53
4.1.6. Pipeline (Boru Hattı Mimarisi)  54
4.1.7. CQRS (Command and Query Responsibility Segregation– Komut ve Sorgu Sorumluluklarının Ayrılması)  55
4.1.8. Event Sourcing (Olay Kaynaklı Mimari)  56
4.1.9. Broker Pattern (Aracı Mimari Kalıbı)  57
4.1.10. Event Driven Architecture (Olaya Dayalı Mimari)  59
Yazılımcının Sırt Çantasında Neler Olmalı?  61
5. YAZILIMIN 10 KALİTE ÖZELLİĞİ  64
Yazılım Geliştirmede Kırık Camlar Teorisi  67
6. YAZILIM TEST YÖNTEMLERİ  68
6.1. Fonksiyonel Testler  69
6.1.2. Birim Testler  69
6.1.3. Entegrasyon Testleri  69
6.1.4. Sistem Testi  69
6.1.5. Kabul Testi  69
6.2. Fonksiyonel Olmayan Testler  70
6.2.1. Performans Testi  70
6.2.2. Güvenlik Testi  70
6.2.3. Kullanılabilirlik Testi  70
6.2.4. Uyumluluk Testi  70
Yazılımda Ölçüm Yöntemleri  71
7. YAZILIM GELİŞTİRME SÜREÇLERİ  74
7.1. Waterfall (Şelale) Modeli  74
7.2. V Modeli  75
7.3. Çevik Yöntemler  76
Teknik Borç Nedir?  80
8. GÜVENLİ YAZILIM GELİŞTİRME  83
İkinci Bölüm
KOD DÜZENLEME TEKNİKLERİ
1. KOD DÜZENLEMEYE GİRİŞ  87
1.1. Refactoring Nedir?  91
1.2. Refactoring Ne Değildir?  94
1.3. Neden Refactor Etmeliyim?  95
1.4. Neden Refactor Etmemeliyim?  97
Bir Restorasyon Hikayesi  97
1.5. Refactoring Yazılım Geliştirme Süreçlerinin Neresinde?  98
1.6. Refactoring Nasıl ve Ne Zaman Uygulanır?  99
1.7. Refactoring Otomatik Olarak Yapılamıyor Mu?  101
1.8. Doğru Refactor Edebilmek İçin Sahip Olunması Gereken Temeller  102
1.9. Yöneticime Kod Düzenlemeyi Nasıl Anlatırım?  106
1.10. Refactoring Başarı Ölçütleri Nelerdir?  107
1.11. Hangi Araçları Kullanabilirim?  108
2. PROBLEMİN TESPİTİ  109
2.1. Kirli Kod Belirteçleri  110
2.1.1. Tekrarlayan Kod (Duplicated Code)  112
2.2.2. Uzun Metod (Long Method)  114
2.2.3. Büyük Sınıf (Large Class)  117
2.2.4. Uzun Parametre Listesi (Long Parameter List)  119
2.2.5. Alakasız Değişiklikler (Divergent Change)  121
2.2.6. Av Tüfeği Ameliyatı (Shotgun Surgery)  123
2.2.7. Özellik Kıskançlığı (Feature Envy)  125
2.2.8. Veri Grupları (Data Clumps)  127
2.2.9. İlkellik Takıntısı (Primitive Obsession)  128
2.2.10. Anahtar İfadeleri (Switch Statements)  129
2.2.11. Paralel Kalıtım Hiyerarşileri (Parallel Inheritance Hierarchies)  132
2.2.12. Tembel Sınıf (Lazy Class)  134
2.2.13. Spekülatif/Kurgusal Genellik (Speculative Generality)  135
2.2.14. Geçici Alanlar (Temporary Field)  137
2.2.15. Mesaj Zincirleri (Message Chains)  140
2.2.16. Ortadaki Adam (Middle Man)  142
2.2.17. Uygunsuz Samimiyet (Inappropriate Intimacy)  144
2.2.18. Farklı Arayüzlerden Alternatif Sınıflar (Alternative Classes with Different Interfaces)  146
2.2.19. Eksik Kütüphane Sınıfı (Incomplete Library Class)  148
2.2.20. Veri Sınıfı (Data Class)  150
2.2.21. Reddedilen Miras (Refused Bequest)  152
2.2.22. Yorumlar (Comments)  153
2.3. Bazen Kodu Okumak Yetmez  156
2.3.1. Kuş Bakışı Bakın – Code City Aracı  156
2.3.2. VKS Geçmişine Bir De Bu Gözle Bakın  157
2.3.3. Kod Karmaşıklığı  159
2.3.4. İsimlendirme  160
2.3.5. Dolaylı Bağımlı Kodları Tespit Etmek  160
2.3.6. Commit Mesajları Çok Şey Anlatabilir – Kelime Bulutları (Word Cloud)  161
3. KOD DÜZENLEME TEKNİKLERİ  161
3.1. Yazılımda Kon–Mari Tekniği  162
3.2. Refactoring Teknikleri Kataloğu  164
3.3. Şekilsel Değişiklikler  170
3.3.1. Ayırma  170
3.3.1.1. Metotları Bölme (Extract Method)  171
3.3.1.2. Sınıfları Bölme (Extract Class)  172
3.3.1.3. Üst Sınıf Oluşturma (Extract Superclass)  174
3.3.1.4. Alt Sınıf Oluşturma (Extract Subclass)  176
3.3.1.5. Arayüz Oluşturma (Extract Interface)  177
3.3.1.6. Geçici Değişkenleri Ayırma (Split Temporary Variable)  180
3.3.1.7. Koşul İfadelerini Metotlara Ayırma (Decompose Conditional)  182
3.3.1.8. Sorgu ve Kayıt İşlemlerini Ayırmak (Separate Query from Modifier)  183
3.3.1.9. Geçici Değişkenleri Metotlara Ayırma ( Temp With Query)  185
3.3.1.10. Parametreleri Metoda Çevirme ( Parameter with Explicit Methods)  187
3.3.2. Birleştirme  189
3.3.2.1. Sınıfları Birleştirme (Inline Class)  189
3.3.2.2. Metotları Parametre ile Birleştirme (Parameterize Method)  191
3.3.2.3. Alanları Üst Sınıfta Birleştirme (Pull Up Field)  192
3.3.2.4. Metotları Üst Sınıfta Birleştirme (Pull Up Method)  194
3.3.2.5. Yapıcı Metotları Üst Sınıfta Birleştirme (Pull Up Constructor Body)  196
3.3.2.6. Koşul İfadelerini Birleştirme (Consolidate Conditional Expression)  198
3.3.2.7. Tekrarlı Koşul Bloklarını Birleştirmek (Consolidate Duplicate Conditional Fragments)  200
3.3.2.8. Hiyerarşileri Birleştirme (Collapse Hierarchy)  201
3.3.2.9. Alt Sınıfları Üst Sınıfta Alan Halinde Birleştirme ( Subclass with Fields)  203
3.3.3. Taşıma  204
3.3.3.1. Alanı Taşıma (Move Field)  205
3.3.3.2. Metodu Taşıma (Move Method)  206
3.3.3.3. Alanı Alt Sınıfa Taşıma (Push Down Field)  207
3.3.3.4. Metodu Alt Sınıfa Taşıma (Push Down Method)  208
3.3.4. Ekleme  209
3.3.4.1. Parametre Ekleme (Add Parameter)  210
3.3.4.2. Parametrelere Yapılan Atamalar için Değişken Oluşturma (Remove Assignments to Parameters)  211
3.3.5. Temizleme  214
3.3.5.1. Metodu Kaldırma (Inline Method)  214
3.3.5.2. Değişkeni Kaldırma (Inline Temp)  216
3.3.5.3. Yorumları Silme (Remove Comments)  217
3.3.5.4. Parametreyi Kaldırma (Remove Parameter)  218
3.3.5.5. Kontrol Bayraklarını Kaldırma (Remove Control Flag)  219
3.3.6. İsimlendirme  220
3.3.6.1. Metotları İsimlendirme (Rename Method)  220
3.3.6.2. Sayıları Sabitlerle İsimlendirme ( Magic Number with Symbolic Constant)  222
3.3.6.3. Karmaşık İfadeleri için Değişken Oluşturma (Introduce Explaning Variable)  223
3.4. Mantıksal Değişiklikler  224
3.4.1. Algoritmayı Güncelleme (Substitute Algorithm)  224
3.4.2. Koşul İfadeleri  226
3.4.2.1. İç İçe Koşul Bloklarını Sıralı Bloklara Çevir ( Nested Conditional with Guard Clauses)  226
3.4.2.2. Koşulları Poymorphism ile Değiştir ( Conditional with Polymorphism)  227
3.4.3. Veri Yapıları  229
3.4.3.1. Alanları Kapsülleme (Encapsulate Field)  230
3.4.3.2. Kendi Alanlarını Kapsülleme (Self Encapsulate Field)  231
3.4.3.3. Koleksiyonları Kapsülleme (Encapsulate Collection)  232
3.4.3.4.Paylaşılan Veri Yapısını Çoklamak (Duplicate Observed Data)  234
3.4.3.5. Referansı Değere Çevirme (Change Reference to Value)  236
3.4.3.6. Değeri Referansa Çevirme (Change Value to Reference)  238
3.4.3.7. Tek Taraflı İlişkileri Çift Taraflıya Çevirme (Change Unidirectional Association to Bidirectional)  239
3.4.3.8. İki taraflı İlişkiyi Tek Taraflıya Çevirme (Change Bidirectional Association to Unidirectional)  240
3.4.4. Nesneleştirme  241
3.4.4.1. Diziyi Objeye Çevirme ( Array with Object)  242
3.4.4.2. Veri Alanlarını Objeye Çevirme ( Data Value with Object)  243
3.4.4.3. Veritabanı Kayıtlarını Veri Sınıflarına Çevirme ( Record with Data Class)  244
3.4.4.4. Parametreleri Objeye Çevirme (Introduce Parameter Object)  245
3.4.4.5. Tip Kodlarını Sınıfa Çevirme ( Type Code with Class)  247
3.4.4.6. Null Obje Oluşturma (Introduce Null Object)  248
3.4.4.7. Obje Alanlarını Bir Araya Toplama (Preserve Whole Object)  250
3.4.4.8. Metodu Metot Objesine Çevirme ( Method with Method Object)  251
3.4.4.9. Yapıcı Metotları Fabrika Metoda Çevir ( Constructor with Factory Method)  253
3.4.5. Hiyerarşiler  255
3.4.5.1. Metotları Form Taslağı Olarak Uygula (Form Template Method)  255
3.4.5.2. Kalıtım Yerine Delegasyon Kullan ( Inheritance with Delegation)  258
3.4.5.3. Delegasyon Yerine Kalıtım Kullan ( Delegation with Inheritance)  259
3.4.5.4. Tip Kodları Yerine Alt Sınıf Kullan ( Type Code with Subclasses)  261
3.4.5.6. Tip Kodlarını State/Strategy Şablonuna Çevir ( Type Code with State/Strategy)  264
3.4.6. Sınıflar Arası Erişimler  266
3.4.6.1. Delegasyonu Gizle (Hide Delegate)  266
3.4.6.2. Ortadaki Adamı Kaldır (Remove Middle Man)  268
3.4.6.3. Metotları Gizle (Hide Method)  270
3.4.6.4. Gerekli Olmayan Atama Metotlarını Kaldır (Remove Setting Method)  271
3.4.6.5. Alt Sınıfa Dönüşümleri Kapsülle (Encapsulate Downcast)  272
3.4.6.6. Davranışı Sınıfa Taşı (Moving Behavior into the Class)  274
3.4.6.7. Parametreyi Metoda Çevir ( Parameter with Method)  275
3.4.6.8. Yerel Eklenti Sınıfı Oluştur (Introduce Local Extension)  277
3.4.6.9. Yabancı Metot Oluştur (Introduce Foreign Method)  278
3.4.7. Hata Ayıklama ve Kontroller  280
3.4.7.1. Hata Kodlarını Exception ile Değiştir ( Error Code with Exception)  280
3.4.7.2. Exceptionları Testler ile Değiştir ( Exception with Test)  282
3.4.7.3. Assertion Kullan (Introduce Assertion)  284
4. DİĞER DÜZENLEME ALANLARI  285
4.1. Veritabanı Düzenleme (Database refactoring)  285
4.2. UML Düzenleme (UML refactoring)  287
4.3. Mikroservisleri Düzenleme (Refactoring microservices)  289
4.4. Mimari Düzenleme (Architectural refactoring)  290
Son Söz  293
Kaynakça  295
Kavram Dizini  297
 


 
Kitap
Bülten
Kitap
Kitap
İndirimli Kitaplar
 
 
Ana Sayfa | 2021 Kaynakça Dokümanı | Hakkımızda | Bülten | Kişisel Verilerin Korunması | Yardım | İletişim

Seçkin Yayıncılık San. Tic. A.Ş.
Copyright © 1996 - 2024