Summary

Bu ücretsiz yapay zeka kod inceleme aracı kural tabanlı bir ön kontrol aracıdır. Git diff veya kod parçanızı yapıştırdığınızda eklenen satırları on üç kuralla tarar: gömülü sırlar, metinle birleştirilmiş SQL, yutulan istisnalar, devre dışı bırakılmış testler ve debug kalıntıları. Ayrıca aşırı büyük değişiklikleri ve eksik testleri işaretler, ardından 0-100 arası bir puan ve satır numaralı bulgular döndürür. Tamamen tarayıcınızda çalışır, bir yapay zeka modeli kullanmaz ve insan incelemesinden önce mekanik sorunları temizlemek için tasarlanmıştır.

Bir İnceleyici Bakmadan Önce Diff'inizi Kontrol Edin

Bir git diff ya da kod parçası yapıştırın. Bu ücretsiz yapay zeka kod inceleme aracı sırları, güvensiz SQL'i, yutulan hataları, bırakılmış debug kodunu ve aşırı büyük değişiklikleri tarayıcınızda işaretler ve pull request'e 100 üzerinden bir puan verir.

Monitörde yan yana bir kod diff'ini inceleyen mühendis

Ön inceleme diff kontrolü

Birleşik diff ya da herhangi bir kodu yapıştırın. Diff algılanırsa yalnızca eklenen satırlar kontrol edilir. Yapıştırdığınız hiçbir şey tarayıcınızdan çıkmaz.

--/100
Başlamak için kod yapıştırın
Henüz kontrol edilmedi.
    Nasıl çalışır

    Kontrol aracı neye bakar, neyi yok sayar

    Yalnızca eklenen satırlar

    Birleşik bir diff yapıştırırsanız kontrol aracı hunk başlıklarını okur, yeni dosyadaki satır numaralarını sayar ve yalnızca eklediğiniz satırları tarar. Silinen satırlar ve değişmeyen bağlam hiçbir bulgu üretmez, bu yüzden eski kod için suçlanmazsınız.

    Önem derecesine göre ağırlıklı puan

    On üç kural üç seviyede yer alır. Yüksek seviye 15 puan düşürür: sabit kodlanmış sırlar, eval, metinle oluşturulmuş SQL, devre dışı bırakılmış TLS kontrolleri. Orta seviye 7 puan: yutulan istisnalar, odaklanmış testler, innerHTML, 400 satırlık bir diff. Düşük seviye 2 puan: TODO notları, debug çıktıları, yorum satırına alınmış kod. Her kural en fazla üç kez sayılır.

    Boyut ve test kontrolleri

    200 eklenen satırın üzerinde değişikliği bölmeniz için hafif bir uyarı, 400'ün üzerinde ise daha net bir uyarı alırsınız. Bu, SmartBear'ın Cisco üzerindeki bulgusuna dayanır: bir inceleyici bir seferde 200 ila 400 satırdan fazlasıyla karşılaştığında inceleme kalitesi düşer. 50 eklenen satırı aşan ve test dosyası içermeyen bir diff de işaretlenir.

    Kullanımı

    Yapıştırmadan temiz bir pull request'e dört adımda

    1. 1

      Diff'inizi yapıştırın

      git diff main...HEAD komutunu ya da commit öncesi git diff --staged komutunu çalıştırıp çıktısını yapıştırın. Düz bir kod parçası da işe yarar, ancak dosya adlarını ve test dosyası algılamasını kaybedersiniz.

    2. 2

      Önce yüksek seviyeli bulguları okuyun

      Kırmızı işaretli maddeler, bir inceleyicinin üzerinde duracağı noktalardır. Commit içindeki sabit kodlanmış bir anahtar, satırı silseniz bile geçmişte kalır. Bu yüzden onu yalnızca kaldırmak yerine yenileyin.

    3. 3

      Kalanları düzeltin ya da gerekçelendirin

      Her bulgunun yanında tek satırlık bir düzeltme önerisi vardır. Bir işaret yanlış pozitifse bunu PR açıklamasında belirtin. Böylece inceleyiciye aynı soru sorulmaz.

    4. 4

      Kontrol listesini kopyalayın

      Kopyalama düğmesi bulguları bir markdown kontrol listesine çevirir. Bunu PR gövdesine yapıştırabilirsiniz, böylece inceleyici zaten yakaladığınız şeyleri görür.

    Neden ön kontrol

    Bir incelemenin ilk otuz saniyesi console.log aramakla geçmemeli

    Bir meslektaşınızdan pull request geldiğinde rutini bilirsiniz. Diff'i kaydırırsınız, unutulmuş bir debug çıktısını, bilet numarası olmayan bir TODO'yu, atlanmış bir testi ve hatayı yutan bir catch bloğunu fark edersiniz. Bunların hiçbiri insan gerektirmez. Talep gönderilmeden önce çalışan bir kontrol listesi gerekir. Bu aracın doldurduğu boşluk tam olarak budur. Bir inceleyicinin dikkati sınırlıdır: SmartBear'ın Cisco incelemeleri üzerine yaptığı çalışma, insanlar 200 ila 400 satırı 60 ila 90 dakikada incelediğinde kusur bulmanın sürdüğünü, bunun ötesinde ise düştüğünü gösteriyor. Mekanik bulgulara harcanan her dakika, yalnızca bir insanın yanıtlayabileceği sorulara ayrılabilir: yaklaşım doğru mu, mimariye uyuyor mu, altı ay sonra da anlamlı olacak mı? Araç bir inceleyicinin yerini almaz ve bunu iddia da etmez. Ucuz itirazları kaldırır, böylece insan incelemesi ilginç kısımdan başlar.

    • Mekanik bulguları inceleme talebi gönderilmeden yakalar
    • Her bulguya diff hunk başlıklarından alınan bir satır numarası verir
    • Yerel çalışır, bu yüzden özel kodu yapıştırmak güvenlidir
    Dizüstü bilgisayarında bir kod değişikliğini tartışan iki mühendis
    SSS

    Kontrol aracı hakkında sorular

    Bu bir yapay zeka kod inceleyicisi mi yoksa bir linter mi?
    Kesin olarak ikisi de değil. Kural tabanlı bir ön kontrol aracıdır. Kodunuzu hiçbir model okumaz ve hiçbir şey üretilmez. On üç desen kuralı, bir inceleyicinin ilk otuz saniyede işaretlediği şeyleri eklenen satırlarda arar: sırlar, metinle oluşturulmuş güvensiz SQL, yutulan istisnalar ve bırakılmış debug çıktısı. Bunu dürüstçe etiketliyoruz, çünkü tahmin yürüten bir yapay zeka kod inceleyicisi, hiç yapmayan bir kontrol listesinden daha kötüdür.
    Kodum tarayıcımdan çıkıyor mu?
    Hayır. Kontroller bu sayfadaki JavaScript ile çalışır. Yükleme yok, API çağrısı yok ve hesap gerekmez. Kaydedilen tek şey, aracın kullanıldığını gösteren anonim bir olaydır. Metin kutusundaki hiçbir içerik kaydedilmez.
    200 ila 400 satır ve test dosyası kuralları nereden geliyor?
    Boyut eşiği, Cisco inceleme verileri üzerine SmartBear çalışmasına dayanır. Bu çalışma, bir seferde 200 ila 400 satırdan fazla incelemenin önerilmediğini belirtir. Küçük değişiklik kuralı, Google'ın küçük CL'ler üzerine herkese açık mühendislik uygulamalarını izler. Eksik test kuralı ise bizim yaklaşımımızdır: 50 eklenen satırı aşan ve test dosyası içermeyen bir diff işaretlenir, çünkü inceleyiciler zaten bu soruyu sorar.
    Puan nasıl hesaplanıyor?
    100'den başlar. Her bulgu önem derecesine göre puan düşürür: yüksek için 15, orta için 7, düşük için 2. Her kural en fazla üç kez sayılır, böylece tek bir gürültülü kural puanı sıfırlayamaz. Bu, işleri sıralamak için bir konvansiyondur, kod kalitesinin ölçüsü değildir. 100 puan, hiçbir kuralın tetiklenmediği anlamına gelir, kodun doğru olduğu anlamına gelmez.
    Neyi kaçırır?
    Anlam gerektiren her şeyi: yanlış iş mantığını, yarış koşullarını, kötü bir soyutlamayı ya da zamanla eskiyecek bir API'yi. Regex kuralları yanlış pozitif de üretir, örneğin sahte bir parola içeren bir test fikstürü gibi. Her bulguyu bir hüküm değil, yanıtlanması gereken bir soru olarak görün.
    Hangi dillerle çalışır?
    Kurallar metin desenleri olduğu için JavaScript, TypeScript, Python, Java, Go ve çoğu C ailesi kodda çalışır. Bazı kurallar dile özgüdür: çıplak except Python'a, System.out.println Java'ya, InsecureSkipVerify ise Go'ya aittir. Birleşik bir git diff yapıştırdığınızda satır numaraları hunk başlıklarından gelir.
    Ücretsiz mi?
    Evet, kayıt gerekmez. İncelerken deponuzun geri kalanı hakkında yanıt istiyorsanız, örneğin bu fonksiyonu kimin çağırdığını ya da bir yapılandırma değerinin nerede okunduğunu öğrenmek istiyorsanız, codebasechat bunun için var.

    İncelemeyi tüm depo gözünüzün önünde yapın

    Diff neyin değiştiğini gösterir, neye dokunduğunu göstermez. codebasechat, kod tabanınız hakkındaki soruları düz bir dille yanıtlar, böylece onaylamadan önce değişen fonksiyonu kimin çağırdığını kontrol edebilirsiniz.