Summary

Bu ücretsiz yapay zeka kod kontrolü, yapıştırdığın kodu altı tarayıcı-içi sezgisel kontrole göre 0 ile 100 arasında puanlar: satır uzunluğu, iç içe geçme derinliği, yorum oranı, sihirli sayılar, unutulmuş TODO/FIXME işaretleri ve tek harfli isimlendirme. Hiçbir şey sunucuya yüklenmez, puan yazdıkça güncellenir ve her kategori kendi puan dökümünü gösterir, böylece önce neyi düzelteceğini tam olarak bilirsin.

Kodunu yapıştır, anında kalite puanı al

Bu ücretsiz yapay zeka kod kontrolü, yapıştırdığın her şeye sezgisel bir 0-100 puan çıkarır: satır uzunluğu, iç içe geçme, yorumlar, sihirli sayılar, isimlendirme. Yazdığın hiçbir şey tarayıcından çıkmaz.

Yapay Zeka Kod Kontrolü

Aşağıya bir fonksiyon veya kısa bir dosya yapıştırın. Puan, tamamen tarayıcında çalışan altı kontrole göre yazdıkça güncellenir: yapıştırdığın hiçbir şey hiçbir yere gönderilmez.

code-checker.sh
0 /100
Kontrol ediliyor Sezgisel kalite puanı; bir linter ya da derleyici değildir

Puanların nereden geldiğini görmek için yukarıya kod yazın veya yapıştırın.

Satır uzunluğu0/20
İç içe geçme derinliği0/20
Yorumlar0/20
Sihirli sayılar0/15
TODO / FIXME işaretleri0/10
İsimlendirme0/15
Nasıl çalışır

Puan gerçekte neyi kontrol ediyor

Satır uzunluğu ve iç içe geçme

100 karakteri aşan satırlar ve üç dört seviyeden fazla iç içe geçen if blokları, bir diff'i okunmaz hale getirmenin en hızlı yoludur. İkisini de ölçüyoruz: iç içe geçme derinliği, C tarzı diller için parantez sayımından, Python tarzı diller için girinti seviyesinden geliyor, böylece kontrol dilin süslü parantez kullanıp kullanmadığına bakmaksızın çalışır. Dört seviyeyi aşan her şey hızla puan kaybetmeye başlar, çünkü genelde bir incelemecinin hangi koşulun içinde olduğunu hatırlamak için yukarı kaydırması gereken nokta burasıdır.

Yorumlar ve sihirli sayılar

Kendini açıklayan kod, hafif bir yorum katmanına sahiptir, kabaca beş satırda bir ile on satırda bir arasında, ve açıklanmamış sabit değer barındırmaz. Neredeyse hiç açıklaması olmayan dosyaları işaretliyoruz, ayrıca 500 veya 0.85 gibi sayıların isimsiz ve yakınında yorum olmadan geçtiği dosyaları ayrıca işaretliyoruz. TODO ve FIXME satırları yorum puanına dahil edilmez: bunlar birer işarettir, dokümantasyon değil, bu yüzden bunlarla dolu bir dosya yine de yeterince açıklanmamış olarak okunur.

İsimlendirme ve kalan işaretler

i, j veya n gibi yaygın döngü sayaçları dışındaki tek harfli değişkenler, kod birkaç satırdan uzun olur olmaz takip etmeyi zorlaştırır, bu yüzden tanımlanan ve atanan değişkenlerinden kaçının bu tuzağa düştüğünü sayıyoruz. Kalan TODO ve FIXME yorumları da birkaç puana mal olur: bunlar bitmemiş işin dürüst sinyalleridir, ama gerçek bir pull request incelemesinde olduğu gibi biriktikçe artarlar.

Neden sahte yapay zeka değil, sezgisel bir yöntem

Sunucu yok, model yok, kara kutu yok

İnternetteki her yapay zeka kod kontrolü sihirli bir yapay zeka puanı vaat ediyor. Bu araç hiç yapay zeka çalıştırmıyor: bir pull request'i açtığın ilk otuz saniyede bir incelemecinin gözden geçirdiği aynı şeyleri kontrol eden altı açıklanabilir kural. Satır uzunluğu, iç içe geçme derinliği, yorum oranı, sihirli sayılar, kalan TODO'lar, tek harfli isimler. Her birinin sabit bir puan payı var, böylece bir dosyanın neden o puanı aldığını tam olarak görürsün, kanıtsız bir sayı değil.

  • Tamamen tarayıcında, zaten açık olduğun sekmede çalışır
  • Her çalıştırmada aynı altı kontrol, çalıştırmalar arasında rastgelelik yok
  • Bir PR öncesi hızlı bir kontrol için tasarlandı, bir uyumluluk denetimi için değil
Arkasında parlayan bir kod editörü olan monitörle, mekanik bir klavyede yazan eller yakın çekim

Sıkça sorulan sorular

Bu yapay zeka kod kontrolü gerçekten ücretsiz mi?
Evet. Kayıt yok, hesap yok, hız sınırı yok. Puanlama tarayıcı sekmende çalışır ve bizim tarafımızda hiçbir şey ölçülmez.
Kodum bir yere yükleniyor mu?
Hayır. Tüm hesaplama JavaScript ile, tarayıcında, yazdığın an gerçekleşir. Kodunu görmüyoruz ve saklamıyoruz.
Puan gerçekte neye dayanıyor?
Altı kontrol: ortalama satır uzunluğu, iç içe geçme derinliği (parantez ve girinti tabanlı), yorum oranı, açıklanmamış sayısal değer sayısı, unutulmuş TODO/FIXME işaretleri ve döngü sayaçları dışında tek harfli isim kullanan değişken oranı. Her birinin 100 üzerinden sabit bir puan payı var.
Hangi dilleri destekliyor?
Metin tabanlı her dili. Yorum tespiti //, #, /* */ ve -- biçimlerini kapsar; bu da JS, Python, Java, C ailesi diller, Ruby, SQL ve çoğu diğer dili içerir. Dile özel bir ayrıştırıcı değil, metni okur.
Kodum neden beklediğimden düşük puan aldı?
Genelde tek bir kategori toplamı aşağı çekiyor: döküm çubuklarına bak. En sık görülen iki suçlu derin iç içe geçme ve çıplak sayı yığınıdır.
Bu, gerçek bir linter veya kod incelemesinin yerini tutar mı?
Hayır. Bu, okunabilirlik üzerine hızlı ve dürüst bir ilk bakış; bir derleyici, bir güvenlik tarayıcısı ya da ESLint, Pylint veya gerçek bir incelemecinin yerine geçmez. İlk geçiş olarak kullan, nihai karar olarak değil.
Yorum eklemek puanı neden her zaman artırmıyor?
Çünkü yorum kontrolü sağlıklı bir oranı ödüllendiriyor, kabaca satırların yüzde 5 ila 40'ı, bir maksimumu değil. Çoğu yorumdan oluşan bir dosya da puan kaybeder: genelde bu, yorumların bağlam katmak yerine kodu tekrarladığı, bir incelemeciyi hiç yorum olmaması kadar yavaşlatan bir durum anlamına gelir.
Süslü parantez kullanmayan diller için iç içe geçme derinliği nasıl ölçülüyor?
Python, YAML tarzı yapılandırma ve parantez yerine girinti kullanan her şey için, dosyada kullanılan en küçük girinti adımını tespit ediyoruz (2 boşluk, 4 boşluk, ne seçtiysen) ve en derin satırın kaç adım derinlikte olduğunu sayıyoruz. JS, Java, C, Go ve benzerleri için parantez iç içe geçmesini doğrudan sayıyoruz. İkisinden derin olanı puanı etkiler.
Büyük bir dosya yapıştırdım ve puan neredeyse hiç değişmedi. Neden?
Her kontrol oran tabanlıdır, sayım tabanlı değil: satır uzunluğu 100 karakteri aşan satırların oranına bakar, yorumlar yorumlanmış satırların oranına bakar, sihirli sayılar toplam satıra oranla sayıya bakar. Bu da aynı oranlara sahip 500 satırlık bir dosyanın 20 satırlık biriyle benzer puan almasını sağlar. Dosya boyutunu değil, tutarlı bir stili ödüllendirir.

Ne inşa edeceğine hâlâ karar veremedin mi?

whatshouldibuildnext.com ücretsiz bir yapay zeka spec üreteci de sunuyor: bir fikir tanımla, kapsamı belirlenmiş bir spec ve stack önerisi al, kayıt gerekmez.