스크립트
00:00:00Es stellt sich heraus, dass noch so viele Anpassungen an deiner Claude.md den Schrott nicht aus deiner Codebasis fernhalten.
00:00:05Einiges rutscht durch und manchmal ignorieren Agents die Regeln komplett, aber glücklicherweise.
00:00:09hilft uns der bescheidene Linter: anti-slop sind Regeln für Oxlint, die TypeScript- und JavaScript-Muster.
00:00:15mit geringer Evidenz und schwachem Signal ablehnen. In diesem Video schauen wir uns also an, wie man diese.
00:00:20in deinem Projekt verwendet und wie sie deinen Agents helfen können, Code von höherer Qualität zu produzieren.
00:00:30Anti-slop sind also einfach Linter-Regeln, die minderwertigen Code direkt an der Quelle abfangen können. Das Repo enthält eine.
00:00:36lange Liste verschiedener Regeln, um Dinge wie verkettete Typzusicherungen, unbekannte Parameter und unbekannte.
00:00:41Rückgabewerte zu erkennen. Nun bist du vielleicht nicht mit all diesen Regeln einverstanden, aber der Sinn ist nicht, sie alle zu nutzen, sondern.
00:00:47diejenigen herauszuspücken, die den Standards deines Teams entsprechen. Linting ist dafür hervorragend geeignet, weil es.
00:00:53bei Dingen, die du draußen halten willst, gnadenlos fehlschlägt. Das kann dir Token sparen und den Schrott.
00:00:59deterministisch blockieren. Regeln in Claude.md hingegen können zwar funktionieren, sind aber leicht zu umgehen und manchmal.
00:01:05befolgen die Agents die Regeln ohnehin nicht. Linting hingegen ist schneller, günstiger und.
00:01:11effektiver beim Erkennen offensichtlicher Muster. Aber du denkst dir wahrscheinlich: Na und? Wir haben schon seit Ewigkeiten Linter,.
00:01:16wen kümmert das schon? Nun, diese zeigen nicht nur die Fehler an, sondern erklären auch hervorragend, warum der.
00:01:23Fehler aufgetreten ist und wie man ihn behebt. Das sind ziemlich wertvolle Daten für deine Agents,.
00:01:29was so viel besser ist als der typische, fast unlesbare Müll, den man von Standard-TypeScript-Fehlern bekommt. Stürzen wir uns also.
00:01:34in eine Demo, um zu sehen, wie das alles funktioniert. Und wenn du über Open-Source-Tools auf dem Laufenden bleiben willst,.
00:01:40dann tu mir einen riesigen Gefallen und abonniere Better Stack. Also, ich habe hier eine Datei, die absichtlich eine Reihe von.
00:01:45Fehlern enthält, die von den Linter-Regeln im Anti-Slop-Paket stammen. Ganz oben siehst du, dass ich.
00:01:50zweimal typisiert habe: erst als unknown und dann als zweites als user. Normalerweise macht man das, wenn man.
00:01:55eine Antwort von einer JSON-API erhält, aber wir können sehen, dass wir sehr aussagekräftige Fehler darüber haben,.
00:01:59was das Problem ist und wie man es behebt. Bei diesem speziellen Fehler heißt es: Diese Zusicherungskette.
00:02:05verwirft die Typenvielfalt, was stimmt, und die Lösung wäre, den ursprünglichen präzisen Typ beizubehalten oder.
00:02:11unverifizierte Eingaben an ihrer Grenze zu übergeben, bevor sie eingeschränkt werden. Man würde also etwas wie Zod verwenden, um zuerst.
00:02:18die Typsicherheit zu garantieren, bevor man fortfährt. Du siehst hier ein weiteres ähnliches Beispiel,.
00:02:22nämlich wenn wir Daten von einer JSON-API zurückgeben und sie einfach weiterreichen. JSON gibt jedoch tatsächlich einen.
00:02:29any-Typ zurück, daher geben wir hier in der Funktion unknown zurück, aber das ist wiederum ein Code-Smell.
00:02:36Es heißt also: Diese Funktion gibt unknown an ihren Aufrufer weiter. Gib den Wert an der Grenze weiter und gib einen benannten Domänentyp.
00:02:41zurück. Lass uns also Claude ausführen und sehen, wie es mit all dem umgeht. Sagen wir einfach: Behebe alle Probleme im API-Client.
00:02:48Du siehst also, dass nach einigen Minuten Laufzeit alle Probleme behoben wurden. Die Schleife hier.
00:02:54wäre, dass wir in package.json lint aufrufen, welches ox lint source aufruft, und dann haben wir unsere Linter-Konfiguration.
00:03:00selbst, die in diesem Fall fast alle Regeln enthält. Der Agent würde also den Code erstellen,.
00:03:06möglicherweise Fehler machen, das Linting ausführen, die Fehler bemerken und sie dann korrigieren. Auf diese Weise erhält man.
00:03:12einen viel besseren Code für die Produktion. Keiner der Fehler, die wir mit diesen Linter-Regeln abfangen, sind echte Bugs; der Code.
00:03:18wäre immer noch kompilierbar, aber es geht darum, minderwertigen Code mit geringer Evidenz frühzeitig zu erkennen, bevor echte Bugs.
00:03:24eingeführt werden. Verkettetes Casten ist ein gutes Beispiel: Angenommen, ich rufe ein Konto von einer API ab, ich kann die Antwort.
00:03:30in das Format umwandeln, das ich erwarte. Das an sich ist kein Bug, es wird kompiliert und alles nachfolgende.
00:03:36denkt nun, das Erstellungsdatum sei ein Datum. Aber JSON hat natürlich keine Datumsangaben, also ist das, was tatsächlich zurückkommt,.
00:03:41ein String. Sobald also etwas das wie ein Datum behandelt, haben wir plötzlich einen Bug eingeführt.
00:03:47Normalerweise hätte TypeScript die Chance, mich davor zu warnen, aber das tut es nicht, weil ich die Evidenz.
00:03:51durch das Casten weggeworfen habe. Dieses Paket wurde erst letzte Woche erstellt und basiert auf dem Linter-Paket oxc,.
00:03:59das, falls du es nicht kennst, eine Sammlung von in Rust geschriebenen Hochleistungs-JavaScript-Tools ist. Der.
00:04:04Linter ist laut Benchmarks 50- bis 100-mal schneller als ESLint, was unglaublich klingt. Ich habe.
00:04:10ihn in den letzten Monaten für alle meine Projekte verwendet und kann ihn ehrlich gesagt nur wärmstens empfehlen. Und.
00:04:15natürlich war die Resonanz im Internet super positiv, wobei einige Nutzer etwas mehr Schrottfehler erhielten als.
00:04:20erwartet. Wenn du also deine Codebasis aufräumen möchtest, kannst du dir den GitHub-Link unten in der.
00:04:24Beschreibung ansehen. Vergiss nicht zu abonnieren, vielen Dank fürs Zuschauen und natürlich bis zum nächsten Mal.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기