DART LogoDART Logo

Programmieren ist (k)ein Hobby

Autor des Artikel Programmieren ist kein Hobby

Die ganze Nacht programmieren, viele Energy Drinks und die gute alte Bildschirm-Bräune. Klischees über Nerds gibt es viele, jedoch sind diese keine Gewohnheiten im Arbeitsalltag eines (guten) Programmierers.

Dieser Artikel richtet sich an alle Programmierer und die, die es mal werden wollen, als kleine Stütze um nicht dieselben Fehler zu begehen, wie ich sie einst begangen habe und die sich leider immer noch ab und zu einschleichen.

Du weist noch was Jolt-Cola ist? Hack-the-Planet[1] ist dir ein Begriff? Dann ist dieser Artikel eigentlich nichts für dich als Old-School-Nerd und vielleicht denkst du dir nur "So ein Käse...". Lies ihn trotzdem – einfach, weil du es kannst. ;)

1. DRY – Don't Repeat Yourself

Sicherlich hast du dich schon einmal in der Situation vorgefunden, in welcher du dachtest: "Hey, dieser Code-Abschnitt sieht ähnlich aus wie in Zeile 132..."

Da sollten sofort die Alarm-Glocken läuten – denn doppelten Code gilt es zu vermeiden. Doppelt vorkommende Funktionen oder Codes machen dein Programm aufwendiger in der Pflege, denn wenn in diesem Stück Code Anpassungen vorzunehmen sind, müssen diese an vielen verschiedenen Stellen ebenfalls nachgepflegt werden. Hierdurch ist die Wahrscheinlichkeit, dass sich ein Bug im Code einschleicht, deutlich erhöht.

Als gute Praxis gilt die DRY [2] Methode. Das bedeutet, sobald du dich dabei ertappst, wie du einen Code zum zweiten Mal schreibst, solltest du mit der Refaktorierung des Codes beginnen. Unterteile deinen Code in kleine Abschnitte und Funktionen, die du innerhalb deines Programms aufrufen kannst.

2. Wenn du glaubst, du bist fertig – Code refaktorieren!

Die meisten Programmierer – vor allem die mit weniger Erfahrung – denken oft ihr Programm ist fertig, sobald ihr Programm funktioniert. Aber im Wörtchen "fertig" steckt mehr als nur ein bisschen Code für ein cooles Feature.

Jetzt denkst du bestimmt: "Hauptsache, das Ding funktioniert, oder?"

Korrekt. Aber bevor du dich jetzt der nächsten Aufgabe widmest, solltest du dennoch deinen Code überarbeiten – im Fachjargon nennen wir dies Refactoring[3]. Das Überarbeiten (Refaktorieren) deines Code verbessert dessen Lesbarkeit deutlich. Dein Code muss vielleicht nicht der sauberste der Welt sein. Doch Formulierungen, die für dich selbstverständlich, sind es für andere Programmierer unter Umständen nicht. Ergo stell dir stets die Frage: Was denken wohl andere Entwickler, wenn sie diesen Code lesen? Ist er verständlich und logisch? Sei kritisch dir selbst gegenüber!

Der nachfolgende Code ist ein sehr einfaches Beispiel für eine Code-Refaktorierung. Es geht nicht nur um einen effizienteren Aufbau und die Dezentralisierung von Funktionen, sondern auch um Grundlagen z.B. das effektive Anwenden von nativen Methoden der jeweiligen Programmiersprache.

Ein Code-Schnipsel aus dem Javascript Bereich:

const meinArray = ["Wert1", "Wert2", "Wert3"]

function meineFunktion(){
  for (var i = 0; i < meinArray.length; i++) {
   console.log(meinArray.length[i]);
  }

// Output: Wert1
// Output: Wert2
// Output: Wert3

}

Das gleiche Ergebnis (Output) kann man auch mit nur einer Zeile Code erreichen:

const meinArray = ["Wert1", "Wert2", "Wert3"]

function meineFunktion(){
  meinArray.forEach(element => console.log(element));

// Output: Wert1
// Output: Wert2
// Output: Wert3

}

Ein refaktorierter Code hilft auf jeden Fall die Komplexität zu vereinfachen und eine erhöhte Wartungsfreundlichkeit zu gewährleisten. Auf lange Sicht macht sich die Refaktorierung auf jeden Fall bezahlt.

3. Der Business-Fokus

Programmierer neigen dazu, sich zu sehr auf den technischen Part ihres Jobs zu fokussieren – z.B. eine neue Programmiersprache zu lernen oder eine neue Javascript Bibliothek zu testen. Hierbei gerät oft das Business aus dem Blickfeld. Auf dem Weg zum Meister deines Faches ist es wichtig, sein eigenes Geschäftsfeld im Auge zu behalten. Warum programmierst du?

Leider ist es so, dass manchem Programmierer die wirtschaftlichen Faktoren seine Tuns nicht interessieren, sie bilden jedoch die existenzielle Grundlage ihrer Arbeit.

Stelle dir selbst also immer mal wieder die 100.000-Euro-Frage:
"Arbeite ich an etwas, dass meinem Geschäft einen finanziellen Mehrwert bringt?"

4. Commit-Häppchen – das Horsd’œuvre der Nerds

In der Programmierung ist es ratsam eine Versionskontrolle wie z.B. GIT[4] einzusetzen. Dies ermöglicht es mehreren Programmierern gleichzeitig dezentral an einem Code zu arbeiten, Änderungen zu protokollieren und damit nachvollziehen zu können. Jedes mal, wenn ein Programmierer eine Änderung im Code vornimmt und diese dem Projekt hinzufügt, sprechen wir von einem Commit.

Doch Achtung: Umfangreiche Commits bedeuten auch viele mögliche Code-Veränderungen. Da kann man schnell mal den Überblick über die relevanten Veränderungen verlieren. Der Tipp: Teile deine Code-Korrekturen in kleine Commit-Häppchen auf, die sich auch leichter aussagefähig beschreiben lassen. (Die Betonung liegt auf aussagekräftig! Fformulierungen wie "Kleinere Fehlerkorrekturen…“ sind nicht aussagekräftig.)

Dein Code lässt sich bei kleineren Commits auch schneller debuggen. Es ist einfacher, vorangegangene kleine Commits zu prüfen, durch die sich eventuell ein Bug eingeschlichen haben könnte. Sobald der "verbuggte Commit" gefunden wurde, gibt es weniger Code zu inspizieren, welcher den Bug verursacht haben könnte.

Derjenige, der deinen Code reviewt, wird es dir danken. Er kann Änderung für Änderung gezielt prüfen – ohne Angstschweiss und Herzkasper.

5. Konsistenz – Schuster bleib bei deinen Leisten

Wenn du dich bei deinen Variablen dazu entschieden hast Camel Casing[5] in der Benamung zu verwenden, dann bleib auch dabei. Du magst keine Tabs sondern lieber Leerzeichen? Auch gut. Egal was du in deinem Code machst, mach es konsistent.

Das Problem der Inkonsistenz wird geschürt durch Zeit. Und Zeit zerstört Software. Je länger eine Software in ihrer Entwicklung verbleibt und je mehr Leute damit möglicherweise involviert sind, desto mehr Chaos kommt ins Spiel.

Was also kannst du machen, damit du konsistenter wirst?

Eines der ersten Dinge wäre: Leg dir einen Style-Guide zu. Damit meine ich keinen grafischen Style-Guide, der vorschreibt,welche Schriftart und welche Farben du zu verwenden hast. Sondern ein Dokument, das z.B. definiert, ob in Dateinamen Unterstriche vorkommen dürfen oder wie die Deklarationen für Variablen auszusehen haben. Ein Beispiel für einen solchen Style-Guide findest du hier: Google Javascript Style Guide

Merke: Konsistenz hat einen erheblichen Einfluss auf die Wartungsfreundlichkeit deines Codes.

6. Das Morgen stirbt nie...

"Bugfix XY? Das mach ich gleich morgen." Ich glaube, das haben wir uns alle schonmal sagen hören. Und wir alle wissen, wie oft Dinge dann tatsächlich am nächsten Tag erledigt werden – selten bis nie. Jedes Mal, wenn du einen ToDo-Comment im Code entdeckst, hat jemand seinen Job nicht erledigt.

Arbeite an einem Stück Code, bis er komplett fertig ist!

Und was bedeutet "komplett fertig"?

Für den Anfang zum Beispiel, dass dein Code bereits refaktoriert wurde. Nun muss dein Code noch ausgiebig getestet werden – für viele nicht immer der Lieblingspart ihres Berufes. Und Testen bedeutet nicht einfach, nur genau das anzuklicken, was jeder Benutzer auch tun würde. Du solltest auch komplexere Szenarien in deine Tests aufnehmen, z.B. was passiert, wenn plötzlich das Netz ausfällt? Und wenn du die Erwartungen übertreffen willst, dann schreib am besten noch ein paar automatisierte Tests.

Am Ende bleibt noch die Dokumentation. Frage dich also: "Ist eine Dokumentation für dieses Feature notwendig? Wissen meine Tester, wie dieses Feature sich verhalten muss im Test?"

7. Die Lorbeeren...

Täglich kommen neue Technologien auf den Markt und im wahrsten Sinne des Wortes – täglich! Und oft ist es wirklich schwierig, Schritt zu halten mit den neuesten Trends. Aber man sollte nie aufhören, zu lernen und sich nicht "auf seinen Lorbeeren" ausruhen.

In den Worten des Science-Fiction Autors Isaac Asimov: "The day you stop learning is the day you begin decaying."

Nur durch das Erlernen neuer Technologien ist es uns möglich, heute und vor allem auch morgen noch unserem Beruf gerecht zu werden.


Fußnoten
[1]: Jolt-Cola und "Hack-the-Planet" sind Begriffe, welche im Spielfilm "Hackers - Im Netz des FBI" von 1995 vorkommen. Ein sehr beliebter Film unter den 90er Jahre Nerds - vielleicht auch nur weil Angelina Jolie eine der Hauptrollen besetzt.
[2]: DRY: Don’t repeat yourself (DRY, englisch für „wiederhole dich nicht“; auch bekannt als once and only once „einmal und nur einmal“) ist ein Prinzip, das besagt, Redundanz zu vermeiden oder zumindest zu reduzieren.
[3]: Refactoring (auch Refaktorisierung, Refaktorierung oder Restrukturierung) bezeichnet in der Software-Entwicklung die manuelle oder automatisierte Strukturverbesserung von Quelltexten unter Beibehaltung des beobachtbaren Programmverhaltens.
[4]: Git ist eine freie Software zur verteilten Versionsverwaltung von Dateien, die durch Linus Torvalds initiiert wurde.
[5]: CamelCase (auch HöckerSchreibweise) ist eine Schreibweise für zusammengesetzte Substantive, der sogenannte BinnenMajuskel.


Autor: Ali Sari
Leitung Digital

Was bedeutet Corona für Ihr Marketing? 5 Regeln, die Sie beherzigen sollten.

Corona Virus Call to action

Wie handle ich zukunftsorientiert im Zeichen einer Krise? Nachfolgend die jetzt wichtigsten Orientierungshilfen, denn das neue Corona-Virus COVID-19 ist ein nie gekannter Einschnitt in viele Branchen. Umsatzeinbrüche, eingeschränkte Lieferketten, schwierige Erreichbarkeit von Geschäftspartnern und nicht zuletzt Schutz der eigenen Mitarbeiter erfordert einigen Erfindergeist von allen Beteiligten.

1. Lockdown ja, Shutdown nein

Das Wichtigste ist, nicht in eine Schockstarre zu geraten. Vorsichtsmaßnahmen in der Arbeitsstätte sind absolut wichtig, und Homeoffice das Gebot der Stunde für alle, die es können. Doch auch unter diesen erschwerten Bedingungen müssen alle aktiv dazu beitragen, die Wirtschaft aufrecht zu erhalten.
Gerade wenn Produktionstätten zwangsweise gedrosselt werden, müssen Marketing und Vertrieb ihren Beitrag leisten, den Kundenkontakt und die Vertriebskanäle nicht abreißen zu lassen.

2. Downtime nutzen und Ihr Marketing prüfen

Nach dem ersten, durch Corona bedingten Chaos und der damit einhergehenden Umorganisation der Arbeitsstrukturen, wird sich eine neue Chance ergeben: Nämlich endlich die Zeit zu finden, Rückstände aufzuholen und Themen anzugehen, für die im durchgetakteten Alltag bislang keine Zeit war. Beispielsweise lohnt es sich etwa, die Marketing Organisation zu überdenken, die Customer Experience auf den Prüfstand stellen oder relevanten Content zu produzieren. Ist meine Website technisch wie inhaltlich aktuell? Kann ich das SEO meiner Website verbessern? Ist die Kommunikation noch zielgerichtet oder muss das Storytelling überdacht werden? Jetzt die Waffen schärfen!

3. Kräfte bündeln in Marketing und Vertrieb

Heutzutage ist die Customer Journey von digitalen Touchpoints bestimmt, die nun vom Homeoffice aus noch stärker genutzen werden. Das bietet die Chance, potentiellen Kunden, die Interesse an Ihren Produkten oder Ihrer Marke haben, schon dann sichtbar zu machen, selbst wenn Sie diese noch nicht einmal kennen. Digital Sales Instrumente helfen, die Besucher Ihrer Website oder Landingpages zu identifizieren, zu kategorisieren und gezielt einer digital koordinierten Vertriebsbearbeitung zuzuführen. Nutzen Sie also jetzt im Zuge des Shutdown die Gelegenheit, sich mit diesen schlagkräftigen Prozessen zu beschäftigen und das Synergiepotential von Marketing und Vertrieb zu heben.

4. Digital werden in der Kommunikation

Die Messe fällt aus, aber was ist die Alternative? Besonders jetzt, wenn coronabedingt der persönliche Kontakt vermieden werden muss, schlägt die Stunde der digitalen Kommunikation. Die ersten Messen, die durch das Virus abgesagt werden mussten, haben diesen Weg schon eingeschlagen. So hat die Weltleitmesse für Licht und Gebäudetechnik Mitegro beispielsweise eine virtuelle Messe aufgesetzt, auf der sich die Aussteller über Webinare präsentieren konnten. Dass solche Onlinepräsentationen erfolgreich sein können, hat Steve Jobs mit der Apple Keynote bereits 2007 eindrucksvoll bewiesen.

Ihre Kunden werden den Shutdown nutzen und sich über die digitalen Kanäle informieren und kommunizieren. Eine gute Gelegenheit für Online-Marketing. Bieten Sie also jetzt Content und Kampagnen auf Websites, Newslettern und Social Media an. Mittels Augmented Reality und Virtual Reality (AR/VR) wird Ihr Produkt greifbar auch ohne direkte Demonstration vor Ort. Erläutern Sie Ihr Angebot über Erklärvideos und Tutorials, besonders bei komplexeren Sachverhalten. Chatfunktionen auf Ihrer Website bieten Dialog mit potentiellen Kunden. Eine Option für die Vertriebsmitarbeiter, gerade wenn der Außendienst durch eingeschränkte Reisefreiheit oder gar Ausgangssperren zum Erliegen kommt.

5. Stark bleiben für das Danach

Auch die Corona-Pandemie wird über kurz oder lang ihr Ende finden. Erfolgreich wird derjenige sein, dem es gelingt, so schnell als möglich wieder auf den anfahrenden Zug aufzuspringen. Das weiß auch der Wettbewerb. Darum ist es wichtig, dann die richtigen Botschaften für Ihre Zielgruppen parat zu haben, und die richtigen Marketing- und Vertriebskanäle zu bespielen. Doch mit einer gesunden Portion Optimismus und den richtigen Botschaften sowie Marketingmaßnahmen im Köcher werden wir auch diese Krise überstehen.

Autor:
Manuel Werner
Creative Director

Informationen zum Datenschutz

Datenschutz ist uns wichtig - dürfen wir Ihre Interessen auswerten?
Zur Verbesserung unseres Angebots nutzen wir Cookies von Google-Tracking-Diensten(Maps, Analytics). Weitere Informationen finden Sie in unserer Datenschutzerklärung. Ihre Einwilligung ist freiwillig. Sie können diese jederzeit mit Wirkung auf die Zukunft wiederrufen.

AkzeptierenAblehnen