AGB  ·  Datenschutz  ·  Impressum  







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

TFile, TDirectory vs. alte Funktionen

Ein Thema von bernau · begonnen am 12. Aug 2015 · letzter Beitrag vom 2. Sep 2015
Antwort Antwort
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#1

AW: TFile, TDirectory vs. alte Funktionen

  Alt 13. Aug 2015, 07:27
Weil es nicht objektorientiert ist. Drei Records hingeklatscht und paar Klassenmethoden implementiert, fertig ist der Nudelsalat. Gerade beim Dateisystemzugriff wäre es schön wenn es "richtig" (Interfaced) gemacht worden wäre, sodass man das beim Testen wegmocken kann und nicht die komplette Unit überschreiben muss.
Muss es objektorientiert sein? Was ist an den Klassenmethoden falsch? Es macht genau das, was es soll. Ein paar Funktionen zusammenfassen, sodaß es "schön" aussieht.

Warum ist "Interfaced" = "richtig"? Warum sollte ich erst etwas instanzieren müssen, wenn es auch so geht.

Aber ich lerne gerne. Gib mal ein Beispiel, wie ein einfaches TFile.exists(aFilePath) bei dir aussieht.
Dann haben wir wohl verschiedene Auffassungen von "schön" aussehen In diesem Fall würde ich sagen: Ja das muss objektorientiert sein. Ich hab nichts gegen prozedurale Programmierung, die macht aber eben nur an wenigen Stellen Sinn.

Der Zugriff auf ein Dateisystem ist eigentlich dafür prädestiniert mit Abstraktionen/Schnittstellen zu arbeiten. So hat man dann nicht innerhalb seiner TFile.Exists(path) Methode seine 300 Zeilen Code (übertrieben) mit 40 IFDEFs (auch übetrieben ), sondern eine einheitliche, vollständige und korrekt benannte API für den Entwickler und dahinter die verschiedenen Implementierungen für OSX, Android, Windows, eben abhängig von der Plattform.

Außerdem hast Du mit so statischen vorgehensweisen wie "TFile.Do*(Pfad)" auch immer das Problem, dass Du durch dein Programm hinweg einen String mit Dir rumschleppst, den Du (wenn Du nicht gerade alleine arbeitest) zur Sicherheit vor jeder Verarbeitung überprüfst/auseinander nimmst -> ExtractFileExt, ExtractFilePath, ExtractFileName etc pp. Einfacher wäre auch hier eine IFile Schnittstelle die eine Datei repräsentiert und auf der ich ein IFile.Exists, IFile.FileExt, IFile.Location etc aufrufen kann - nie wieder unnötige String/Pfad Verarbeitungen.

Und wenn ich 1000-5000€ für die IDE/Sprache bezahle, dann erwarte ich auch dass ich für mein Geld was geboten bekomme - das ist zumindest meine Meinung
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.305 Beiträge
 
Delphi 12 Athens
 
#2

AW: TFile, TDirectory vs. alte Funktionen

  Alt 13. Aug 2015, 08:03
Dann haben wir wohl verschiedene Auffassungen von "schön" aussehen
TFile.exists sieht zumindest schöner aus als fileexists

Ich will nicht bestreiten, daß es noch besser geht. Aber dennoch kann ich den ersten Schritt positiv sehen und mich darüber freuen, daß die RTL erweitert wird und nicht nur ein paar Komponenten zugekauft werden, damit eine neue Delphi-Version erscheinen kann.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#3

AW: TFile, TDirectory vs. alte Funktionen

  Alt 13. Aug 2015, 08:13
Anscheinend hört Emba auch nicht auf zu entwickeln, bzw. sie fangen grade "wieder" an zu entwickeln. Sonst hätten sie z.B. TFile nicht gekapselt.

In den letzten 2-3 Jahren hat Delphi mehr zugelegt, als in den 10 Jahren davor (gefühlt). Daher bin ich sehr optimistisch, daß die Erweiterung der RTL hier nicht stehen bleibt und wir noch einiges erwarten können.
Dein zweiter Vorname scheint in der Tat Optimist zu sein Mit "Emba macht da inzwischen mehr" verbinde ich lediglich "mehr Bugs" und "keine Bugfixes" oder "Bugfixes in einer neueren Version, wie ich Sie gekauft habe"
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:22 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 by Thomas Breitkreuz