TypeScript Formatlama ve Linting Araçları Karşılaştırması: Biome, Oxlint, ESLint ve Prettier
Modern TypeScript linting ve formatlama araçlarının karşılaştırması: ESLint, Prettier, Biome ve Oxlint için performans ölçümleri, konfigürasyon ve migration.
TypeScript araç ekosistemi, Rust tabanlı alternatiflerin sahneye çıkmasıyla değişti. Yeni bir projede makul varsayılan Biome: tek binary linting, formatlama ve import düzenlemeyi birlikte çözüyor ve ESLint + Prettier’a göre 15-25x daha hızlı çalışıyor. Çalışan bir ESLint kurulumu olan mevcut kod tabanlarında ilk adım, ESLint’in yanına Oxlint eklemek; güvendiğiniz konfigürasyona dokunmadan ölçülebilir bir hız kazancı sağlıyor.
Bu varsayılanın bir sınırı var. Rust tabanlı araçlar hız kazanırken ekosistem genişliğinden ve type-aware kural kapsamından ödün veriyor: Biome’un Biotype’ı typescript-eslint kurallarının yaklaşık %75-85’ini kapsıyor, Oxlint’in tsgolint’i ise 43 kural sunuyor. Bu boşlukların önem taşıdığı yerlerde doğru cevap hâlâ ESLint + Prettier.
Geleneksel Kurulumun Maliyeti#
TypeScript geliştiricileri geleneksel araçlarla çeşitli pratik zorluklarla karşılaşıyor:
CI/CD Pipeline Etkisi: ESLint + Prettier, 10k satırlık bir monorepo’yu lint etmek için 3-5 saniye sürebilir. Günlük yüzlerce build çalıştıran organizasyonlarda bu toplanır.
Konfigürasyon Karmaşıklığı: Geleneksel kurulumlar genellikle 4+ konfigürasyon dosyası gerektirir: eslint.config.js, .prettierrc, tsconfig.json ve çeşitli plugin ayarları.
Dependency ve Koordinasyon Yükü: Yaygın plugin’lerle ESLint + Prettier, 100’den fazla npm paketi çekebilir, kurulum süresini ve bakım yükünü artırır; iki aracın formatlama kuralları konusunda birbirine girmesini önlemek de eslint-config-prettier veya benzer bir katman gerektirir.
Type-Aware Linting Maliyeti: Tam tip kontrolü ile typescript-eslint, daha büyük kod tabanlarında linting süresine 10-20 saniye ekleyebilir.
Linter’lar, Formatter’lar ve Hepsi Bir Arada Araçlar#
Araçlar üç kategoriye ayrılıyor: Linter’lar (kod kalitesi), Formatter’lar (kod stili) ve Hepsi Bir Arada çözümler.
Linter’lar#
ESLint, 2013’ten beri JavaScript/TypeScript linting standardı olmuştur. Mevcut v9.x sürümü flat config’i (eslint.config.js) varsayılan yapar, eski .eslintrc formatı kullanım dışı bırakılmıştır. Plugin tabanlı mimarisi 1000’den fazla plugin’e uzanıyor, typescript-eslint tam TypeScript desteği veriyor, IDE entegrasyonu olgun; v10.0.0-rc.0 ile geliştirme hâlâ aktif.
Oxlint#
Oxlint, maksimum performansla sadece linting’e odaklanan Oxc projesinin parçası; sürüm 1.0 Haziran 2025’te yayınlandı. Sadece linter, formatlama yapmıyor; 655’den fazla yerleşik kuralı ve typescript-go tabanlı tsgolint ile type-aware linting’i var. Benchmark’larda ESLint’ten 50-100x hızlı çıkıyor, JS plugin desteği ise Ekim 2025’te önizlemeye girdi.
Formatter’lar#
Prettier, 2017’de opinionated formatter kategorisini oluşturdu. Sürüm 3.7 (Kasım 2025), gelişmiş TypeScript formatlama tutarlılığıyla istikrarlı evrimi sürdürüyor; sadece formatlama yapıyor, linting yok, Biome ile %97 formatlama uyumluluğuna ulaşıyor. v3.6, gerçek bir hız sıçraması getiren --experimental-cli’yi tanıttı, plugin ekosistemi de TypeScript’in çok ötesine uzanıyor.
dprint#
dprint, Prettier’ın sabit görüşlerini WebAssembly tabanlı bir plugin sistemiyle değiştiren Rust tabanlı pluggable formatlama platformu: yüksek derecede yapılandırılabilir, TypeScript, JSON, Markdown, TOML, CSS ve daha fazlasını destekliyor, uyumluluk için Prettier veya Biome plugin’lerini yükleyebiliyor, konfigürasyonu URL importlarıyla paylaşabiliyor.
oxfmt (Alpha)#
Oxc ekosisteminin parçası, oxfmt şu anda alpha aşamasında Prettier uyumlu bir formatter: Prettier’dan 30x, Biome’dan 3x hızlı; JS/TS(X), JSON, YAML, HTML, CSS, GraphQL, Markdown desteğine ve native Tailwind class sıralamasına sahip. Prettier pluginleri ve bazı konfigürasyon seçenekleri hâlâ eksik.
Hepsi Bir Arada Çözümler#
Biome: Birleşik Araç Zinciri#
Biome, 2023’te Rome’un community fork’u olarak ortaya çıktı. Sürüm 2.x (Haziran 2025’te yayınlandı) stabil, feature-complete sürüm.
Temel Özellikler:
- Linter, formatter ve import organizer’ı birleştiren tek binary
- Performans için Rust ile yazılmış
- ESLint, typescript-eslint ve diğer kaynaklardan 420’den fazla yerleşik kural
- Biotype ile type-aware linting (typescript-eslint kurallarının yaklaşık %75-85’ini kapsayan)
- v2.0’da tanıtılan plugin sistemi
Geniş Oxc Ekosistemi#
Oxlint, Oxc projesinin sadece bir parçası. Ekosistem, paylaşılan Rust altyapısı üzerine kurulu birçok yüksek performanslı araç içeriyor:
| Araç | Amaç | Performans |
|---|---|---|
| oxc-parser | JS/TS(X) parsing | SWC’den 3x hızlı, tüm Test262 testlerini geçiyor |
| oxfmt | Kod formatlama (alpha) | Prettier’dan 30x, Biome’dan 3x hızlı |
| oxc-transform | Transpilasyon | TypeScript, JSX, ES2015 lowering, React Fast Refresh |
| oxc-resolver | Modül çözümleme | enhanced-resolve’dan 28x hızlı |
| oxc-minify | Kod minifikasyonu | Dead code elimination, mangling |
Oxlint kullanan projeler için, bu araçlar olgunlaştıkça tamamen Rust tabanlı bir araç zincirine geçiş yolu sunuyor.
Performans Analizi#
Ham Hız Karşılaştırması#
10k satırlık bir monorepo’da sayılar tipik olarak şu aralıklara oturuyor:
| Araç | Yaklaşık Süre | ESLint’e Göre |
|---|---|---|
| ESLint (type-aware olmadan) | 3-5s | baseline |
| ESLint + typescript-eslint | 10-20s | 3-5x daha yavaş |
| Prettier | 2-3s | benzer |
| Biome | ~200ms | 15-25x daha hızlı |
| Oxlint | ~70ms | 50-100x daha hızlı |
Önemli uyarı: Sonuçlarınız kod tabanı yapısı, kural konfigürasyonu ve donanıma göre değişecektir. Her zaman gerçek projenizde benchmark yapın.
Type-Aware Linting Performansı#
Type-aware kurallar, floating promise tespit etme veya hatalı tip assertion’ları gibi değerli kontroller sağlar, ancak performans maliyetiyle gelir:
| Araç | Vue Core Benchmark | Sentry Benchmark |
|---|---|---|
| ESLint + typescript-eslint | ~21s | ~55s |
| Oxlint + tsgolint | ~2.5s | ~4.4s |
| Biome + Biotype | ~3s | ~6s |
Rust tabanlı araçlar type-aware linting için 7-12x iyileştirme gösteriyor, ancak değişen kural kapsamıyla.
CI/CD Etkisi#
100 build/gün çalıştıran bir takım için 10k satırlık kod tabanında:
| Araç | Build başına lint süresi | Aylık CI dakikası |
|---|---|---|
| ESLint + Prettier | ~5s | ~250 dk |
| Biome | ~200ms | ~10 dk |
| Oxlint | ~70ms | ~3.5 dk |
CI dakikalarındaki azalma anlamlı ancak nadiren birincil karar faktörü. Daha hızlı yerel geri bildirimden gelen geliştirici deneyimi iyileştirmeleri genellikle daha etkili.
Özellik Karşılaştırma Matrisi#
Linter Karşılaştırması#
| Özellik | ESLint | Oxlint | Biome |
|---|---|---|---|
| Yerleşik kurallar | ~300 (core) | 655+ | 420+ |
| Type-aware kurallar | 59 (typescript-eslint) | 43 (tsgolint) | ~%75-85 (Biotype) |
| React hooks kuralları | Plugin ile | Yerleşik | Yerleşik |
| React Compiler kuralları | eslint-plugin-react-hooks@6.0+ | Hayır | Hayır |
| Erişilebilirlik (a11y) | eslint-plugin-jsx-a11y | Yerleşik | Yerleşik |
| Vue/Svelte/Astro | Plugin’ler ile | Sınırlı | Deneysel (v2.3+) |
| CSS linting | stylelint ile | Hayır | Evet |
| GraphQL | Plugin ile | Hayır | Evet |
| Otomatik düzeltme | Evet | Sınırlı | Evet |
| Plugin ekosistemi | 1000+ plugin | JS plugin’leri (önizleme) | Sınırlı (v2.0+) |
| ESLint’e göre hız | baseline | 50-100x hızlı | 15-25x hızlı |
Formatter Karşılaştırması#
| Özellik | Prettier | Biome | dprint | oxfmt (alpha) |
|---|---|---|---|---|
| Felsefe | Opinionated | Opinionated | Yapılandırılabilir | Prettier uyumlu |
| Dil | JavaScript | Rust | Rust | Rust |
| TypeScript desteği | Evet | Evet | Evet | Evet |
| JSX/TSX | Evet | Evet | Evet | Evet |
| JSON/YAML/Markdown | Evet | Evet | Evet (plugin’ler) | Evet |
| CSS/HTML | Evet | Evet | Evet (Malva plugin) | Evet |
| GraphQL | Evet | Evet | Plugin ile | Evet |
| Tailwind sıralama | Plugin ile | Hayır | Hayır | Native |
| Plugin sistemi | Evet (kapsamlı) | Sınırlı | WebAssembly | Hayır |
| Konfigürasyon | Minimal | Orta | Kapsamlı | Minimal |
| Prettier’a göre hız | baseline | ~25x hızlı | ~25x hızlı | ~30x hızlı |
| Olgunluk | Stabil | Stabil | Stabil | Alpha |
Kombine Araç Karşılaştırması#
| Özellik | ESLint + Prettier | Biome | Oxlint + oxfmt | Oxlint + dprint |
|---|---|---|---|---|
| Linting | Evet | Evet | Evet | Evet |
| Formatlama | Evet | Evet | Evet (alpha) | Evet |
| Import Sıralama | Plugin ile | Evet | Hayır | Plugin ile |
| Konfigürasyon dosyaları | 2-4 dosya | 1 dosya | 2 dosya | 2 dosya |
| Bağımlılıklar | 100+ paket | 1 paket | 2 paket | 2 paket |
| Type-aware | Tam | ~%75-85 | 43 kural | 43 kural |
| Olgunluk | Olgun | Stabil | Karışık | Stabil |
Type-Aware Kural Kapsamı#
Type-aware kurallar, yalnızca söz dizimine bakan analizin kaçırdığı ince hataları yakalıyor; migration’ın güvenli olup olmadığına bu kapsam karar veriyor:
typescript-eslint (ESLint): 50’den fazla type-aware kuralla tam TypeScript tip sistemi kapsamı.
Biotype (Biome): typescript-eslint kurallarının yaklaşık %75-85’ini kapsayan özel tip sentezleyici. İlk yayınlanan kural: noFloatingPromises. Biome’un TypeScript derleyicisi kullanmadığını, bu nedenle edge case’lerin farklı olabileceğini unutmayın.
tsgolint (Oxlint): typescript-go tabanlı (TypeScript v7.0’ın temeli), şu anda 43 type-aware kural sunuyor. Devam eden TypeScript takım optimizasyonlarından yararlanıyor.
Konfigürasyon Örnekleri#
Geleneksel ESLint + Prettier Kurulumu#
// eslint.config.js (ESLint v9 flat config)
import eslint from "@eslint/js";
import tseslint from "typescript-eslint";
import reactPlugin from "eslint-plugin-react";
import reactHooksPlugin from "eslint-plugin-react-hooks";
import prettierConfig from "eslint-config-prettier";
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.strictTypeChecked,
{
languageOptions: {
parserOptions: {
project: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
reactPlugin.configs.flat.recommended,
reactPlugin.configs.flat["jsx-runtime"],
{
plugins: {
"react-hooks": reactHooksPlugin,
},
rules: reactHooksPlugin.configs.recommended.rules,
},
prettierConfig,
);
// .prettierrc
{
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5"
}
Biome Konfigürasyonu#
// biome.json
{
"$schema": "https://biomejs.dev/schemas/latest/schema.json",
"assist": {
"actions": {
"source": {
"organizeImports": "on"
}
}
},
"linter": {
"enabled": true,
"rules": { "recommended": true }
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"semicolons": "always",
"trailingCommas": "es5"
}
}
}
Oxlint Konfigürasyonu#
// oxlint.json
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"rules": {
"no-unused-vars": "warn",
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn"
},
"plugins": ["react", "react-hooks", "typescript"]
}
dprint Konfigürasyonu#
// dprint.json
{
"typescript": {
"lineWidth": 100,
"indentWidth": 2,
"useTabs": false,
"semiColons": "always",
"quoteStyle": "preferSingle",
"trailingCommas": "onlyMultiLine"
},
"json": {},
"markdown": {},
"includes": ["**/*.{ts,tsx,js,jsx,json,md}"],
"excludes": ["**/node_modules", "**/dist"]
}
Konfigürasyon karmaşıklığı farkı dikkat çekici: Biome ve Oxlint tek bir JSON dosyası gerektirirken, ESLint + Prettier genellikle birden fazla dosya ve plugin koordinasyonu içerir.
React ve React Native Tarafı#
React Desteği#
Tüm araçlar React/JSX’i iyi handle ediyor:
| Özellik | ESLint | Biome | Oxlint |
|---|---|---|---|
| JSX/TSX parsing | Evet | Evet | Evet |
| React hooks kuralları | Tam (eslint-plugin-react-hooks) | %90 yerleşik | Yerleşik |
| React Compiler kuralları | Evet (eslint-plugin-react-hooks@6.0+) | Hayır | Hayır |
| Erişilebilirlik (a11y) | eslint-plugin-jsx-a11y | Yerleşik | Yerleşik |
| React refresh kuralları | Evet | Evet | Evet |
React Native Özel Konfigürasyon#
React Native için Biome:
// biome.json
{
"files": {
"include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"]
},
"javascript": {
"parser": {
"unsafeParameterDecoratorsEnabled": true
},
"globals": ["__DEV__", "fetch", "FormData"]
},
"linter": {
"rules": {
"style": {
"noNonNullAssertion": "warn"
},
"correctness": {
"noUnusedVariables": "warn",
"useHookAtTopLevel": "error"
}
}
}
}
Expo SDK 53+ ile ESLint:
// eslint.config.js
const expoConfig = require("eslint-config-expo/flat");
const { defineConfig } = require("eslint/config");
module.exports = defineConfig([
expoConfig,
{
rules: {
"react-native/no-unused-styles": "error",
"react-native/split-platform-components": "warn",
"react-native/no-inline-styles": "warn",
},
},
]);
React Native projeleri için öneri:
- Yeni projeler: Basitlik için Biome’u düşünün
- Expo projeleri: Kapsamlı destek için eslint-config-expo kullanın
- Hız-kritik CI: Hızlı ilk geri bildirim için Oxlint ekleyin
- Tip güvenliği önceliği: Tam kapsam için typescript-eslint’i tutun
IDE Entegrasyonu#
VS Code#
Biome VS Code Uzantısı (v3):
// .vscode/settings.json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "biomejs.biome",
"[javascript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"editor.codeActionsOnSave": {
"quickfix.biome": "explicit",
"source.organizeImports.biome": "explicit"
}
}
Özellikler arasında multi-root workspace desteği, isimsiz dosyalar için tek dosya modu ve otomatik sürüm yeniden yükleme bulunuyor.
IDE Destek Özeti#
| Araç | VS Code | WebStorm/IntelliJ | Neovim |
|---|---|---|---|
| ESLint | Resmi uzantı | Yerleşik | Yerleşik LSP |
| Prettier | Resmi uzantı | Yerleşik | Plugin ile |
| Biome | Resmi uzantı (v3) | Resmi plugin | biome-lsp |
| Oxlint | Topluluk uzantısı | Resmi destek yok | Sadece CLI |
WebStorm/IntelliJ kullanıcıları Biome entegrasyonunun VS Code’daki kadar olgun olmadığını bilmeli: manuel “Biome ile Formatla” aksiyonu yok, sadece kaydetmede formatlama var.
Monorepo Konfigürasyonu#
Turborepo + Biome#
// turbo.json
{
"tasks": {
"lint": {
"dependsOn": ["^build"],
"outputs": [],
"cache": true
},
"format": {
"outputs": [],
"cache": false
}
}
}
// Root biome.json
{
"extends": ["./packages/config-biome/base.json"],
"files": {
"ignore": ["**/dist/**", "**/node_modules/**"]
}
}
Turborepo + ESLint (Paylaşılan Konfigürasyon)#
// packages/eslint-config/base.js
const tseslint = require("typescript-eslint");
module.exports = tseslint.config(
...tseslint.configs.recommended,
{
rules: {
"@typescript-eslint/no-explicit-any": "error",
},
}
);
// apps/web/eslint.config.js
const baseConfig = require("@repo/eslint-config/base");
const nextConfig = require("@repo/eslint-config/next");
module.exports = [...baseConfig, ...nextConfig];
Tüm araçlar Turborepo, pnpm workspaces ve Nx ile makul şekilde entegre oluyor. Ana fark konfigürasyon karmaşıklığı, temel uyumluluk değil.
CI/CD Entegrasyonu#
Biome ile GitHub Actions#
# .github/workflows/lint.yml
name: Lint
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: biomejs/setup-biome@v2
with:
version: latest
- run: biome ci .
# biome ci otomatik olarak GitHub annotation'ları sağlar
Paralel Linting Stratejisi (Oxlint + ESLint)#
# Hızlı geri bildirim için oxlint, type-aware kurallar için ESLint kullanın
jobs:
fast-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oxc-project/setup-oxc@v1
- run: oxlint --deny-warnings . # <1 saniyede tamamlanır
type-aware-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npx eslint . # Type-aware kurallar
Migration Stratejileri#
ESLint + Prettier’dan Biome’a#
Migration karmaşıklığı: Düşük ila Orta Süre tahmini: Küçük projeler için 1-2 gün, büyük projeler için 1 hafta
# Adım 1: Biome'u yükleyin
npm install --save-dev @biomejs/biome
# Adım 2: Otomatik migration'ı çalıştırın
npx biome migrate eslint --write
npx biome migrate prettier --write
# Adım 3: Migration'ı doğrulayın
npx biome check . --diagnostic-level=info
# Adım 4: Eski dependency'leri kaldırın
npm uninstall eslint prettier eslint-config-prettier \
eslint-plugin-react eslint-plugin-react-hooks \
@typescript-eslint/eslint-plugin @typescript-eslint/parser
# Adım 5: Eski konfigürasyon dosyalarını temizleyin
rm .eslintrc.* .prettierrc* .eslintignore .prettierignore
Dikkat edilmesi gereken tuzaklar:
- Bazı ESLint plugin’lerinin Biome eşdeğeri yok
- Sadece JSON konfigürasyon dinamik konfigürasyonu sınırlar (JavaScript ifadeleri yok)
- Vue/Svelte/Astro desteği deneysel
Kademeli Migration: ESLint + Oxlint#
Migration karmaşıklığı düşük ve tüm süreç 1-2 saat sürüyor.
# Çakışan kuralları devre dışı bırakmak için eslint-plugin-oxlint yükleyin
npm install --save-dev oxlint eslint-plugin-oxlint
// eslint.config.js
import oxlint from "eslint-plugin-oxlint";
export default [
...tseslint.configs.recommended,
oxlint.configs["flat/recommended"], // Çakışan kuralları devre dışı bırakır
];
// package.json
{
"scripts": {
"lint": "oxlint && eslint ." // Önce hızlı geri bildirim
}
}
Bu rota düşük riskle anında hız kazancı getirir: tam ESLint konfigürasyonunuz yerinde kalır, ilk geçişi Oxlint yapar.
Sadece Formatter Migration (Prettier’dan Biome’a)#
Migration karmaşıklığı burada çok düşük: yaklaşık 30 dakika yeterli.
# Biome'u yükleyin
npm install --save-dev @biomejs/biome
# Prettier konfigürasyonunu migrate edin
npx biome migrate prettier --write
# ESLint'i tutmak istiyorsanız Biome linter'ı devre dışı bırakın
# biome.json'da:
# "linter": { "enabled": false }
Karar Framework’ü#
Araç Seçim Kılavuzu#
ESLint + Prettier’ı seçin:
- Belirli ESLint plugin’lerine ihtiyacınız varsa (özel kurallar, framework’e özel plugin’ler)
- Takım mevcut kurulumla rahatsa
- Vue, Svelte veya Astro desteğine ihtiyacınız varsa
- Tam typescript-eslint tip kapsamı gerekiyorsa
Biome’u seçin:
- Yeni bir proje başlatıyor ve basitlik istiyorsanız
- Azaltılmış konfigürasyon ve dependency sayısına değer veriyorsanız
- Projeniz egzotik plugin’ler olmadan React/React Native kullanıyorsa
- %75-85 type-aware kural kapsamını kabul etmeye hazırsınız
Oxlint’i seçin (ESLint ile birlikte):
- CI hızı öncelik ama tam migration yapılamıyorsa
- Daha hızlı yerel geliştirme geri bildirimi istiyorsanız
- Taahhüt vermeden Rust tabanlı araçları değerlendiriyorsanız
Oxlint’i seçin (ESLint yerine):
- Sadece linting’e ihtiyacınız varsa (formatlama için Biome veya Prettier kullanın)
- Maksimum hız öncelikse
- Kural gereksinimleriniz Oxlint’in 655+ yerleşik kuralıyla kapsanıyorsa
Geçişte Neler Bozulur#
%100 Kural Eşitliği Varsaymak#
Biome ve Oxlint tüm ESLint kurallarını kapsamıyor. Migration’dan önce gerçekten kullandığınız kuralları denetleyin; çoğu proje ihtiyaçlarından çok daha fazla kural aktif eder.
Formatter Değişimi Gürültü Yaratır#
Formatter değiştirmek açık PR’larda büyük diff’ler oluşturur, bu yüzden geçiş yapmadan önce tüm kod tabanını tek bir PR’da formatlayın ve zamanlamayı takımınızla konuşun. Yeni formatter yerleştikten sonra, kaydetmede formatlama için çarpışan birden fazla uzantı da benzer bir karışıklığa yol açar; çatışan uzantıları devre dışı bırakın ve workspace’e özel ayarlar kullanın.
Kendi Kod Tabanınızda Benchmark Yapmamak#
Yayınlanan benchmark’lar karşılaştırma için faydalı ancak sizin durumunuzu yansıtmayabilir. Karar vermeden önce her zaman gerçek kod tabanınızda benchmark yapın.
Type-Aware Kural Boşlukları#
@typescript-eslint/no-floating-promises veya @typescript-eslint/strict-boolean-expressions gibi type-aware kurallara çok güveniyorsanız, migration’dan önce kapsamı doğrulayın.
Sonuç#
Vue, Svelte veya Astro desteğine ihtiyacınız varsa, bağımlı olduğunuz bir plugin’in karşılığı yoksa ya da tam typescript-eslint tip kapsamı zorunluysa Biome varsayılanını bırakın; Biotype’ın %75-85’lik kapsamının yetmediği durumlar bunlar. Mevcut kod tabanlarında önce paralel stratejiyi çalıştırın: ESLint’in önüne Oxlint koyun, CI’da gerçekte ne kazandığınızı ölçün, tam migration kararını sonra verin.
Kaynaklar#
- Oxc Projesi (yeni sekmede açılır) - Oxlint, oxfmt ve Oxc ekosistemi resmi dokümantasyonu
- Biome (yeni sekmede açılır) - Biome resmi dokümantasyonu ve migration rehberleri
- ESLint (yeni sekmede açılır) - ESLint resmi dokümantasyonu
- Prettier (yeni sekmede açılır) - Prettier resmi dokümantasyonu
- dprint (yeni sekmede açılır) - Pluggable kod formatlama platformu
- typescript-eslint (yeni sekmede açılır) - TypeScript-ESLint dokümantasyonu
- Biome v2 - Biotype (yeni sekmede açılır) - Biome v2 yayın duyurusu
- Oxlint 1.0 Duyurusu (yeni sekmede açılır) - VoidZero duyurusu
- eslint-plugin-oxlint (yeni sekmede açılır) - Paralel strateji plugin’i
- Expo ESLint Konfigürasyonu (yeni sekmede açılır) - React Native/Expo kurulumu
İlgili yazılar
Planın işi, ajanın aksi halde sessizce vereceği kararları önceden vermek. Bu işi yapan doküman iskeleti, yayınlanmış tek bir değişiklik üzerinden adım adım.
claude-code · ai-agents · documentation +2
React Native Expo uygulamasına Sentry ekleme rehberi: SDK kurulumu, Expo Router enstrümantasyonu, session replay ve EAS için source map yükleme.
react-native · expo · monitoring +2
Single Table Design'da DynamoDB throttling'i önleme ve yönetme: partition key tasarımı, write sharding, kapasite modları, DAX caching ve retry pattern'leri.
dynamodb · aws · reliability +4
Agent geliştirmek için TypeScript SDK karşılaştırması: Vercel AI SDK, OpenAI Agents SDK ve AWS Bedrock entegrasyonu, kod örnekleri ve karar frameworkleri ile.
typescript · ai-tools · serverless +4
Bun ve Deno'yu AWS Lambda'da custom runtime ile çalıştırma: performans benchmark'ları, maliyet analizi ve production deployment pattern'leri.
lambda · javascript · serverless +2