Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Softwaretests und Qualitätssicherung (https://www.delphipraxis.net/86-softwaretests-und-qualitaetssicherung/)
-   -   Diskussion: Unbenötigten Code löschen? (https://www.delphipraxis.net/160304-diskussion-unbenoetigten-code-loeschen.html)

nachti1505 6. Mai 2011 13:25

Diskussion: Unbenötigten Code löschen?
 
Bekannte Autoren (Fowler et.al.) empfehlen ja, ungenutzten oder gar auskommentierten Code aus der working-copy ins Nirvana zu schicken, mit der Begründung in der Quellcodeverwaltung sei ja alles noch vorhanden. Bis zu diesem Punkt korrekt!

Nun habe ich in unserem Unternehmen - spezieller in unserer Anwendung - viele Dutzend Stellen dieser Art entdeckt und mir überlegt, diese gemäß dem Clean-Code-Ansatz zu eleminieren. Sie sind ja tatsächlich im SVN noch vorhanden. Ich frage mich allerdings jetzt, wie beispielsweise jemand anderes in drei Jahren Funktionalitäten wiederentdecken möchte, die heute auskommentiert und morgen nur noch im SVN vorhanden sind?

Für einen Entwickler stellen sich ja naturgemäß später die Fragen:

1) Gab es da mal was?
2) Wo gab es das?

Wie kann man vorgehen, um den zukünftigen Entwicklern hier eine Brücke zu bauen und eventuell verschwundene Code-Schnipsel wieder entdecken?

alfold 6. Mai 2011 13:31

AW: Diskussion: Unbenötigten Code löschen?
 
Evtl and der Stelle eine Kommentarzeile einfügen, wo sich das original befindet?
So kann man auch später noch mal schauen, aha so sah dies mal aus, warum wurde er geändert usw

Ansonsten Dokumentation.

Gruss alfold

s.h.a.r.k 6. Mai 2011 13:45

AW: Diskussion: Unbenötigten Code löschen?
 
Mögliche Erwähnungen können im Commit-Kommentar, Changelog oder Ticketsystem positioniert werden. Mehr fällt mir spontan nicht ein :)

himitsu 6. Mai 2011 13:49

AW: Diskussion: Unbenötigten Code löschen?
 
Wenn die delphiinterne Dateisuche jetzt auch noch in den alten Repositories suchen würde, dann könnte man dort sowas auch wiederfinden.

Coffeecoder 6. Mai 2011 14:01

AW: Diskussion: Unbenötigten Code löschen?
 
Hallo,

Danke dass du dieses Thema ansprichst. Ich gebe mal meine Meinung dazu ab:

Zitat:

Mögliche Erwähnungen können im Commit-Kommentar, Changelog oder Ticketsystem positioniert werden. Mehr fällt mir spontan nicht ein
Einer der besten Idee. Quasi ein Bericht erstellen, auch von alten gelöschten Funktionen.
Toter Code, also nicht mehr gebrauchbarer Code sollte nicht im Quelltext stehen.

Mfg Coffeecoder

s.h.a.r.k 6. Mai 2011 14:14

AW: Diskussion: Unbenötigten Code löschen?
 
Naja, der Punkt ist ja, dass der Code ja mal in das System gewandert ist, ergo ist das schon mal dokumentiert worden und somit auch im SVN vorhanden. Wenn der dann wieder rausgeworfen wird, dann wird das ja auch dokumentiert, ebenso der Grund. Sollte mal jemand was nachschauen wollen, dass muss er halt entsprechend suchen, daher sollte die Doku gut ist ;)

himitsu 6. Mai 2011 14:27

AW: Diskussion: Unbenötigten Code löschen?
 
Für die Zeit der Umstellung / für eine Weile kann man ja den alten Code noch drin lassen und als Delphi-Referenz durchsuchendeprecated markieren, mit einem Hinweis auf den neuen Ort.

s.h.a.r.k 6. Mai 2011 14:36

AW: Diskussion: Unbenötigten Code löschen?
 
Vielleicht sollte man noch dazu sagen, dass man hier eine Art Regelwerk zusammenstellen sollte, wie man was zu machen hat. Wenn das jeder verinnerlicht, dann sollte die Suche später auch nicht schwer fallen.

blauweiss 6. Mai 2011 15:15

AW: Diskussion: Unbenötigten Code löschen?
 
Manchmal ist für mich toter (auskommentierter Code) noch nützlich, um zu dokumentieren, A) welcher alternative Ansatz schon mal versucht wurde und B) warum er nicht funktionierte.
Bin mir nicht sicher, ob es immer so einfach ist dafür einen guten Change-Text zu schreiben. Also so gut, daß der alte Code in der SVN verschwinden kann.

Wobei ich gestehen muß, daß bei mir B) / A) ~ 20% :oops:

Grüße,
blauweiss

Namenloser 6. Mai 2011 17:55

AW: Diskussion: Unbenötigten Code löschen?
 
Also ich als Hobbyprogrammierer kommentiere alten Code meist erst mal nur aus, wenn ich eine alternative Lösung schreibe. Erst wenn ich dann nach einiger Zeit sicher bin, dass die neue Lösung stabil läuft, lösche ich den toten Code dann komplett.

@blauweiss Ja, mache ich auch so ähnlich.

FredlFesl 6. Mai 2011 18:23

AW: Diskussion: Unbenötigten Code löschen?
 
Ich frag mich: was mag das für Code sein, den man auskommentiert, und irgendwann, viel später, wieder gebrauchen könnte.
Da muss in der Planung schon Einiges schief gelaufen sein.

Wenn ich Code auskommentiere, dann während einer Iteration, also dem Test eines neuen Features. Ist das dann validiert, schmeisse ich den alten Code weg.

Ich kann mir auch nicht vorstellen, das ich eine Option erst hinzufüge, dann wieder wegnehme, um sie viel später wieder hinzuzufügen.

Alles eine Sache der Planung, würd ich mal sagen.

Hansa 6. Mai 2011 18:30

AW: Diskussion: Unbenötigten Code löschen?
 
Bei mir ist alter Sourcecode nie weg. Allerdings : sag niemals Nie ! Absoluten Quatsch muss man nicht unbedingt aufheben. :mrgreen: Es lassen sich meistens immer auch nach langer Zeit noch Rückschlüsse aus altem QUelltext ziehen. Das gilt insbesondere, falls jemand sich einarbeiten muss und gerade an einer Stelle dran ist, die irgendwann mal in Bearbeitung war. Das gilt auch für den/die, die da mal rumgefummelt hat. Insofern : auskommentieren. Aber nie ohne Kommentar ! :mrgreen:

Phoenix 6. Mai 2011 19:02

AW: Diskussion: Unbenötigten Code löschen?
 
Ich habe in all den Jahren in denen ich jetzt programmiere nur ein einziges mal alten Code gesucht - und nach 2 Minuten in der Versionierung gefunden.

Wer toten Code in seinen Files rumliegen lässt müllt defakto seinen Arbeitsplatz, nämlich seinen Quellcode, zu und ist ein Messie. Nicht nur, dass der Kommentar einen von der Arbeit ablenkt - woher soll man wissen, ob der Code auskommentiert wurde, weil er nicht funktionierte, weil er unnötig geworden ist aufgrund einer anderen Anforderung oder ob es gar noch nicht fertiger Code ist, der nur auskommentiert wurde weil der kollege damit nicht fertig geworden ist und das nur zur Sicherung commiten wollte bevor er in Urlaub gefahren ist (dafür gibts eigentlich Branches, aber sei's drum).

Code der keine Funktion hat oder haben soll gehört komplett weg. Falls man ihn wider erwarten doch mal brauchen sollte, ist der in der Versionierung. Und das Argument das ein Kollege den brauchen könnte wenn er was anderes macht ist nicht valide.

Wenn er es heute machen sollte, dann braucht er zusätzliche Zeit sich in fremde Codes einzulesen und hätte es wahrscheinlich schneller - und möglicherweise besser - neu geschrieben. Will er (oder man selber) es in einem halben Jahr machen, hat man zwangsläufig in der Zwischenzeit so viel dazu gelernt, dass man es ohne den Einlese- und Ablenkungsfaktor nicht nur schneller, sondern auch definitiv besser neu schreibt, als es damals war. Und vielleicht hat man unbeeinflusst von der alten Implementierung sogar einen genialeren Einfall wie man das ganze Zeug besser implementieren kann und im besten Fall kann man dadurch noch mehr alten Code loswerden.

GockelMehl 6. Mai 2011 20:54

AW: Diskussion: Unbenötigten Code löschen?
 
Zitat:

Zitat von Hansa (Beitrag 1099393)
Bei mir ist alter Sourcecode nie weg. Allerdings : sag niemals Nie ! Absoluten Quatsch muss man nicht unbedingt aufheben. :mrgreen: Es lassen sich meistens immer auch nach langer Zeit noch Rückschlüsse aus altem QUelltext ziehen. Das gilt insbesondere, falls jemand sich einarbeiten muss und gerade an einer Stelle dran ist, die irgendwann mal in Bearbeitung war. Das gilt auch für den/die, die da mal rumgefummelt hat. Insofern : auskommentieren. Aber nie ohne Kommentar ! :mrgreen:

Mache es fast genauso. An manchem - eventuell absolut blödsinnigen - von mir verbrochenem Quellcode kann ich meine damaligen Irrungen und Wirrungen noch nachvollziehen.

Alten Quellcode komplett löschen?

Dann gäbe es nur noch Klick+Run-Hochsprachenkiddies, die noch nie was von "echter Prozessoransprache mittels Assembler" gehört hätten.

Just my two cents.

implementation 6. Mai 2011 21:07

AW: Diskussion: Unbenötigten Code löschen?
 
Zitat:

Zitat von GockelMehl (Beitrag 1099406)
echter Prozessoransprache mittels Assembler

:love:

Also ich lösche die Abschnitte immer dann, wenn ich sie besser lösen konnte. Die müssen imho nicht ewig drinbleiben. Ganze Units lösche ich nie, auch wenn sie noch so schwachsinnig sind.

Coffeecoder 6. Mai 2011 21:08

AW: Diskussion: Unbenötigten Code löschen?
 
Zitat:

Zitat von FredlFesl (Beitrag 1099391)
Ich frag mich: was mag das für Code sein, den man auskommentiert, und irgendwann, viel später, wieder gebrauchen könnte.
Da muss in der Planung schon Einiges schief gelaufen sein.

Wenn ich Code auskommentiere, dann während einer Iteration, also dem Test eines neuen Features. Ist das dann validiert, schmeisse ich den alten Code weg.

Ich kann mir auch nicht vorstellen, das ich eine Option erst hinzufüge, dann wieder wegnehme, um sie viel später wieder hinzuzufügen.

Alles eine Sache der Planung, würd ich mal sagen.

Absolut stimme ich 100% zu. Was nicht mehr in den Code reingehört, soll gelöscht werden. Unbenötigter Code ist ein Code-Smell und kein "guter" Programmstyl. Also pflegt euren Code :)

Mfg Coffeecoder.

s.h.a.r.k 6. Mai 2011 21:24

AW: Diskussion: Unbenötigten Code löschen?
 
Was ist aber, wenn der bisherige Code eine coole Technik verwendet hat, die du wo anders auch noch brauchen könntest? Immer gleich eine Demo-Anwendung zu stricken ist da so eine Sache, vor allem, wenn man evtl. an etwas neuem dran ist und das probieren will. Zudem kann man durchaus von schnellen auf langsamen Code wechseln, da dieser vielleicht lesbarer ist. Aber man will den schnelleren Code vielleicht für andere Projekte nutzen. Pauschal lässt es sich nie sagen. Ich versuche so weit wie nur möglich meine Ideen in Komponenten/Libraries/Demos zu gießen, sodass ich jeden Code entsprechend verpackt habe. "Toten" Code gibts daher eigentlich kaum.

Namenloser 6. Mai 2011 21:29

AW: Diskussion: Unbenötigten Code löschen?
 
Manchmal schreibe ich erst recht „allgemeinen“ Code und kommentiere später aus Performancegründen Teile aus, die im Spezialfall nicht benötigt werden, die ich aber vielleicht später noch mal brauchen könnte. In solchen Fällen wäre es imo kontraproduktiv, den auskommentierten Code komplett zu löschen, zumal er oft zum Verständnis hilfreich ist.

GockelMehl 6. Mai 2011 22:29

AW: Diskussion: Unbenötigten Code löschen?
 
Weshalb sollte es auf die Frage des Threaderstellers denn eigentlich eine Antwort geben, die nicht genau so sinnlos/blöde ist, wie die Frage selbst?

mschaefer 7. Mai 2011 06:09

AW: Diskussion: Unbenötigten Code löschen?
 
Denke die IDE sollte eine Funktion haben um markierte Bereiche auf Tastendruck ein- und auszublenen. Wirklich obsoleter Code fliegt dann raus, aber kleine Hinweise und Ergänzungen könnten als ausblendbare Kommentare im Code vorhanden bleiben, stören aber nicht während des normalen Arbietens. Wünschen darf man sich ja so einiges....

DelphiSecurity 7. Mai 2011 06:39

AW: Diskussion: Unbenötigten Code löschen?
 
Ich würde es so machen:

Delphi-Quellcode:
begin
start;
{hier alten code
reinschreiben}
end

nachti1505 7. Mai 2011 08:05

AW: Diskussion: Unbenötigten Code löschen?
 
Klasse Antworten von euch ... bin (mal wieder) begeistert von der DP. Also dafür schonmal vielen Dank.

Um mal für mich das Wichtigste zusammenzufassen, geht der O-Ton ja eher dahin, alten Code zu löschen, mit dem Hintergedanken "Aus den Augen - aus dem Sinn". Begründung wäre, dass man alten Code sowieso eher weniger und seltener benötigt, als man jetzt ad-hoc annimmt. Dann werde ich das Plädoyer mal in unser Unternehmen tragen...

FredlFesl 7. Mai 2011 08:51

AW: Diskussion: Unbenötigten Code löschen?
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1099410)
Was ist aber, wenn der bisherige Code eine coole Technik verwendet hat, die du wo anders auch noch brauchen könntest?

Wieso soll ich die dann auskommentieren?
Aber wie dem auch sei, ab in die Codeschnippseldatenbank, oder bau Dir eine ordentliche Klasse und schmeiss die in deine Toolbox.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz