Wie erklären Sie Refactoring (und technische Schulden) einer nicht-technischen Person (normalerweise einem PHB oder Kunden)? ("Was, es wird mich einen Monat Ihrer Arbeit kosten, ohne sichtbaren Unterschied ?!")
UPDATE Vielen Dank für alle bisherigen Antworten. Ich denke, diese Liste wird einige nützliche Analogien enthalten, auf die wir die entsprechenden Personen verweisen können (obwohl das Herausarbeiten von Verweisen auf PHBs sinnvoll sein kann!).
Antworten:
Wenn Sie ein großes Heimkino haben und Dinge hinzufügen, bildet sich langsam aber sicher ein großes Rattennest im Rücken.
Wenn Sie oft Teile austauschen, lohnt es sich manchmal, all das auszuräumen.
Klar, wenn du das tust, hat es früher funktioniert und es wird nicht besser funktionieren als zu Beginn, aber wenn du wieder damit herumspielen musst, wird es viel einfacher.
In jedem Fall ist es wahrscheinlich am besten, einen ähnlichen Vergleich mit einem Fachgebiet anzustellen, mit dem die PHB oder der Kunde bereits vertraut sind, z. B. Auto oder Konstruktion oder so ...
quelle
Re-Factoring ist wie das Umpacken eines Koffers, bis alles gut passt. Manchmal wundert man sich dabei, warum man versucht hat, so viel Müll da rein zu bekommen.
quelle
Ich würde das Konzept der technischen Verschuldung nicht erklären, weil es nicht notwendig ist. Konzentrieren Sie sich stattdessen auf das Refactoring: Sie ändern das Design Ihres Programms, nicht unbedingt, damit es "besser" oder "verbessert" wird. Sie ändern es, damit es eine Änderung akzeptiert, die Sie vornehmen müssen.
Eine Auto-Analogie könnte passen: Sie müssen ein Auto mit einer Klimaanlage ausstatten, aber diese war ursprünglich nicht für ein Auto konzipiert. Sie müssen nicht nur eine seltsame L-förmige Klimaanlage herstellen, sondern auch zuerst einige andere Dinge aus dem Weg räumen und das Belüftungssystem ändern.
Ich denke auch, dass es eine bessere Strategie ist, eine Umgestaltung vorzunehmen, wenn Sie sich auf neue Features einstellen: Andernfalls ändern Sie möglicherweise das Design in etwas, das nur "besser" aussieht, sich jedoch möglicherweise nur schlecht für die Umstände eignet, unter denen Sie das nächste Feature hinzufügen.
quelle
Ich verwende den Begriff Technische Schulden und beziehe ihn direkt auf etwas, das sie verstehen - Unternehmensschulden. Technische Schulden sind wie Kredite aufzunehmen. Sie zahlen Zinsen dafür. Sie können z. B. eine neue Fabrik bauen und direkt dafür bezahlen, oder Sie können ein Darlehen dafür erhalten. Wenn Sie einen Kredit bekommen, werden Sie langfristig mehr dafür bezahlen, aber finanziell ist es sinnvoll, wenn die Konditionen stimmen .
Wenn Sie jedoch 25% Zinsen für einen solchen Kredit zahlen, geraten Sie in eine nicht nachhaltige Position. Dies gilt auch für die technische Verschuldung. Manchmal ist es sinnvoll, technische Schulden zu machen. Es kommt jedoch ein Punkt, an dem die Zinsen zu hoch sind und zurückgezahlt werden müssen. Einige technische Schulden sind wie ein Wohnungsbaudarlehen, andere wie Kreditkartenschulden. In Notfällen sind Kreditkartenschulden ein wichtiges und wertvolles Gut. Es kann jedoch auch die Bank (oder den Haushalt, wenn Sie dies wünschen) sprengen, wenn es nicht richtig eingesetzt wird.
Ein weiteres Beispiel: Sie können 10.000 US-Dollar für einen Marketing-Mail-Drop bezahlen, um in Zukunft mehr Leads für Verkäufe zu erhalten. Sie zahlen "Umsatzschuld" ab. Dies ist eine Ausgabe mit langfristiger Auszahlung. Vergleichen Sie dies mit dem Grund, warum Sie jetzt Geld für die Umgestaltung eines Codeteils "ausgeben" möchten. In beiden Fällen gibt es keine sofortige Auszahlung, aber Sie stellen sich auf eine bessere Leistung in der Zukunft ein.
Ich neige dazu, den Begriff "xxxx Schulden" als Analogie zu verwenden, wenn ich mit wem auch immer das Zielpublikum spreche. ZB Betriebsschulden - Die Druckmaschine, die wir jetzt haben, funktioniert gut, aber wenn wir die Produktion für einen Tag (oder eine Woche) einstellen und auf eine neue Maschine umrüsten, können wir die Leistung um 25% steigern.
BEARBEITEN - Hier ist eine andere Einstellung dazu
quelle
Frühjahrsputz.
Sie nehmen keine Änderungen am Haus vor. Du verschiebst nur Sachen und wirst etwas Staub los. Vielleicht werfen Sie ein paar Dinge raus, die Sie nicht mehr brauchen oder brauchen. aber du fügst nichts hinzu.
quelle
"Haben Sie jemals" Mouse Trap "gespielt ? Wenn wir an neuen Funktionen festhalten, Schnittstellen ändern und Fehler beheben, kann Code so aussehen. Ab einem gewissen Punkt müssen wir entweder viel Kapital aufwenden (Zeit und Mühe) Stellen Sie sicher, dass alle beweglichen Teile gut mit jeder neuen Änderung oder Ergänzung zusammenspielen, oder nehmen Sie sich die Zeit, um das Design zu überarbeiten, damit wir bei jeder Änderung weniger bewegliche Teile verwalten müssen Aus Sicht des Endbenutzers kann der Eindruck entstehen , dass der Refaktor keine Vorteile hat, diese Vorteile treten jedoch jedes Mal auf, wenn nach dem Refaktor eine neue Funktion hinzugefügt wird. Der Vorgang ist schneller, führt zu weniger Fehlern und ist danach kostengünstiger. Ganz zu schweigen davon, dass der überarbeitete Code insgesamt oft effizienter ist.
Sie werden sich vielleicht fragen, warum wir es überhaupt so aussehen lassen wie "Mausefalle":
Um weiterhin eine bessere Mausefalle aufzubauen, müssen wir ständig nach Orten suchen, um die Komplexität zu verringern und das, was wir haben, zu optimieren. Es ist der Unterschied zwischen einer Software mit vielen Funktionen und einer wirklich hochwertigen Software. "
quelle
Dies ist eine etwas grafischere Version der Heimkino-Analogie.
Wenn Sie eine weitere neue Appliance hinzufügen möchten (auch bekannt als neue Funktionalität), können Sie sie zur Not wahrscheinlich irgendwo unterbringen.
Wenn Sie noch ein weiteres Gerät hinzufügen möchten, können Sie ein Verlängerungskabel kaufen, das Ihnen einige Zeit kostet.
Bei jedem Hinzufügen wird es jedoch schwieriger, eine Lösung zu finden. Und Sie auszusetzen Sie sich mit einem Risiko 1 Feuer [alias Bugs], und Sie müssen das große Geld herausziehen jemanden zu bezahlen , neue Steckdosen in die Wand zu stellen, die möglicherweise auf den ganzen Weg eskalieren könnte auf die Haupt Platine oder noch weiter.
1 Eine andere Sache, über die PHBs nicht sehr gut klarkommen: "Nun, wenn es nur passieren könnte , worüber sorgen Sie sich dann?"
quelle
Refactoring - ist wie das Organisieren Ihres Kleiderschranks / Werkzeugkastens.
Sie werfen Ihre Kleidung / Werkzeuge nicht weg, nur weil sie überall sind.
Man könnte argumentieren, dass sie niemals durcheinander geraten sollten. Aber sie tun es.
Genau wie Code. Vor allem, wenn es mit der Zeit wächst.
Und wenn Sie es nicht aufräumen, werden Sie sich immer wieder fragen, was mit dem geliebten T-Shirt oder dem Schlüssel passiert ist, den Sie immer brauchen, aber niemals finden können!
quelle
Ich würde sagen "Code-Pflege" . Es ist wichtig, Wörter zu verwenden, mit denen die nichttechnische Person vertraut ist und die für eine nichttechnische Weltanschauung Sinn machen. Wenn eine nicht-technische Person (Kunde) mit der Anwendungswartung vertraut ist, ist es einfach, die Codewartung und die Anwendungswartung parallel zu schalten. Auch wenn sie nicht gleich sind, können Sie erklären, dass es sich bei den Endkunden um Entwickler handelt oder um diejenigen, die das System warten.
quelle
Angenommen, Sie sind ein Mechaniker, der sich auf die Individualisierung von Autos spezialisiert hat und diese sogar von Grund auf neu baut, wenn der Kunde dies wünscht. Es gibt diesen Kunden, der von Zeit zu Zeit wieder in Ihrem Geschäft ist, um immer etwas Neues in seine übergroße Limousine zu stecken.
Sobald er hereinkommt, hat er ein schönes Soundsystem installiert. Sie führen die Aufgabe sorgfältig aus, indem Sie die Drähte verlegen und alles ordnungsgemäß anschließen. Er geht einen Tag später aus, ist glücklich und zahlt wie immer gut.
Im nächsten Monat kommt er zurück, aber diesmal möchte er ein vollwertiges Heimkino installieren. Wieder nehmen Sie die Limousine in die Hand. Als Profi überarbeiten Sie das Soundsystem und erleichtern die Wartung, indem Sie ein Schlauchsystem installieren, mit dem die Kabel um das Auto verlegt werden. Auf diese Weise sind die Drähte geschützt und lassen sich leichter herausziehen. Sollten Sie weitere hinzufügen müssen, ist dies ebenfalls einfach. Also reißen Sie die alten Kabel heraus, installieren die Schläuche und übergeben das Soundsystem und die zusätzlichen Kabel für das Kino. Schließen Sie alles und fertig.
Da der Kunde Sie nicht gebeten hat, das alte Soundsystem zu ersetzen, haben Sie einen Teil der Kosten für den Ersatz und die Röhren abgekratzt. Wie auch immer, Sie verdienen immer noch Geld mit dem Geschäft. Nur nicht so viel, wie Sie gehabt hätten. Sie haben das System einfach so zusammengeschmissen, wie Sie es beim ersten Mal getan haben.
Einen Monat später kommt er zurück, diesmal möchte er ein Beleuchtungssystem und neue Lautsprecher, die die alten früher in der Woche beschädigt haben.
Weil Sie alles schön aufgeräumt haben, können Sie die neuen Beleuchtungskabel schnell durch Ihre Röhre führen, das System installieren und den Lautsprecher austauschen. Diesmal sind Sie jedoch viel schneller fertig, und das Re-Factoring zahlt sich aus, indem Sie immer den Überblick behalten.
Ihr Konkurrent, der Sie ausgelacht hat, weil Sie perfekt gute Drähte gerissen und all diese zusätzlichen Schläuche installiert haben, tut sich immer noch schwer, seinen Kunden zufrieden zu stellen. Sicher, er war die meiste Zeit schneller als Sie, aber mit der Zeit beklagen sich seine Kunden, dass es immer mehr Verzögerungen gibt und die Gesamtqualität der Arbeit abnimmt.
Wenn Sie dies betrachten, erkennen Sie, dass es Ihr Ziel ist, nicht nur im Geschäft zu bleiben, sondern die Top-Waffe zu sein, was Sie tun, um die Anforderungen des Kunden zu erfüllen, und was Sie tun, um Ihr Leben auf der Straße einfacher zu machen. Sehr selten zahlt ein Kunde für beides, so dass Sie eng zusammenarbeiten müssen. Sie setzen darauf, dass Sie die Wartungskosten auf einem kontrollierten, stabilen Prozentsatz Ihrer Produktivität halten, wenn Sie die Dinge proaktiv richtig machen, selbst wenn Sie die Kosten doppelt tragen.
Die Software ist die gleiche, mit der Ausnahme, dass Programmierer SEHR lange mit digitalem Klebeband spielen können, bevor die Auswirkungen von Kunden und Managern wirklich wahrgenommen werden. Leider steigen zu diesem Zeitpunkt die Kosten für das Wiederherstellen von Dingen exponentiell in Bezug auf die Menge des vorhandenen Klebebands und das Durchschnittsalter des Klebebands.
Aus diesem Grund ist es wichtig, das System ständig neu zu faktorisieren. Sehr oft zeigt uns die Erfahrung, dass wir auf effizientere Weise dasselbe tun können, oder wir können ähnliche Funktionen kombinieren und Redundanzen ausnutzen, anstatt sie nur zu kopieren. So halten wir das System schlank und gemein. Die Zeit wird zeigen, dass eine ständige Umgestaltung des Systems, um die Anforderungen zu erfüllen, die Produktivität konstant hält, indem die Menge an Wartungsarbeiten gesteuert wird.
Das Anbringen von Klebeband erhöht vorübergehend die Produktivität auf Kosten eines suboptimalen Systems. Technische Schulden entstehen immer dann, wenn eine sofortige Produktivität begünstigt wird, die die anderen Aspekte eines Systems beeinträchtigt. Die Schuldenanalogie ist gut, denn genau wie Zinsen für geliehenes Kapital die Gewinne verschlingen, führt die geliehene Zeit, mit der Dinge hergestellt werden, schnell zu einer höheren Wartung und erhöht die Systemzerbrechlichkeit, was ein Team dazu zwingt, zusätzliche Ressourcen für die Wartung aufzuwenden, anstatt sie zu schaffen. Wenn die Kreditaufnahme unvermindert anhält, werden genau wie bei seinem finanziellen Verwandten die meisten Ressourcen für die Zinsrückzahlung ausgegeben, und es bleibt nur sehr wenig für Verbesserungen übrig. Technische Schulden kosten technische Ressourcen bis zu einem Punkt, an dem die meisten Ressourcen ausgegeben werden, während das System alle anderen möglichen Verbesserungen zum Stillstand bringt.
Letztendlich lautet die Frage also nicht, ob wir es tun sollen oder nicht, sondern ob es ethisch ist, Manager und Kunden glauben zu lassen, dass sie sich auf Produktivitätszahlen verlassen können, die durch die Verwendung von digitalem Klebeband künstlich aufgebläht werden. Einige würden denken, dass es eine Geschäftsentscheidung ist, aber ehrlich gesagt ist dies nur deshalb so, weil Manager es nicht verstehen. Am Ende muss jemand die Schulden entweder durch starkes Re-Factoring oder durch Migration auf ein neues System bezahlen. Letztendlich liegt es an uns Programmierern, die Systeme wartungsfähig zu halten. Sie sollten nicht um eine Neueinstufung bitten müssen, da dies ein fester Bestandteil des Auftrags ist. Wenn Sie dies nicht verstehen, verstehen Sie auch nicht, worum es beim Software-Engineering geht. Allerdings ist mir klar, dass es Systeme gibt, bei denen bereits eine wichtige Schuld entstanden ist, und dass die Tilgung dieser Schuld Entscheidungen der Zahler erfordert. Ihre Aufgabe ist es, zumindest Ihren Teil dazu beizutragen, keine Kredite mehr aufzunehmen. Diese Schuld ist entstandenVON UNS Vielleicht, weil wir es nicht besser wussten, weil wir unter Druck gesetzt wurden, haben wir diese Schulden trotzdem übernommen und sehr oft haben die Leute, denen wir die Schulden ausgehändigt haben, sie nicht verstanden, können sie also nicht richtig verwalten.
Hier ist Ihre Software, alles fertig, ich hoffe es gefällt Ihnen ... Übrigens, ich habe Ihre Kreditkarte voll ausgereizt, ich hoffe es macht Ihnen nichts aus ... cya
quelle
Der Zweck des Re-Factorings besteht darin, das Design zu vereinfachen und Ineffizienzen zu beseitigen. Dies erleichtert das Beheben von Fehlern und das Hinzufügen neuer Funktionen in der Zukunft.
Wenn Sie weiterhin neue Funktionen zum Code hinzufügen, rechnet sich das Re-Factoring schnell. Dies wird in einer geringeren Fehlerrate, einem schnelleren Debugging und schnelleren Korrekturen sichtbar.
quelle
clever == 0
so2 * clever == 0
...Das Schreiben von Software ähnelt dem Schreiben eines großen Sachbuchs oder einer Enzyklopädie.
Der erste Entwurf ist immer schlecht. Es kann immer verbessert werden, indem es neu organisiert wird, Abschnitte entfernt werden, die nicht vorhanden sein müssen, und durchgehend ein einheitlicher Stil sichergestellt wird.
Wann immer Sie überarbeiten müssen, ist es am einfachsten, einen neuen Abschnitt hinzuzufügen, ein paar Wörter zu ändern und so weiter. Aber als sich die Revisionen häufen, verliert das Buch langsam seine Organisation. Sie müssen also weitere Umstrukturierungen vornehmen. Wenn Sie dies nicht tun, wird das Buch zu einem unsinnigen Durcheinander.
quelle
Nehmen Sie zum Beispiel Ihren Desktop-Computer. Sie haben einen Turm, einen Monitor, eine Tastatur, eine Maus, einen Drucker, einen Scanner und Lautsprecher. Letztendlich ist alles, was Sie wollen, ein gut organisierter Schreibtisch. Also schließen Sie die Dinge einfach blind an, und ein paar Minuten später wird alles so eingerichtet, wie Sie es möchten. Na ja ... fast so, wie du es willst.
Einen Tag später, wenn Sie die Balance Ihrer Lautsprecher ändern, stellen Sie fest, dass Sie versehentlich den linken und den rechten Lautsprecher in die falschen Bereiche gebracht haben, sodass Sie deren Positionen tauschen möchten. Aber oh nein! Es gibt einen Dschungel von verwickelten Schnüren; Wenn Sie fortfahren, die Lautsprecher zu bewegen, wird Ihr Mauskabel eingehakt, und jetzt wird Ihre Maus mit den Lautsprechern mitgezogen. Außerdem hat Ihre Tastatur jetzt keinen Durchhang mehr - Sie konnten sie früher vom Schreibtisch auf Ihren Schoß bewegen.
Okay, Sie können einfach die Maus und die Tastatur ausstecken und wieder einstecken, damit alles in Ordnung ist. Dies hilft jedoch nicht bei zukünftigen Umstrukturierungen und Ergänzungen. Auch das Weben von Maus- und Tastaturkabeln durch den Dschungel ist mühsam.
Die bessere Lösung besteht darin, alles wieder anzuschließen, um es sauber wieder anzuschließen, ohne dass die Kabel sich gegenseitig stören. Jetzt sind zukünftige Änderungen einfach und bleiben einfach. Sie investieren ein wenig im Voraus, um später große Gewinne zu erzielen.
Der entscheidende Punkt ist, dass die ursprüngliche Lösung meistens funktioniert hat. Das ist die Sache beim Refactoring: Es funktioniert zunächst, aber Sie müssen ändern, wie die Dinge bereits existieren, um zukünftige Änderungen leicht vornehmen zu können (die Lautsprecher bewegen).
quelle
Es ist ein bisschen wie das Aufräumen des Hauses nach einer wilden und verrückten Party von der Nacht zuvor.
Nehmen wir an, das Wohnzimmer wurde total verwüstet. Das Haus ist immer noch ein Haus, das Wohnzimmer ist immer noch ein Wohnzimmer. Es funktioniert, aber es ist nicht so, wie es sein könnte. Nachdem Sie auf das Chaos gestarrt haben, stellen Sie fest, dass es aufgeräumt werden muss.
Also packen Sie den Müll ein. Es sieht schon besser aus. Sie schauen sich also im Raum um und beschließen, die Möbel auszurichten. Sie legen ein Stück zurück, dann das nächste und das nächste. Wow, das Zimmer sieht wirklich gut aus. Du bist stolz.
Deine Schwester kommt herein und sagt, das Zimmer sieht aus wie Müll. Du solltest das Bücherregal reparieren und den Teppich staubsaugen. Sie hat recht. Das Zimmer sieht wirklich sehr gut aus.
Sie sehen sich um und sehen, dass die Fensterläden viel besser aussehen würden, wenn sie alle auf gleicher Höhe wären. Getan. Wow, das Zimmer ist unglaublich.
Behandle deinen Code genauso.
quelle
Einfach!
Nehmen wir ein Beispiel ... Jeder hat in seinem Leben einen Brief an einen lieben geschrieben. Es muss jemand Liebes sein, denn in diesen Briefen achten wir normalerweise auch auf die Komposition.
Sie haben also Ihren Text, ... die Bedeutung wird in beide Richtungen durchgehen, aber Sie möchten, dass das Ganze gut klingt ! Richtig?
Refactoring, das Gleiche ... die gleichen Informationen, mehr oder weniger, aber die Zusammensetzung ist besser. Und es wird wahrscheinlich zu einer besseren Bewertung durch den Leser führen.
Ein weiteres Beispiel - Schreiben eines Artikels für eine Zeitschrift. Zwei Schriftsteller, beide wissen "ihre Sachen", der einzige Unterschied ist, dass einer "wie man schreibt" und der andere so schreibt, wie er es gelernt hat, aus Antworten wie diesen zu schreiben.
An wessen Artikel wirst du dich erinnern?
quelle
Alle Analogien zu Dingen in der physischen Welt - wie dem Bau eines Theaters - sind meiner Meinung nach schrecklich.
Sie müssen erklären, dass Refactoring-Code wie Refactoring-Code ist. Software ist in einer Weise formbar, wie es physikalische Analoga nicht sind. Da die Dinge immer komplexer werden, muss man massive oder kleine Teile einer Codebasis reaktivieren (oder nach Belieben wiederholen), damit wir die Komplexität weiter erhöhen können, ohne wahnsinnig zu werden.
Warum überarbeiten wir? Denn Code, der nie überarbeitet wird, kostet mehr Wartung und Änderung pro Minute und wird letztendlich problematischer.
Das Interessante am Refactoring ist, dass wir die Codebasis wiederholen, die Funktionalität jedoch zumindest zu Beginn unverändert bleibt.
quelle
Re-Factoring ist das Gleiche wie Aufräumen und dem Zeug einen neuen Ort zum "Bleiben" geben.
Einfach einfach und etwas, das viele Male dauern kann. Manchmal füge ich sogar hinzu, dass die Person X ein großes Durcheinander hinterlassen hat, und ich muss es aufräumen.
quelle
Ich dachte an ein anderes Beispiel, von dem anscheinend niemand hier gesprochen hat: Refactoring ist so ziemlich dasselbe wie das Umstellen einer Gleichung in der Mathematik (obwohl dies möglicherweise außerhalb des Rahmens einer nicht-technischen Person liegt, denke ich).
Wenn Sie eine Gleichung neu anordnen, verschieben Sie sie einfach, um sie lesbarer und benutzerfreundlicher zu machen, ohne die Bedeutung zu ändern .
quelle
Gib ihnen eine einfache mathematische Gleichung. Zum Beispiel:
Welches ist einfacher?
oder
Refactoring ist ein ähnliches Konzept, außer dass Sie anstelle einfacher mathematischer Gleichungen Algorithmen eingeben. Die Hauptidee ist, dass Sie zwischen zwei Methoden wechseln können, da diese das gleiche Ergebnis liefern.
Das einfachste Refactoring, das durchgeführt werden kann, ist das Umbenennen.
Jetzt, da wir nicht wirklich wollen, dass die Dinge doX heißen, weil wir nicht wirklich wissen, was es bedeutet, benennen wir es in etwas anderes um, das selbsterklärender ist und überall dort ersetzt, wo wir es verwendet haben.
Auf diese Weise sparen Sie später Geld, wenn ein Problem oder eine Verbesserung auftritt, da die Zeit für das Verständnis und die Behebung Ihrer Anwendung verkürzt wird. Um noch mehr Geld zu sparen, gibt es kostenlose Tools, die dies automatisch für Sie erledigen, je nachdem, welche Sprache Sie verwenden. Diese Tools sind auch so lizenziert, dass sie nicht einschränkend sind und Sie nichts Besonderes tun müssen, außer es zu bestätigen, wenn Sie es direkt verwenden.
quelle
Ein Bild sagt mehr als tausend Worte. Für das Refactoring gibt es beispielsweise zwei Anwendungsfälle:
Verweise
xkcd: guter Code
xkcd: ist es die zeit wert
quelle
Stellen Sie sich eine Antwort in Refactoring vor und erklären Sie sie keiner nicht technischen Person. Refactoring ist eine technische Aktivität, über die sie nichts wissen müssen:
(Refactoring, Martin Fowler, 2000, Seite 61)
Natürlich funktioniert das nicht, wenn Sie einen Monat lang nichts anderes tun als umgestalten, aber ich denke, das ist im Allgemeinen sowieso eine schlechte Idee, und es ist viel besser, nur umzustrukturieren, soweit dies erforderlich ist, um Ihre aktuelle oder nächste Aufgabe zu vereinfachen , oder um Code zu bereinigen, mit dem Sie gerade gearbeitet haben.
quelle