Überblick

Erfahrung in Jahren: 4 Jahre
Level Einschätzung (1: Laie – 10: Superman): 8
Frameworks and tools related:

Lodash | Webpack | Ecma6 | NodeJS | Promises | setTimeout & setInterval | BufferArray | Apache Avro | GraphQL

Privat:

React-Native | ReactJS | JSX

Projekte

Ich habe im Rahmen von 2 Projekten bei BMW mit JavaScript entwickeln dürfen. Die beiden Projekte waren „Connected Music“ und „Crowd-Data-Collector“. Meine erste Erfahrung im professionellen Bereich mit JS war, um genauer zu sein mit der Syntax von Ecma 5. Die Syntax wird heutzutage nicht mehr verwendet und das ist auch gut so. Diese ist sehr umständlich zu verstehen und sie macht die Wartbarkeit und Erweiterbarkeit sehr zeit- und kostenaufwendig. Im Rahmen der beiden BMW Projekten haben keine bekannten Frameworks verwendet, wie beispielsweise React oder Angular, da es primär darum ging, die Apps mit firmeneigenen SDKs auf einer nativen NodeJS Plattform zu implementieren. Natürlich wurde Babel benutzt und zum Builden bzw. zum Packen Webpack.

Privat

Im privaten Leben nutze JS relativ viel, da es für mich die ideale Sprache ist, um kleine Skripte zu implementieren, um zum Beispiel Dateien zu manipulieren, Tabellen zu parsen und exportieren, kleine Textanpassungen zu tätigen. Abgesehen davon habe ich ReactJS und React-Native anhand der vom Betreiber gelieferten Dokumentationen gelernt. Ich nutze React-Native, um eine eigene App zu entwickeln, die ein Spiel ist. Ich finde JS sehr bequem zu nutzen und dessen Mentalität sehr einfach zu verstehen. 

Positive Aspekte von JS

  • Die positiven Aspekte der Programmiersprache sind beispielsweise, dass sie nicht typisiert ist. Das ist natürlich auch ein Nachteil, wenn der Code gewartet werden muss oder wenn man in einem großen Konstrukt mit vielen Entwicklern arbeitet, die auch mitwirken.
  • JS kann man direkt im Terminal ausführen, wenn man beispielsweise eine einfache Funktion testen möchte oder man kann auch eine JS Datei erstellen und diese auch im Terminal ausführen mit Hilfe von Node JS, sprich mit dem Befehl „node …“.
  • JS ist sehr verbreitet und genießt die Unterstützung einer großen Community, die für alles ein Paket anbietet. Diese Pakete sind einfach herunterzuladen mit Benutzung von NPM (Node-Package-Manager) und zu importieren.
  • JS entwickelt sich sehr schnell und dessen Syntax wird immer einfacher. JS ist eine objektorientierte Sprache und dessen Syntax hat sich in den letzten 8 Jahren der bekannten Sprache Java angenähert mit der Möglichkeit, beispielsweise Klassen zu definieren und zur Vererbung. Früher ging das natürlich auch, aber mit einer umständlichen Syntax ergo: Prototype und _prototype_.
  • JS ist sehr schnell, auch wenn es auf NodeJS single-threaded läuft. JS ist dafür bekannt, dass es kein Multi-Threading ermöglicht, dafür aber eine sehr starke nicht blockierende Event basierte Laufumgebung hat.
  • Wenig Code im Vergleich zu Java. In JS muss man viel weniger LOC schreiben, um Daten zu verarbeiten, Methoden zu definieren oder Dateien zu lesen mit dem nativen „FS“ für „File-System“ Packet von Node.
  • Die Definition und Benutzung von Asynchrone Prozesse ist in der JS Syntax sehr einfach im Vergleich beispielsweise mit Java. 
  • Die Benutzung von Intervals und Timeouts mit Hilfe von setTimeout und setInterval vereinfachen ebenfalls die Definition von Prozessen

Negative Aspekte

  • Mangelnde Sicherheit wegen unter anderem fehlender Typisierung. Das Problem wird aber mit der Verwendung von TypeScript beseitigt. 
  • Mangelnde Präzision bei Float Zahlen des Typens Number (bspw. 0.1+.02)
  • Umständliche Bibliotheken Verwaltung mit NPM, da die Abhängigkeiten zwischen den Bibliotheken oft Konflikte erzeugen, insbesondere wenn man die CVEs beseitigen möchte.
Translate »