Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Frage zu proceduren innerhalb anderer proceduren

  Alt 29. Mär 2010, 14:10
Zitat von himitsu:
[...] Prozeduren/Funktionen, welche nicht in Klassen verpackt sind
Sind, zumindest wenn man sich in Objekt orientierter Umgebung bewegt, von vorn herein schon als Designfehler anzusehen.

Zitat:
Denn wie gesagt, kann man so vorallem leichter erkennen, wozu sie gehören, ohne gleich alles mit Kommentaren vollstopfen zu müssen.
Ich schreib meine Helferlein deswegen ganz gern direkt vor oder hinter die "Benutzer-Methoden", und moderne IDEs machen's einem ohnehin sehr leicht vom Aufruf zur Implementierung zu hüpfen, ohne auch nur eine Zeile scrollen zu müssen.

Zitat:
Und gerade der Vorteil auf Parameter und lokale Variablen zugreifen zu können ist ein großer Vorteil.
Gut, hier muß man aufpassen und darum werden (bei mir) solche Variablen vor den "nested procedures" deklariert und die Restlichen danach.
Und wenn dann die nested Procedure länger als der sichtbare Ausschnitt wird, ist die Verwirrung perfekt.

Zitat:
Immerhin kann man so auch einiges Einsparen und übersichtlicher machen, wenn man dieses mit Bedacht einsetzt.
Einsparen, ja, aber es ist dabei im Potential gleichwertig mit normalen Methoden. Übersichtlich: Nur wenn man 1-2 Drei- bis Vierzeiler so kapselt - und dabei nicht wild in übergeordneten Variablen doktort. Das ist in Zeiten von automatischem Inlining nicht einmal mehr ein Performanceargument, und im Grunde kann man sogar eine sehr ähnliche Argumentation dagegen führen, die man gegen globale Variablen ansetzt.


Zitat:
PS: Wie hießen nochmal diese "neumodischen" Funktionen, welche man mitten im QuellCode deklarieren kann?
Anonyme Methoden. Sobald man diese für mehr als Einzeiler einsetzt, gehört man genau so an die Wand gestellt

Zitat:
Und jetzt erkläre mir mal jemand, warum dann diese extremen "nested procedures" so toll sind
und was an den einfachen "nested procedures" soooooo schlimm sei?
Teil 1 sollte beantwortet sein, Teil 2 eigentlich auch. Aber weil du es bist: Weil es in 99,9% der Fälle zu zusätzlicher Verwirrung führt. Insbesondere wenn es mal nicht der eigene Code ist, oder man ihn ein paar Jährchen nicht mehr im Sinn hatte. Und joa, ich spreche dabei aus leidvoller Erfahrung
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat