Git geçmişi · adil atama · temiz kod

Deponuzdaki her geliştirici için
adil Clean Code analizi

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.

Tamamen sizin makinenizde çalışırGiriş gerekmezJS · TS · React · Python
VS Code · Quick Open
>ext install cleanlens.cleanlens
CleanLens
cleanlens.cleanlens · v0.2.4
LintersSCM ProvidersVisualization
Marketplace'ten yükle

Ya da VS Code içinde: Ctrl/⌘ + P tuşlarına basın ve komutu yapıştırın.

vibe coding sorunu

Vibe coding hızlı yazar…
ve arkasında felaketler bırakır

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.

  1. 1

    Tehlikeli sorunları yakalar

    Koda yazılmış anahtar ve parolalar, yutulan hatalar ve hata yönetimi olmayan işlemler.

  2. 2

    Clean Code'u da denetler

    Uzun ve karmaşık fonksiyonlar, tekrar, kullanılmayan kod ve belirsiz isimler.

  3. 3

    Sonra satırı gösterir

    Her bulgu dosyası, satır numarası ve önem derecesiyle gelir; tek tıkla dosya tam o satırda açılır.

Bulgular4

CleanLens'in tespit edebildiklerinden yalnızca birkaç örnek.

Satırına gitmek için bir bulguya tıklayın

src/config.jsLn 12
1import { S3Client } from "@aws-sdk/client-s3";
2
3export const config = {
4 region: "eu-central-1",
5 retries: 3,
6 timeoutMs: 8000,
7};
8
9// generated: connect to storage
10export const s3 = new S3Client({
11 region: config.region,
12 credentials: { accessKeyId: "AKIAIOSFODNN7EXAMPLE",
13 secretAccessKey: "wJalrXUtnFEMI/K7MDENG" },
14});
forbidHardcodedSecrets · AWS anahtarı kaynak koda gömülmüş
sorun

Tek bir karakteri düzeltmek sizi tüm dosyadan sorumlu yapmamalı

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.

src/orders.jscommit a41f9c · Layla
1import { db } from './lib'
2export async function handle(req, a, b, c, d, e, f) {maxParameters
3 const data1 = await db.query(req.q)clearNames
4 try { save(data1) } catch (err) {}emptyCatch
5 console.log('debug', data1)debugStatement
6 // ...
7 return formatTotal(data1) // was: fromatTotalchanged
8}
git blame / last-touch
4 ihlal

Layla'ya yazılır, oysa o yalnızca 7. satırdaki bir yazım hatasını düzeltti.

CleanLens
0 yeni

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.
introduced bu commit ekledi, yazarına yazılırfixed kaldırıldı, yazarın hanesine artı yazılırexisting zaten vardı, kimseye yazılmazexcluded hariç tutulan dosyalarunattributed kimseye atanamadı
işlem hattı

Commit'ten puana beş aşama

Kaydırmaya devam edin. Arka plandaki mercek, commit geçmişinde tıpkı analizin yaptığı gibi ilerler.

01

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.

02

Tarama

JS/TS/JSX/TSX için AST üzerinden, Python için sezgisel olarak 14 Clean Code kuralı, ayrıca yinelenen kod tespiti.

03

Geçmişi yeniden oynatma

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.

04

Sınıflandırma ve atama

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.

05

Puanlama ve önbellek

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.

adil puanlama

Kalite ve katkı miktarı iki ayrı şeydir

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.

score = 100 · e−adjustedDensity / scale
Yapı
45%
Tekrar
30%
Temizlik
25%
  • Bayesian shrinkage: az kod yazan geliştiricilerin puanı proje ortalamasına doğru çekilir, böylece küçük bir örnek kusursuz ya da felaket görünmez.
  • Sıralama eşiği: 1.000'den az analiz edilmiş satır mı var? Geliştirici gösterilir ama sıralamaya girmez.
  • Kod yoksa puan yok: analiz edilmiş kodu olmayan geliştirici 100 değil «—» olarak görünür.
  • Tüm ağırlıklar ayarlanabilir: yapılandırma dosyasından ya da VS Code ayarlarından.

Geliştirici kartı

Belgelerden örnek
73
Tekrar 88Yapı 72Temizlik 78Güven: Güvenilir
Yeni ihlaller39
Düzeltilen ihlaller12
Mevcut51
Analiz edilen satır3,140
Katkı42%
Yoğunluk / KLOC37.58
14 kural

14 kural, hepsi sizin kontrolünüzde

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.

maxFunctionLines

Fonksiyon uzunluğu

Sınırdan uzun bir fonksiyon.

40 satır
maxFileLines

Dosya uzunluğu

Sınırdan uzun bir dosya.

400 satır
maxParameters

Parametre sayısı

Çok fazla parametre alan bir fonksiyon.

5
maxComplexity

Karmaşıklık

Sınırın üzerinde döngüsel karmaşıklık (cyclomatic complexity).

10
maxNestingDepth

İç içe geçme derinliği

Derin iç içe geçmiş koşullar ve döngüler.

4
detectDuplicateCode

Yinelenen kod

Projede tekrarlanan birebir aynı bir blok.

6 satır
detectUnusedCode

Kullanılmayan kod

Hiç kullanılmayan bir import, değişken ya da fonksiyon.

requireClearVariableNames

Anlaşılır isimler

data1 ya da x gibi belirsiz isimler.

requireErrorHandling

Hata yönetimi

Başarısız olabilecek ama try içermeyen bir işlem.

forbidEmptyCatchBlocks

Boş catch

Boş bir catch ya da except bloğu.

forbidHardcodedSecrets

Koda gömülü sırlar

Doğrudan koda yazılmış bir API anahtarı ya da parola.

forbidDebugStatements

Hata ayıklama ifadeleri

console.log, debugger ve print.

requireSingleResponsibility

Tek sorumluluk

Çok fazla metodu olan bir sınıf ya da hem uzun hem karmaşık bir fonksiyon.

10 metot
requireDocumentationForComplexCode

Karmaşık kodu belgeleme

JSDoc ya da docstring içermeyen karmaşık bir fonksiyon.

karmaşıklık ≥ 15
Hazır ayarlar: JavaScriptReactPythonDjangoVarsayılan olarak hariç: node_modules · dist · build · lock files
başlarken

Kurulumdan ilk rapora iki dakikada

Tek 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ı.

Dört adım

  1. Eklentiyi yükleyin

    Marketplace'ten yükleyin, ardından bir Git deposu içeren bir klasör açın.

  2. CleanLens: Initialize Project

    Komut Paletinden Ctrl/⌘ + Shift + P. Proje türünü algılar, bir ön ayar önerir ve onayınızdan sonra kural dosyasını yazar.

  3. CleanLens: Run Analysis

    Tam analizi çalıştırır ve Dashboard'u otomatik olarak açar.

  4. Herhangi bir ihlale tıklayın

    Dosyayı tam o satırda açar. Dashboard'u istediğiniz zaman Open Dashboard ile yeniden açın.

Yazarken anlık uyarılar

İ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 ...
}
Long function: Function handleRequest has 63 lines (limit 40).
CleanLens: Configure RulesKural dosyasını açar; dosya yoksa oluşturmayı önerir.
kimler için

CleanLens kimler için

Ekip liderleri ve mühendislik yöneticileri

Veriye dayalı, adil bir tablo: kod kalitesini kim yükseltiyor, kim yeni sorun ekliyor, kim eskileri düzeltiyor.

JS/TS ve Python ekipleri

Kimse yazmadığı bir mirası taşımadan, sürekli kod kalitesi incelemesi.

DevOps ve CI

Pipeline'da ya da commit öncesinde, JSON çıktısı ve net çıkış kodlarıyla bir kalite kapısı.

Bireysel geliştiriciler

Bir sorun commit'e ulaşmadan, yazarken düzenleyicide anında geri bildirim.

Gizliliğe önem veren şirketler

Hiçbir kod makineden çıkmaz ve bulut hizmeti yoktur; hassas ve kapalı kaynak projelere uygundur.

%100 yerel

Kodunuz makinenizden asla çıkmaz

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.

Bulut yokGiriş yokCommit başına yerel önbellekArapça ve İngilizce belgeler
bilmekte fayda var

Ekibinizin bilmesi gerekenler

Aracın sınırlarını açıkça belirtiyoruz, çünkü adalet şeffaflıkla başlar.

Bir gösterge, bir hüküm değil

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.

Yalnızca JS/TS ve Python

Diğer dillerdeki dosyalar analiz edilmemiş sayılır.

Commit penceresi

Pencereden eski ihlaller existing olarak görünür ve kimseye yazılmaz. --full-history ile genişletin.

Dosyalar arası tekrar

Yalnızca en son sürümde (HEAD) tespit edilir. Her commit içinde tekrar, dosya içinde ölçülür.

sırada ne var

Şimdi üzerinde çalıştıklarımız

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.

Geliştiriliyor

Siteniz için yük ve stres testi

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.

  • Binlerce eşzamanlı kullanıcı simülasyonu
  • Her yük seviyesinde yanıt süresi ve hata oranı
  • Güvenli üst sınırı gösteren net bir rapor
00.5k1k1.5k2k01s2s
Yanıt süresiGüvenli sınır ≈ 1,200 eşzamanlı kullanıcıÖrnek gösterim
Geliştiriliyor

Her projeye özel ayarlar

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.

Planlandı

Daha derin güvenlik kontrolleri

Bugünkü gizli anahtar tespitine ek olarak SQL enjeksiyonu, eval ve doğrulanmamış girdi gibi riskli kalıpları işaretler.

Planlandı

Tek tıkla düzeltme

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.

Planlandı

Otomatik pull request incelemesi

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ükle

Takvim ve ayrıntılar geliştirme sırasında değişebilir.

ücretsiz · VS Code'da aç

Ekibinize adil kalite raporları verin

CleanLens'i yükleyin, analizi çalıştırın ve her sorunu gerçekte kimin eklediğini öğrenin.

VS Code Marketplace'ten yükle