AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ist das sauberer Programmierstil?!

Ein Thema von Vitus · begonnen am 7. Jun 2004 · letzter Beitrag vom 7. Jun 2004
 
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#16

Re: Ist das sauberer Programmierstil?!

  Alt 7. Jun 2004, 16:18
Zitat:
Das geht an die Grenze der Lesbarkeit. Das sind bereits 8 Zeichen Einrueckung.
Nicht viele Programmierer koennen dieser Tiefe folgen, besonders wenn Bezug auf globalere Variablen genommen wird.
Irrelevant. Der Sinn ist es doch diese Teil-Aufgaben selber als "Black-Boxes" zu verifizieren. Somit würde sich sogar eine 16 fach nested Funktion immer noch lohnen falls man ihre Funktionalität aus sich selber heraus verifizieren kann. Statt also eine Monster Funktion im Gesammten zu verifizieren, würde man mit nested Funktionen Stück für Stück verifizieren. Sobald eine solche nested Funktion verifiziert wurde, kann man sie aus dem Kopf streichen und einfach überlesen.
Somit erhöht die Modularisierung, egal ob nested Funktion oder Objectmethoden oder Units oder externe DLL's, immer auch die Wartbarkeit und Lesbarkeit. Der EINZIGSTE relevante Unterschied zwischen nested Funktionen und anderen Methoden der Modularisierung besteht in ihere Gültigkeit=Scope. Nun nested Funktionen sind globale für die Übergeordneten Scopes, aber Lokale innerhalb des übergeordenten Scopes. Sie können also auf anderer Modularisierungsebene, zB. Objecten, Units, Program, Library nicht merhfach benutzt werden.
Somit ist auch die logische Frage geklärt WANN man zu nested Funktionen greifen sollte.

Das Konzept der nested Funktionen ist also absolut sauberer Programmierstil.

@Performance:
Da der Delphi Optimierer immer lokal zu einer Procedure optimieren kann, also NICHT Procedure-übergreifend, sind durch die Vereinfachungen komplexer Proceduren mit Hilfe von nested Prozeduren sogar erhebliche Performance-Steigerungen zu erwarten. Statt also EINE Prozedure mit 100 zu optimierenden Variablen zu optimieren kann der Compiler bei nested Funktionen viel kleine und voneinander unabhänig abgeschlossenen Optimierungen vornehmen. Dadurch ist eine höher Performance des erzeugten Gesamtcodes zu erwarten.
WICHTIG! ist dabei nur eines, die nested Funktionen sollte NICHT allzuofft auf Variablen der übergeordneten Funktion zugreifen. Statt also nested Funktionen ohne Parameter zu benutzen, ist es besser eben auch den nested Funktion so wie mit jeder anderen Procedure/Methode usw. die releaventen Daten als Paramter zu übergeben. Benutzt eine nested Funktion KEINERLEI Zugriffe auf übergeordete Lokale Stack Variablen, so kann der Optimieren einen zusätzlichen Stackframe wegoptimieren. Dadurch wird nochmals die Gesamtperformance gesteigert.


Gruß Hagen
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz