deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Deslop, AI-slop TypeScript desenlerini işaretleyen Oxlint kurallarını yayınladı

Deslop, uydurma type assertion'lardan içi boş testlere kadar AI tarafından üretilen TypeScript'te yaygın olan düşük kaliteli desenleri reddeden yeni bir açık kaynak Oxlint plugin'i. Hacker News'te bir Show HN gönderisiyle ortaya çıktı.

Deslop, AI-slop TypeScript desenlerini işaretleyen Oxlint kurallarını yayınladı

Deslop nedir

npm'ye ai-deslop adıyla yayınlanan Deslop adlı proje, 13 Ekim'de bir Show HN gönderisiyle Hacker News'in ana sayfasında ortaya çıktı. AI asistanları tarafından üretilen TypeScript'e odaklanan, taraflı bir Oxlint kural seti — genellikle slop olarak tanımlanan, tekrarlayan, makul görünen ama zayıf yapılar. Projenin GitHub deposuna göre amaç, temiz bir şekilde derlenip TypeScript'in var olma nedeni olan garantileri çöpe atan desenleri reddetmek.

Deslop tamamen sıfırdan inşa edilmedi. Depodaki teşekkür notlarında, generic kuralların Dillon Mulroy tarafından geliştirilen MIT lisanslı dmmulroy/anti-slop projesinden vendoring yöntemiyle alındığı ve tek bir deslop/* namespace'i altında yeniden adlandırılmış ek Deslop'a özgü kurallarla birleştirildiği belirtiliyor.

Kural seti

Önerilen kuralların en büyük grubu type safety'yi hedefliyor. Bazıları cast ve widening'leri reddediyor: iç içe as assertion'ları, bilinen değerleri unknown veya object'e genişletip sonra geri daraltma ve güvensiz kaçış noktaları üzerine kurulu dictionary tipleri. Diğerleri, sınır noktalarında faydalı bilgiyi sildikleri gerekçesiyle parametre, dönüş ve type-alias konumlarındaki unknown ile düz object fonksiyon girdilerini yasaklıyor. Geçici typeof daraltması, değerlerin sınırda parse edilmesi lehine reddediliyor ve alan atlamak için koşullu boş nesne kullanan object spread'ler işaretleniyor. Bir kural yasağın ötesine geçiyor: const olmayan her type assertion için satır içi bir gerekçe yorumu zorunlu kılıyor; bir başkası ise yalnızca mevcut bir tipi yeniden adlandıran type alias'ları ortadan kaldırıyor.

İkinci grup genel kod kalitesini kapsıyor. Ardışık eager filter/map geçişleri, lazy iterator pipeline'ları lehine reddediliyor; reducer'lar içindeki spread olmayan accumulator kopyaları da öyle — README, bu kuralı Oxlint'in yerleşik no-accumulating-spread kuralıyla birlikte kullanmayı öneriyor. Reflect.apply ve Reflect.get global'leri reddediliyor; yerel symbol adlarında "shape" kelimesi de öyle.

Testlerin kendi kuralları var. Yalnızca mock çağrılarını kontrol eden assertion'lar işaretleniyor, Vitest ve Jest module mock'ları tamamen reddediliyor, sabit bir string'in substring içerdiğini doğrulayan testler eleştiriliyor ve tekrarlanan özdeş expect çağrıları, sonucu yeniden kullanmaya teşvikle raporlanıyor.

Opt-in bir kural seti dosyalar arası tekrar ve temizliği ele alıyor: farklı dosyalarda aynı statik değeri tutan tümü büyük harf sabitler, birebir tekrarlanan object contract'lar, gereksiz named-import alias'ları ve standart olmayan Tailwind CSS v4 sınıf yazımları. Son ikisi auto-fixer ile geliyor.

Önerilen yapılandırma ayrıca birkaç standart Oxlint kuralını açıyor — no-deprecated, no-require-imports, no-floating-promises, no-unnecessary-condition ve no-unreachable — bunlardan birkaçı type-aware linting gerektiriyor.

Kurulum ve uyumluluk

Kurulum tek bir dev dependency olan ai-deslop ile yapılıyor; bu paket @oxlint/plugins'ı runtime dependency olarak çekiyor. README, bu paketin kurulu oxlint sürümüyle senkron kalması gerektiği konusunda uyarıyor. Plugin derlenmiş JavaScript olarak geliyor ve Bun, Deno ve Node.js dahil herhangi bir Oxlint JavaScript-plugin runtime'ında çalışıyor. Yapılandırma, Oxlint'in defineConfig'i üzerinden yapılıyor; ai-deslop bir JS plugin olarak kaydediliyor ve önerilen preset'in seçenekleri ile kuralları uygulanıyor.

Neden önemli

AI asistanları günlük kodlamanın büyüyen bir payını üstlendikçe, tipik başarısızlık modu değişti. Kod artık derleniyor ve makul görünüyor; eksik olan öz — kodun hiç kanıtlamadığı şeyleri iddia eden cast'ler, anlamdan yoksunlaştırılacak kadar genişletilmiş tipler ve neredeyse hiçbir şeyi test etmeden geçen testler. Kod incelemeleri bunların bir kısmını yakalıyor, ama insan ilgisi üretilen hacimle ölçeklenmiyor.

Linter'lar zaten çoğu CI pipeline'ının kritik yolunda yer alıyor, bu da onları tam bu sorun sınıfı için ucuz bir uygulama noktası yapıyor. Deslop, incelemeci sezgisini otomatik kontrollere dönüştürüyor ve anti-slop gibi mevcut bir projeden kural vendoring etme pratiği, AI çıktısını denetleyen araçlardan küçük bir ekosistemin oluşmakta olduğuna işaret ediyor.

Görüşler güçlü — tüm module mocking'i yasaklamak veya her assertion'a yorum istemek birçok ekip için fazla katı olacak — ama kural seti seçici biçimde benimsenecek kadar ayrıntılı. Her halükarda, daha fazla ekibin sorduğu bir soruya somut ve çalıştırılabilir bir yanıt: üretilen kodu her satırı kendin okumadan nasıl dürüst tutarsın?

  • #typescript
  • #oxlint
  • #linting
  • #open-source
  • #ai-code-quality

İlgili yazılar