Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2.019
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    48

Alle Inhalte von Whiz-zarD

  1. Das Problem ist, du rufst die Konstruktoren immer wieder neu auf. Du hast hier ein Zirkelschluss produziert. Wenn du Settings instanziierst, wird im Konstruktor Form1 instanziiert und Form1 instanziiert wiederrum Settings, usw. usw. Ich nehme mal an, dass Form1 dein Hauptfenster ist und in Form1 Settings aufgerufen werden soll. Settings darf von Form1 nichts wissen. Wozu auch? Und wenn Settings unbedingt Form1 kennen muss, dann musst du Form1 als Abhängigkeit reinreichen. public Settings(Form mainForm) { InitializeComponent(); this.mainForm = mainForm iniText = form1.GetIniText(); } Aber selbst das würde ich nicht tun. Ich würde beim Aufruf von Settings den iniText reinreichen: public Settings() { InitializeComponent(); } public string IniText { get { return this.iniTextTextBox.Text; } set { this.iniTextTextBox.Text = value; } } Dann würde ich Settings so aufrufen: Settings settings = new Settings(); settings.IniText = "foo bar"; settings.Show(); Damit ist Settings nicht von Form1 abhängig.. Dies ist jetzt nur eine abgespeckte Version, um das Prinzip etwas zu verdeutlichen. Wenn du es wirklich elegant lösen willst, dann informiere dich über MVP (Model-View-Presenter).
  2. Dann musst du mal erklären, was du unter "Set" verstehst und was du damit machen möchtest. Natürlich kannst du dir auch eine XML-Datei schreiben und diese dann Parsen. Unter Java kannst du auch JAXB oder XMLBeans verwenden. Das sind Frameworks, mit der du XML-Elemente direkt mit Java-Klassen binden kannst. Das hat den Vorteil, dass du die Eigenschaften anpassen kannst, ohne gleich neu kompilieren zu müssen. Ansonsten musst du das Parsen selbst übernehmen; z.B. mit SAX. So oder so entspräche dies eher dem Open-Closed-Prinzip.
  3. Ja, ein Mocking-Framework nimmt dir dort viel Arbeit ab. Das erfordert aber, dass du für jede Abhängigkeit immer ein Interface bereitstellst. Dann kannst du ein Mocking-Framework benutzen und über das Framework bestimmen, wie die einzelnen Methoden reagieren sollen. Welches Framework unter Java empfehlenswert ist, weiß ich leider nicht aber offenbar wird häufig JMockit oder Mockito verwendet.
  4. Da liegst du richtig, dass man es so nicht macht. Ich schreibe hier gerade vom Smartphone aus, deswegen kann ich gerade kein Beispiel schreiben, aber das was zu suchst, nennt sich unter Java HashMap. Kannst ja mal danach suchen.
  5. Ich denke dann mal wohl, dass die Bearbeitung per Hand erfolgt und deshalb die XML-Dateien sortiert haben möchte, damit man sich besser orientieren kann. Das ist also mehr ein organisatorisches Problem und kein technisches.
  6. Ein Shopsystem, was mit XML-Dateien rumhantiert und über die XML-Datei werden die Produkte sortiert, wie sie dann in der Oberfläche angezeigt werden? O_o Klingt sehr abenteuerlich. Schon mal ich dafür wohl nicht XML nehmen würde, sondern JSON, weil das Format kompakter ist.
  7. Vielleicht wäre es angebracht, dass du dich erst mal mit C# beschäftigst (Bücher, Tutorials, etc.), denn offenbar scheitert es schon am Verständnis dieser Sprache bzw. am Verständnis der Objektorientierung.
  8. Mehr fällt mir dazu nicht mehr ein ... Kannst du es auch mal mit ordentlichen und vernünftigen Worten schreiben, was du überhaupt wissen möchtest? Wenn ich mir aber den wüst an Spaghetticode anschaue, dann denke ich mal, dass du es nicht kannst.
  9. Auch wenn sich das erledigt haben sollte, ist die Tabelle Anwalt_1 unnötig, da alle Informationen schon in der anwalt-tabelle stecken. Außerdem sind die ganzen Präfixe unnötig, da sie zu viel Schreibarbeit benötigen. Wenn man die Tabellen joinen und dann auseinander halten möchte, so gibt es schon in der SQL-abfrage dafür Möglichkeiten.
  10. Und was möchtest du jetzt wissen? Darüber hinaus kommt mir die Aufgabe sehr bekannt vor. Es ist die selbe, die ich damals im Studium in der C-Übung machen musste. Keine Ahnung, wie es hier aussieht, wenn man ganze Aufgaben von anderen Leuten gelöst haben möchte. In anderen Foren wird der Thread geschlossen.
  11. Warum willst du überhaupt FIAE lernen, wenn du mit deinen 27 Jahren nicht mal ansatzweise mit Softwareentwicklung in Berührung kamst? Was versprichst du dir dadurch? Wie stellst du dir den Beruf überhaupt vor? Attraktiv machst du dich nicht mit der Sprache, mit der du entwickelst, sondern wie du mit der Sprache umgehst, denn man kann vieles falsch machen. Ich habe hier auch einige Arbeitskollegen, die zwar deutlich mehr Berufserfahrung haben als ich aber denen ich gerne die Tastatur wegnehmen würde, weil da hauptsächlich nur unwartbarer Spaghetticode rauskommt. In meinen Augen sind das einfach keine guten Entwickler, auch wenn sie schon seit 15 Jahren als Entwickler arbeiten. Neben der Sprache sollte man sich also auch kontinuierlich weiterentwickeln, was die Softwarequalität angeht, z.B. In der objektorientierten Welt haben sich die SOLID-Prinzipien sehr gut bewährt und die sollte man dann auch einhalten. Auch Unittests sollte man immer im Auge halten und diese auch schreiben. Dazu gibt es dann ja auch Techniken, die einen zwingen, Unittests zu schreiben, wie z.B. TDD (Test-driven Development). Wie man aber mit einer Sprache umgeht, lernt man aber nicht aus Büchern, sondern hier ist Erfahrung wichtig. Erfahrung, die du aber nicht hast. Es gibt zwar Bücher über Clean Code, SOLID und Softwarequalität aber die können nicht für jede Situation das passende Beispiel bringen.
  12. 30 der 40 Bewerbungen sind nur unterer Durchschnitt. Als ich damals ein Ausbildungsplatz gesucht habe, hatte ich bei 100 aufgehört, die Bewerbungen durchzunummerieren. Ich denke mal, dein Problem ist, dass im Lebenslauf kein roter Faden zu sehen ist. Das ist heutzutage sehr wichtig. Im Lebenslauf muss erkennbar sein, in welche Richtung du dich entwickeln möchtest, aber den sieht man hier nicht. Vor allem nicht für einen FIAEler. Erst ein abgebrochenes Soziologie-Studium, dann Job im Call-Center und dann noch ein abgebrochenes Lehramtsstudium in Wirtschaft/Politik, Geschichte. Hier gibt es nichts, was mit Informatik im entferntesten zu tun hat. Du magst dich vielleicht für Videospiele interessieren und hast auch mal ein CMS aufgesetzt und bastelst Rechner zusammen aber das reicht heute nicht mehr aus, denn das können auch schon 14-jährige, die sich für diese Themen interessieren. Die können sogar noch vieles mehr. Schaue dir z.B. mal die Projekte bei Jugend hackt an. Du kannst offenbar auch nichts in Richtung Softwareentwicklung vorweisen, was dich von den anderen hervorhebt. Du hast wohl auch noch nie ein Stück Software selbstentwickelt. Warum sollte man dich dann nehmen wollen? Wenn ich als Arbeitgeber deine Bewerbung lesen würde, würde ich mich schon fragen, ob du die Ausbildung überhaupt durchziehst? Auch wenn es hart klingen mag aber du hast bis jetzt nichts beenden können. Ob es dafür gute Gründe gibt, sei mal dahingestellt. An deiner Stelle würde ich eher schauen, ob du nicht ein Studienplatz finden könntest, denn ich denke dort hättest du mehr Erfolg. Vielleicht kann man dort auch von deinen vorherigen Studium was anrechnen lassen. Mit einem abgeschlossenen Informatik-Studium wäre zumindest eine Tür offen.
  13. Mit dem Buch bist du schon sehr gut unterwegs, auch wenn das Buch mehr C#-lastig ist. Das war auch meine Lektüre zu diesem Thema und wird auch von vielen empfohlen. Im Buch wird das Dependency Injection Muster erläutert. Beim Dependency Injection werden Abhängigkeiten in die Klasse reingereicht. Man schreibt also z.B. nicht public Class PersonRepository implements IRepository { private final IDatabase database; public PersonRepository { this.database = new Database(); } ... } sondern public Class PersonRepository implements IRepository { private final IDatabase database; public PersonRepository(IDatabase database) { this.database = database; } ... } Man kehrt also die Abhängigkeiten um, indem die Klasse gar nicht die konkrete Implementierung der Abhängigkeiten kennt, sondern nur gegen Interfaces arbeitet und die konkrete Implementierung reinreicht. Man spricht dabei auch vom Dependency-Inversion-Prinzip und das macht das Testen der PersonRepository-Klasse viel einfacher, weil man jetzt in diesem Fall tatsächlich die Datenbank mocken kann. In der richtigen Anwendung reicht man vielleicht die Klasse MySqlDatabase rein und im Test MockedDatabase, die nichts anderes tut, als Textausgaben auf der Konsole zu machen, die der Unittest dann testet. Andere Tests wiederrum testen die MySqlDatabase-Klasse, indem sie schauen, dass z.B. die richtigen Tabellen angelegt worden sind. Fürs Dependency Injection Muster gibt es auch diverse Frameworks (sog. IoC Container (IoC = Inversion of control)), die einem das Leben erleichtern. Mit Hilfe eines Bootstraping-Verfahrens wird dann beim Starten der Anwendung die Abhängigkeiten der einzelnen Klassen aufgelöst und das Framework instanziiert und initialisiert die Klassen mit allen ihren Abhängigkeiten. Die Java-Welt ist nicht so ganz meine Welt, daher kenne ich mich dort mit den Frameworks nicht so gut aus, aber dort gibt es ja z.B. Spring, Pico Container oder Guice.
  14. CSS ist ja keine Programmiersprache sondern nur eine Auszeichnungssprache. Welche Eigenschaft für was ist, lernt man in laufe der Zeit. LESS ist ja nur ein Prä-Prozessor für CSS, der einem das Entwicklerleben ein wenig vereinfacht, indem u.a. Variablen möglich sind. So kann man z.B. für bestimmte Farben variablen hinterlegen. Aus dem LESS-Code wird nachher die CSS-Datei generiert. Man kann die CSS-Datei aber auch per Hand schreiben. Von C# nach PHP zu wechseln ist auch ein herber Rückschritt. PHP ist eine der grauenvollsten Sprachen, die ich jemals gesehen habe. Die Sprache hat keine Struktur und Ordnung. Strukturierte-, und objektorientierte Programmierung wird bunt gemischt. Man hat immer das Gefühl, man hackt irgendwas zusammen und es fühlt sich nicht richtig rund an. Die Syntax sollte dir aber kaum Probleme bereiten, da beide Sprachen ihren Ursprung bei C haben. Ich würde dir eher empfehlen, mal ein Tutorial durchzuarbeiten, was dir die Eigenheiten von PHP erklärt und dann von einem Mitarbeiter die Architektur erklären lassen, die sie einsetzen und sich dann so nach und nach rantasten.
  15. Du rufst im Test aber gleich mehrere Methoden aus einem Modul/einer Klasse auf. Das ist kein Unittest. Unittests testen eine Methode und nicht die gesamte Klasse und das ist das Problem bei deiner Architektur. Du kannst gar nicht eine Methode einzeln testen, sondern nur im Bündel. Das Problem ist, dass deine Database-Klasse zu viel macht. Sie ist sowohl das Repository als auch die Datenbank-Verbindung. Dein Test läuft so ab: Erstelle eine neue Datenbank-Datei Erstelle eine neue Tabelle Füge Daten in die Tabelle ein Wenn jetzt der Unittest fehlschlägt, kannst du nicht sagen wo genau dieser Fehler liegt. Du musst also den Unittest debuggen. Das mag bei deinem Projekt noch funktionieren aber bei komplexen Projekten ist das die Hölle, weil die Tests sehr zeitintensiv und instabil werden. Du musst also das Repository von der Datenbank trennen. Dafür gibt es das sog. Unit of Work-Pattern. Schaue dir an wie O/R-Mapper wie z.B. Nibernate funktionieren. Die implementieren das Unit of Work-Pattern. Das Unit of Work-Objekt registriert neue Geschäftsobjekte und bei einem Commit() werden sie dann in die Datenbank geschrieben. Bei O/R-Mappern schreibt man auch keine SQL-Statements selber. Sie werden über das Framework generiert. Ja, das meine ich. Wie willst du aber die Datenbank-Verbindung mocken? Du hast keine Möglichkeit, diese von außerhalb zu ändern. Also bist du davon abhängig. Du müsstest also die Klasse ableiten und alle Methoden neu implementieren. Das ist viel zu viel Arbeit. Auch ist deine Database-Klasse sowohl die Datenbank-Verbindung als auch das Repository. Angenommen, du willst jetzt nicht nur eine Tabelle mit Deutsch/Englisch-Wörter implementieren, sondern noch eine Tabelle mit Benutzerdaten. Also z.B. wie viele Wörter die Benutzer richtig erraten haben, etc. Wie willst du das jetzt hier einbauen? Willst du die Database-Klasse um weitere Methoden erweitern? Dann kommt eine neue Tabelle und noch eine und noch eine ... Dann hast du irgendwann eine Klasse mit über 100.000 Zeilen und damit ein unwartbares Biest. Viel spaß beim Mocken.
  16. Naja, 8 Minuten sind echt nicht wirklich viel. Die 8 Minuten könnte ich schon damit füllen, was du bei deinem Vokabeltrainer falsch gemacht hast und die 8 Minuten würden nicht reichen. Einer der größten Fehler ist aber, dass du schreibst, es sei eine Drei-Schichten-Architektur. Das stimmt aber nicht. Das ist nur eine Zwei-Schichten-Architektur, wenn überhaupt. Außerdem sind deine Unittests keine richtigen Unittests. Deine Tests testen gleich das gesamte Modul aber ein Test darf nur eine Funktionalität eines Moduls testen. Dein Test kommt daher zustande, weil die Database-Klasse zu viel macht und auch eine Abhängigkeit zu SQLite besitzt. Abhängigkeiten ist der Tod von Unittests. Gut, ich will jetzt aber dein Projekt nicht zerreißen, denn das ist jetzt nicht das Thema und du sagst selber, es sei schlecht programmiert aber wenn der Vortrag wirklich abzielen sollte, dein Kenntnissstand zu prüfen, dann musst du evtl. mit unangenehmen Fragen rechnen. Ich weiß zwar nicht, wie weit deine Kenntnisse wirklich sind aber du könntest eine kleine Präsentation über die SOLID-Prinzipien halten. Das ist genug Stoff für 8 Minuten (Robert C. Martin kann damit mehr als 2 Stunden füllen) und das schenkt vielleicht ein bisschen Eindruck.
  17. Warum willst du überhaupt FIAE lernen? Die Frage stelle ich deshalb, weil viele diesen Job unterschätzen und mit falschen Erwartungen herangehen.
  18. Eben. Ich würde da nicht jetzt nicht schauen, wo man am meisten Geld verdient, sondern erst mal ein Job suchen, der einem wirklich gefällt. Der Job als Mechatroniker hatte mich damals in eine Depression stürzen lassen. Es bringt nichts, wenn man zwar gut verdient, aber mit seinem Job einfach nicht glücklich wird. Daher rate ich dir, dich einfach mal hinzusetzen und ein oder zwei Anwendungen zu entwickeln und schauen, ob es dir überhaupt liegt. Wie gesagt, die Abbrecherquote in diesem Job ist extrem hoch. Viele unterschätzen den Beruf und gehen mit falschen Erwartungen an die Sache. Softwareentwicklung ist kein Hexenwerk, aber es erfordert Disziplin und man muss bereit sein, sich ständig weiterzuentwickeln. Mit einer Berufsausbildung hast du keine Fachhochschulreife. Sonst hättest du sie ja schon und könntest an der Fh studieren gehen. Du musst also auch als FIAEler an der FOS oder BOS die Fachhochschulreife absolvieren. Mach doch erst mal die Ausbildung. Es macht doch keinen Sinn jetzt schon über Weiterbildungen nachzudenken, wenn du nicht mal im jeweiligen Beruf arbeitest ... Vielleicht ist es ja auch gar nichts für dich und du machst dir hier umsonst Gedanken.
  19. Heutzutage wird auf die Abschlüsse eh immer weniger Wert gelegt. Inzwischen zählen schon andere Faktoren eine Rolle, die zu einer Einstellung führen. Heutzutage ist es wichtiger, dass man am Ball bleibt und sich kontinuierlich weiterentwickelt. z.B. durch Onlineportale, die Kurse anbieten. Der Schulabschluss gerät sowieso immer weiter ins Hintertreffen, weil diese schon fast inflationär hinterher geworfen werden. Ein interessanter Artikel diesbezüglich wurde neulich auf Golem.de veröffentlicht: Uni-Abschluss ist nicht mehr das Wichtigste
  20. Vielleicht lag es auch nur an der Schule, an der ich gelernt habe, da diese Schule in Norddeutschland einen sehr guten Ruf genießt, aber in meinen Praktika habe ich einige FIAEler gesehen und was die da teilweise an Code hingerotzt haben und damit auch noch ihren Abschluss bestanden haben, hatte mich damals als Drittsemester sehr erschüttert und an meinem Weltbild gezweifelt. In einer Firma bekam ich sogar von einem Azubi zu hören, dass die Berufsschule in Java die While-Schleife weglässt, weil sie für die Azubis angeblich zu kompliziert sei. Auch in der jetzigen Firma holen wir ab und an externe Entwickler, wenn unsere Kapazitäten knapp werden. Einige davon sind auch FIAEler mit Mehrjähriger Berufserfahrung aber wenn ich den Code sehe, dann könnte ich viele von denen schlagen, denn mehr als Spaghetticode hacken hatten sie nicht drauf.
  21. Bei meiner Ausbildung fing man im ersten Semester mit Pascal an, um so Grundbegriffe zu erklären. Also was ein Zeiger ist, welche Datentypen es in der Regel gibt, etc. Dann ging es weiter mit C um Algorithmen und Datenstrukturen zu erklären. Also was eine verkette Liste, binärer Baum oder eine Hashtabelle ist und wie diese implementiert werden. Dann noch relationale Datenbanken (SQL) und zum Schluss gabs dann noch Objektorientierung mit Java. Als Medieninformatiker hatte ich dann noch Kurse, wo es z.B. um die Grafikprogrammierung mit OpenGL, Entwicklung von Web-Applikationen oder die Arbeit mit Adobe Produkten ging. Ein Beruf zu finden war jetzt nicht so schwer. Man muss ja während der Assistentenausbildung noch Praktika in Firmen absolvieren. Auch sollte die Abschlussarbeit in einer Firma gemacht werden. Da knüpft man schon Kontakte zu Firmen. Ich hatte da schon ein Arbeitsplatz sicher aber ich hätte dort nur sehr wenig verdient (Spielebranche halt) und hab daher was anderes gesucht und konnte mich nach kurzer Zeit zwischen zwei Firmen entscheiden. Wie gesagt, informiere dich bei der Schule selber. Vielleicht kann man den Stundenplan bekommen. Für mich sieht es so aus, als wäre deren Kernkompetenz die Elektrotechnik und weniger die Informatik. Solchen Firmen würde ich den Mittelfinger zeigen. Das klingt nicht gerade seriös und suchen wohl nur einen dummen Billiglöhner oder sie haben keine Ahnung, was ein Assistent ist und wollen sich damit auch nicht beschäftigen. Bei einer Assistentenausbildung bekommt man sehr wohl einen Prazisbezug, da man noch Praktika absolvieren muss und auch die Abschlussarbeit sollte bestmöglich von einer Firma betreut werden. Eher habe ich die Erfahrung gemacht, dass Assistenten oft im Wissensstand deutlich weiter sind, als FIAEler.
  22. Wie das mit dem Techniker aussieht, weiß ich nicht. Damit habe ich mich noch nicht auseinandergesetzt. Ich sehe aber keinen Grund, wieso man nachher nicht noch sein Techniker machen können sollte? Wie gesagt, ich bin selber Assistent für Medieninformatik und arbeite jetzt seit 5 Jahren als Softwareentwickler in der Bankenbranche in Hamburg und verdiene jetzt 3.000 € Brutto pro Monat Plus eine einmalige Bonuszahlung pro Jahr in der Höhe von maximal 3.500 €. Das Gehalt ist aber von Firma zu Firma unterschiedlich. In der Spielebranche wäre dies ein Traumgehalt und in der Bankenbranche eher unterer Durchschnitt. Ob der "Informations- und Kommunikationsassistent" für dich das richtige ist, kann dir auch keiner beantworten. Das musst du schon selber entscheiden aber wenn ich das richtig sehe, hat diese Assistentenausbildung nichts mit Informatik zu tun. Ich würde dir raten, dich mal mit der Schule kurzzuschließen oder mal die Webseite der Schule anzuschauen, da häufig dort schon viele Informationen stehen.
  23. Informiere dich, wie der Ausbildungsplan in deiner Schule aussieht. Da kann man dann schon einen groben Überblick sehen, wohin die Reise gehen soll. Oftmals haben die Schulen auch unterschiedliche Fachrichtungen. z.B. in Richtung technische Informatik, Medieninformatik oder Wirtschaftsinformatik. Einige Schulen bieten auch was in Richtung Spieleentwicklung an. Die Fachhochschulreife erwirbt man dann, indem man noch zusätzliche Deutsch-, und Englischkurse belegt. Das Problem ist nur, dass er weder Fachinformatiker noch Informatikassistent ist, sondern ein Elektroniker.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...