Showing posts with label CoPilot. Show all posts
Showing posts with label CoPilot. Show all posts

Wednesday, January 21, 2026

Modern yazılım geliştirme süreçlerinde GitHub Copilot ve VS Code etkileşimi.

VS Code + Copilot ile İleri Düzey Kod Geliştirme: Bağlam Mühendisliği ve Refactoring Rehberi

Murat Karakaya Akademi Özet Serisi
Karanlık modda satır satır kodların göründüğü profesyonel bir ekran

Modern yazılım geliştirme süreçlerinde GitHub Copilot ve VS Code etkileşimi.

Merhaba değerli arkadaşlar, Murat Karakaya Akademi YouTube kanalına hoş geldiniz. Bugün sizlerle, canlı yayında gerçekleştirdiğimiz ve oldukça yoğun teknik tartışmalara sahne olan "Çalışma Odası" serimizin bir bölümünü daha yazılı bir rehber haline getiriyoruz.

Bu bölümde, yapay zekayı sadece bir "soru-cevap" aracı olarak değil, projenin tüm dinamiklerine hakim bir "kıdemli iş ortağı" olarak nasıl konumlandıracağımızı inceledik. Odak noktamız; Bağlam Mühendisliği (Context Engineering), talimat dosyaları (.md) ve Copilot'un gelişmiş modlarıydı.

Bu Eğitimi Canlı İzleyin!

Kodun nasıl bozulduğunu, yapay zekanın nerelerde yanıldığını ve bu hataları canlı yayında nasıl düzelttiğimizi görmek, öğrenme sürecinin en değerli parçasıdır. Aşağıdaki videodan eğitimin tamamına ulaşabilirsiniz:

1. Bağlam Mühendisliği (Context Engineering) Neden Kritik?

Yazılım geliştirirken GitHub Copilot gibi araçları kullanırken yapılan en büyük hata, AI'yı projenin geri kalanından bağımsız düşünmektir. Eğer ona sadece o anki dosyayı gösterirseniz, size getireceği öneriler projenin genel mimarisine aykırı olabilir.

Context Engineering, yapay zekaya projenin "anayasasını" öğretmektir. Biz bu yayında, Copilot'a hangi dosyaları okuması gerektiğini, hangi kodlama standartlarına (naming conventions) uyması gerektiğini ve hangi dosyalara kesinlikle dokunmaması gerektiğini nasıl öğreteceğimizi tartıştık.

2. .github/copilot-instructions.md: Projenin Hafızası

Canlı yayında gösterdiğim en önemli araçlardan biri .github/copilot-instructions.md dosyasıydı. Bu dosya, Copilot için bir "rehber" görevi görür. İçerisine projenin amacını, kullandığı teknolojileri (Python, ChromaDB vb.) ve özel kısıtlamaları yazdığımızda; yapay zeka artık her önerisinde bu dosyayı referans alır.

# Proje Kuralları
- Asla 'run.py' dosyasını güncelleme.
- Yeni fonksiyonlar her zaman tip ipucu (type hints) içermeli.
- Docstring formatı Google stili olmalı.

Bu yöntem sayesinde, yapay zekaya her seferinde "Şu kütüphaneyi kullanıyorum, şu kurala uy" demekten kurtuluyoruz.

Makro çekim klavye ve odaklanmış yazılımcı ortamı

3. Refactoring Süreci: build_knowledge_base'i Parçalamak

Elimizdeki RekMK kütüphanesinde bir tasarım sorunu vardı: build_knowledge_base fonksiyonu hem yeni koleksiyon oluşturuyor hem de mevcut olanı yüklüyordu. Bu, "Single Responsibility" (Tek Sorumluluk) prensibine aykırıydı.

Yayında, bir prompt_file.md hazırlayarak Copilot'a bu fonksiyonu nasıl ikiye ayıracağını (Refactor) adım adım anlattık. İşte burada Edit Mode'un gücünü gördük. Edit Mode, AI'nın yaptığı değişiklikleri satır satır görmemize ve onaylamamıza olanak tanıyarak kontrolün bizde kalmasını sağlıyor.

4. Agent Mode: Büyük Güç, Büyük Sorumluluk

Eğitimin en heyecanlı ama bir o kadar da riskli kısmı Agent Mode kullanımıydı. Agent, terminale erişebilir, testleri çalıştırabilir ve hataları kendi kendine giderebilir. Ancak yayında gördüğümüz üzere; Agent bazen bir hatayı düzeltmeye çalışırken 2700 satır gereksiz kod yazabiliyor veya ana dosyalarınızı mahvedebiliyor.

"Agent Mode'u kullanmadan önce mutlaka Git commit'i yapın. Agent kontrolü kaybederse tek tuşla geri dönebilmelisiniz." - Murat Karakaya

5. Test Stratejisi: Manuel vs Otomatik

Değişiklikleri yaptıktan sonra iki tür test uyguladık. Önce Manuel (Smoke) Test ile sistemin temel işlevlerini (koleksiyon oluşturma, veri gömme) gözümüzle kontrol ettik. Ardından Otomatik Testler (pytest) ile Agent'ın yazdığı kodların diğer parçaları bozup bozmadığını denetledik. Yapay zekanın "Testler geçti" demesine güvenmeyip, terminal çıktılarını bizzat analiz etmenin önemini yayında açıkça gördük.

Sonuç

Yapay zeka araçları bizi tembelleştirmek için değil, daha karmaşık mimarileri daha hızlı inşa etmemiz için varlar. Ancak bu araçları yönetmek bir "orkestra şefliği" gerektiriyor. Doğru bağlamı sağlamazsanız, orkestra (AI) yanlış notalar çalmaya başlar.

Bu ve benzeri teknik içerikler için kanalımı takip etmeyi, sorularınızı muratkarakaya.net üzerinden veya YouTube yorumlarından sormayı unutmayın. Bir sonraki "Çalışma Odası" yayınında görüşmek üzere!

#MuratKarakayaAkademi #VSCode #GitHubCopilot #BağlamMühendisliği #ContextEngineering #Refactoring #Python #YazılımGeliştirme #CodingAgents #YapayZeka