AGB  ·  Datenschutz  ·  Impressum  







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

10.4 : Warum Inline-Variablen?

Ein Thema von himitsu · begonnen am 27. Mai 2020 · letzter Beitrag vom 2. Feb 2022
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Stevie
Stevie

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

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 09:29
Warum sind Delphientwickler eigentlich so typenfixiert? Vermutlich weil sie es nicht anders kennen.
In einem Großteil der Software spielt es keine Rolle, welchen exakten Typen eine Variable hat, sofern der Variablenname deutlich ist (siehe auch der von mir zuvor verlinkte Vortrag).
Ja, ich weiß, es gibt immer diesen Fall, wo das wichtig ist - dann schreib den Typen halt dran.

Aber ob nun die Variable usernames eine TList<string>, IList<string>, TArray<string> oder TStringList ist, spielt keine Rolle, wenn man sie von einer Funktion entgegen nimmt und weiter gibt oder iteriert (ja, ich weiß, dass TArray<string> keine .Add oder andere Methoden hat) und ist für das Verstehen des umliegenden Codes vermutlich komplett irrelevant und somit "ceremony".

wenn man Bibliotheken anbietet die für den Markt sind, dann ist es durchaus ein Argument, wenn man ein paar mehr Versionen unterstützen mag
Ja, und trotzdem genieße ich es inzwischen, wenn ich beim Ausprobieren und Testen inline Variablen inklusive Typinferenz benutzen kann.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (29. Mai 2020 um 09:31 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#2

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 10:11
ich find's ne tolle Sache.
Wenn ich irgendwo in einer längeren Prozedur eine Variable tatsächlich nur einmal brauche, weil's nicht anders geht, dann finde ich das völlig okay und extrem praktisch.
Alle Anderen kommen da hin, wie sie hingehören.

Das macht meiner Meinung nach einen Code sogar noch lesbarer. In meinen weiß ich zumindest, wenn eine Var Inline deklariert ist, wird sie weiter unten im Code nicht mehr verwendet.

Frei nach dem Motto: Alles ist Gesund, wenn man es in Maßen genießt.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 10:16
Das macht meiner Meinung nach einen Code sogar noch lesbarer. In meinen weiß ich zumindest, wenn eine Var Inline deklariert ist, wird sie weiter unten im Code nicht mehr verwendet.
völlig richtig! Denn: Kannst Du in einer längeren Prozedur eine Inline-Variable verwenden, dann liegt der Verdacht doch sehr nahe, dass dieser Codeteil in eine eigene Methode refactored werden kann.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#4

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 10:26
Das macht meiner Meinung nach einen Code sogar noch lesbarer. In meinen weiß ich zumindest, wenn eine Var Inline deklariert ist, wird sie weiter unten im Code nicht mehr verwendet.
völlig richtig! Denn: Kannst Du in einer längeren Prozedur eine Inline-Variable verwenden, dann liegt der Verdacht doch sehr nahe, dass dieser Codeteil in eine eigene Methode refactored werden kann.
Kann...aber nicht muss.

Einen Nutzen, den ich mir aus der Möglichkeit Inline-Vars zu verwenden ziehe ist wenn ich mir rein zu Debuggingzwecken mal schnell einen Wert in einer Variable zu halten.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#5

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 10:54
Das macht meiner Meinung nach einen Code sogar noch lesbarer. In meinen weiß ich zumindest, wenn eine Var Inline deklariert ist, wird sie weiter unten im Code nicht mehr verwendet.
Warum benutzt du dann nicht einfach eine Konstante?
Dann kann sie weiter unten im Code gar nicht erst verändert werden!
Für mich kein Argument einer Inline-Deklaration

Ich sehe eigentlich nur einen Vorteil, bin aber nicht ganz so bewandert wie viele andere hier.
Man kann eine Variable festlegen und den "Initialwert" gleich mit festlegen und diesen auch sofort erkennen.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

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

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 11:01
Warum benutzt du dann nicht einfach eine Konstante?
Dann kann sie weiter unten im Code gar nicht erst verändert werden!
Für mich kein Argument einer Inline-Deklaration
Es gibt eine kleinen aber feinen Unterschied zwischen einer Konstanten und einer read-only Variable

Schau mal, was mit den inline Variablen feines geht:
Delphi-Quellcode:
begin
  var i := 0;
  Readln(i);
  const s = i.ToString; // read only variable!
// s := 'test'; // würde nicht kompilieren!
  Writeln(s);
  Readln;
end.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

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

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#7

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 11:11
Stimmt, da hast du recht, das es in diesem Fall gut und Sinnig ist.
Da man in so einem Fall natürlich die Konstante gar nicht vorher setzen kann, sondern das nur als Variable ginge.

Da ist mein Gedankengang Variable <> Konstante halt da gewesen und nicht dran gedacht das man hier ja von beidem redet: Inline-Variable (macht aus meiner Sicht selten Sinn) und Inline-Konstante (macht häufiger mal Sinn).

Aber das ist nur meine Meinung.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 11:26
Es ist schon erstaunlich, das hunderttausende von C-, C++ -, und C#-Entwicklern seit Jahrzehnten (!) mit diesem Feature zurechtkommen und trotzdem guten Code schreiben können. Ich vermisse dieses Feature in Delphi schmerzlich und bin froh, das es nun Einzug hält.
  Mit Zitat antworten Zitat
Heimlich

Registriert seit: 1. Apr 2020
11 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 11:41
Es ist schon erstaunlich, das hunderttausende von C-, C++ -, und C#-Entwicklern seit Jahrzehnten (!) mit diesem Feature zurechtkommen und trotzdem guten Code schreiben können. Ich vermisse dieses Feature in Delphi schmerzlich und bin froh, das es nun Einzug hält.
Du verwechselt da gerade was. Hunderttausende von C-, C++ -, und C#-Entwicklern schreiben seit Jahrzehnten funktionierenden Code, aber bestimmt keinen guten und schon gar keinen sauberen.
Deshalb hat folgender Satz von Niklaus Wirth immer noch Bestand:
"C++ is an insult to the human brain."
Das kann man auch bei C# sagen.
  Mit Zitat antworten Zitat
Heimlich

Registriert seit: 1. Apr 2020
11 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: 10.4 : Warum Inline-Variablen?

  Alt 29. Mai 2020, 11:31
Ich sehe eigentlich nur einen Vorteil, bin aber nicht ganz so bewandert wie viele andere hier.
Man kann eine Variable festlegen und den "Initialwert" gleich mit festlegen und diesen auch sofort erkennen.
Na dann schau mal hier:

Delphi-Quellcode:
unit Unit1;

interface
  uses Unit2;
...
...

begin
  var IstEinText := GetIstEinText;
 ...
 ...
end;
Delphi-Quellcode:
unit Unit2;

interface

function GetIstEinText: string;

implementation

function GetIstEinText: string;
begin
  Result := 'Ja, das ist ein Text.';
end;
Wahrscheinlich denkt man erst, es ist ein Boolean, aber Pustekuchen.

Damit wäre Folgendes obsolet:

In einem Großteil der Software spielt es keine Rolle, welchen exakten Typen eine Variable hat, sofern der Variablenname deutlich ist (siehe auch der von mir zuvor verlinkte Vortrag).

...weil Variablennamen nicht vorgeschrieben werden.


Also ist es kein Vorteil, sondern es könnte einen Vorteil sein, aber könnte ist nichts Halbes und nichts Ganzes.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:26 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