Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2.018
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    48

Alle Inhalte von Whiz-zarD

  1. Es geht mir nicht darum, die Logik zu entfernen, sondern um die Lesbarkeit zu verbessern und um eine Modularisierung zu ermöglichen. Das vermischen von HTML- und PHP führt zu schlecht leserlichen, schlecht wartbaren, fehleranfälligen und darüber hinaus zu doppelten Code. Man muss nämlich darauf achten, dass man zwei Sprachen in einer Datei vermischt und jedes Mal den Interpreter/Compiler darauf hinweisen muss, welche Sprache gerade benutzt wird. Als Beispiel der Code-Schnippsel von @äymm: <?php $something = ['foo', 'bar']; if (count($something) > 1) { ?> <div>Sehr viel HTML</div>; <?php } else { ?> <div>Ebenfalls viel HTML</div>; <?php } $something_else = ['lorem', 'ipsum']; ?> Jedes Mal muss man hier mit <?php ... ?> markieren, dass in diesem Bereich PHP verwendet wird. Das selbe auch im Beispiel von mir: <div><?php echo count($something) > 1 ? 'Sehr viel HTML' : 'Ebenfalls viel HTML' ?></div> Vergisst man jetzt mal ein <?php oder ein ?> oder schreibt sie falsch, kann es zu ungeahnten Problemen führen. Im Schlimmsten Fall wird der gesamte Code sichtbar, weil der Webserver dies nicht als PHP interpretiert, sondern als HTML. Auch ist es beim Lesen ein deutlicher Störfaktor, denn man sollte bedenken, dass 80% der täglichen Arbeit eines Entwicklers aus Quellcode lesen besteht. Das macht das Vermischen von zwei Sprachen nicht einfacher. Außerdem haben auch IDEs Probleme beim Syntax highlighting. Du solltest dich jetzt mal fragen, wieso Template-Engines eine eigene Syntax benutzen, anstatt da einfach nur PHP oder JavaScript, wie in den oberen beiden Beispielen reinzuwursteln. Die tun es nicht, weil sie es können, sondern sie tun es, um genau solche Fehlerquellen zu minimieren. Es läuft automatisiert ein Interpreter durch das Template und ersetzt sicher die Schlüsselwörter gegen den PHP-Code. Sie stellen also eine weitere Abstraktionsebene dar. Sie stellen sicher, dass HTML als HTML und PHP als PHP interpretiert wird und zusätzlich wird durch eine geeignete Syntax die Leserlichkeit verbessert. Ich sage auch nicht, dass mein Beispiel nun der Weisheit letzter Schluss ist. Natürlich ist eine gewisse Logik in den Templates komfortabel, nur ist das halt im Stil von <?php ... ?>, wie schon gesagt, fehleranfällig und stellt auch ein Störfaktor im Lesefluss dar. In meinem Beispiel bot sich auch keine Logik an, weil ich keine Logik benötigt habe.
  2. Dadurch wird doch nur das Symptom bekämpft und nicht die Ursache. Viel mehr solltet ihr euch die Frage stellen, wieso das AD nicht erreichbar ist und was man dagegen zu kann. Ist der Ausfall des ADs überhaupt ein Problem? Wie häufig ist das AD in der Vergangenheit ausgefallen und wie lange hat es gedauert, bis es wieder erreichbar ist? Wenn dies nur ein hypothetischer Fall, würde ich mir die Mühe erstmal sparen. Was mit deiner Überlegung sowieso nicht funktioniert, da das AD die Nachricht schicken müsste, wenn sich etwas geändert hat (Push) aber du gehst den umgekehrten Weg und fragst das AD ab (Pull). Beim Pull hast du immer eine zeitliche Verzögerung, da du den exakten Zeitpunkt nicht kennst, wenn sich was geändert hat.
  3. Derjenige, der aber "unsauber" programmiert, weiß aber schon in etwa, worauf er sich bei der Ausbildung einlässt. Jemand, der noch keine Programmiererfahrung hat, geht ggf. zu romantisch an die Sache heran. Solche Leute habe ich während meiner Assistentenausbildung kennengelernt, die dann spätestens nach dem zweiten Semester hingeschmissen haben. Einer dachte, Objektorientierung sei programmieren per Drag'n'Drop ala Hollywood. Er assoziierte den Begriff "Objekt" mit 3D-Objekte. Es gibt für alles ein Für und Wider. Man sollte daher eine Sicht nicht kategorisch ausschließen. Ich gehöre auch zu den Menschen, die schon vor der Ausbildung Programmiererfahrungen gemacht haben. Ich programmiere seit ich 8 Jahre alt bin. Mit 24 habe ich dann die Assistentenausbildung angefangen und inzwischen bin ich 34 Jahre alt. Mein Code sah vor der Ausbildung genauso aus, wie der von @Tutorialwork aber ich nehme jeden Tipp dankend an und mir ist die Meinung meiner Arbeitskollegen wichtig und versuche in der Firma den Gedanken von Clean Code zu etablieren. Es muss also nicht immer schlimm sein, wenn man schon Erfahrungen hat.
  4. Wirklich besser ist das nun auch nicht. Eine beliebte Methode bei Anfängern ist es, PHP-Code im HTML-Text auszuführen: <div><?php echo count($something) > 1 ? 'Sehr viel HTML' : 'Ebenfalls viel HTML' ?></div> Aber man vermischt weiterhin HTML und PHP, was ich nicht besonders schön finde. Ich persönlich würde da entweder ein HTML-Template-Framework verwenden oder in einfachen Fällen kann man aber auch kurz was eigenes schreiben: <?php class TemplateRenderer { public function Render($template, $values) { foreach ($values as $key => $value) { $search = '{@'. $key . '}'; $template = str_replace($search, $value, $template); } return $template; } } <?php $template = '<div>{@Content}</div>'; $content = count($something) > 1 ? 'Sehr viel HTML' : 'Ebenfalls viel HTML'; $renderer = new TemplateRenderer(); echo($renderer->Render($template, array("Content" => $content))); Nun könnte man sich überlegen, den Inhalt von $template in eine eigene Datei auszulagern und schon hat man überhaupt kein HTML-Text mehr in seinem PHP-Code und beides wäre separiert. Der Inhalt von $content könnte ja nun ebenfalls ein Stück HTML sein, was ebenfalls mit dem TemplateRenderer erzeugt wurde. Mein Beispiel ist aber auch sehr stark vereinfacht und könnte je nach Situation Sicherheitsrisiken hervorrufen (Bsp. Cross-Site-Scripting). Ich muss aber auch zugeben, dass ich kein PHP-Entwickler bin und nicht weiß, was derzeit dort so die Best Practises sind. Ein guter Azubi wird immer in der Lage sein, seine schlechten Angewohnheiten schnell abzulegen. Ein ignoranter Entwickler, der meint, er könne und wüsste alles, wird früher oder später sowieso Probleme bekommen, da er nicht bereit ist, dazuzulernen. Ich hab aber die Erfahrung gemacht, dass solche Leute mal heftig gegen die Wand fahren müssen, dann werden sie auch ruhiger und hören auch mal zu. Aber das Thema hat sich wohl eh schon erledigt:
  5. Ist das für eine Bewerbung für ein Arbeits- oder Ausbildungsplatz? Für einen Arbeitsplatz wäre ich vorsichtig, da der Code keine professionelle Note besitzt. Für einen Ausbildungsplatz weiß ich nicht, was ich davon halten soll, wenn eine Firma Codebeispiele sehen möchte. Eine Ausbildung ist doch dafür da, dass man den Beruf erst erlernt. Man benötigt also keine Erfahrung. Auf den ersten Blick klingt es eher danach, als ob sie nur eine billige Arbeitskraft suchen. Ich bin da zwie­ge­spal­ten aber ich glaube, ich würde es weglassen.
  6. So würde ich das jetzt nicht bezeichnen. Ich finde es nicht verkehrt, wenn man mit Begeisterung dabei ist aber man sollte eben nicht meinen, nur weil man die Syntax einer Sprache versteht, dass man nun ein Experte in dieser Sprache sei, denn neben der Syntax gibt es noch viele weitere Dinge, die man als Experte einer Sprache können sollte. Dazu zählt auch, dass man sich auch mit den gängigen Frameworks einer Sprache umgehen kann. Im C#-Umfeld wäre es z.B. ASP.NET, Entity Framework oder auch IoC-Container wie MS Untiy oder AutoFac. In der Regel spezialisiert man sich daher auf eine oder zwei Sprachen. HTML und CSS halte ich persönlich schon als obligatorisches Wissen. Wenn du aber wirklich was über Digitaltechnik lernen möchtest, dann bietet sich Arduino an. Dafür gibt es ja haufenweise Bücher und Bastel-Kits. In meiner Mechatroniker-Ausbildung (2000-2004) habe ich eine binäre Uhr mit den Bausteinen der 74xx-Familie gebastelt aber selbst das geht mit Sicherheit schon über den Lehrstoff der Berufsschule weit hinaus.
  7. Firmen finden also immer noch nicht die eierlegende Wollmilchsau, die für'n Appel und nen Ei arbeitet und wollen auch nicht Ausbilden bzw. in den Mitarbeiter investieren und zu guter Letzt wollen sie sich auch nicht individuell auf die Bewerber/Arbeitnehmer einlassen. Ergo: Der Arbeitgeber möchte nicht flexibel sein, was die Arbeitnehmer betrifft aber der Arbeitnehmer muss für jede Situation flexibel sein. Also die Situation, die wir schon seit über 20 Jahren haben. Puh! Glück gehabt! Wäre schlimm gewesen, hätte sich was geändert. Das obligatorische Jammern der Firmen hätte mir gefehlt.
  8. Bei solchen Sätzen kräuseln sich bei mir die Fußnägel hoch, da ich nicht weiß, was die sollen? Das ist dein Job, dich später in andere Sprachen einzuarbeiten. Das ist kein herausstechendes Merkmal, wenn du die Syntax von C#, php und Java kennst. Ich hab auch die Erfahrung gemacht, wenn jemand sich "Autodidakt" nennt und eine Liste von Sprachen auflistet, dann wird nur an der Oberfläche gekratzt. Design Patterns kennen diese Leute gar nicht, mit Datenstrukturen haben sie sich auch noch nie beschäftigt und SOLID, TDD und Unittests sind Fremdbegriffe. Diese Dinge sind aber später in der Berufswelt extrem wichtig aber leider kommen diese Themen selbst in den Berufsschulen nicht vor. Dann bastle halt was mit Arduino. Da findet man im Netz doch genug Projekte.
  9. Im Grunde steht alles in der Aufgabe drinnen. Wo genau sind die Verständnisschwierigkeiten? Könnt ihr mit der Formel nichts anfangen? Es soll zuerst eine Ganzzahl eingeben werden. Diese Ganzzahl gibt an, wie oft ihr Gleitkommazahlen eingeben werden können. Jedes Mal, wenn ihr dann eine Gleitkommazahl eingegeben habt, soll die Logarithmusfunktion mit dieser Gleitkommazahl aufgerufen werden. Ist die Anzahl der angegebenen Gleitkommazahlen erreicht, soll sich das Programm beenden. Beispiel: Anzahl Gleitkommazahlen: 2 <- Eingabe Gleitkommazahl: 0.815 <- Eingabe ln(0.815) = -0.204566, Iterationen: 6 Gleitkommazahl: 0.123 <-Eingabe ln(0.123) = -2.095558, Iterationen: 69 Wenn ich das auf die Schnelle richtig implementiert habe, sollte dies als Ergebnis rauskommen. Ihr habt also einmal eine Schleife über die Eingabe der Gleitkommazahlen und einmal über die Berechnung der Summanden. ^ ist auch keine Exponentialfunktion, sondern eine XOR-Verknüpfung. Ihr verknüpft Bitweise die Zahlen miteinander. https://en.wikipedia.org/wiki/Bitwise_operations_in_C#Bitwise_XOR_^ Hier braucht ihr also ebenfalls eine Schleife, um die Exponentialfunktion abzubilden, da ihr die Math.c-Bibliothek, die eine Exponentialfunktion besitzt, nicht benutzen dürft.
  10. Meine Projekte liegen entweder in lokalen Git-Repositories oder auf meiner alten VM, auf der ich SVN installiert habe. Sie sind auch zu klein, um eine Userbase aufzubauen.
  11. Der Datentyp MailItem besitzt keine Eigenschaft, die objAccount heißt. Ich nehme mal an, dass SenderEmailAddress die richtige Eigenschaft ist. https://docs.microsoft.com/de-de/office/vba/api/outlook.mailitem.senderemailaddress
  12. Nahrungsmittel können auch noch zusätzlich Flüssigkeit binden. Balaststoffe können z.B. pro Gramm bis zu 100 g an Flüssigkeit binden, was dazu führt, dass man auch mehr Gewicht auf die Waage bringt, obwohl man vielleicht nur Gemüse und Wasser zu sich genommen hat. Wenn man dann sogar noch Sport betreibt und sich Muskeln bilden, so haben diese ja auch ein Gewicht. Man sollte sich also nicht auf das Gewicht verlassen, ob man abnimmt, oder nicht, sondern auch genau den Körper beobachten. Also z.B. wird das Gesicht schlanker oder wird der Bauchumfang weniger. Man kann aber jetzt nicht Nudeln und Reis verteufeln, denn sie bieten dir viel Energie und wenn und Muskel aufbauen möchtest oder mehr Ausdauersport betreiben möchtest, brauchst du diese Energie. Aber auch viel Mist und jeder erzählt dir was anderes.
  13. Was heißt "ohne Umwege"? Wenn irgendwas nicht funktioniert, dann funktioniert es nicht und es muss anders gelöst werden. Es ist ganz normal, dass man Code umschreibt oder gänzlich wegschmeißt und gegen was neues ersetzt. In der Regel ist dies auch ein Teil des Entwicklungsprozesses und sollte auch eingeplant werden. Eine Software entwickelt sich ständig weiter und dementsprechend sollte auch ein Refactoring eingeplant werden. Gerade wenn man TDD (Test-driven Development) betreibt, ist Refactoring ein essentieller Bestandteil. z.B. durch sog. defensives Programmieren. In der C# .NET-Welt hatte Microsoft die Code Contracts als Alternative entworfen, die man häufig auch noch im Sourcecode vom .NET Framework findet, aber seit C# 6 bzw. seit dem Roslyn-Compiler leider nicht mehr funktionieren und es auch fraglich ist, ob sie das noch mal in den fixen wollen. Derzeit liegt da wohl kein Bestreben vor.
  14. Mein Fehler, ja. Azure DevOps kannte ich noch nicht. Wir verwenden TeamCity. Aber um DevOps brauchst du dir keine Gedanken machen, so lange du keine Software in einem größten Team entwickelst, die veröffentlicht wird.
  15. Was hat GitHub nun mit Azure und DevOps zu tun? Das sind völlig unterschiedliche Dinge. GitHub ist eine Quellcodeverwaltungsplattform, die Git verwendet. Azure ist der Oberbegriff, der kompletten Cloud-Plattform von Microsoft. DevOps ist ein Ansatz um den Entwicklungsprozess zu verbessern.
  16. Fehler entstehen immer und je nach Komplexität sind 1,5 Stunden danach zu suchen jetzt nicht wirklich viel. Gerade wenn der Fehler in Laborbedingungen nicht auftritt und man die Daten vom Kunden benötigt und erst mal den Datensatz unter den Millionen finden muss, der für den Fehler verantwortlich ist. Auch nett sind Speicherprobleme, die mal sporadisch auftreten. Da sitzt man gerne mal ein paar Tage, um heraufzufinden, was eigentlich los sei. Nach meiner Erfahrung entstehen aber die meisten Fehler häufig durch unstrukturierten Code. Code, der zu viel auf einmal macht und Seiteneffekte produziert oder es wird irgendwo Null zurückgegeben, obwohl Null keinen Sinn macht, etc. Gerade bei objektorientierten Sprachen ist es aus meiner Sicht wichtig, die SOLID-Prinzipien verinnerlicht zu haben und sie auch einsetzt. Es klappt nicht immer aber wenn man immer wieder versucht, sich daran zu halten, dann wird der Code schon übersichtlicher. Dafür muss aber der Code aber erstmal testbar sein. Wenn ich das richtig verstehe, ist @dnyc ein Quereinsteiger und ich weiß nicht, was er schon über Unittests weiß. Das ist leider immer noch so ein Kapitel, die Quereinsteiger/Anfänger erst so richtig mitbekommen, wenn es eigentlich schon zu spät ist, da man solche Themen in der Fachliteratur gerne ausklammert.
  17. WinForms wird mit .NET Core 3.0 unterstützt. WinForms ist vielleicht nicht mehr das neueste Framework aber bei kleineren Programmen, die nicht eine fancy Oberfläche benötigen und auch nicht web-fähig sein müssen, finde ich WinForms geeigneter als WPF. Wenn die Operanden und Operatoren eh per Button eingetragen werden sollen, wie bei einem Taschenrechner, dann musst du die Textbox auch so einstellen, dass dort nichts reingeschrieben werden darf. Also die Eigenschaft "ReadOnly" auf True setzen. Oder habe ich dich falsch verstanden?
  18. Neben dem Aspekt "OOP vs. Funktional" hat OOP das Problem, wenn man es auf die Spitze treibt, sog. Ravioli-Code erzeugt, der zwar extrem lose gekoppelt ist aber eben zu mehr Code führt. OOP kann also auch zu mehr Code führen, anstatt zu weniger, weil man extrem viele kleine Klassen erzeugt, die alle ein Overhead besitzen. Im schlimmsten Fall Tausende Klassen mit nur einer Methode. Dadurch wird auch die Navigation im Code unübersichtlicher. Es gibt also zwei Extreme: Spaghetti- und Ravioli-Code und die Kunst ist es, die Balance zu finden.
  19. Das Problem ist, dass es durchaus nicht nur um Grundlagen geht. Ich hatte auch mal so ein Gespräch, um eine Junior-Stelle. Dort hatte man mir dann Fragen zum Nibernate gestellt. Ich hatte zuvor damit nie gearbeitet. Nur gehört, dass es ein O/R-Mapper ist. In der Stellenbeschreibung stand auch nichts von Nibernate. Nur dass Java- und SQL-Kenntnisse von Nöten sind. Ohne jetzt die Fragen zu kennen, kann man schlecht sagen, ob es nur um Grundwissen geht.
  20. Es ist ja auch gar nicht vorgesehen, dass dort eine gültige E-Mail-Adresse stehen muss. Das ist ein einfaches Freitextfeld. Da kann jeder Mist drinnen stehen.
  21. Ich verstehe die Frage nicht. Wenn du das Programm unter Visual Studio startest, ist es doch schon ein fertiges Programm und du könntest im Grunde das Programm so in die Citrix-Umgebung reinkopieren. Für gewöhnlich wird aber fürs Kompilieren ein sog. Buildserver eingesetzt, der das Programm dann kompiliert, mit weiteren Dateien einreichert (z.B. Konfigurationsdateien oder Dokumentationen) und in ein Setup verpackt.
  22. Ich selber habe eine Assistentenausbildung abgeschlossen. Allerdings waren die meisten Kurse mit FH-Studenten zusammen. Eine Ausbildung könnte sehr wohl an das Niveau eines Studiums rankommen. Dafür müsste man aber die Ausbildung umkrempeln und alte Zöpfe abschneiden. Zudem braucht man auch geeignete Berufsschullehrer, die sich wirklich mit der tiefer gehenden Materie auskennen aber da krankt es ja an allen Ecken. Ich denke, dass es sich langfristig ausgeäfft hat, da die Anforderungen und Systeme immer komplexer werden. Vielfach kann man da keinen mehr hinsetzen, der gerade mal die Syntax versteht und irgendwas "runterprogrammiert". Der Fachinformatiker ist auch nicht mehr zeitgemäß, da man immer noch sehr stark auf das "Kaufmann" wert legt.
  23. Die Berichtshefte sind essentiell für die Zulassung zur Abschlussprüfung. Keine Berichtshefte, keine Zulassung. https://www.gesetze-im-internet.de/bbig_2005/__43.html Allerdings hätte dein Ausbilder dich auch darauf hinweisen müssen, was er wohl auch nicht getan hat.
  24. Es gibt doch auch diese digitalen Preisschilder in Supermärkten. Wäre sowas nicht besser? Man müsste man sich mal erkundigen, wie teuer diese sind. Meines Wissens nach können sie ja auch per WLAN aktualisiert werden. https://www.e-shelf-labels.de/produkte/elektronische-preisschilder.html
  25. Irgendwie ist das doch total dämlich, schon vor der Ausbildung an Weiterbildungen nachzudenken. Das führt doch zu nichts. Ein hohes Gehalt ist doch nicht alles im Leben. Was bringt mir ein hohes Gehalt, wenn ich aber 60+ Stunden in der Woche arbeiten muss? Mache doch erst mal eine Sache fertig (Studium oder Ausbildung) und sehe dann weiter. Dann sieht die Welt auch schon wieder ganz anders aus.

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...