Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2076
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    51

Alle Inhalte von Whiz-zarD

  1. Und genau da sehe ich meine Skepsis bei den Begriffen "Junior" und "Senior". Wer entscheidet die Levels? Dazu muss man den verlinkten Artikel von @r4phi vor Augen führen: Entscheidend für die Levels ist also das Unternehmen selbst. Wenn jetzt ein Unternehmen seit 20 Jahren an einer WinForms-Anwendung mit Visual Basic arbeitet und der "Senior" Entwickler in den 20 Jahren nichts anderes gemacht hat, als WinForms und Visual Basic, so wird er kaum eine neue Stelle als "Senior" Entwickler finden, weil er gar nicht den Skill heutiger Technologiestacks hat und sowas erlebt man doch recht häufig. Ungelogen: Vor einigen Jahren konnte ich ein Gespräch von einem "Senior" Entwickler mitverfolgen, der Stolz wie Bolle war, als er in C# Generics kennengelernt hat. Ja, da sitzt jemand seit über 10 Jahren an seinem C#-Code und erst vor wenigen Jahren lernt er Generics kennen und der schimpft sich dann "Senior" Entwickler. Wohlgemerkt: Generics gibt es in C# seit 2.0, was 2005 veröffentlicht wurde. In meiner jetzigen Firma haben ich und einige andere jüngere Entwickler vor 2 Jahren eine Clean Code-Initiative gestartet, weil der Code an vielen Stellen unwartbar ist. Produziert von "Senior" Entwicklern. Leider sind die nächsten beiden nicht fettgedruckten Punkte oft vom oberen Punkt abhängig, da hier das Unternehmen eine entscheidende Rolle spielt und zwar in wiefern das Unternehmen bereit ist, sich zu ändern bzw. bereit ist zu investieren. Hat man da lauter Querulanten sitzen, die jeden technologischen Fortschritt schlechtreden, weil "Das haben wir schon immer so gemacht!" und die Mitarbeiter auch nicht zur Weiterbildung motiviert, dann versauert auch ein "Senior" Entwickler. Bleibt also nur noch der letzte Punkt übrig und das ist für mich auch der wichtigste, was auch der Autor des Artikels so sieht: Nur leider ist der Punkt auch abhängig von den ersten drei, denn das Unternehmen entscheidet, wann man ein z.B. JavaScript- oder NodeJS-Experte ist. Man kann zwar schon seit 20 Jahren mit JavaScript arbeiten und schreibt ggf. immer noch Spaghetti-Code aber das Unternehmen meint, man sei ein Experte in JavaScript, denn das Unternehmen weiß es nicht besser. Folglich kommt man eigentlich zum Entschluss, dass aus der Sicht der Levels und somit außerhalb des Unternehmens, der Präfix "Senior" nichts wert ist. Es ist ein schwammiger Begriff, der alles und nichts bedeutet.
  2. Na ja, so sahen Webseiten im Jahre 1995 aus.
  3. Du sollst also alle Zahlen aus dem Array A aufsummieren. Schaue dir dazu mal an, wie das Struktogramm einer Schleife aussieht: https://de.wikipedia.org/wiki/Nassi-Shneiderman-Diagramm#Iteration_Symbol Findest du einiges in deiner Aufgabe wieder? Welche Variable musst du einsetzen und welchen Start- und Endwert hast du?
  4. Ich würde auch vorschlagen, erstmal den korrekten Wortlaut wiederzugeben, denn für mich klingt es eher so, als müsstest du lediglich das Array A nach M kopieren.
  5. Kannst du mal bitte das richtige Statement hier reinschreiben und nicht so ein Statement, was voller Syntaxfehler ist. Ich werde daraus einfach nicht schlau.
  6. Was meinst du mit "aggregierte Spalte"? Einzelne Spalten aggregieren kannst du nicht. Mir ist auch nicht klar, was du mit dem Decode() erreichen möchtest. Für mich sieht auch die Syntax komplett falsch aus.
  7. Wenn du Oracle verwendest, kannst du die extract()-Funktion benutzen, um das Jahr aus einem Datum zu extrahieren. https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions050.htm Dann lautet die Where-Klausel: WHERE EXTRACT(YEAR FROM ZEIT) = 2018 Wie ich schon sagte, deine Where-Klausel ist nicht korrekt, wenn sie über das gesamte Jahr gesehen soll. Hast du überhaupt schon mal die Datensätze angeschaut, ob du überhaupt Datensätze vom 01.01.2018 bis 01.12.2018 hast?
  8. Nicht nur das. Wenn das gesamte Jahr genommen werden soll, ist die Where-Bedingung nicht richtig, da diese nur Datensätze zwischen 01.01.2018 und 01.12.2018 berücksichtigt. Werte vom 02.12.2018 bis 31.12.2018 werden somit nicht gelesen. Vielleicht ist das auch der Grund. Vielleicht gibt es keine Datensätze, die älter als 02.12.2018 sind. to_date() erzeugt ein Datum und wenn kein Tag angegeben wird, dann wird der erste Tag des Monats genommen.
  9. Mal abgesehen von den rechtlichen Problemen (haben die Lehrer überhaupt zugestimmt?) sehe ich viele Verständnisprobleme hinsichtlich der Entitäten: Wieso besteht bei der Entität "Fragen" der Primärschlüssel aus FB_ID PK, Jahrgang PK, Block PK? Was soll FB_ID heißen? Wieso hat die Entität "Lehrer" keinen Primärschlüssel? Was sollen die Boolean-Attribute bei "Lehrer"? Wieso sind die einzelnen Fragen Attribute und keine eigene Entität?
  10. Auch bei einem Streaming-Abo müssen Liefer- und Rechnungsadresse nicht immer übereinstimmen. Beispielsweise könnte es sein, dass die Eltern für ein Kindes, das nicht mehr zu Hause wohnt, das Abo bezahlen. Dann wäre die Lieferadresse die Adresse des Kindes und die Rechnungsadresse die Adresse der Eltern. Die IHK-Lösung ist nur eine Lösung von vielen. Es kommt darauf an, was der Prüfungsausschuss daraus macht. Es wäre fatal, wenn der Prüfungsausschuss nur die IHK-Lösung als die einzig richtige Lösung ansieht, denn nicht immer ist die Lösung korrekt. Ich habe auch schon IHK-Lösungen gesehen, die komplett falsch waren.
  11. Hmm, stimmt. Auch wieder wahr.
  12. Bei der IHK-Lösung kann man nicht erkennen, ob es sich um eine Liefer- oder Bestelladresse handelt. Diese Information fehlt in der Kunde_Anschriften-Tabelle. Deine Bestellung-Tabelle halte ich für Überflüssig, da ein Kunde nur ein Paket bestellen kann. Es handelt sich hier ja um ein Abo und kein reelles Paket, was per Post verschickt wird. Folglich gibt es hier nur eine n:1-Beziehung. Die Zahlungsart ist sogar von dem gebuchten Streaming-Paket unabhängig. Ansonsten müsste der Kunde ja eine neue Bestellung aufgeben, nur weil er die Zahlungsart ändert. Demnach macht auch die Zahlungsart in deiner Bestellung-Tabelle wenig Sinn.
  13. Um das noch weiter auszuholen: Der Grund, warum der Code "Übersprungen" wird, ist, dass irgendwo in der Form1_Load()-Methode eine Exception fliegt, die intern vom Framework abgefangen wird. Am besten, du aktivierst beim Debugger alle Exceptions (Debuggen -> Fenster -> Ausnahmeeinstellungen), um zu sehen, was das Problem ist.
  14. https://codecombat.com/ eine Art Rollenspiel, wo man den Charakter mittels Python oder JavaScript interagieren lässt. https://grasshopper.codes/ eine App von Google, wo man in die Welt der Programmierung eingeführt wird.
  15. Unwissenheit. Der Hauptschalter macht ja auch nichts anderes, wie der Schalter an der Steckdose: Der trennt die Stromversorgung. Es gibt zwar das eine oder andere Gerät, welches den aktuellen Zustand speichern aber bei denen ist es auch egal.
  16. PCs gehen nicht kaputt. Es kann nur zu Datenverlusten kommen, wenn gerade Daten geschrieben werden. Darum sollte man einen PC auch runterfahren, damit die Schreibprozesse beendet werden. Andere elektronische Geräte, wie z.B. Monitoren kannst du ohne Probleme im Betrieb ausschalten.
  17. Schon mal was von ASCII gehört? Oder weißt du konkret, was ein Byte ist? Ein Buchstabe ist nichts weiter als eine Zahl, dass auf ein bestimmtes Zeichen gemappt wird. Ein Computer kann nämlich nur Zahlen verarbeiten und nichts anderes.
  18. Wie das nachher in der Hardware abgebildet wird, weiß ich nicht. Da kenne ich mich nicht mit aus. Im Hauptspeicher hast man aber 2^32 bzw. 2^64 Speicheradressen zur Vefügung. Jede Adresse steht für ein oder mehrere Bytes, je nach dem, wie viel Speicher die Software angefordert hat. In einem Beitrag lese ich, dass pro Bit ein Kondensator zur Verfügung steht. Hat der Kondensator Energie gespeichert, so ist es eine 1 und wenn nicht, ist es eine 0.
  19. Die kleinste adressierbare Einheit ist ein Byte. Bei heutigen Architekturen also 8 Bits. Auch wenn die Zahl 8 nur 4 Bits benötigt, werden dennoch minimal 8 Bits gelesen und somit die 4 Nullen davor.
  20. Dann macht man eben eine statische Konstante draus. Wo ist das Problem? Sorry, dass meine Glaskugel kaputt war und ich nicht wusste, dass du im Eingangsbeitrag Laravel meinstest, als du das Facade Pattern erwähnt hast... Ich kenne Laravel nun mal nicht und ist es nun zu viel verlangt, mal die Hintergründe zu erklären, wofür du das brauchst, weil ich den Sinn und Zweck deines Anliegens nicht verstanden habe und ich es deutlich gemacht habe, wieso ich es nicht verstehe. oder: Hey! Ich baue mir mit Hilfe von Redundanz eine Mikrooptimierung ein und frage dann in einem Forum, wie ich das nun testen kann... Wozu testen? Was hat man davon, wenn man eine Konstante testet?
  21. Ich stelle die Sinnhaftigkeit eines Getters für eine Konstante in Frage, die du für das Facade Pattern für Sinnvoll erachtet hast. Aber genau das baust du hier: Einen Getter für eine Konstante.
  22. Zu 1. Für das Facade Pattern ist das kein Hindernis. Das Facade Pattern abstrahiert lediglich mehrere Subsysteme zu einem simpleren System. Beispiel: Ich habe Klasse A und B und die fasse ich zu Klasse C zusammen. Natürlich kann dann die Klasse C auf die öffentlichen Methoden und Konstanten von A und B zugreifen, da C ja die öffentliche Schnittstelle von A und B kennt. Ich sehe also keinen Grund, wieso es üblich ist, im Facade Pattern die Konstante auch als Methode bereitzustellen. Wie gesagt, mag sein, dass da Laravel irgendeine verquirlte Art und Weise hat, wie es arbeitet aber das hat erst mal nichts mit dem Facade Pattern zu tun. Wenn man dort sowieso eine Methode schreiben muss, frage ich mich, wieso dann noch großartig eine Konstante definiert werden muss. Lass sie doch weg und schreib den Wert in die Methode. Eine Methode, die nichts anderes tut, als eine Konstante zurückzugeben, ist redundant und führt dich jetzt zur Frage, wie man es testen soll. Anstatt: class A { public const PI = 3.14; public function getPI() { return self::PI; } } einfach: class A { public function getPI() { return 3.14; } } schreiben. Es gibt da nämlich gar keinen Unterschied, da beim Kompilieren/Interpretieren der Aufruf von Konstanten in Literale umgewandelt werden. Der Aufruf self::PI wird später vom Interpreter eh in 3.14 umgewandelt und dann sieht die Funktion genauso aus, wie im unteren Beispiel. Wie man sieht, ist Konstante und Methode redundant.
  23. Unity ist nur eine von Tausend Engines, die es auf dem Markt gibt. Die Rollenspiele, die man auf Steam findet, die im Stil der alten (S)NES-Rollenspiele sind, werden häufig mit dem RPG Maker entwickelt oder die ganzen Visual Novels mit Ren'Py. Für ein kommerzielles Spiel habe ich auch mal mit Torque2D gearbeitet. Solche Engines gabs aber auch schon in den 90ern. Siehe z.B. die Quake-Engine, Unreal-Engine oder 3D Game Studio. 2004 wurde die Source Engine von Valve veröffentlicht und Unity erschien dann ein Jahr später. Videospiele sind inzwischen auch in der Gesellschaft angekommen und werden nicht mehr so als Übel angesehen, wie es noch in den 90ern der Fall war. Der Markt hat sich also gewaltig vergrößert. Das Internet hat auch das publishing deutlich vereinfacht. Man muss sich nicht mehr einen Publisher suchen, der viel Geld in die Hand nehmen muss und ein großes Risiko trägt, sondern man kann seine eigenen Spiele recht einfach auf den Plattformen, wie z.B. Steam, Google Play Store oder Apple Store hochladen. Auch immer mehr Hochschulen bieten Kurse für die Spieleentwicklung an. Daher ist es eine logische Konsequenz, dass mehr Spiele entwickelt werden. Ich persönlich interessiere mich aber kaum für Spiele und wenn, dann sind es hauptsächlich Adventures. Let's Play und so'n Kram schaue ich mir auch nicht an. Ich persönlich finde sowas langweilig. In Deutschland sind es überwiegend Studenten, die neben dem Studium viel experimentieren und dann irgendwann daraus ein Spiel entsteht. Spiele, wie z.B. Edna Bricht aus oder The Whispered World (beides von Daedalic) fingen als Bachelor- oder Master-Arbeiten an. Auch CrossCode von Radical Fish Games fing als Experiment an, um zu zeigen, dass HTML5 als Flash-Alternative einsetzbar ist. In den deutschen Indie-Game-Firmen arbeiten ja auch hauptsächlich Werksstudenten und Praktikanten.
  24. Mich interessiert es halt nur, wofür das gut sein sollte, da ich keinen sinnvollen Anwendungsfall konstruieren kann (höchstens eine Klasse, die ein Kreis darstellen soll und die Konstante Pi besitzt) und du behauptet, dass es sinnvoll sein kann. Workarounds sind für mich aber nicht sinnvoll, sondern ein Übel.
  25. Du hast doch gefragt, ob du nun die Konstante mit dem Ergebnis der Methode oder die Methode mit einem hartgecodeten Wert im Test vergleichen sollst. Wieso dann nicht beides? Du schreibst einfach zwei Tests. So gehst du sicher, dass sowohl die Kontante und Methode den selben Wert haben, als auch dass die Konstante sich nicht geändert hat. Wobei ich immer noch nicht verstehe, wofür man die Konstante und die Methode braucht. Klingt eher nach einem Workaround und nicht nach einer sinnvollen technischen Umsetzung.

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