Scope vs Gültigkeitsbereich

X

Xyz1

Gast
Wer ist wir? Wer ist CB? Was bist Du? :D Eine Darbietung der Lächerlichkeit kaum zu überbieten würde ich mal sagen.
 

Der Wissende

Mitglied
Wer ist wir? Wer ist CB? Was bist Du? :D Eine Darbietung der Lächerlichkeit kaum zu überbieten würde ich mal sagen.
Ich will mich nur vor solcher gefährlichen Dummheit schützen. :D
Meinst du wirklich mich würden Beleidigungen von dir, der seit Jahren einfach nur trollt, treffen? Mir ist das doch total egal was du von mir denkst.
Was an deinem "Hobby" nur doof ist, dass du Leuten, die hier Hilfe suchen, Blödsinn erzählst. Ich unterstell dir einfach mal, dass du das absichtlich tust... Alles andere wäre einfach nur dumm. Du kannst doch nicht ernsthaft Behauptungen in den Raum werfen, die sonst nirgendwo stehen, und dann mit Beleidigungen verteidigen. Das macht doch niemand, der nicht einfach nur Spaß dran hat.
 
X

Xyz1

Gast
@mrBrown Entferne alles ab #29 mal und verschiebe die Diskussion in Sonstiges/Plauderecke. Beleidigungen müssen nicht im On-topic stehen...
 
K

kneitzel

Gast
Also das Du (@Tobias-nrw) immer noch an deinem Gültigkeitsbereich so festhältst ist schon erstaunlich. Du hast die Hinweise zur JLS nicht einmal wahrgenommen oder warst du nur nicht in der Lage, sie zu verstehen.

Und natürlich kann die Variable auch in den 500 Zeilen vorher verwendet werden, jedoch vor der ersten Zuweisung nicht lesend.

Unterschied ungültige Variable und Variable enthält keinen definierten Wert hast du auch noch nicht verstanden...

Und dann hier so aufzutreten ... Das würde ich ja normalerweise als Witz auffassen, aber du meinst das wirklich ernst!

Fakten ignorieren, nie Argumente bringen und sich für gut halten .... Bei einer Methode mit über 1000 Zeilen Code :) Und wir haben bei Clean Code versucht, hier eine Grenze zu definieren :)
Zumal der Einwand mit der langen Methode einfach zu lösen gewesen wäre mit einem einfachen Hinweis, dass man nur die Bereiche aufzeigen wollte und die Größe der Bereiche keine Rolle spielt ....aber das erfordert wohl einen gefestigten Charakter, der bei einem Widerspruch sachlich reagieren kann....

Aber Höhepunkt war, anderen vorzuwerfen, kein Java zu können... Wo Du außerhalb der JLS bist mit Deiner Position ...
 
K

kneitzel

Gast

Das würde schon erläutert. Das liegt einfach nur daran, dass @Tobias-nrw immer Recht hat. Wir haben immer Unrecht. Nur @mrBrown (oder war es @mihe7?) hat etwas weniger Unrecht und wird daher etwas akzeptiert...

@kneitzel Deine Beiträge sind auch dumm.
Ja, danke. Keine Argumente, nur eine reine These. Somit wieder ein gutes Beispiel, wie du hier ohne Argumente um die Ecke kommst. Andere Beispiele findest Du in unzähligen Threads mit Dir, wo nach Argumenten für eine These von Dir gefragt wurde und von Dir nie etwas gekommen ist.
 
X

Xyz1

Gast
Ja, was soll ich dazu noch schreiben? Mir vorwerfen, ich hätte, den Abschnitt in der JLS nicht gelesen, aber selber einfachste Beiträge nicht verstehen... Wenn Du anderer Meinung bist, dann versuche doch nicht erst, zu antworten.
Langsam frage ich mich auch, wie du zu Deiner IT-Ausbildung gekommen bist... Vermutbar wäre, dass zu der damaligen Zeit Abschlüsse einfach verschenkt wurden. Ob jemand lern- und kritikfähig gewesen ist, spielte dabei wohl eine nebensächliche Rolle.
und nochmals... Deine jetzige Position interessiert mich nicht so viel.
 

Der Wissende

Mitglied
Das lustige hier ist ja, das @Tobias-nrw ja eigentlich recht hat, wenn er meinen würde, dass man eine Variable so nah wie möglich bei der Deklaration auch initialisieren sollte. Aber er besteht halt einfach darauf, dass dieser Sachverhalt als "maximierung des Gültigkeitsbereich" bezeichnet wird. Was halt einfach nicht richtig ist, weil Gültigkeitsbreich ist das deutsche Wort für Scope und das meint nunmal was anderes.

Ja, was soll ich dazu noch schreiben?

Beispielsweise könntest du jetzt schreiben: "Okay wir sind uns ja prinzipell einig, dass man eine Variable so nah wie möglich an der Deklaration initialisieren sollte. Ich hab mich nur etwas ungeschickt ausgedrückt"

Aber solange du einfach nur allen anderen Unfähigkeit unterstellst, dass sie von Java keine Ahnung haben und ihre IT-Ausbildung geschenkt bekommen haben, bleibst du für mich einfach nur ein Troll.
 
K

kneitzel

Gast
Und wieder nichts wirklich konkretes:
a) welchen Beitrag habe ich deiner Meinung nach nicht verstanden?
b) Wenn Du schlicht Quatsch schreibst, der mit der JLS nicht in Einklang zu bringen ist, dann werde ich das gerne schreiben. Nicht für Dich - Du beweist ständig, dass Du sowas generell nicht zur Kenntnis nimmst - aber es gibt tatsächlich andere, die das durchaus interessieren könnte.
c) Dein Hinweis bezüglich meine IT Ausbildung zeigt wieder: Du hast keine Argumente und versucht auf eine plumpe Art und Weise die Person anzugehen. Halt so erbärmlich wie Dein ganzes Auftreten hier...

Das lustige hier ist ja, das @Tobias-nrw ja eigentlich recht hat, wenn er meinen würde, dass man eine Variable so nah wie möglich bei der Deklaration auch initialisieren sollte. Aber er besteht halt einfach darauf, dass dieser Sachverhalt als "maximierung des Gültigkeitsbereich" bezeichnet wird. Was halt einfach nicht richtig ist, weil Gültigkeitsbreich ist das deutsche Wort für Scope und das meint nunmal was anderes.

Ja, wobei er ja auch (mehr oder weniger schön) erläutert hat, was er darunter versteht.

Das sind alles Nichtigkeiten, die mit einer einfachen kleinen Aussage aus der Welt zu schaffen sind. Dass da dann sogar die JLS bemüht werden muss und er das dann immer noch nicht einsieht ... und dann das Wort auch weiter in rein seinem Sinne verwendet, das ist etwas unverständlich ...

Fehler passieren. Verwechsle mrbrown und mihe7 (Wer im Thread etwas geschrieben hat): Schade aber auch. Die entsprechenden Kommentare sind gekommen :) Oder richtig peinlich: Meine "else schleife" ... Das konnte ich selbst erst nicht glauben, dass ich das geschrieben hatte... Oder ein Vertauschen von links und rechts ...
Foren-Beiträge sind in der Regel keine wissenschaftlichen Ausarbeitungen und werden relativ schnell geschrieben. Und passiert ist passiert. Da kommt dann - so die Richtigstellung klar war - evtl. ein Spruch "Ich glaub ich muss in Rente gehen" oder so ... Oder man schreibt da noch kurz etwas dazu... Ist in meinen Augen alles nichts Schlimmes (aber etwas peinlich ist es mir schon).

Da ist halt die Frage, ob und wie man zu seinen Fehlern stehen kann....
 

mihe7

Top Contributor
Fehler passieren.
Gott sei Dank, sonst wäre es ja langweilig.

Die entsprechenden Kommentare sind gekommen
Ein bisschen Spaß muss sein.

Oder richtig peinlich: Meine "else schleife" ... Das konnte ich selbst erst nicht glauben, dass ich das geschrieben hatte... Oder ein Vertauschen von links und rechts ...
Gut, dass Du mich an die links-rechts-Geschichte erinnerst, die hätte ich doch glatt vergessen :p

Aber mal ernsthaft: mein Gott, das sind Tippfehler oder man hat mal einen gedanklichen Dreher oder ist geistig nicht auf der Höhe. Dann legt man kleine und größere Eier. Die nagen an einem selber mehr als es andere stört. Und wenn ich fachlich daneben liege oder es bessere Ansätze gibt, bin ich froh, darauf hingewiesen zu werden. Da waren schon einige Dinge dabei.

Auf jeden Fall finde ich es gut, wenn man sich gegenseitig ein bisschen aufziehen kann. Und zur Not gilt ja immer noch: @Robat (aufgrund gelegter Eier wahlweise auch @mihe7) hats versaut, wie ein neu angemeldetes Mitglied in seinem ersten Kommentar seinerzeit feststellte...
 

Meniskusschaden

Top Contributor
So richtig sachlich geht es in diesem Thread ja nicht zu. Aber so einseitig wie es hier rüber kommt, sehe ich es nicht. Das hier waren die drei ersten Posts von @Tobias-nrw:
Dafür gibt es einen Algorithmus für: https://en.wikipedia.org/wiki/Bresenham's_line_algorithm . Pseudocode und Grafiken sind auch dabei. Ich kann Dir, wenn Du willst das später mal ausprogrammieren.
Und den Gültigkeitsbereich solcher Variablen möglichst maximieren :)
Ich war immer der Meinung, das beides dasselbe meint?
Ne,
Java:
int i;
//500 Zeilen...
i = 5;
//500 Zeilen...
Der Sichtbarkeitsbereich erstreckt sich über 1000 Zeilen, der Gültigkeitsbereich von i "nur" über 500. Vor int i; kann natürlich auch noch Zeilen sein...
Daraufhin hat er einen Trollvorwurf kassiert. Warum? Er hat doch eine ganz normale Ansicht geäußert, die man haben darf und nach Rückfrage des unklaren Begriffs sofort dargelegt, was er damit meint. Man soillte nicht ganz aus den Augen verlieren, dass er hier provoziert wurde - auch wenn ich vermute, dass das keine vorsätzliche Provokation war, sondern nur eine Fehldeutung seines Postings.

Wenn ein Begriff falsch oder vermeintlich falsch verwendet wird, gibt es ein paar Möglichkeiten, konstruktiv damit umzugehen: man nennt den korrekten Begriff, schlägt einen weniger mißverständlichen vor oder akzeptiert für die Dauer des Threads die abweichende Definition. Ich finde, der sehr gute Beitrag #23 von @mrBrown zeigt auch, dass für diesen Thread ein Begriff gebraucht wurde. Er zeigt auch, dass es sich lohnt über dieses Thema mal nachzudenken und verleiht der Ursprungsthese von @Tobias-nrw dadurch ihren Sinn und ihre Berechtigung.

Die Diskussion zur Begriffsbildung fand ich etwas kleinlich. Wer hat denn hier überhaupt die Hoheit über die Begriffsdefinition? Zunächst die JLS. Aber die ist nun mal auf englisch. Zu den deutschen Begriffen sagt sie logischerweise nichts und ein Wörterbuch hilft in diesem Fall tatsächlich nur sehr bedingt weiter, denn der Begriff scope ist ja sehr allgemein gehalten. Ein Wörterbuch spuckt da eben auch deutlich spezifischere Nebenbedeutungen aus. Da müsste man dann ja fast schon sämtliche deutschen Begriffe blockieren, die auf "bereich" enden.
Es ist ja ein sehr praktischer Vorteil der deutschen Sprache, dass sie zusammengesetzte Substantive erlaubt, während man im englischen mit "scope of ..." arbeiten muss. Deshalb könnte man auch argumentieren, dass es eigentlich nicht richtig ist, aus der JLS nur den isolierten Begriff "scope" zu übersetzen, sondern dass man stattdessen "scope of ... declaration" übersetzen müsste, was wohl Deklarationsbereich ergeben würde.

Wer legt den deutschen Begriff also fest? Ich denke, weder JLS noch Wörterbuch, sondern es setzt sich der Begriff durch, der in der Entwicklergemeinde und Literatur am häufigsten verwendet wird. Das wäre meines Erachtens tatsächlich "Gültigkeitsbereich". Dennoch wäre es für das, was @Tobias-nrw sagen wollte ein sehr passender Begriff gewesen und jeder hat die Freiheit eigene Definitionen einzubringen, was @Tobias-nrw in einer Phase getan hat, als noch alles sachlich zuging.

Mit dem Beitrag #23 von @mrBrown war eigentlich ein guter Abschluss oder eine Basis für eine sachliche Fortführung gegeben. Schade, dass es jetzt immer noch so destruktiv weiter geht.
 
X

Xyz1

Gast
Es wird leider unsachlich weitergehen... Aber solange das nicht in Tätlichkeiten umschlägt ("dem hau ich aufs Auge"), bin ich schon zufrieden. Ich danke Dir @Meniskusschaden . und hoffe... das Popcorn ist jetzt aufgebraucht.
 
K

kneitzel

Gast
Wer legt den deutschen Begriff also fest? Ich denke, weder JLS noch Wörterbuch, sondern es setzt sich der Begriff durch, der in der Entwicklergemeinde und Literatur am häufigsten verwendet wird. Das wäre meines Erachtens tatsächlich "Gültigkeitsbereich". Dennoch wäre es für das, was @Tobias-nrw sagen wollte ein sehr passender Begriff gewesen und jeder hat die Freiheit eigene Definitionen einzubringen, was @Tobias-nrw in einer Phase getan hat, als noch alles sachlich zuging.

Also ich stimme Dir zu, dass die englische JLS für deutsche Begriffe nur bedingt tauglich ist. Nicht alles wird sich 1:1 übersetzen lassen und bei Begriffen ist tatsächlich wichtig, was in der Entwicklergemeinde und der Literatur verwendet wird.

Dann schauen wir doch einfach einmal in die Literatur. "Java ist auch eine Insel" verwendet den Begriff z.B.:
http://openbook.rheinwerk-verlag.de...02_004.htm#mj47f0fa7692df8df688cd6a8a6cf9fefd
(Andere Bücher habe ich so auf Anhieb nicht online im Zugriff. Ich selbst beschränke mich bei meinen Büchern auf englische Fachliteratur)

Es wurde aber auch Hochschule erwähnt (Universitäter Bereich), also könnte man einmal schauen, wie dies den an Hochschulen gehandhabt wird (Da wird dann ja auch Java verwendet und da kann man ja mal schauen, was die hier im Zusammenhang mit Java verwenden):
http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/gueltigkeitsbereiche_java
https://www.math.uni-bielefeld.de/~frettloe/teach/alte-vorles/ueb/Java_Tag2_handout.pdf

Aber man kann es auch geschichtlich betrachten. Wenn man dann z.B. Sprachen betrachtet, die es vorab gab und noch gibt, dann kann man z.B. bei C / C++ schauen.... Da ist es prinzipiell gleich, nur eben gibt es diese Prüfung und eine Variable mit undefinierten Wert kann gelesen werden. Klar: Java ist nicht C / C++. Aber ist das ein reiner C / C++ Begriff oder ist es evtl. eine allgemeinere Sache?

Dazu schauen wir mal, was denn die Leute auf Wikipedia so sagen: Da hat "Gültigkeitsbereich" gar keinen eigenen Eintrag. Man kann es aber etwas finden:
https://de.wikipedia.org/wiki/Gültigkeit
Da wird das Thema auch beleuchtet und da gibt es dann sogar eine Aussage "Eine sichtbare Variable ist immer gültig."
(==> ungültige Variable vs. Variable mit undefiniertem Wert!)

Interessant:
https://de.wikipedia.org/wiki/Variable_(Programmierung)
Hier gibt es einen Block zur Sichtbarkeit und da taucht dann der Begriff Gültigkeitsbereich plötzlich einmal auf. Da wird es wohl versehentlich als Synonym für den Sichtbarkeitsbereich verwendet, weil da auch ein Beispiel gebracht wird und dort von Gültigkeitsbereich gesprochen wird.

Also das Thema ist durchaus komplex. Und ich habe mir da auch durchaus viele Gedanken gemacht. Alleine schon die Recherchen, die ich anstelle, nur weil da jemand meint, einen Begriff falsch verwenden zu müssen... Die Recherchen sind meinen Postings doch auch klar erkennbar. Und solche Recherchen als Provokation zu sehen ist für mich nicht nachvollziehbar.

Die Schlüsse, die ich ziehe, mögen durchaus kritisch zu sehen sein. Das mit der Übersetzung beinhaltet tatsächlich gewisse Problematiken. Aber JLS ist die Grundlage von Java. Und wenn wir Unterscheidungen haben wollen, dann ist doch die Frage: taucht das da auch auf? Haben wir da einen Sichtbarkeitsbereich und einen Gültigkeitsbereich? Ist da eine Variable ungültig obwohl sichtbar? Und sowas konnte ich nicht finden. Aber evtl gibt es diese Unterscheidung ja im Englischen? Da kannst Du uns ja erhellen?

Und einen Punkt, den ich nur teilweise angesprochen habe: Was macht diese Unterscheidung für einen Sinn? Muss man da so unterscheiden? Müssen wir also einen Begriff finden (Gültigkeitsbereich aber bitte nicht, der Begriff ist vergeben!)? Aber das will ich jetzt nicht auch noch ausführen. Ich habe hier jetzt genug Zeit investiert. (Und nein, das Spielchen, dass ich mich von euch ständig so triggern lasse, funktioniert nicht. Das Spielchen ist auch zu leicht zu durchschauen, wenn man es denn kennt.)
 

Meniskusschaden

Top Contributor
@kneitzel: Zu den ganzen Belegen zur üblichen Auslegung des Begriffs "Gültigkeitsbereich": Die wären - zumindest meinetwegen - nicht notwendig gewesen. Ich hatte ja schon in meinem vorigen Beitrag geschrieben, dass ich das auch als die übliche Definition ansehe. Ich weiß gar nicht, ob das überhaupt noch strittig ist.

Die Recherchen sind meinen Postings doch auch klar erkennbar. Und solche Recherchen als Provokation zu sehen ist für mich nicht nachvollziehbar.
In meinem Abschnitt über die Provokation ging es um den Troll-Vorwurf. Der kam nicht von dir.

Und einen Punkt, den ich nur teilweise angesprochen habe: Was macht diese Unterscheidung für einen Sinn? Muss man da so unterscheiden?
Ich verweise noch mal auf Beitrag #23 von @mrBrown. Der wäre ohne (begriffliche) Unterscheidung bestimmt viel umständlicher ausgefallen und ist doch sehr aufschlussreich geworden. Also ja: wenn man darüber sprechen möchte, ist die Unterscheidung sinnvoll.

Müssen wir also einen Begriff finden (Gültigkeitsbereich aber bitte nicht, der Begriff ist vergeben!)?
Jeder hat die Freiheit, einen besseren Begriff in den Ring zu werfen. Niemand hat es getan. Und hier:
Wenn man nun spezieller Begriffe nutzen möchte, dann sollten diese klar definiert werden vor der Nutzung. Ansonsten gehen wir von den üblichen Wörtern aus wie sie z.B. bei Wikipedia definiert sind.
hast du ja treffend beschrieben, wie es mit Begriffsnutzungen läuft. Nur dass das "Ansonsten ..." eben nicht zutrifft, weil @Tobias-nrw ja eine Definition geliefert hat.

Und nein, das Spielchen, dass ich mich von euch ständig so triggern lasse, funktioniert nicht. Das Spielchen ist auch zu leicht zu durchschauen, wenn man es denn kennt.
Falls dieses "euch" mich einschließen soll, weiß ich nicht, was du damit meinst.
 
K

kneitzel

Gast
hast du ja treffend beschrieben, wie es mit Begriffsnutzungen läuft. Nur dass das "Ansonsten ..." eben nicht zutrifft, weil @Tobias-nrw ja eine Definition geliefert hat.

Er hat eine Definition geliefert?

Also erst einmal hat er den Begriff ohne Definition benutzt (#2). #4 enthält keine klare Definition. Es ist ein Beispiel, welches noch nicht einmal eindeutig ist. Welche 500 Zeilen sind denn nun der Gültigkeitsbereich?

In #7 reagiert er auf die Nachfrage, aber sagt es immer noch nicht genau aus. (Folgt aus der Tatsache, dass die Variable i vor der Initialisierung ungültig/nutzlos ist, dass dieser Block nicht zum Gültigkeitsbereich gehört?)

Also haben wir schlicht noch keine genaue Definition des Begriffes. Wir haben eine Vorstellung, was er meint, aber eine Definition haben wir nicht.

Aber das müssen wir nicht weiter vertiefen. Wir haben beide unsere Meinung zu dem Thread und in den Feinheiten werden wir uns wohl nicht wirklich annähern.
 

Blender3D

Top Contributor
X

Xyz1

Gast
Mir Populismus vorzuwerfen, ist nicht gerade nett. Zumal ich mit den Persönlichkeiten/dem Persönlichem nicht anfing.

Ich habe gar keine lust, weiter zu diskutieren... Das sei mir gestattet. Außerdem habe ich darum gebeten, alle unsachlichen Beiträge zu entfernen.

(Das wären u.a. alle von @kneitzel .)
 
K

kneitzel

Gast
Mir Populismus vorzuwerfen, ist nicht gerade nett. Zumal ich mit den Persönlichkeiten/dem Persönlichem nicht anfing.

Ich habe gar keine lust, weiter zu diskutieren... Das sei mir gestattet. Außerdem habe ich darum gebeten, alle unsachlichen Beiträge zu entfernen.

(Das wären u.a. alle von @kneitzel .)

Wie bitte? Welche Beiträge sind unsachlich? Mein letzter Beitrag, der dargelegt hat, dass Du eben keine Definition geliefert hast? Ich werde Dir jetzt nicht die Arbeit abnehmen, einmal zu recherchieren, wie man Begriffe definieren kann und sollte und was eine Definition ist...(Sollte jemand, der Abitur hat oder gerade macht eigentlich kennen und können aber zur Not gibt es im Internet genug Informationen, die man nachlesen könnte....)

Oder der Beitrag davor? Das war eine sachliche Antwort auf Meniskusschaden....

Oder welche Beiträge sind unsachlich? Aber alle meine Beiträge doch ganz offensichtlich nicht!

Aber Du wirst uns jetzt hoffentlich alle überraschen und begründen, wieso alle Beiträge von mir unsachlich sein sollen.
 
X

Xyz1

Gast
Du machst doch schon unsachlich/mit Persönlichem weiter... Und merkst das und dass Deine "Argumentation" hinfällig/obsolet ist, gar nicht mehr. Jemanden ohne Kritikfähigkeit kann man nicht vom Gegenteil überzeugen. Und das muss man ja auch nicht. Wenn dem Betroffenen das Sandschloss gefällt, gefällt es eben. Ob es beim nächsten Regen zusammenfällt, da es auf keinem festen Grund gebaut wurde, ist dabei nebensächlich...
Aber baue ruhig weiter.
 
K

kneitzel

Gast
Wieder nichts konkretes. Wieso kannst Du es nicht konkretisieren?

Also ein paar klare Fragen:
a) Wo mache ich mit Persönlichem weiter? Dass ich Dir unterstelle, dass Du weißt, was eine Definition ist? Das ist eine wirklich bösartige Unterstellung. (Interessanter Weise incl. Begründung: Abitur. Muss man das vertiefen bezüglich wissenschaftliche Arbeit verfassen können und so? Da gehören Begriffsdefinitionen auch dazu.... Und wer dies list wird erkennen, dass dies auch nur eine Begründung war, wieso ich nicht gute Links zu dem Thema Definitionen heraus suchen wollte....)

b) Meine Argumentation ist hinfällig / obsolet? Wieso das? Dass meine Argumentation bezüglich des von Dir speziell definierten Begriffs nicht hinfällig/obsolet ist, hast Du ja gezeigt, als Du an Deiner Definition weiter festgehalten hast.

c) Wo bitte baue ich auf Sand? In meinen Posts habe ich z.B. auf die JLS gebaut. Wieso ist das für Dich im übertragenen Sinne "Sand"? In der aktuell anhaltenden Diskussion setze ich auf die Definition von Diskussion z.B. bei Wikipedia wonach dies ein Austausch von Argumenten ist. Wo ist dies in Deinen Augen "Sand"?

Deine reine Sichtweise ohne jegliche Argumente und Begründungen führen zu nichts. Wie man Dinge referenzieren kann, kannst Du z.B an meinen Beiträgen sehen. Bestimmt keine Glanzstücke, da nur einfache Postings in einem Forum, aber man kann recht gut erkennen, wie ich versuche, meine Aussagen etwas zu untermauern. Bei Definition von Begriffen ziehe ich zum Beispiel andere Definition heran wie z.B. die Java Language Specification. Dem muss man nicht zustimmen (siehe Meniskusschaden, der mit Gegenargumenten kommt) aber es untermauert die eigene Position.

Kannst Du neben der reinen Äußerung Deiner Sichtweise etwas erläutern, wie Du zu dieser kommst? Ich habe konkrete Fragen formuliert. Evtl. willst Du diese einfach einmal beantworten.

Bezügich
Jemanden ohne Kritikfähigkeit kann man nicht vom Gegenteil überzeugen. Und das muss man ja auch nicht.
Dem stimme ich voll und ganz zu. Sollte also erneut keine Argumente kommen sondern nur so eine reine Meinungsäußerung, dann werde ich darauf nicht weiter eingehen. (Ich habe jetzt zwei Mal hintereinander nach konkreten Aussagen gefragt und es ist beides Mal unter dem Strich nichts konkretes von Dir gesagt worden.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich verweise noch mal auf Beitrag #23 von @mrBrown. Der wäre ohne (begriffliche) Unterscheidung bestimmt viel umständlicher ausgefallen und ist doch sehr aufschlussreich geworden. Also ja: wenn man darüber sprechen möchte, ist die Unterscheidung sinnvoll.
Die Begrifflichkeit dafür gibts ja, sogar in der JLS. Der Beitrag wäre nicht weniger umständlich geworden, wenn man statt „gültig“ einfach ugs. „initialisiert“ (oder nach JLS definitely assigned) benutzt hätte :) Gültigkeitsbereich hab ich da nur geschrieben, damit er sich nicht beschweren kann, dass ich es nicht tue.

Daraufhin hat er einen Trollvorwurf kassiert. Warum? Er hat doch eine ganz normale Ansicht geäußert, die man haben darf und nach Rückfrage des unklaren Begriffs sofort dargelegt, was er damit meint. Man soillte nicht ganz aus den Augen verlieren, dass er hier provoziert wurde - auch wenn ich vermute, dass das keine vorsätzliche Provokation war, sondern nur eine Fehldeutung seines Postings.
Ja, das war leider etwas vorschnell von mir. @Tobias-nrw, entschuldige bitte, dass ich deinen Beitrag dort als Trollen bezeichnet habe.

Den Inhalt des Beitrags (unabhängig vom Ersteller) halte ich aber immer noch für Unsinn, siehe meine Längere Erklärung in #23, vor allem aber auch im Kontext des Beitrags, auf den er sich bezog.
Dort wurden alle Variablen direkt initialisiert - und genau das führte erst zu diesem Fehler. Ein möglichst spätes initialisieren hätte den Fehler behoben (ebenso ein kleinerer Scope).

Ich bin auch weiterhin der Meinung, das Variablen keineswegs so früh wie möglich nach der Deklaration zugewiesen werden sollten. Die Deklaration sollte so spät wie möglich erfolgen, und danach auch das erste Zuweisen so spät wie möglich. Der Fall, dass beides getrennt ist, dürfte sich allerdings auf Zuweisungen in einem if-else beschränken (oder hat grad wer noch andere Fälle?), welches sich meist Refactoren lässt.

Das einzige Beispiel, welches dazu von @Tobias-nrw kam, hat man mit einem einfachen „Scope minimieren“ deutlich sinnvoller behandelt. Ein Beispiel, in dem man zusätzlich zu „Scope minimieren“ noch den „Gültigkeitsbereich“ maximieren könnte, ist er bis jetzt leider schuldig geblieben.
 

Blender3D

Top Contributor
@kneitzel Deine Beiträge sind auch dumm.
Also wenn das nicht persönlich ist..... ????
Mir Populismus vorzuwerfen, ist nicht gerade nett. Zumal ich mit den Persönlichkeiten/dem Persönlichem nicht anfing.
Versuch einmal diese beiden Aussagen logisch zu verknüpfen und poste dann deine Schlussfolgerung.
Es handelt sich hierbei um einen ganz einfachen logischen Zusammenhang. Also keine schwierige Aufgabe.
 
K

kneitzel

Gast
Nein, die meinte ich und do-while, wenn für die Abbruchbedingung eine Variable verwendet wird.

EDIT: wobei es natürlich auch noch die Möglichkeit gibt, in einer Schleife eine Variable zu verändern, die erst später gebraucht wird.

Ja, da hatte ich auch kurz dran gedacht. Aber da sind mir ein paar Gedanken durch den Kopf gegangen bezüglich Sinn / Unsinn:
a) In einer Schleife einen Wert immer wieder zu setzen: Dies halte ich für wenig effektiv. Oder könnt ihr euch da einen sinnvollen Einsatz vorstellen?
b) Wenn in der Schleife nicht ständig zugewiesen wird sondern nur zu bestimmten Bedingungen: Dann komme ich ggf. zu dem Problem, dass die Variable auch nach der Schleife nicht sicher einen Wert hat, oder? (Also es muss der Fall a sein, nur eben leicht modifiziert a.la. unterschiedliche Werte werden in if / else zugewiesen ....)
c) Und wenn ich nicht nur in die Variable schreiben will sondern auch lesen, dann trifft mich a/b doch auch wieder, weil ohne dass eine sichere Zuweisung erfolgt ist, kann ich den Wert nicht lesen....

Aber evtl. ist es auch einfach Unsinn, sich so im Detail den Kopf zu zerbrechen, denn dies ist ja eigentlich ein xy Problem. Die Kernfrage war ja Clean Code. Aber dieses konkrete Problem stellt sich nicht erst, wenn man das Ursprüngliche Problem direkt mit einem Refactoring in mehrere Methoden direkt sauber lösen kann (Wurde ja auch schon im Thread sauber aufgezeigt.)
 

mihe7

Top Contributor
Ist zwar ein wenig konstruiert, was besseres ist mir ad hoc nicht eingefallen; Vorbedingung: next() liefert wenigstens ein Element.
Java:
String last;
do {
    last = next();
} while (hasNext());
System.out.println(last);
Ansonsten hast Du nicht ganz unrecht :) Da gibt es meist bessere Wege.
 
K

kneitzel

Gast
Dass ich Bockmist nicht einfach so stehen lasse? Oder worauf wolltest Du hinaus? :rolleyes:
Was genau meinst Du? Was bezeichnest Du wieso als Bockmist?

Und wolltest Du mit unsachlichen Aussagen nicht aufhören? Oder was hast Du hier zu welcher Sache beigetragen?

Vielleicht kommen ja jetzt endlich mal Argumente.
 

Oben