Git kontrolleri ve kurallar
Klasörün commit içeren bir Git deposu olduğunu doğrular, ardından .clean-code-tracker.json dosyasını okur ya da hazır bir ön ayar kullanır.
CleanLens Git geçmişinizi yeniden oynatır ve her dosyayı her commit'ten önce ve sonra karşılaştırır. Böylece her Clean Code ihlali, onu gerçekten ekleyen geliştiriciye yazılır. Ardından her geliştirici, yazdığı kod miktarından bağımsız, adil bir kalite puanı alır.
Ya da VS Code içinde: Ctrl/⌘ + P tuşlarına basın ve komutu yapıştırın.
Yapay zekâ asistanları dakikalar içinde yüzlerce satır üretir ve her satır nadiren incelenir. API anahtarları Git'e sızar, hatalar boş catch bloklarında kaybolur, fonksiyonlar şişer ve tekrarlanır. CleanLens her satırı kontrol eder, size tam dosyayı ve satırı söyler ve tek tıkla oraya götürür.
Koda yazılmış anahtar ve parolalar, yutulan hatalar ve hata yönetimi olmayan işlemler.
Uzun ve karmaşık fonksiyonlar, tekrar, kullanılmayan kod ve belirsiz isimler.
Her bulgu dosyası, satır numarası ve önem derecesiyle gelir; tek tıkla dosya tam o satırda açılır.
CleanLens'in tespit edebildiklerinden yalnızca birkaç örnek.
Satırına gitmek için bir bulguya tıklayın
1import { S3Client } from "@aws-sdk/client-s3";23export const config = {4 region: "eu-central-1",5 retries: 3,6 timeoutMs: 8000,7};89// generated: connect to storage10export const s3 = new S3Client({11 region: config.region,12 credentials: { accessKeyId: "AKIAIOSFODNN7EXAMPLE",13 secretAccessKey: "wJalrXUtnFEMI/K7MDENG" },14});
git blame gibi araçlar ve sıradan linter'lar, sorunları satırı ya da dosyayı en son düzenleyen kişiye yazar. Sonuç adil olmayan raporlardır: eski bir dosyada yazım hatası düzelten kişi dosyanın tüm sorunlarını devralır, onları yazan kişi ise resimden kaybolur.
1import { db } from './lib'2export async function handle(req, a, b, c, d, e, f) {maxParameters3 const data1 = await db.query(req.q)clearNames4 try { save(data1) } catch (err) {}emptyCatch5 console.log('debug', data1)debugStatement6 // ...7 return formatTotal(data1) // was: fromatTotalchanged8}
Layla'ya yazılır, oysa o yalnızca 7. satırdaki bir yazım hatasını düzeltti.
Dört ihlalin hepsi commit'ten önce de vardı, bu yüzden existing olarak sınıflandırılır ve kimseye yazılmaz. 7. satır temiz.
Yalnızca boşluk değişiklikleri yok sayılır, dosyalar arasında taşınan kod izlenir.Kaydırmaya devam edin. Arka plandaki mercek, commit geçmişinde tıpkı analizin yaptığı gibi ilerler.
Klasörün commit içeren bir Git deposu olduğunu doğrular, ardından .clean-code-tracker.json dosyasını okur ya da hazır bir ön ayar kullanır.
JS/TS/JSX/TSX için AST üzerinden, Python için sezgisel olarak 14 Clean Code kuralı, ayrıca yinelenen kod tespiti.
En yeni 500 commit'i gezer (ayarlanabilir). Değişen her dosya için diff -w -M -C çalıştırır ve commit'ten önceki ve sonraki sürümü analiz eder.
Her ihlal için sabit bir parmak izi (rule + path + symbol + context), satır numarası değişse bile onu tanır. İhlal, yazara yalnızca onun değiştirdiği satırlarda ya da düzenlediği bir fonksiyonda ortaya çıkarsa yazılır.
Her geliştirici üç kategoride puan alır. Sonuçlar commit başına önbelleğe alınır, bu yüzden sonraki çalıştırma yalnızca yeni commit'leri analiz eder.
Puan, bir geliştiricinin yazdığı her 1.000 satır başına eklediği ihlallerin yoğunluğunu ölçer. Daha fazla kod yazmak puanı ne yükseltir ne düşürür; katkı, puanın yanında ayrı olarak gösterilir.
Her birini açın ya da kapatın; önem derecesini (low / medium / high / critical) ve eşiğini belirleyin. Depoda ekip için ortak bir dosya, kişisel tercihleriniz için yerel bir dosya.
Sınırdan uzun bir fonksiyon.
40 satırSınırdan uzun bir dosya.
400 satırÇok fazla parametre alan bir fonksiyon.
5Sınırın üzerinde döngüsel karmaşıklık (cyclomatic complexity).
10Derin iç içe geçmiş koşullar ve döngüler.
4Projede tekrarlanan birebir aynı bir blok.
6 satırHiç kullanılmayan bir import, değişken ya da fonksiyon.
data1 ya da x gibi belirsiz isimler.
Başarısız olabilecek ama try içermeyen bir işlem.
Boş bir catch ya da except bloğu.
Doğrudan koda yazılmış bir API anahtarı ya da parola.
console.log, debugger ve print.
Çok fazla metodu olan bir sınıf ya da hem uzun hem karmaşık bir fonksiyon.
10 metotJSDoc ya da docstring içermeyen karmaşık bir fonksiyon.
karmaşıklık ≥ 15Tek bir analiz motoru üzerinde iki arayüz: günlük iş için bir VS Code eklentisi, ekipler ve CI için bir komut satırı aracı.
Marketplace'ten yükleyin, ardından bir Git deposu içeren bir klasör açın.
Komut Paletinden Ctrl/⌘ + Shift + P. Proje türünü algılar, bir ön ayar önerir ve onayınızdan sonra kural dosyasını yazar.
Tam analizi çalıştırır ve Dashboard'u otomatik olarak açar.
Dosyayı tam o satırda açar. Dashboard'u istediğiniz zaman Open Dashboard ile yeniden açın.
İhlaller, tam bir analiz beklemeden, herhangi bir linter gibi düzenleyicide görünür: dalgalı alt çizgi, üzerine gelince ayrıntılar ve Problems panelinde bir kayıt.
function handleRequest(req, res) { // 63 lines ... }
CleanLens: Configure RulesKural dosyasını açar; dosya yoksa oluşturmayı önerir.# mevcut depo için metin raporu $ cleanlens # Django ön ayarıyla tüm ihlaller $ cleanlens ./services/api --preset django --violations # ekiple paylaşmak için Markdown raporu $ cleanlens --markdown > report.md # panolar ve iki çalıştırma arasındaki fark için JSON $ cleanlens --json > clean-code.json # kalite kapısı: high ya da üstü bir ihlalde başarısız ol $ cleanlens --fail-on high Developers: 5 · Analyzed commits: 480 ✖ exit 1 violations at or above "high"
# .github/workflows/clean-code.yml
on: [pull_request]
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with: { fetch-depth: 0 }
- uses: actions/setup-node@v4
with: { node-version: 20 }
- run: npx cleanlens --fail-on criticalfetch-depth: 0 gereklidir, çünkü atama tüm commit geçmişine ihtiyaç duyar. Çıkış kodları: 0 başarılı, 1 kalite kapısı başarısız, 2 analiz yapılamadı.
Veriye dayalı, adil bir tablo: kod kalitesini kim yükseltiyor, kim yeni sorun ekliyor, kim eskileri düzeltiyor.
Kimse yazmadığı bir mirası taşımadan, sürekli kod kalitesi incelemesi.
Pipeline'da ya da commit öncesinde, JSON çıktısı ve net çıkış kodlarıyla bir kalite kapısı.
Bir sorun commit'e ulaşmadan, yazarken düzenleyicide anında geri bildirim.
Hiçbir kod makineden çıkmaz ve bulut hizmeti yoktur; hassas ve kapalı kaynak projelere uygundur.
Tüm analiz yerel olarak çalışır. Hiçbir kaynak kod ya da geliştirici verisi bir yere gönderilmez; hesap ya da giriş gerekmez.
Aracın sınırlarını açıkça belirtiyoruz, çünkü adalet şeffaflıkla başlar.
Puan, proje kalitesini iyileştirmek için bir göstergedir. Her zaman ihlal ayrıntıları, güven düzeyi ve kullanılan kural setiyle birlikte gösterin.
Diğer dillerdeki dosyalar analiz edilmemiş sayılır.
Pencereden eski ihlaller existing olarak görünür ve kimseye yazılmaz. --full-history ile genişletin.
Yalnızca en son sürümde (HEAD) tespit edilir. Her commit içinde tekrar, dosya içinde ölçülür.
CleanLens sürekli gelişiyor. Bunlar gelecek sürümler için geliştirdiğimiz özellikler; yayınlanır yayınlanmaz VS Code güncellemeleriyle size otomatik olarak ulaşır.
Sitenize veya API'nize stres testi uygulayın; yavaşlamadan ya da çökmeden önce kaç eşzamanlı kullanıcıyı kaldırabildiğini ve nerede kırılmaya başladığını öğrenin.
Proje türünüze uyum sağlayan kurallar ve eşikler: React ön yüzü, Node API, Python servisi ya da kütüphane; her ayar ekibinizin ihtiyacına göre değiştirilebilir.
Bugünkü gizli anahtar tespitine ek olarak SQL enjeksiyonu, eval ve doğrulanmamış girdi gibi riskli kalıpları işaretler.
En yaygın bulgular için doğrudan editörde otomatik düzeltme önerileri; örneğin bir console.log'u kaldırmak ya da boş bir catch'i ele almak.
CleanLens her GitHub pull request'ine yorum yapar ve yalnızca o değişikliğin eklediği sorunları gösterir.
CleanLens'i bugün yükleyin; her yeni özellik güncellemelerle otomatik olarak gelir.
Ücretsiz yükleTakvim ve ayrıntılar geliştirme sırasında değişebilir.
CleanLens'i yükleyin, analizi çalıştırın ve her sorunu gerçekte kimin eklediğini öğrenin.