Aloha ;)
Ich rate nicht aus Performancegründen zu elseif, sondern aus fachlichen Gründen
Ich stimme vollkommen zu, dass die fachlichen Gründe (die ich ja auch genannt hatte), hier die viel wichtigeren sind. Und ja, stimmt, das hätte ich vielleicht klarer machen sollen.
Die fachliche Anforderung bestimmt also die Gestaltung der Bedingung.
Primär, ja.
Und dein Performanceargument ist auch aus einem anderen Grund Unsinn: Für eingeloggte User werden ja grundsätzlich BEIDE Bedingungen ausgewertet, bei beiden Varianten, egal ob zwei IF, oder IF-ELSEIF.
Das Performanceargument bezieht sich, zumindest so wie es gemeint war, nicht auf diesen Einzelfall. Es geht vielmehr darum, dass es performancetechnisch grundsätzlich günstiger ist, an allen Stellen, an denen das fachlich angebracht ist, elseif zu verwenden statt zweier getrennter if-Abfragen.
Sonst steht ja genau das im Raum, was der TO gesagt hat: "Es funktioniert ja auch". Die zwei if-Abfragen sind fachlich ja nicht unbedingt falsch, nur nicht optimal (vorausgesetzt beide Bedingungen können rein technisch unabhängig voneinander überprüft werden, von was ich hier ausgegangen bin).
Mir war es auch wichtig, zu sagen, dass es eben (u.A. aus Performancegründen) nicht gut ist, einen beliebigen nicht-falschen Weg zu gehen, sondern eben genau den optimalen.
Insofern ist das Performanceargument ein weiterer Grund/Anreiz, den fachlich optimalen Weg zu gehen.
wenn du deine If-Abfragen jedes mal so unperformant gestaltest
Oder hab ich da Bockmist verzapft? Wenn ja, bitte um Begründung :P Will ja schließlich auch noch was lernen ;)
Begründe, was hier unperformant ist.
Die Prüfung zweier Bedingungen, wo bei einer gewissen Menge der Anfragen nur eine geprüft werden müsste.
Mit dem Gedanken "Ich will ja Performance, und der RIDER hat gesagt, da muss man ELSEIF nehmen" entsteht falscher Code. Nämlich in den Fällen, in denen zwei voneinander unabhängige Bedingungen geprüft werden müssen.
Hm, überspitzt formuliert dieser Gedanke. Ich erwarte von Lesern auf selfhtml, dass sie sich auch selbst über das, was man ihnen sagt, Gedanken machen. Oder im Zweifelsfall nachfragen.
In meinen Augen gings hier um ein klassisches "so wie ichs gemacht hab passiert aber das gleiche" und in diesem Fall stimmts ja. Wenn zwei if oder if-elseif den exakt selben Effekt zeigen, ist es immer performanter if-elseif zu nehmen.
Zusammenfassend:
Das Performanceargument ist eben nicht Unsinn. Aber: Ich hätte vielleicht genauer formulieren sollen, in welchem Fall elseif als performantere Alternative zu zwei if-Abfragen eingesetzt werden kann und ich hätte vielleicht klarer machen sollen, dass das Performance-Argument nur ein Sidekick der Begründung über die fachliche Anforderung ist. Es gilt schließlich grundsätzlich, dass die fachlich optimale Lösung auf großen Skalen die performanteste ist.
Zufrieden? ;)
Grüße,
RIDER
Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller Erreichbar meist Mittwochs ab 21 Uhr im Self-TS (ts.selfhtml.org) oder sonst - wenn online - auf dem eigenen TeamSpeak-Server (fritz.campingrider.de). # Facebook # Twitter # Steam # YouTube # Self-Wiki # ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[