Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Programm optimieren (https://www.delphipraxis.net/203177-programm-optimieren.html)

NoName1 20. Jan 2020 17:04

Programm optimieren
 
Guten Tag,
ich möchte ein bestehendes Programm optimieren, weiss aber nicht genau wie ich dabei vorgehen kann/soll.
Aktueller Stand:
Auf den Formularen befinden sich bis zu 20 und mehr NichtVisuellenKomponenten. Auf anderen Formularen
können es auch mal nur 5 Komponenten sein. Es sind Units eingebunden, die das Öffnen und Schließen
von Tabellen durchführen. Auch sind andere Aktionen die aus dem Formular angeprochen werden in den
Units enthalten. In den Formularen befindet sich viel Quellcode.
Laut OOP soll die GUI vom eigentlichen Quellcode getrennt werden. Dies ist bestimmt auch so in Ordnung.

Wie kann ich nun bei der Optimierung vorgehen:
Für jedes Formular ein Modul für die NichtVisuellenKomponenten erstellen? Auch wenn es nur einige Wenige sind?
Bläht dies nicht das Programm unnötig auf? In den Modulen alle Units einbinden?
Aus dem Formular nur Aufrufe wie z. B.
Delphi-Quellcode:
btn1Click(Sender: TObject
begin
 ModulName.TueEtwas;
end
zu lassen?

Wie geht Ihr bei der Programmierung vor?
Könnt Ihr aus Eurer Praxis Erfahrungen berichten?

Vielen Dank für Eure Hilfe im Voraus von einem Hobbyprogrammierer.

himitsu 20. Jan 2020 18:43

AW: Programm optimieren
 
Man kann im Objektinspektor auch modul-übergreifend Zeiger (Komponenten und Events) zuweisen.

Also statt
Delphi-Quellcode:
GridA.DataSource = DataSourceA
ginge auch
Delphi-Quellcode:
GridA.DataSource = DataModul.DataSourceA
und das Gleiche bei den Events.
siehe z.B. Forms.FindGlobalComponent (in der Implementation), bzw. Delphi-Referenz durchsuchenClasses.RegisterFindGlobalComponentProc

Zur Lauffzeit, kann man diese Zuweisungen natürlich auch immer machen, ohne dass die globale Namen-Suche beansprucht wird. (direkt die Zeiger zuweisen)

TDataModul registriert daher seinen Namen automatisch global, welcher dann hier nutzbar wäre.

TigerLilly 21. Jan 2020 08:39

AW: Programm optimieren
 
Zitat:

ich möchte ein bestehendes Programm optimieren, weiss aber nicht genau wie ich dabei vorgehen kann/soll.
Was möchtest du denn optimieren? Das Laufzeitverhalten? Den Speicherverbrauch? Möchtest du den Code eleganter und schöner machen? Möchtest du deinen Code auf moderne Entwurfsmuster umstellen?

Wie so oft im Leben: Cui bono? Wem nützt es?

NoName1 21. Jan 2020 09:12

AW: Programm optimieren
 
Zitat:

... Möchtest du den Code eleganter und schöner machen? Möchtest du deinen Code auf moderne Entwurfsmuster umstellen?
Der Code soll leichter zu pflegen sein, Änderungen an der Software schneller durchzuführen usw.
Die Formulare selber sind, dank der verwendeten TMS-Komponenten, in einem modernem Design.
Die komplette Umprogrammierung nach den Richtlinien der OOP bringt viel Arbeit mit sich.
Auch wenn ich als Rentner, bin immerhin 70Jahre, Zeit habe, so scheue ich doch vor dieser
Aufgabe ersteinmal zurück. Der nächste der das Projekt übernehmen wird muss, ob mit oder ohne OOP,
sich komplett in den Quellcode einarbeiten.
Und wie Du schon erwähntest "Wem nützt es?" habe ich mir auch schon überlegt.

haentschman 21. Jan 2020 09:54

AW: Programm optimieren
 
Moin...:P
Zitat:

Wie so oft im Leben: Cui bono? Wem nützt es?
...der armen Sa... den den Code weiter pflegen muß. :stupid:
Zitat:

Der nächste der das Projekt übernehmen wird muss, ob mit oder ohne OOP,sich komplett in den Quellcode einarbeiten.
...imho wäre es viel wichtiger, für den Nächsten, das die Variablen sprechende Namen und keine Mehrfachverwendung in den proceduren haben. :wink: Das erleichtert das Erfassen der Logik der proceduren ungemein. :wink:

TigerLilly 21. Jan 2020 21:20

AW: Programm optimieren
 
https://stackoverflow.com/questions/...le-delphi-code
https://www.embarcadero.com/de/rad-i...upgrade-center
https://delphiparser.com/2017/03/07/...-project-plan/


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 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