Java lernen

10/22/2015 17:49 Menan#16
Falls du dich für Eclipse entscheiden solltest, dann mach dich aufjedenfall mit den Addons von Eclipse vertraut..
Ohne Addons ist die Standart Eclipse IDE an sich total untauglich und den anderen IDEs wie IntelliJ deutlich hinterher.

IntelliJ kannst du dir vorstellen, wie wenn Netbeans und Eclipse ein Kind bekommen hätten. Eine geniale IDE, leider in den meisten Firmen auf Grund der freien Alternativen leider nicht vorhanden...
10/22/2015 22:41 TheRealLenon#17
Quote:
Originally Posted by Menan View Post
Falls du dich für Eclipse entscheiden solltest, dann mach dich aufjedenfall mit den Addons von Eclipse vertraut..
Ohne Addons ist die Standart Eclipse IDE an sich total untauglich und den anderen IDEs wie IntelliJ deutlich hinterher.

IntelliJ kannst du dir vorstellen, wie wenn Netbeans und Eclipse ein Kind bekommen hätten. Eine geniale IDE, leider in den meisten Firmen auf Grund der freien Alternativen leider nicht vorhanden...
Wir werden in unserer Schule ohne Add ons vertraut gemacht mit Eclipse.. (Gutes deutsch)..

Unser Lehrer, welcher uns das extrem gut und nachvollziehbar erklären kann, ist der Meinung, es alles selbst zu Lernen, ohne hilfreiche Add-ons, da die Gefahr besteht, den Sinn des Codes nicht komplett zu verstehen. Ich finde das Lernen ohne Add-Ons eigentlich echt perfekt.
10/23/2015 00:05 ComputerBaer#18
Quote:
Originally Posted by TheRealLenon View Post
Unser Lehrer, welcher uns das extrem gut und nachvollziehbar erklären kann, ist der Meinung, es alles selbst zu Lernen, ohne hilfreiche Add-ons, da die Gefahr besteht, den Sinn des Codes nicht komplett zu verstehen. Ich finde das Lernen ohne Add-Ons eigentlich echt perfekt.
Ich weiß jetzt nicht welche Addons es für Eclipse gibt und an was für Addons du denkst, aber die meisten sollten dazu dienen, dass man sich seine Arbeitsumgebung besser machen kann. Aktionen die du häufig ausführst vereinfachen, wichtige Informationen leichter erkennbar machen oder einfach nur eine Reihe lästiger Klicks ersparen.

Ich kann mir grade kein Addon vorstellen, dass für dich das Programmieren übernimmt und du deshalb den Code nicht mehr verstehst. (Funktionen die unteranderem Get- und Set-Methoden generieren kenne ich, aber das ist einfach zu verstehen) Ich erinnere mich daran, dass ich ein Git-Addon installiert hatte als ich vor Jahren noch Eclipse benutzt habe.
10/23/2015 10:31 TheRealLenon#19
Quote:
Originally Posted by ComputerBaer View Post
Ich weiß jetzt nicht welche Addons es für Eclipse gibt und an was für Addons du denkst, aber die meisten sollten dazu dienen, dass man sich seine Arbeitsumgebung besser machen kann. Aktionen die du häufig ausführst vereinfachen, wichtige Informationen leichter erkennbar machen oder einfach nur eine Reihe lästiger Klicks ersparen.

Ich kann mir grade kein Addon vorstellen, dass für dich das Programmieren übernimmt und du deshalb den Code nicht mehr verstehst. (Funktionen die unteranderem Get- und Set-Methoden generieren kenne ich, aber das ist einfach zu verstehen) Ich erinnere mich daran, dass ich ein Git-Addon installiert hatte als ich vor Jahren noch Eclipse benutzt habe.
Solche Add-Ons meine ich. Genau wie das automatische ausfüllen der Codes, Da die Parameter usw nie angegeben sind, weis man nie, was was ist. Zudem gibt es ja auch diesen FrameBuilder, wo man Buttons usw. platzieren kann. Dadurch wird einem der Code automatisch hinzugefügt und man weiß eigentlich gar nicht, was gemacht wurde...
10/23/2015 17:00 Menan#20
Also die Addons, die Code für dich schreiben, beschränken sich auf simple Dinge, wie erstellen von getter und Setter Methoden oder dem erstellen von TestKlassen + den Testmethoden (welche du allerdings selbst implementieren musst!). Es wird also lediglich die Datei sowie der "Rahmen" in dem du programmierst für dich erstellt.

Aber wieso sollte ich das händisch machen? Spart mir nen Haufen Zeit und Arbeit (vorallem Zeit).

Ich meine eher Addons, wie SonarQube oder Eclemme oder JRebel (falls du WebServices programmierst).
Dann gibt es noch ein Addon, welches dir zu deinen jeweiligen Aktionen den ShortCut in einem Tooltip anzeigt, so dass du bei der Bedinung der IDE mit den ShortCuts vertraut gemacht wirst und somit immer schneller arbeiten kannst (Leute, es gibt nichts besseres als ShortCuts).

Viel wichtiger ist wohl allerdings mit den Refactor-Methoden umgehen zu können...

Niemand in der professionellen Softwareentwicklung schreibt die Methoden Signatur von Hand... Es wird implementiert, der Source zum laufen gebracht und danach Refactort und Sinneneinheiten bzw Funktionseinheiten durch Refactoring ausgelagert, dies geht viel schneller als sich vorher die Methoden Signatur usw zu überlegen, dies macht alles deine IDE für dich.

Im Endeffekt kannst du vermutlich 70% schneller Coden, wenn du deine IDE bedienen kannst und alle Funktionen dieser ausreizen kannst.

Sorry @Lenon, aber das ist ja wohl Schwachsinn. In jedem Unternehmen werden Addons benutzt und die IDEs ausgereizt. Wer die IDE nicht wirklich bedienen kann und nicht weiß, was die IDE kann, wie man effektiv die Autovervollständigung (mit richtigem Namepattern(!)) nutzt, der ist an sich viel zu unproduktiv für ein Unternehmen.
Wieso sollt ihr lerenen Getter und Setter von Hand zu schreiben? Wenn ihr es später auch nicht müssten?
Bei dem Teil mit der GUI geb ich dir Recht, dass der FrameBuilder nicht optimal ist.
10/23/2015 17:35 ComputerBaer#21
Quote:
Originally Posted by Menan View Post
Niemand in der professionellen Softwareentwicklung schreibt die Methoden Signatur von Hand... Es wird implementiert, der Source zum laufen gebracht und danach Refactort und Sinneneinheiten bzw Funktionseinheiten durch Refactoring ausgelagert, dies geht viel schneller als sich vorher die Methoden Signatur usw zu überlegen, dies macht alles deine IDE für dich.
Jetzt frage ich mich, ob ich weiß, wovon du redest oder ob ich nur will, dass ich es weiß. Einiges verstehe oder kenne ich, anderes kommt mir merkwürdig vor. Vermutlich kenne ich nur einen kleinen Teil der Funktionen meiner IDEs.

Quote:
Originally Posted by Menan View Post
Wieso sollt ihr lerenen Getter und Setter von Hand zu schreiben? Wenn ihr es später auch nicht müssten?
Viel zu lernen ist da ja nicht, aber man sollte es ruhig mal gemacht haben um zu wissen was es ist. (Jetzt sag nicht, du hast nie einen Getter oder Setter von Hand geschrieben) Wichtig ist aber nicht "Wie schreibt man drei Zeilen?", sondern "Warum braucht man get/set?" und das lernt man nicht durch das schreiben der kleinen Methode.
10/23/2015 21:16 TheRealLenon#22
Quote:
Originally Posted by Menan View Post
Also die Addons, die Code für dich schreiben, beschränken sich auf simple Dinge, wie erstellen von getter und Setter Methoden oder dem erstellen von TestKlassen + den Testmethoden (welche du allerdings selbst implementieren musst!). Es wird also lediglich die Datei sowie der "Rahmen" in dem du programmierst für dich erstellt.

Aber wieso sollte ich das händisch machen? Spart mir nen Haufen Zeit und Arbeit (vorallem Zeit).

Ich meine eher Addons, wie SonarQube oder Eclemme oder JRebel (falls du WebServices programmierst).
Dann gibt es noch ein Addon, welches dir zu deinen jeweiligen Aktionen den ShortCut in einem Tooltip anzeigt, so dass du bei der Bedinung der IDE mit den ShortCuts vertraut gemacht wirst und somit immer schneller arbeiten kannst (Leute, es gibt nichts besseres als ShortCuts).

Viel wichtiger ist wohl allerdings mit den Refactor-Methoden umgehen zu können...

Niemand in der professionellen Softwareentwicklung schreibt die Methoden Signatur von Hand... Es wird implementiert, der Source zum laufen gebracht und danach Refactort und Sinneneinheiten bzw Funktionseinheiten durch Refactoring ausgelagert, dies geht viel schneller als sich vorher die Methoden Signatur usw zu überlegen, dies macht alles deine IDE für dich.

Im Endeffekt kannst du vermutlich 70% schneller Coden, wenn du deine IDE bedienen kannst und alle Funktionen dieser ausreizen kannst.

Sorry @Lenon, aber das ist ja wohl Schwachsinn. In jedem Unternehmen werden Addons benutzt und die IDEs ausgereizt. Wer die IDE nicht wirklich bedienen kann und nicht weiß, was die IDE kann, wie man effektiv die Autovervollständigung (mit richtigem Namepattern(!)) nutzt, der ist an sich viel zu unproduktiv für ein Unternehmen.
Wieso sollt ihr lerenen Getter und Setter von Hand zu schreiben? Wenn ihr es später auch nicht müssten?
Bei dem Teil mit der GUI geb ich dir Recht, dass der FrameBuilder nicht optimal ist.

Da muss ich dich leider enttäuschen. ein sehr guter Geschäftspartner und Freund meines Vaters, welcher ein Softwareunternehmen in der Nähe von Stuttgart leitet und eine Promotion in Informatik hinter sich hat, benutzt in seiner Firma keine Add-Ons bzw. schreibt seine Codes alle von Hand. Dies ist auch Voraussetzung für einen Informatiker bzw. Entwickler. Da man den Umgang erlernen soll. Die Funktionen des Codes und die Bauweise verstehen soll. Was bringt einem ein Add-On, wenn der Code nicht selbst geschrieben wurde bzw. von einem Add-On vollendet wurde.

Zudem gibt es hier in Deutschland einen Spruch, welchen ich ziemlich feier... Deutsche Handarbeit.
10/23/2015 21:50 algernong#23
Wenn du den Umgang aber gelernt hast, gibt es keinen Grund mehr, auf solche Addons zu verzichten. Handarbeit ist immer so eine Sache, wenn es eine Maschine genau so gut kann (oder hier: noch besser, im Sinne von schneller und fehlerfrei).
10/23/2015 22:04 Menan#24
Quote:
Originally Posted by ComputerBaer View Post
Jetzt frage ich mich, ob ich weiß, wovon du redest oder ob ich nur will, dass ich es weiß. Einiges verstehe oder kenne ich, anderes kommt mir merkwürdig vor. Vermutlich kenne ich nur einen kleinen Teil der Funktionen meiner IDEs.
Naja, angenommen wir betreiben Testgetriebene Entwicklung und haben die Anforderungen an eine Klasse. bzw eine Methode.

Dann würden wir erst den Test für diese Methode schreiben, dann die Methode in der Klasse implementieren, bis der Test durchläuft und gültig ist, sprich unsere Methode funktioniert zu diesem Zeitpunkt haben wir an sich fast nur im Rumpf der Methode gecoded.
Dann wird Refractor. Sprich die zusammenhörenden Code-Zeilen werden in private Methoden ausgelagert um die Lesbarkeit und Nachvollziehbarkeit des Codes zu gewährleisten (macht natürlich nur Sinn wenn entsprechende Methoden-Namen vergeben werden).
Und diesen Vorgang macht deine IDE für dich. Du kannst Code in neue Methoden auslagern oder neue Klassen, wie du möchtest und du es für Sinnvoll erachtest.
Hierbei schreibt die IDE dann alles wichtige deiner Methode, ermittelt die benötigten Parameter, den resultierenden Datentyp und lagert daraufhin deinen Code aus.

Sprich einmal eine Methode programmieren um die Funktion zu gewährleisten, dass ganze Lesbar machen kann die IDE ;)
10/23/2015 22:06 noahrmal#25
Quote:
Originally Posted by TheRealLenon View Post
Zudem gibt es hier in Deutschland einen Spruch, welchen ich ziemlich feier... Deutsche Handarbeit.
eher Zeit ist Geld
10/23/2015 23:40 TheRealLenon#26
Quote:
Originally Posted by 123klo View Post
eher Zeit ist Geld
Natürlich auch, aber viele Unternehmen legen Wert auf funktionsfähige Programme. Ich möchte damit jetzt nicht sagen, das solche Add-Ons nicht zu gebrauchen sind.

Aber es wurde um das erlernen von Java gefragt. Hierbei finde ich, sollte man eine Sprache noch von dem Urknall her lernen.

Das ist jetzt möglicherweise ein dummer Vergleich, aber wenn du z.B eine Sprache studierst, fängst du auch zuerst mit der Bedeutung an.

Ich finde einfach, das man bei einer Sprache im programmiertechnischen Bereich, zuerst einmal von Hand an anfangen kann. Sicherlich kann man, wenn man es selbst schreiben kann und versteht auf Add-Ons zurückgreifen, würde dies jedoch erst machen, wenn man die Sprache nahezu 100 prozentig versteht.



Letztendlich muss es aber jeder für sich wissen. Das ist nur meine Ansicht her.. :)
10/24/2015 00:50 ComputerBaer#27
Quote:
Originally Posted by Menan View Post
Naja, angenommen wir betreiben Testgetriebene Entwicklung und haben die Anforderungen an eine Klasse. bzw eine Methode.
[...]
Ok, ich glaube die Funktion habe ich schon gesehen und im Einzelfall auch mal verwendet. Testgetriebene Entwicklung ist mir auch bekannt, auch wenn ich nicht behaupten kann bisher viel Erfahrung damit zu haben.
Es überrascht mich etwas, dass man dabei so völlig ohne "Plan der fertigen Methoden Signatur" herangeht. Allerdings lernt man bei der Programmierung nie aus, also danke für das neue Wissen.

Quote:
Originally Posted by TheRealLenon View Post
Da man den Umgang erlernen soll. Die Funktionen des Codes und die Bauweise verstehen soll. Was bringt einem ein Add-On, wenn der Code nicht selbst geschrieben wurde bzw. von einem Add-On vollendet wurde.
Wie oft, willst Methoden wie die folgenden schreiben, bis du der Meinung bist, dass es deine IDE auch machen darf ohne das du viel verpasst? Ein paar mal machst du es von Hand, verstehen solltest du es schon beim ersten Mal. Danach bist du froh über jedes Methodenpaar, dass du nicht selber schreiben musstest. Vorallem wenn deine Klasse dann mal schnell jeweils zehn Getter und Setter braucht.

Code:
private int zahl;

public int getZahl() {
    return zahl;
}

public void setZahl(int neu) {
    zahl = neu;
}
10/24/2015 11:39 Menan#28
Quote:
Originally Posted by ComputerBaer View Post
Ok, ich glaube die Funktion habe ich schon gesehen und im Einzelfall auch mal verwendet. Testgetriebene Entwicklung ist mir auch bekannt, auch wenn ich nicht behaupten kann bisher viel Erfahrung damit zu haben.
Es überrascht mich etwas, dass man dabei so völlig ohne "Plan der fertigen Methoden Signatur" herangeht. Allerdings lernt man bei der Programmierung nie aus, also danke für das neue Wissen.
Du hast ja die genaue Signatur der public Methode der Klasse, welche du implementieren sollst (klar!). Allerdings lässt du deine gesamten Hilfsmethoden (die private Methoden deiner Klasse) dann von der IDE generieren. Du kannst ja in dem Refractor Modul auch noch Einstellungen treffen und so die generierte Methode ändern..

Falls Interesse besteht, kannst du mir mal ne PN schreiben und ich zeig dir das anhand von nem Beispiel ;)
10/24/2015 14:57 Logtetsch#29
Quote:
Originally Posted by Menan View Post
Du hast ja die genaue Signatur der public Methode der Klasse, welche du implementieren sollst (klar!). Allerdings lässt du deine gesamten Hilfsmethoden (die private Methoden deiner Klasse) dann von der IDE generieren. Du kannst ja in dem Refractor Modul auch noch Einstellungen treffen und so die generierte Methode ändern..

Falls Interesse besteht, kannst du mir mal ne PN schreiben und ich zeig dir das anhand von nem Beispiel ;)
Wow, jetzt bin ich aber auch neugierig. Und ich vermute, dass es noch weitere gibt. Vielleicht willst du ein kleines Tut machen, oder Quellen angeben, die das bereits darstellen und zeigen.
€: Hatte anscheinend ein kleines Verständnis-Problem. Ich denke es sollte nicht allzu schwer sein zu verstehen was du gemeint hast :p

B2t: IntelliJ macht auf mich bislang einen sehr soliden und reifen Eindruck. Die Kollegen von JetBrains haben meiner Meinung nach das perfekte Maß zwischen Einfachheit und komplexer Einstellungsfreiheit getroffen! Ideal geeignet für den Anfänger als auch professionellen Gebrauch.