TypeScript'in tip sistemi, kod çalışmadan önce önemli bir hata sınıfını yakalar: tip uyuşmazlıkları, eksik özellikler, yanlış fonksiyon imzaları. Ancak yakalayamadığı her şey şunlardır: verilerin uygulama üzerinden nasıl aktığına bağlı güvenlik açıkları, ekip sınırları bulanıklaştıkça zamanla biriken mimari ihlaller, çağırıcıları kaldırıldıktan çok sonra bile kod tabanında kalan ölü dışa aktarımlar ve doğru derlenen ancak belirli çalışma zamanı koşullarında başarısız olan eşzamansız programlama hataları. Statik analiz araçları bu boşlukları doldurur ve doğru kombinasyonu seçmek, aslında neyi bulmaya çalıştığınıza bağlıdır.
Bu kılavuz, 2026 yılında TypeScript ekipleri için önemli olan araçları kapsar: kod denetimi katmanı (typescript-eslint ile ESLint, Biome, OxcLint), güvenlik katmanı (Semgrep, Snyk Code, SonarQube), mimari katman (Dependency-Cruiser, Deptrac, Nx), ölü kod katmanı (Knip) ve derin analiz katmanı (ts-morph, TypeScript Derleyicisinin kendisi). Her biri için, ne işe yaradığı, nasıl yapılandırılacağı ve ne zaman doğru araç olmadığı üzerinde durulmaktadır.
Kimsenin Anlamadığı Kod Tabanları İçin Tasarlandı
SMART TS XL Kod tabanınızın tamamında meydana gelen kırıcı değişiklikleri otomatik olarak ortaya çıkarır.
Daha fazla bilgi edinTypeScript Statik Analiz Araçları: Karşılaştırma Tablosu
Tek tek araçlara geçmeden önce, aşağıdaki tabloda her aracın temel işlevi, CI uygunluğu ve ideal kullanım senaryosu gösterilmektedir. Hiçbir tek araç tüm boyutları kapsamaz; etkili TypeScript kalite analizi, birkaç aracın bir arada kullanılmasını gerektirir.
| araç | Birincil fonksiyon | CI Uygun | Ücret | En |
|---|---|---|---|---|
| ESLint + typescript-eslint | Kod denetimi, stil, tür duyarlı kurallar | Evet | Ücretsiz | Ekip genelindeki kurallar, asenkron tip güvenliği |
| biyom | Kod denetimi + biçimlendirme | Evet | Ücretsiz | ESLint + Prettier alternatifi, hız |
| Öküz tüyü | Lint temizleme (ESLint uyumlu) | Evet | Ücretsiz | Hızlı lint sürelerine ihtiyaç duyan monorepo'lar |
| TypeScript Derleyicisi (tsc) | Tip kontrolü | Evet | Ücretsiz | Tip hataları, katı mod uygulaması |
| Segrep | SAST, özel desenler | Evet | Ücretsiz + ücretli | Güvenlik taraması, özel kuruluş kuralları |
| Snyk Kodu | SAST, bağımlılık güvenliği | Evet | Ücretsiz + ücretli | Öncelik güvenliğe verilen önem, IDE entegrasyonu |
| SonarQube / SonarCloud | Kalite kontrol noktaları, trend takibi | Evet | Ücretsiz + ücretli | Kurumsal kalite gösterge panelleri |
| SonarLint | IDE düzeyinde kalite geri bildirimi | Yalnızca IDE | Ücretsiz | Satır içi güvenlik ve kalite ipuçları |
| Bağımlılık-Yolcu Gemisi | Bağımlılık grafiği uygulaması | Evet | Ücretsiz | Mimari kural doğrulama |
| Deptrac | Katman sınırı uygulaması | Evet | Ücretsiz | Temiz mimari, DDD sınırları |
| Nx | Monorepo bağımlılık yönetimi | Evet | Ücretsiz + ücretli | Monorepo modül sınırları |
| bıçak | Ölü kod ve kullanılmayan dışa aktarımlar | Evet | Ücretsiz | Büyük ölçekte kullanılmayan kod miktarını azaltmak |
| ts-morf | Programatik TS AST analizi | Seçici | Ücretsiz | Özel analiz, kod dönüştürme, araçlar |
Katman 1: Tüy Alma ve Stil
typescript-eslint ile ESLint
ESLint, TypeScript kod denetiminin temelini oluşturmaya devam ediyor. typescript-eslint Bu paket, TypeScript'in tür bilgilerine erişim sağlar ve tür bağlamı gerektiren kuralları uygulayabilir; bunların en değerlileri, yaygın Promise hatalarını yakalayan asenkron işlemlere özgü kurallardır.
darbe
npm install --save-dev typescript-eslint
javascript
// eslint.config.js
import tseslint from "typescript-eslint";
export default tseslint.config(
...tseslint.configs.strictTypeChecked,
{
languageOptions: {
parserOptions: {
project: true,
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
// Async safety rules -- highest value TypeScript-specific rules
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/await-thenable": "error",
"@typescript-eslint/no-misused-promises": "error",
"@typescript-eslint/require-await": "warn",
// Type safety
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-unsafe-assignment": "error",
"@typescript-eslint/no-unsafe-return": "error",
},
}
);
Yukarıdaki dört eşzamansız kural, typescript-eslint'in düz ESLint'e göre sağladığı en yüksek katma değerdir. Bunlar şunları yakalar: işlenmemiş Promise'ler (kayan Promise'ler), await Promise olmayan değerlere, senkron fonksiyonlar bekleyen geri çağrılara iletilen Promise'lara ve asla kullanmayan asenkron fonksiyonlara uygulanır. awaitBunlar, derlendiğinde sorunsuz çalışan ancak belirli koşullar altında çalışma zamanı hatalarına yol açan kalıplardır.
ESLint'in yapamadığı şeyler : dosyalar arası veri akışı analizi, mimari sınır uygulama, güvenlik açığı takibi veya ölü dosya dışa aktarma tespiti. Bunlar için aşağıdaki diğer katmanlar gereklidir.
Biome: Modern ESLint + Daha Güzel Alternatifi
Biome, ESLint ve Prettier'ı, 25-35 kat daha hızlı çalışan tek bir Rust tabanlı ikili dosya ile değiştiriyor. JavaScript, TypeScript, JSX ve JSON'u destekliyor. ESLint'in eklenti karmaşıklığından ve büyük kod tabanlarındaki yavaş performansından rahatsız olan yeni projeler veya ekipler için Biome, en güçlü modern alternatiftir.
darbe
npm install --save-dev --save-exact @biomejs/biome
npx @biomejs/biome init
darbe
# Check and format in one pass
npx @biomejs/biome check --write src/
# CI mode -- no modifications, exit non-zero on any finding
npx @biomejs/biome ci src/
Biome'un eklenti ekosistemi ESLint'inkinden daha küçüktür; bu da kapsamlı özel kurallara veya çerçeveye özgü eklentilere sahip ekipler için önemlidir. Yalnızca temel ESLint kurallarını ve Prettier biçimlendirmesini kullanan ekipler için Biome, çok daha kısa bir yürütme süresiyle eşdeğer kapsam sağlar.
OxcLint: Hız Odaklı ESLint Uyumluluğu
OxcLint (Oxc projesinin bir parçası), ESLint uyumlu kuralları 50-100 kat daha hızlı çalıştırır. Tam ESLint ekosisteminin yerini almaz, ancak lint süresinin darboğaz olduğu CI işlem hatları için en hızlı seçenek olarak hizmet eder.
darbe
npm install --save-dev oxlint
npx oxlint src/
OxcLint, standart ESLint'in dakikalar sürdüğü ve geri bildirim döngüsü gecikmesinin çekme isteği kalitesini düşürdüğü büyük monorepolar için doğru seçimdir. ESLint'in yerini almak yerine onunla birlikte en iyi şekilde çalışır; hızlı geri bildirim yolu için OxcLint'i, birleştirme öncesi aşamada tam kural kapsamı için ise ESLint'i kullanın.
Katman 2: Tür Kontrolü, TypeScript Derleyicisi
TypeScript derleyicisi (tscBu sadece bir derleme aracı değil, aynı zamanda tip düzeyinde doğruluk için birincil statik analiz motorudur. Katı modu etkinleştirmek, gerçek dünyadaki hataların çoğunu yakalayan ayarları etkinleştirir:
json
{
"compilerOptions": {
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"exactOptionalPropertyTypes": true,
"useUnknownInCatchVariables": true
}
}
darbe
# Type-check only, no emit -- ideal for CI
npx tsc --noEmit
noUnusedLocals hem de noUnusedParameters Derleyici düzeyinde kullanılmayan değişkenleri ve fonksiyon parametrelerini yakalayın. useUnknownInCatchVariables (TypeScript 4.4+) türleri istisnaları şu şekilde yakaladı: unknown ziyade anyBu durum, kullanımdan önce açık bir şekilde tür daraltmayı zorunlu kılıyor.
TypeScript kontrol akışı analizi Bu, derleyicinin koşullu dallanmalar içindeki türleri daraltmak için sağladığı yerleşik bir yetenektir. Ayrı bir araç değildir, aksine bir olanak sağlar. strict Bu mod, uygulamanın tam bir titizlikle gerçekleştirilmesini sağlar. Derleyicinin kontrol akışı analizi, tür koruyucularını anlar. typeof çekler, instanceofve ayrımcı sendika modellerini hedef aldı.
tsc sınırlaması : TypeScript derleyicisi güvenlik açıklarını, mimari sınır ihlallerini veya kullanılmayan dışa aktarımları bulmaz. Tür hatalarını bulur ve bunu kesin olarak yapar.
Katman 3: Güvenlik, TypeScript için SAST
Semgrep: Desen Tabanlı Güvenlik Taraması
Semgrep, kod kalıbı eşleştirmesi yoluyla güvenlik açıklarını bulur. TypeScript için SQL enjeksiyonunu, XSS'i, sabit kodlanmış kimlik bilgilerini ve güvenli olmayan kodları tespit edebilir. eval Kullanım hataları, prototip kirliliği ve güvensiz Express.js yapılandırmaları; doğru derlenen ancak istismar edilebilir güvenlik açıkları oluşturan kalıplardır.
tatlım
# Custom rule: flag user input in SQL queries (TypeScript)
rules:
- id: ts-sql-injection-risk
patterns:
- pattern: |
const query = `SELECT ... ${$USER_INPUT} ...`;
message: "User input directly interpolated into SQL -- use parameterized queries"
languages: [typescript]
severity: ERROR
darbe
# Run with the community TypeScript security rules
semgrep scan --config=p/typescript --config=p/owasp-top-ten src/
Semgrep, ESLint ile rekabet halinde değil, onu tamamlayıcı niteliktedir. ESLint kuralları uygular; Semgrep ise güvenlik açıklarını bulur. Güvenliğe önem veren çoğu TypeScript ekibinin her ikisini de kullanması gerekir.
Snyk Code: IDE Entegrasyonlu Makine Öğrenimi Tabanlı SAST
Snyk Code, dosya genelinde kirlilik akışlarını izleyen makine öğrenimi tabanlı bir analiz motoruyla SAST (Yazılım Tanımlama Testi) gerçekleştirir. VS Code ve JetBrains IDE'lerine entegre olarak, geliştiriciler kod yazarken bulguları doğrudan gösterir ve CI çalıştırmasını beklemeye gerek kalmaz.
darbe
npm install --save-dev snyk
npx snyk auth
npx snyk code test
Snyk Code'un geliştirici deneyimine odaklanması, IDE içi geri bildirimi, her bulgunun yanında yer alan düzeltme önerileri ve iyileştirme örnekleri, güvenlik eğitiminin güvenlik tespiti kadar önemli olduğu durumlarda onu daha iyi bir seçenek haline getiriyor.
SonarQube ve SonarLint: Kalite Kontrol Kapıları ve Trend Takibi
SonarQube, gösterge paneli, trend takibi ve çekme isteği işaretlemesi ile sürekli kod kalitesi analizi sağlar. TypeScript için hataları, kod kokularını, güvenlik açıklarını ve tekrarları tespit eder. SonarLint, SonarQube kurallarını yerel olarak ortaya çıkaran IDE uzantısıdır.
TypeScript kullanan ekipler için SonarCloud (bulut tabanlı sürüm) daha basit bir yoldur: herkese açık depolar için ücretsizdir ve GitHub Actions veya GitLab CI aracılığıyla dakikalar içinde CI entegrasyonu sağlanır.
tatlım
# .github/workflows/sonar.yml
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SonarQube'un ham kod denetimine göre en büyük avantajı, trend modelidir: kod kalitesi zaman içinde nasıl gelişiyor, hangi bileşenler bozuluyor ve her çekme isteği için yeni kod kalitesi puanı nedir? Bu yönetim odaklı metrikler, SonarQube'un ESLint ve Semgrep'ten farklı olarak sunduğu özelliklerdir.
Katman 4: Mimari Analiz
Bağımlılık Gezgini: Modül Sınır Kurallarını Uygula
Dependency-Cruiser, içe aktarma grafiğinizin tanımlanmış mimari kurallara uygun olup olmadığını doğrular. Görsel bağımlılık grafikleri oluşturur ve kod modül sınır kısıtlamalarını ihlal ettiğinde CI'yı başarısız kılar.
javascript
// .dependency-cruiser.cjs
module.exports = {
forbidden: [
{
name: "no-circular",
severity: "error",
comment: "Circular dependencies make code hard to test and maintain",
from: {},
to: { circular: true },
},
{
name: "no-ui-in-domain",
severity: "error",
comment: "Domain modules must not import from UI layer",
from: { path: "^src/domain" },
to: { path: "^src/ui" },
},
{
name: "no-external-in-shared",
severity: "warn",
comment: "Shared utilities should minimize external dependencies",
from: { path: "^src/shared" },
to: { pathNot: "^(src|node_modules/(lodash|date-fns))" },
},
],
};
darbe
npx depcruise --validate .dependency-cruiser.cjs src/
Dependency-Cruiser, Arama Konsolu verilerindeki "react dependency analysis cli tool" sorgularına doğrudan yanıt veren, TypeScript/React projelerinde bağımlılık grafikleri oluşturmak ve doğrulamak için standart bir araçtır.
Deptrac: Katman Bazlı Sınır Uygulaması
Deptrac, mimari katmanları zorunlu kılarak, kalıcılık kodunun sunumdan içe aktarma yapamamasını, etki alanı nesnelerinin altyapıya bağımlı olmamasını ve modül sınırlarının tüm kod tabanında korunmasını sağlar.
tatlım
# deptrac.yaml
parameters:
layers:
- name: Domain
collectors:
- type: directory
value: src/domain
- name: Application
collectors:
- type: directory
value: src/application
- name: Infrastructure
collectors:
- type: directory
value: src/infrastructure
ruleset:
Domain:
- ~Infrastructure # Domain must not depend on Infrastructure
Application:
- Domain
Infrastructure:
- Application
- Domain
Deptrac, katman izolasyonunun sadece bir tercih değil, bir tasarım kısıtlaması olduğu Temiz Mimari, DDD veya Altıgen Mimari kalıplarını izleyen projelerde en değerlidir.
Nx: Monorepo Düzeyinde Bağımlılık Yönetimi
TypeScript monorepoları için Nx, depodaki tüm projeler genelinde modül sınır uygulaması, etkilenen derleme tespiti ve bağımlılık grafiği görselleştirmesi sağlar.
json
// .eslintrc.json -- Nx module boundary rules
{
"rules": {
"@nx/enforce-module-boundaries": [
"error",
{
"allow": [],
"depConstraints": [
{ "sourceTag": "scope:shared", "onlyDependOnLibsWithTags": ["scope:shared"] },
{ "sourceTag": "scope:feature", "onlyDependOnLibsWithTags": ["scope:shared", "scope:feature"] },
{ "sourceTag": "scope:app", "onlyDependOnLibsWithTags": ["scope:shared", "scope:feature"] }
]
}
]
}
}
Nx'in affected Komutlar yalnızca değiştirilen modüllerle ilgili testleri ve kod denetimini çalıştırarak büyük monorepolarda CI süresini önemli ölçüde azaltır.
Katman 5: Ölü Kod Tespiti
Knip: Kullanılmayan Dışa Aktarımları, Dosyaları ve Bağımlılıkları Bulma
Knip, kullanılmayan dışa aktarımları, kullanılmayan dosyaları ve kullanılmayan işlemleri belirlemek için tüm modül grafiğini analiz eder. package.json ESLint'in bağımlılıklar sınıfı, kod birikiminin bir türüdür. no-unused-vars Dosya içindeki verilere baktığı için yakalanamaz.
darbe
npm install --save-dev knip
npx knip
json
// knip.json
{
"entry": ["src/index.ts", "src/**/*.test.ts"],
"project": ["src/**/*.ts"],
"ignore": ["src/generated/**"],
"ignoreDependencies": ["vitest"]
}
Knip, SC verilerinde doğrudan "dead code detection unused exports javascript typescript" şeklinde aranabilir. TypeScript projelerinde modül düzeyinde ölü kod tespiti için mevcut en yetenekli araçtır.
Katman 6: Programatik Analiz, ts-morph
ts-morph, TypeScript AST'sine karşı özel analiz, kod dönüştürme ve araçlar yazmayı kolaylaştıran bir TypeScript derleyici API sarmalayıcısıdır. SC verilerinde doğrudan "ts-morph" ve "ts morph" olarak aranır.
daktilo ile yazılmış yazı
import { Project } from "ts-morph";
const project = new Project({ tsConfigFilePath: "tsconfig.json" });
// Find all async functions that never await anything
const suspiciousAsyncFns: string[] = [];
for (const sourceFile of project.getSourceFiles()) {
for (const fn of sourceFile.getFunctions()) {
if (fn.isAsync()) {
const hasAwait = fn.getDescendantsOfKind(
SyntaxKind.AwaitExpression
).length > 0;
if (!hasAwait) {
suspiciousAsyncFns.push(
`${sourceFile.getFilePath()}:${fn.getName() ?? "anonymous"}`
);
}
}
}
}
console.log("Async functions with no await:", suspiciousAsyncFns);
ts-morph kullanıma hazır bir analiz aracı değil, bir analiz aracı oluşturmak için kullanılan bir kütüphanedir. Mevcut araçların desteklediğinin ötesinde özel analizlere ihtiyaç duyan ekipler için uygundur: geçiş komut dosyaları, özel mimari doğrulayıcılar, otomatik yeniden düzenleme veya kod oluşturma işlem hatları.
TypeScript Async/Await Statik Analizi
Arama Konsolu verileri, "typescript static analysis async await paper tool" ve "typescript static analysis async await vulnerability paper tool" etrafında belirli bir sorgu kümesi göstermektedir. Bunlar, async programlama hatalarını tür düzeyinde anlayan araçlar arayan uygulayıcıları yansıtmaktadır.
Üretim ortamındaki TypeScript ekipleri için pratik çözüm, typescript-eslint'in asenkron işlemlere özgü dört kuralıdır (no-floating-promises, await-thenable, no-misused-promises, require-await) ile kombine strictNullChecks hem de useUnknownInCatchVariablesBu ikisi birlikte, akademik araştırma araçlarına ihtiyaç duymadan en sık karşılaşılan eşzamansız işlem türü hatalarını yakalar.
Asenkron güvenlik açığı kalıpları üzerine güvenlik araştırması yapan ekipler için TAJS ve Jelly, JavaScript'in asenkron yürütme semantiğini modelleyen akademik statik analiz araçlarıdır, ancak bunlar araştırma araçlarıdır, üretim geliştirme araçları değildir.
Angular ve React: Çerçeveye Özgü Statik Analiz
Angular ekipleri için, @angular-eslint Angular'a özgü, bileşen kalıplarını, şablon analizini ve servis enjeksiyonunu kapsayan kod denetleme kuralları sağlar. Yukarıdaki ESLint + typescript-eslint yapılandırmasıyla entegre olur.
React ekipleri için, eslint-plugin-react, eslint-plugin-react-hooks, ve eslint-plugin-jsx-a11y Eklentiler, React'e özgü kalıpları kapsar. Dependency-Cruiser, React'e özgü bağımlılık grafiği analizini ele alır ve SC verilerindeki "react dependency analysis cli tool" sorgularının arkasındaki araçtır.
IDE Entegrasyonu: VS Code ve JetBrains için Araçlar
"VS Code entegrasyonu için en iyi kod kalitesi araçları" ve "IDE entegrasyonu için en iyi kod kalitesi araçları" sorguları gerçek bir ihtiyacı yansıtıyor: Sürekli entegrasyon (CI) geri bildirimi, davranışı değiştirmek için çok geç kalıyor. IDE entegre analizi, en sıkı geri bildirim döngüsünü sağlıyor.
VS Code : Rust-analyzer Clippy eşliği ile ESLint uzantısı, satır içi SonarQube kuralları için SonarLint uzantısı, güvenlik bulguları için Snyk uzantısı ve tür düzeyinde geri bildirim için yerleşik TypeScript dil hizmeti.
JetBrains (WebStorm/IntelliJ) : WebStorm, tür hatalarını doğrudan ortaya çıkaran yerleşik TypeScript desteğinin yanı sıra ESLint, Prettier ve SonarLint ile entegrasyon sunar. Yerleşik inceleme sistemi, ESLint kurallarıyla aynı kalıpların çoğunu kapsar.
TypeScript statik analiz kapsamını en üst düzeye çıkarmak için VS Code yapılandırması :
json
// .vscode/settings.json
{
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.validate": ["javascript", "typescript", "typescriptreact"],
"sonarlint.connectedMode.project": {
"connectionId": "my-sonarcloud",
"projectKey": "my-org_my-project"
}
}
Ne kadar SMART TS XL TypeScript Analizini Kurumsal Çapta Genişletiyor
Yukarıdaki araçlar, bir TypeScript projesi içindeki TypeScript'i kapsar. TypeScript hizmetlerinin COBOL toplu iş programları, Java API'leri, Python veri işlem hatları veya eski ana bilgisayar sistemleriyle etkileşimde bulunduğu kuruluşlarda, tek dilli araçlar dil sınırlarını aşan bağımlılıkları göremez.
SMART TS XL'S statik kod analizi Bu kitap, kurumsal ortamdaki diğer tüm dillerin yanı sıra TypeScript'i de kapsar: COBOL, JCL, Java, Python, RPG, SQL ve bunların tümü arasında birleşik bir bağımlılık modeli oluşturur. Bir TypeScript servisi, bir COBOL programı tarafından desteklenen bir API'yi çağırdığında, SMART TS XL Bu ilişkiyi takip edebilir ve dahil edebiliriz. etki analizi Herhangi bir bileşende değişiklik yapılmadan önce.
Kurumsal arama özelliği, çok dilli kod tabanının tamamını sorgulanabilir hale getirir: Belirli bir modülün her TypeScript içe aktarımını, bir TypeScript servisinin çağırdığı her Java yöntemini, TypeScript tarafından kullanılan bir API'ye veri sağlayan her COBOL copybook'unu, saniyeler içinde, milyonlarca satır kod arasında ve herhangi bir dil kombinasyonunda bulabilirsiniz.
TypeScript'i daha geniş bir portföyün parçası olarak kullanan kurumsal ekipler için, SMART TS XL mimari görünürlük ve diller arası uyumluluk sağlar bağımlılık eşlemesi Bu, TypeScript'e özgü araçların sistemin kendi bölümlerine bakmalarını sağlar. SMART TS XL Her şeyi görüyor.
Doğru Yığın Oluşturmak
TypeScript için tüm kalite boyutlarını kapsayan tek bir araç yoktur. Doğru yaklaşım katmanlıdır ve her katman farklı bir problem sınıfını hedef alır:
Minimum uygulanabilir teknoloji yığını (yeni proje, küçük ekip):
- TypeScript katı modu
- typescript-eslint async kurallarıyla ESLint
npm auditbağımlılık zafiyetleri için
Üretim uygulamaları yığını (orta ölçekli ekip, güvenlik bilinci yüksek):
- Yukarıdaki her şey artı:
- Biçimlendirme için Biome veya Prettier kullanın.
- SAST güvenliği için Semgrep
- Ölü kod için kesme
- SonarCloud, kaliteli trend görünürlüğü için.
Kurumsal / monorepo yığını (büyük ekip, mimari kısıtlamalar):
- Yukarıdaki her şey artı:
- Modül sınır uygulaması için Bağımlılık Gezgini
- Monorepo etkilenen derleme optimizasyonu için Nx
- Katman sınırı doğrulaması için Deptrac
- SonarQube (kendi sunucunuzda barındırılan) yerel kalite kontrolleri için
Çok dilli kurumsal yazılım yığını (TypeScript ve eski sistemler birlikte):
- Yukarıdaki her şey artı:
- SMART TS XL diller arası etki analizi ve bağımlılık haritalaması için