AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Trennung von GUI und Logik, wie geht ihr vor?
Thema durchsuchen
Ansicht
Themen-Optionen

Trennung von GUI und Logik, wie geht ihr vor?

Ein Thema von divBy0 · begonnen am 19. Aug 2011 · letzter Beitrag vom 30. Jan 2018
Antwort Antwort
Seite 1 von 3  1 23      
bernerbaer
(Gast)

n/a Beiträge
 
#1

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 19:49
sorry, wenn ich am Thread vorbei rede. Aber zurück zum Beispiel der Addition. Eine Trennung von GUI und Logik ist in diesem Mini-Beispiel definitiv nicht machbar. Zahl1 und Zahl2 sind zwingend mit der Form verbunden. D.h. benötige ich wie im Beispiel nur die Addition, weshalb soll ich eine Abstraktionsebene aufbauen in einem einzubindenden externen Objekt? Wo liegen hier die Vorteile der Trennung (nur in diesem Beispiel? Vererbung - was soll vererbt werden? Wiederverwendbarkeit des Codes? Kann ich mit Copy und Paste schneller, bessere Lesbarkeit des Codes?)

Nein, ich gehöre nicht zu den Programmierern die einfach Buttons und Edits auf die Form klatschen! Ich bin ein Programmierer der sich überlegt was er macht und den Aufwand und Ertrag abschätzt. Wo Trennung von GUI und Anwendungslogik sinn macht, setze ich es auch ein. Aber ich bin nicht ein Gläubiger der macht, was die Mehrheit sagt.

Geändert von bernerbaer (19. Aug 2011 um 19:51 Uhr)
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#2

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 20:02
sorry, wenn ich am Thread vorbei rede. Aber zurück zum Beispiel der Addition. Eine Trennung von GUI und Logik ist in diesem Mini-Beispiel definitiv nicht machbar. Zahl1 und Zahl2 sind zwingend mit der Form verbunden. D.h. benötige ich wie im Beispiel nur die Addition, weshalb soll ich eine Abstraktionsebene aufbauen in einem einzubindenden externen Objekt? Wo liegen hier die Vorteile der Trennung (nur in diesem Beispiel? Vererbung - was soll vererbt werden? Wiederverwendbarkeit des Codes? Kann ich mit Copy und Paste schneller, bessere Lesbarkeit des Codes?)
Darum geht es dem TE doch garnicht.
Er hätte auch ein beliebig größeres Beispiel wählen können.
Hater er aber nicht - damit müssen wir uns abfinden und nicht darauf rumreiten, dass es wenig Sinn ergibt.
Ich denke, je kleiner das Beispiel, desto einfacher kann man ein Verständnis für die Grundlagen erlangen.
Bei größeren Beispielen treten wieder Sonderfälle auf (ich habe selbst welche erwähnt), die vom Grundproblem ablenken und den Lernprozess behinern.
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 20:05
Ihr dürft gerne auch ein umfangreicheres Beispiel posten...
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.055 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 20:06
sorry, wenn ich am Thread vorbei rede. Aber zurück zum Beispiel der Addition. Eine Trennung von GUI und Logik ist in diesem Mini-Beispiel definitiv nicht machbar. Zahl1 und Zahl2 sind zwingend mit der Form verbunden. D.h. benötige ich wie im Beispiel nur die Addition, weshalb soll ich eine Abstraktionsebene aufbauen in einem einzubindenden externen Objekt? Wo liegen hier die Vorteile der Trennung (nur in diesem Beispiel? Vererbung - was soll vererbt werden? Wiederverwendbarkeit des Codes? Kann ich mit Copy und Paste schneller, bessere Lesbarkeit des Codes?)

Nein, ich gehöre nicht zu den Programmierern die einfach Buttons und Edits auf die Form klatschen! Ich bin ein Programmierer der sich überlegt was er macht und den Aufwand und Ertrag abschätzt. Wo Trennung von GUI und Anwendungslogik sinn macht, setze ich es auch ein. Aber ich bin nicht ein Gläubiger der macht, was die Mehrheit sagt.
Seit wann sind 2 Zahlen für eine Addition mit einem Form verbunden? Schreib mal die App um, damit eine Konsolenanwendung draus wird. Jaja, bei dem Additionsbeispiel isses Killefit. Aber ich kanns auch noch gern zum xten mal sagen, es ging bei diesem Beispiel um die Ansätze und nicht darum, ob es Sinn ergibt.

Copy und Paste verletzt schonmal eine der grundlegendsten Regeln ("don't repeat yourself"), an die ich mich persönlich versuche zu halten (klappt auch nicht immer )
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.861 Beiträge
 
Delphi 12 Athens
 
#5

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 20:15
Hallo,

ich finde das Thema sehr interessant. Das Beispiel ist auch OK.

Ich versuche diese Trennung, wenn möglich auch immer hinzubekommen. Meine Erfahrung ist aber leider, wenn die GUI erweitert werden soll müssen die Daten ja in der Regel bis zur Business-Logik durchgereicht werden. Wenn wir bei dem Beispiel bleiben währe die Erweiterung der GUI um eine Edit-Komponente die eine 3 Zahl aufnimmt für die Berechnungen.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#6

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 20:17
Seit wann sind 2 Zahlen für eine Addition mit einem Form verbunden?
Siehe Ausgangspost:
Delphi-Quellcode:
..
type
  TForm1 = class(TForm)
    EditZahl1: TEdit;
    EditZahl2: TEdit;
...
und so würde das Beispiel bei mir aussehen
Pseudocode:
Code:
uses
meineMathUnit;

Resultat:= MeineAdditionsfunktion(zahl1,zahl2)

Geändert von bernerbaer (19. Aug 2011 um 20:25 Uhr)
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#7

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 20:25
Seit wann sind 2 Zahlen für eine Addition mit einem Form verbunden?
Siehe Ausgangspost:
Delphi-Quellcode:
..
type
  TForm1 = class(TForm)
    EditZahl1: TEdit;
    EditZahl2: TEdit;
...
Das sind die visuellen Repräsentationen der Zahlen. Die Zahlen selbst sind es nicht (das drückt auch der Typ TEdit aus).
Man kann auch TAddition.Addition(2, 3) aufrufen.

Wie man sieht, gibt es min. zwei Schichten oder Komponenten, die man trennen KANN.
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.055 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 20:56
Habt ihr übrigens gemerkt, dass die Binding Lösung auch die Typen Konvertierung von String in Int und wieder zurück übernimmt? (mit nem kleinen Fehler im Demo seh ich gerade, negatives Ergebnis wird nicht richtig als signed Integer umgewandelt - fixed)

@divBy0: Beispiel müsste nach einem Update des svn repos nun fehlerfrei und erwartungsgemäß laufen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (19. Aug 2011 um 21:13 Uhr)
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#9

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 21:07
Habt ihr übrigens gemerkt, dass die Binding Lösung auch die Typen Konvertierung von String in Int und wieder zurück übernimmt?
Du bist lustig!
Wie würde es denn anders funktionieren, besser: wo würde man es denn sonst noch einsetzen können?

Integer werden automatisch zu Zeichenketten, Zeichenketten werden automatisch zu Bezeichnern.
Das geht doch nicht mit rechten Dingen zu
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von ehX
ehX

Registriert seit: 11. Aug 2011
Ort: Augsburg
55 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Trennung von GUI und Logik, wie geht ihr vor?

  Alt 19. Aug 2011, 21:12
Ist es in der realen Welt nicht oft so, dass sich manche Porgrammierer gegenseitig lobhudeln, weil sie ach so tollen Code geschrieben haben und man auch noch in manchen Foren zerrissen wird, wenn man etwas nicht nach dem höchsten Gut der Programmierkunst programmiert hat, jedoch dann, im Gegensatz dazu, oft Programme mit "miesem" Code jahrelang überleben und erfolgreich sind?

Warum ich das sage: Gutes Codedesign ist zwar generell löblich, jedoch nicht immer der Schlüssel zum Erfolg.
Oft trift sogar das Gegenteil zu: Die in kürzester Zeit hingewurschtelte "Quick'n dirty"-Lösung sichert einem oft genug den nächsten Auftrag vom gleichen Kunden

Ich arbeite derzeit z.B. sehr viel in php mit dem Zend-Framework....mag sein, dass das "gutes" MVC ist..allerdings ist die unübersichtlichkeit aufgrund der MVC_Struktur so extrem, dass die Produktivität m.E. völlig flöten geht und ich das ganze in "bösem" prozeduralen Code oder auch OOP-Code, der nicht so extrem getrennt ist, schon 10x geschrieben hätte und der Kunde nicht so lange warten müsste.


Edit: Das ist nur meine Meinung! Um es nochmal zu verdeutlichen.
Fin

Geändert von ehX (19. Aug 2011 um 21:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:13 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