Kod gözden geçirme (Code Review)

kod-gozden-gecirme-code-review (büyük resim için tıklayın)

Kod Gözden Geçirme Süreci Nedir?

Kod gözden geçirme (Code Review), yazılım geliştirme sürecinde yazılan kodun diğer geliştiriciler tarafından kontrol edilerek hataların, iyileştirme alanlarının ve potansiyel güvenlik açıklarının tespit edildiği bir süreçtir. Bu süreç, kodun kalitesini artırmak, standartları korumak ve bilgi paylaşımını teşvik etmek amacıyla yapılır.

Kod Gözden Geçirme Süreci Nasıl Yapılır?

1. Kodun Hazırlanması

  • Geliştirici, tamamladığı kod değişikliklerini sürüm kontrol sistemi (örneğin Git) üzerinden bir pull request (PR) veya merge request ile gönderir.
  • Kodun ne yaptığı, neden bu şekilde yazıldığı ve değişikliklerin kapsamı hakkında açıklama yapılır.

2. İnceleme Süreci

  • Kod gözden geçiren kişi(ler), aşağıdaki kriterleri değerlendirir:
    • Mantıksal Hatalar: Kodun doğru sonuçlar üretip üretmediği.
    • Kod Standartları: Takım veya şirket tarafından belirlenen kodlama kurallarına uyum.
    • Verimlilik: Kodun optimize edilip edilmediği.
    • Güvenlik: Potansiyel güvenlik açıklarının olup olmadığı.
    • Okunabilirlik: Kodun net ve anlaşılır olup olmadığı.

3. Geri Bildirim Verme

  • Gözden geçirenler, kodun çeşitli kısımlarına yorumlar ekleyerek geri bildirim sağlar.
  • Gerekirse değişiklik önerileri sunar.

4. Değişikliklerin Yapılması

  • Kod sahibi, geri bildirime göre kodunu düzenler ve tekrar gönderir.

5. Onaylama

  • Kod, tüm geri bildirimler tamamlandığında onaylanır ve ana kod tabanına birleştirilir.

Kod Gözden Geçirme Teknikleri

Eş Zamanlı Kod Gözden Geçirme (Over-the-shoulder Review):

  • Geliştirici ve gözden geçiren aynı anda, yüz yüze veya çevrimiçi olarak kodu inceler.

Araç Destekli Kod Gözden Geçirme:

  • Kod değişikliklerini bir araç üzerinde, zaman farkı olmaksızın gözden geçirme.

E-posta Tabanlı Kod Gözden Geçirme:

  • Kodun ilgili bölümleri e-posta yoluyla paylaşılarak incelenir (eskiden yaygındı).

Çift Kodlama (Pair Programming):

  • İki geliştiricinin birlikte kod yazdığı bir yöntem.

Kod Gözden Geçirme Araçları

GitHub:

  • Pull request sistemi ile kod incelemesi yapılır.
  • Yorum ekleme, değişiklik önerisi ve onaylama özellikleri vardır.

GitLab:

  • Merge request özellikleriyle benzer işlevler sunar.

Bitbucket:

  • Atlassian'ın kod inceleme aracı. Jira ile entegredir.

Crucible:

  • Atlassian tarafından geliştirilmiş, kod gözden geçirme odaklı bir araçtır.

Phabricator:

  • Facebook tarafından geliştirilen bir araçtır ve güçlü kod inceleme özelliklerine sahiptir.

Review Board:

  • Kod gözden geçirme ve iş birliği için kullanılan açık kaynak bir araçtır.

Visual Studio Code Extensions:

  • Özel eklentiler ile doğrudan IDE üzerinden kod gözden geçirme yapılabilir.

Kod Gözden Geçirmenin Faydaları

  • Hata Azaltma: Hataların daha erken aşamalarda bulunmasını sağlar.
  • Kod Kalitesini Artırma: Daha okunabilir, standartlara uygun ve temiz kod yazımı teşvik edilir.
  • Bilgi Paylaşımı: Geliştiriciler arasındaki bilgi akışını artırır.
  • Takım İletişimini Geliştirme: Kod hakkında tartışmalar sayesinde ekip içi iletişim güçlenir.

*Gönderi ve görsel chatgpt ile oluşturulmuştur.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)

temel-kavramlar Kategori

Runtime & Compile Time (Çalışma ve Derleme Zamanı)

KII (Key Impact Indicator)

KPI (Key Performance Indicator)