---
title: Kodu iyileştirme ve yeniden düzenleme
description: Verdent ile kod iyileştirme ve yeniden düzenleme için en iyi uygulamalar
---

Verdent for VS Code, işlevselliği koruyarak birden fazla dosyada kodu güvenli bir şekilde yeniden düzenlemenize ve iyileştirmenize yardımcı olur. Explorer alt aracıyla Plan Mode'u kullanarak, değişiklik yapmadan önce etkilenen tüm dosyaları belirleyebilir ve hiçbir örneği atlamadan kapsamlı bir yeniden düzenleme sağlayabilirsiniz.

### Neler öğreneceksiniz

- Uygulamaya değil, sonuçlara odaklanan etkili yeniden düzenlemeler talep etme
- Bağımlılık yönetimiyle birden fazla dosyada güvenli yeniden düzenleme
- Kod kalitesi iyileştirmeleri ve optimizasyon önerileri talep etme
- Çok aşamalı yaklaşımlarla büyük ölçekli yeniden düzenleme projelerini yönetme
- Algoritmik ve mimari iyileştirmelerle performansı optimize etme
- Yeniden düzenleme işlemleri sırasında kod işlevselliğini koruma

### Ön koşullar

Verdent ile yeniden düzenleme yapmadan önce:

- Verdent eklentisi yüklü Visual Studio Code
- VS Code'da açık bir kod tabanı veya proje çalışma alanı
- Kullanılabilir kredileri olan etkin bir Verdent aboneliği
- Gerektiğinde güvenli geri alma için sürüm denetimi (Git) önerilir

---

## Etkili yeniden düzenlemeler talep etme

**Nasıl düzeltileceğini** değil, **neyi neden iyileştirmek istediğinizi** açıklayın. Verdent'in kodu analiz etmesine ve proje desenlerinize dayalı en iyi yaklaşımı önermesine izin verin.

**Etkili yeniden düzenleme talepleri:**

Uygulamaya değil, istediğiniz sonuca odaklanın:

```
Refactor the UserController to improve readability and reduce duplication
```

```
This authentication logic is scattered across multiple files. Consolidate it into a single module
```

```
Improve error handling in the API layer to be more consistent and informative
```

Verdent kodu analiz eder, etkilenen tüm dosyaları belirler, desenleri inceler ve kod tabanı kurallarınızla uyumlu belirli yeniden düzenleme stratejileri önerir.

**En iyi uygulama: Plan Mode'u kullanın**

Yeniden düzenleme taleplerine Plan Mode'da başlayın. Verdent şunları yapar:

1. Kodu analiz eder ve etkilenen tüm dosyaları belirler
2. Değişiklik yapmadan önce ayrıntılı bir yeniden düzenleme planı sunar
3. Uygulama tercihleri hakkında açıklayıcı sorular sorar
4. Tam olarak neyin ve hangi sırayla değişeceğini gösterir
5. Yaklaşımı gözden geçirip iyileştirmenize olanak tanır

**Plan Mode ile örnek:**

```
In Plan Mode: Refactor authentication logic to use a centralized authentication utility
```

Verdent şunları yapar:
- Tüm kimlik doğrulama kodu konumlarını bulmak için Explorer'ı kullanır
- Desenleri ve tutarsızlıkları belirler
- Birleşik bir kimlik doğrulama arayüzü önerir
- Hangi dosyaların değiştirileceğini gösterir
- Yeniden düzenleme sırasını açıklar

Yürütmeden önce ek inceleme ve ekip tartışması için Verdent'ten planı bir `plan.md` dosyasına kaydetmesini isteyebilirsiniz.

**Kapsamlı aramalar için Explorer'ı kullanma:**

Karmaşık yeniden düzenlemeler için, Verdent'ten kapsamlı arama yapmak üzere Explorer aracını kullanmasını açıkça isteyin:

```
Use the Explorer agent to find all places where we manually validate email addresses, then refactor them to use a centralized validation utility
```

Bu, Verdent'in güncellenmesi gereken her konumu keşfetmesini sağlayarak kod tabanı genelinde tutarsız yeniden düzenlemeyi önler.

<Tip>
  Plan Mode, yeniden düzenleme için olmazsa olmazdır. Yürütmeden önce tam olarak neyin değişeceğini göstererek sürprizleri önler ve mimari hususlara dayalı olarak yaklaşımı iyileştirmenize olanak tanır.
</Tip>

---

## Çok dosyalı yeniden düzenleme

Verdent, içe aktarmaları, bağımlılıkları ve dosyalar arası referansları koruyarak birden fazla dosyada yeniden düzenleme yapar. Etkilenen tüm dosyaları belirler, bunları doğru sırada günceller ve kod tabanı boyunca tutarlılığı sağlar.

**Çok dosyalı yeniden düzenleme nasıl çalışır:**

1. **Keşif aşaması**: Verdent (Explorer kullanarak) değişiklik gerektiren tüm dosyaları bulur
2. **Bağımlılık analizi**: Güncelleme sırasını belirlemek için dosyalar arasındaki bağımlılıkları tespit eder
3. **Plan oluşturma**: Değiştirilecek tüm dosyaları ve değişikliklerin sırasını gösterir
4. **Sıralı güncellemeler**: Dosyaları bağımlılık sırasına göre değiştirir (örneğin, onları kullanan bileşenlerden önce türleri)
5. **İçe aktarma yönetimi**: İçe aktarmaları, dışa aktarmaları ve dosyalar arası referansları otomatik olarak günceller
6. **Doğrulama**: Değişikliklerin tüm dosyalarda tutarlı olduğunu denetler

<Note>
Çok dosyalı yeniden düzenleme, otomatik bağımlılık takibiyle işlevselliği korur; Verdent etkilenen tüm dosyaları atomik olarak günceller.
</Note>

**Örnek:**

```
Rename the User interface to UserProfile across the entire project
```

Verdent şunları yapar:
- `User` öğesini içe aktaran veya kullanan tüm dosyaları bulur
- Tür tanımlarını, uygulamaları ve kullanımları belirler
- Önce tür tanımlarını, sonra uygulamaları, ardından kullanımları günceller
- Tüm içe aktarma ifadelerini ayarlar
- Kod tabanı genelinde tutarlılığı sağlar

**Kapsamı incelemek için Plan Mode'u kullanın:**

Çok dosyalı yeniden düzenlemeyi yürütmeden önce, Plan Mode'da tam kapsamı inceleyin:

```
In Plan Mode: Extract the authentication logic from UserController into a separate AuthService
```

Verdent şunları gösterir:
- Hangi dosyaların oluşturulacağı (yeni AuthService)
- Hangi dosyaların değiştirileceği (UserController ve tüm içe aktaranlar)
- Hangi kodun UserController'dan AuthService'e taşınacağı
- İçe aktarmaların ve bağımlılıkların nasıl güncelleneceği

Bu, kazara kapsam genişlemesini önler ve devam etmeden önce tüm etkiyi anlamanızı sağlar.

---

## Kod kalitesi iyileştirmeleri talep etme

Verdent, istenmeden proaktif olarak iyileştirme önermez. Ancak, istediğiniz zaman kod kalitesi incelemeleri ve iyileştirme önerileri talep edebilirsiniz.

<Tabs>
  <Tab title="Genel incelemeler">
    Geniş kapsamlı kod kalitesi incelemeleri talep edin:

    ```
    Review this code for potential improvements
    ```

    ```
    Suggest ways to improve code quality in the UserService module
    ```

    ```
    Are there any performance optimizations we could make here?
    ```

    ```
    Analyze the PaymentController for maintainability issues
    ```

    Verdent kodu analiz eder ve şunlar için belirli öneriler sunar:

    - **Okunabilirlik**: Değişken adlandırma, işlev ayrıştırma, yorum netliği
    - **Performans**: Algoritma karmaşıklığı, gereksiz işlemler, önbelleğe alma fırsatları
    - **Sürdürülebilirlik**: Kod tekrarı, bağlaşım, sorumlulukların ayrılması
    - **En iyi uygulamalar**: Tasarım desenleri, hata işleme, test kapsamı
    - **Güvenlik**: Girdi doğrulama, kimlik doğrulama denetimleri, veri açığa çıkması
  </Tab>

  <Tab title="Odaklı incelemeler">
    Hedefli geri bildirim için belirli dosyalara başvurun:

    ```
    @services/UserService.js Review this module for dependency injection improvements
    ```

    ```
    @controllers/PaymentController.js Identify opportunities to reduce complexity
    ```

    Verdent, belirtilen kodu proje desenleriniz bağlamında inceler ve uygulanabilir öneriler sunar.
  </Tab>
</Tabs>

---

## Büyük ölçekli yeniden düzenleme projeleri

Büyük ölçekli yeniden düzenleme için, en güvenilir sonuçları elde etmek üzere Plan Mode'u **çok aşamalı bir yaklaşımla** kullanın. Verdent, yeniden düzenlemeyi yönetilebilir aşamalara böler ve devam etmeden önce her aşamayı incelemenize ve onaylamanıza olanak tanır.

**Çok aşamalı yeniden düzenleme iş akışı:**

#### Aşama 1: İlk analiz

Etkilenen tüm dosyaları ve bağımlılıkları belirlemek için Explorer aracıyla Plan Mode'u kullanın:

```
In Plan Mode: Use Explorer to analyze our codebase and create a plan to replace our custom authentication with OAuth 2.0
```

Verdent kapsamlı bir analiz gerçekleştirir:
- Kimlik doğrulamayla ilgili tüm kodu belirler
- Bağımlılıkları ve entegrasyon noktalarını haritalandırır
- Karmaşıklığı ve risk alanlarını değerlendirir
- Aşama dökümünü önerir

#### Aşama 2: Aşama planlaması

Verdent, inceleme için çok aşamalı bir plan oluşturur:

**Örnek plan:**
- **Aşama 1**: OAuth kitaplığı ekleyin ve uç noktaları yapılandırın
- **Aşama 2**: Kullanıcı modelini ve veritabanı şemasını güncelleyin
- **Aşama 3**: Mevcut kimlik doğrulama mantığını taşıyın
- **Aşama 4**: Kullanımdan kaldırılmış kimlik doğrulama kodunu kaldırın
- **Aşama 5**: Testleri ve belgeleri güncelleyin

Her aşama şunları içerir:
- Değiştirilecek dosyalar
- Tahmini karmaşıklık
- Önceki aşamalara olan bağımlılıklar
- Risk değerlendirmesi

#### Aşama 3: Aşama aşama yürütme

Aşamalar arasında test ederek her seferinde bir aşamayı yürütün:

1. Plan Mode'da Aşama 1'i onaylayın
2. Agent Mode'a geçin ve yürütün
3. Aşama 1'in çalıştığını doğrulamak için kapsamlı test yapın
4. Aşama 2 için Plan Mode'a dönün
5. Tüm aşamalar tamamlanana kadar tekrarlayın

#### Aşama 4: Yinelemeli iyileştirme

Her aşamadan sonra sonuçları inceleyin. Sorunlar ortaya çıkarsa:
- Kalan aşamalar için planı ayarlayın
- Gerekirse düzeltici aşamalar ekleyin
- Keşiflere dayalı olarak yaklaşımı iyileştirin

Bu aşamalı yaklaşım güvenliği sağlar ve büyük yeniden düzenleme projeleri sırasında sorunlar ortaya çıkarsa rota düzeltmesine olanak tanır.

<Note>
  Büyük ölçekli yeniden düzenleme her zaman sürüm denetimiyle yapılmalıdır. Her aşamadan sonra commit yapın; böylece sorunlar ortaya çıkarsa tüm ilerlemeyi kaybetmeden geri alabilirsiniz.
</Note>

---

## Performans optimizasyonu

Verdent, performans darboğazları için kodu analiz eder ve algoritma karmaşıklığı iyileştirmeleri, verimli veri yapıları ve kaynak kullanımının azaltılması dahil optimizasyonlar önerir.

<Tabs>
  <Tab title="Algoritma optimizasyonu">
    Algoritmik karmaşıklığı iyileştirin:

    ```
    Analyze the performance of this data processing function and suggest improvements
    ```

    ```
    Can we improve the time complexity of this search algorithm?
    ```

    **Verdent'in belirledikleri:**

    - **Algoritma karmaşıklığı**: O(n²) döngüleri, iç içe yinelemeler, verimsiz aramalar
    - **Gereksiz hesaplamalar**: Tekrarlanan hesaplamalar, gereksiz işlemler
    - **Bellek sorunları**: Bellek sızıntıları, aşırı tahsisler, büyük nesne tutma

    **Örnek:**

    ```
    Optimize the searchProducts function that's currently O(n²)
    ```

    Verdent işlevi analiz eder, verimsizliği belirler (iç içe döngüler veya tekrarlanan doğrusal aramalar) ve belirli iyileştirmeler önerir:

    - İç içe döngüyü O(n) arama için hash map ile değiştirin
    - O(log n) karmaşıklığı için sıralamadan sonra ikili arama kullanın
    - Gereksiz hesaplamaları önlemek için hesaplanan sonuçları önbelleğe alın
    - Maliyetli işlemler için memoizasyon uygulayın

    Yanıt şunları içerir:
    - **Mevcut karmaşıklık**: Mevcut kodun neden yavaş olduğunun açıklaması
    - **Önerilen çözüm**: Belirli algoritma veya veri yapısı değişikliği
    - **Performans kazancı**: Tahmini iyileştirme (örneğin, O(n²) → O(n log n))
    - **Ödünleşimler**: Bellek kullanımı, kod karmaşıklığı, sürdürülebilirlik hususları
  </Tab>

  <Tab title="Bileşen optimizasyonu">
    Kullanıcı arayüzü bileşenlerini ve oluşturmayı optimize edin:

    ```
    Optimize this component to reduce unnecessary re-renders
    ```

    **Verdent'in belirledikleri:**

    - **Ön uç performansı**: Gereksiz yeniden oluşturmalar, büyük paket boyutları, engelleyici işlemler
    - **Bileşen yaşam döngüsü**: Verimsiz useEffect bağımlılıkları, eksik memoizasyon
    - **Durum yönetimi**: Gereksiz durum güncellemeleri, prop drilling

    Verdent bileşeninizi analiz eder ve React.memo, useMemo, useCallback veya bileşen bölme gibi optimizasyonlar önerir.
  </Tab>

  <Tab title="API ve veritabanı optimizasyonu">
    API ve veritabanı darboğazlarını belirleyin ve düzeltin:

    ```
    Identify performance bottlenecks in the API request handler
    ```

    **Verdent'in belirledikleri:**

    - **Veritabanı performansı**: N+1 sorgular, eksik indeksler, verimsiz birleştirmeler
    - **API performansı**: Yavaş uç noktalar, verimsiz veri çekme, eksik önbelleğe alma

    Verdent sorgu desenlerini inceler, veritabanı indeksleri, önbelleğe alma stratejileri ve API optimizasyon teknikleri önerir.
  </Tab>
</Tabs>

<Tip>
  Performans optimizasyonu için, tipik veri boyutları ve performans kısıtlamaları hakkında bağlam sağlayın. Bu, Verdent'in ölçeğinize uygun çözümler önermesine yardımcı olur (örneğin, 100 öğe ile 1 milyon öğe karşılaştırması).
</Tip>

<Tip>
Optimize etmeden önce profil oluşturun; optimizasyonların anlamlı iyileştirmeler sağladığından emin olmak için performans etkisini ölçün.
</Tip>

---

## Yeniden düzenleme sırasında işlevselliği koruma

Verdent, iç uygulamayı iyileştirirken aynı girdileri, çıktıları ve davranışı koruyarak yeniden düzenleme sırasında kod işlevselliğini korumayı amaçlar.

**Verdent işlevselliği nasıl korur:**

- **Girdi/çıktı analizi**: İşlev imzalarını, API sözleşmelerini ve beklenen davranışları belirler
- **Test farkındalığı**: Mevcut testleri davranışsal spesifikasyonlar olarak değerlendirir
- **Tutucu değişiklikler**: Yeniden düzenleme hedefine ulaşmak için minimum değişiklik yapar
- **Doğrulama**: İşlevselliğin korunduğunu doğrulamak için testler oluşturabilir veya çalıştırabilir

**Güvenli yeniden düzenleme için en iyi uygulamalar:**

1. **Yeniden düzenlenen kodu her zaman test edin** - Verdent'in analizine rağmen, özellikle karmaşık yeniden düzenlemelerde manuel veya otomatik test işlevselliğin korunduğunu doğrular

2. **Sürüm denetimi kullanın** - Sorunlar ortaya çıkarsa geri alabilmek için yeniden düzenlemeden önce commit yapın

3. **Aşamalı olarak yeniden düzenleyin** - Büyük yeniden düzenlemeleri daha küçük adımlara bölün ve her değişiklikten sonra test edin

4. **Değişiklikleri dikkatlice inceleyin** - Neyin neden değiştiğini anlamak için diff'i inceleyin

5. **Karmaşık yeniden düzenlemeler için Plan Mode'u kullanın** - Olası sorunları yakalamak için yürütmeden önce yaklaşımı inceleyin

**Örnek: Güvenli yeniden düzenleme talebi**

```
Refactor the calculateOrderTotal function to use a more maintainable structure, but ensure it produces identical results for all input cases
```

Verdent şunları yapar:
- Mevcut uygulamayı ve uç durumları analiz eder
- Yeniden düzenlenmiş yapıyı önerir
- Yeniden düzenlenen sürümün neden eşdeğer olduğunu açıklar
- Eşdeğerliği doğrulamak için test senaryoları önerir

**İşlevselliğin değişebileceği durumlar:**

Bazı durumlarda, yeniden düzenleme davranışı kasıtlı olarak değiştirir (hataları düzeltme, doğrulamayı iyileştirme). Bunu açıkça belirtin:

```
Refactor the email validation function to correctly handle international domains, which the current implementation doesn't support
```

Bu, davranışsal değişikliğin beklendiğini ve kasıtlı olduğunu belirtir.

---

## En iyi uygulamalar

<Accordion title="Çözümü değil, sorunu açıklayın">
  Belirli değişiklikler dayatmak yerine, Verdent'in kodu analiz etmesine ve en iyi yeniden düzenleme yaklaşımını önermesine izin verin.
</Accordion>

<Accordion title="Yeniden düzenleme için her zaman Plan Mode'u kullanın">
  Yürütmeden önce tam planı inceleyin. Bu, sürprizleri önler ve mimari hususlara dayalı olarak yaklaşımı iyileştirmenize olanak tanır.
</Accordion>

<Accordion title="Kapsamlı aramalar için açıkça Explorer'ı kullanın">
  Kapsamlı yeniden düzenleme için, Verdent'ten tüm örnekleri bulmak üzere Explorer'ı kullanmasını isteyin: "Tüm manuel hata işlemelerini bulmak için Explorer'ı kullan, ardından hata yardımcımızı kullanacak şekilde yeniden düzenle."
</Accordion>

<Accordion title="Büyük yeniden düzenlemeleri aşamalara bölün">
  Aşamalar arasında testle birlikte çok aşamalı yaklaşımlar, her şeyi bir kerede denemekten daha güvenli ve daha yönetilebilirdir.
</Accordion>

<Accordion title="Aşamalar arasında test edin">
  Bir sonrakine geçmeden önce her aşamanın çalıştığını doğrulayın. Bu, sorunları yalıtır ve sorunların birikmesini önler.
</Accordion>

<Accordion title="Sık sık commit yapın">
  Her aşamadan veya büyük değişiklikten sonra kontrol noktaları oluşturmak için sürüm denetimi kullanın. Bu, tüm ilerlemeyi kaybetmeden güvenli geri almaya olanak tanır.
</Accordion>

<Accordion title="Ekip incelemesi için planları kaydedin">
  Önemli yeniden düzenlemeler için, yürütmeden önce ekip tartışması amacıyla Verdent'ten planı `plan.md` dosyasına kaydetmesini isteyin.
</Accordion>

<Accordion title="Optimizasyon için bağlam sağlayın">
  Performans iyileştirmeleri talep ederken, veri boyutları, performans kısıtlamaları ve kabul edilebilir ödünleşimler hakkında bilgi ekleyin.
</Accordion>

---

## Ayrıca bakın

<CardGroup cols={2}>
  <Card title="Test ve hata ayıklama" icon="bug" href="/docs/verdent-for-vscode/task-based-guides/testing-debugging">
    Yeniden düzenlenen kodun doğru çalıştığını doğrulamak için testler oluşturun
  </Card>

  <Card title="Kodu anlama" icon="book" href="/docs/verdent-for-vscode/task-based-guides/understanding-code">
    Etkiyi anlamak için yeniden düzenlemeden önce kod yapısını analiz edin
  </Card>
</CardGroup>
