Zum Inhalt springen

Die Entwicklungsumgebung

SAP Implementation Consulting & ERP - Startupistan Deutschland · Block I · Lernnotizen zur Wiederholung.


Bevor ich eine einzige Zeile echten Code schreibe, braucht mein Rechner eine Werkbank: einen Ort, an dem ich Befehle eintippe, und vier Werkzeuge, die die eigentliche Arbeit erledigen. Dieses Kapitel ist genau diese Einrichtung, von null. Nichts hier setzt voraus, dass ich je zuvor ein Terminal geöffnet habe.

Es gibt genau zwei Wege, einem Computer Anweisungen zu geben:

  • GUI - Graphical User Interface (grafische Benutzeroberfläche). Auf Symbole klicken, Fenster verschieben, aus Menüs auswählen. So nutzen fast alle Menschen einen Computer.
  • CLI - Command-Line Interface (Befehlszeile). Eine geschriebene Anweisung eintippen, Enter drücken und eine geschriebene Antwort lesen. Älter - und in der Entwicklerwelt noch immer überall.

Das Terminal ist das Fenster, in dem die CLI stattfindet.

Vier Wörter schwirren umher, verwandt, aber nicht identisch. Es lohnt sich, sie einmal festzunageln:

WortWas es tatsächlich bedeutet
TerminalDas Fenster - die App, die ich öffne (Windows Terminal, macOS Terminal, GNOME Terminal, Hyper)
ShellDas Programm darin, das meine Befehle liest und ausführt (PowerShell, Bash, Zsh)
Command LineDie Zeile, in die ich tippe - und lose auch diese ganze Arbeitsweise
ConsoleEin älteres Sammelwort für all das Genannte

Im Alltag mischen Entwickler diese Begriffe frei. „Open a console”, „open a shell”, „open a terminal” meinen alle dasselbe: dorthin gelangen, wo ich Befehle eintippen kann.

Wenn Klicken funktioniert, warum tippen?

  • Die Werkzeuge wohnen dort. Git, Node.js und npm sind in erster Linie Command-Line-Werkzeuge. Ihr natürliches Zuhause ist das Terminal, und jedes Tutorial im Netz setzt es voraus.
  • Es ist präzise und wiederholbar. Ein Befehl ist eine exakte Sache - kopierbar, teilbar, identisch erneut ausführbar. „Klick auf das dritte Symbol, dann auf den zweiten Reiter” ist nichts davon.
  • Es skaliert. Eine Datei umbenennen geht mit der Maus leichter. Fünfhundert umbenennen ist ein einziger Befehl.
  • Server haben keinen Desktop. Die Maschinen, auf denen echte Software läuft, haben meist gar keine GUI. Die Command Line ist der Weg, über den Profis sie erreichen.

Auf jedem System dieselbe Idee: ein weitgehend leeres Fenster mit einer kurzen Textzeile, die auf mich wartet. Wie ich es öffne, ist unterschiedlich.

Die eingebaute App heißt Terminal (auch Windows Terminal) und führt die PowerShell-Shell aus.

  1. Drücke die Windows-Taste (oder klicke auf Start).
  2. Tippe terminal.
  3. Drücke Enter (oder klicke auf Terminal).

Ein Fenster öffnet sich mit einer Zeile wie PS C:\Users\ravi>. Auf älteren Windows-10-Rechnern fehlt Terminal möglicherweise - suche stattdessen nach powershell und öffne Windows PowerShell; dasselbe Ergebnis.

Ignoriere die Eingabeaufforderung (cmd): eine ältere Shell, die dieses Programm nicht verwendet. Zeigt ein Fenster C:\Users\ravi> ohne das PS, schließe es und öffne Terminal/PowerShell.

Alles ist dieselbe Schleife: tippen, Enter, Antwort lesen. Hier das Arbeitsvokabular. Die meisten dieser Aliase funktionieren auch in PowerShell; wo Windows abweicht, habe ich seinen nativen Befehl notiert.

BefehlWas er tutmacOS / LinuxWindows PowerShell
pwdPrint working directory - „wo bin ich?”pwdpwd
ls / dirAuflisten, was in diesem Ordner istlsls oder dir
cdChange directory - in einen Ordner wechselncd Documentscd Documents
cd ..Eine Ebene hoch (.. = der Ordner darüber)cd ..cd ..
mkdirEinen neuen Ordner hier anlegenmkdir projectsmkdir projects
touch / New-ItemEine leere Datei erstellentouch notes.txtNew-Item notes.txt
catDen Inhalt einer Datei im Terminal anzeigencat notes.txtcat notes.txt
echoText zurückgeben (oder in eine Datei schreiben)echo "hi"echo "hi"
clear / clsDen Bildschirm leeren (der Verlauf bleibt)clearclear oder cls
mvEine Datei/einen Ordner verschieben oder umbenennenmv a.txt b.txtmv a.txt b.txt
cpEine Datei kopierencp a.txt copy.txtcp a.txt copy.txt
rmEine Datei löschen (-r für einen Ordner)rm old.txtrm old.txt

So fühlt sich die Schleife tatsächlich an - ein kurzer Rundgang, der die ersten fünf Befehle nutzt. Das $ ist der Prompt, ich tippe also nur, was danach folgt; Zeilen ohne $ sind die Antwort des Computers:

Terminal-Fenster
$ pwd
/Users/ravi
$ ls
Desktop Documents Downloads
$ cd Documents
$ pwd
/Users/ravi/Documents
$ mkdir startupistan
$ ls
startupistan
$ cd ..
$ pwd
/Users/ravi

Lies es wie eine Geschichte: prüfen, wo ich bin, umsehen, hineingehen, bestätigen, einen Ordner anlegen, wieder herausgehen, bestätigen. Dieser prüfen-bewegen-bestätigen-Rhythmus ist genau die Art, wie sich auch erfahrene Entwickler bewegen.

Früher oder später antwortet das Terminal mit einer Beschwerde statt mit dem, was ich wollte. Das ist gut - der Fehler ist die Shell, die hilfreich ist, und sie hält immer an, bevor sie etwas tut. Ein Fehler bedeutet nie, dass ich den Computer kaputt gemacht habe. Die drei, denen ich zuerst begegne:

FehlermeldungWas sie wirklich bedeutetDie Lösung
command not found / not recognizedDas erste Wort ist kein bekannter Befehl - ein Tippfehler oder das Programm ist nicht installiertZuerst die Schreibweise prüfen; wenn richtig geschrieben, ist es ein Installations-/PATH-Problem (siehe Fehlerbehebung)
no such file or directoryDer Befehl ist bekannt, aber der Ordner/die Datei ist von dort, wo ich stehe, nicht sichtbarpwd, um zu sehen, wo ich bin, ls, um zu sehen, was hier ist, dann cd zu dem, was tatsächlich angezeigt wird
too many argumentsEin Leerzeichen in einem Namen hat ihn in zwei Teile zerlegtDen Namen in Anführungszeichen setzen: cd "My Projects" - oder Leerzeichen ganz vermeiden

Mein Rechner läuft auf vier Werkzeugen, eines pro Aufgabe. Zusammen bilden sie eine Schleife, die ich tausende Male wiederhole: schreiben → ausführen → prüfen → speichern → wiederholen.

WerkzeugWas es istSeine eine Aufgabe
VS CodeEin Code-EditorSchreiben und Code organisieren
GitEin VersionskontrollsystemMerken - die Historie meiner Arbeit festhalten, damit nie etwas verloren geht
Node.jsEine JavaScript-Runtime (bringt npm mit)Ausführen von JavaScript außerhalb des Browsers und Bausteine installieren
Der Browser (Chrome)Ein Browser + UntersuchungslaborZeigen und untersuchen - wo Web-Code läuft, in der Vorschau erscheint und debuggt wird
SchreibenVS Code
→
AusführenBrowser · Node.js
→
PrüfenBrowser DevTools
→
SpeichernGit
→
…wiederholen
Die tägliche Schleife, die die vier Werkzeuge gemeinsam bilden.

Das Problem, das Git löst, ist der Ordner voller website-final.html, website-final2.html, website-FINAL-REALLY.html. Welche habe ich verschickt? Was hat sich zwischen zweien geändert? Was hat es heute kaputt gemacht? Ein Versionskontrollsystem (VCS) beantwortet all das sauber:

  • Speicherpunkte - in jedem von mir gewählten Moment macht es einen Schnappschuss des ganzen Projekts, mit Zeitstempel, meinem Namen und einer Nachricht.
  • Eine lesbare Historie - die vollständige Liste dieser Speicherpunkte, sodass „was hat sich wann und warum geändert” immer beantwortbar ist.
  • Zeitreise - jeder frühere Speicherpunkt lässt sich wiederherstellen. Heute etwas kaputt gemacht? In Sekunden zurück zum funktionierenden Stand von gestern.
  • Sichere Teamarbeit - mehrere Personen arbeiten am selben Projekt; das VCS führt ihre Arbeit zusammen und zeigt genau, wo sie kollidiert.

Git ist das Standard-VCS - so dominant, dass „Versionskontrolle” und „Git” nahezu Synonyme sind.

Node.js = JavaScript außerhalb des Browsers ausführen

Abschnitt betitelt „Node.js = JavaScript außerhalb des Browsers ausführen“

JavaScript ist die Sprache des Webs, und jahrelang konnte es nur innerhalb eines Browsers laufen. Node.js ist eine Runtime - ein Programm, dessen Aufgabe es ist, Programme auszuführen -, das diesen Käfig entfernt hat. Installiere es, und JavaScript läuft direkt auf meinem Rechner, ohne Browser. Das machte JavaScript zu einer Sprache, die auch Server, Command-Line-Werkzeuge und fast das gesamte moderne Web-Entwicklungs-Werkzeug antreibt.

Für die meisten Menschen zeigt ein Browser einfach Websites an. Für einen Entwickler ist er die Maschine, auf der seine Arbeit läuft - HTML, CSS und JavaScript laufen innerhalb des Browsers desjenigen, der die Seite öffnet. Das macht ihn zu meinem Prüfstand, plus ein vollständiges Untersuchungslabor, nur einen Rechtsklick entfernt.

  1. Rechtsklick auf irgendetwas auf einer Seite (eine Überschrift eignet sich gut) und Untersuchen wählen.

  2. Ein Panel öffnet sich - die DevTools (Developer Tools). Der Reiter Elements zeigt das tatsächliche HTML der Seite; wenn ich über eine Zeile fahre, wird der passende Teil der Seite hervorgehoben.

  3. Doppelklick auf den Text einer Überschrift, etwas anderes tippen, Enter drücken - die Seite ändert sich. Jetzt neu laden: sie ist zurück.

Irgendwann fragt jemand, welche IDE ich benutze. Die ehrliche Antwort braucht zuerst eine Definition, denn die Unterscheidung kehrt wieder, wenn dieses Programm bei SAP ankommt.

Code-EditorIDE (Integrated Development Environment)
Startet alsLeicht und allgemein - bearbeitet jede Sprache von Haus ausEine komplette Werkstatt für ein Ökosystem, alles vorinstalliert
Wächst durchExtensions, die ich wähle, pro ProjektBereits fest verdrahtet: Build-System, Debugger, Vorlagen, Refactoring
BeispieleVS Code, Sublime Text, VimIntelliJ (Java), PyCharm (Python), Visual Studio (.NET), Eclipse
Am besten, wennEin Werkzeug viele Sprachen abdecken mussTiefe Arbeit in einem einzelnen Ökosystem

Vor allen Installationsschritten die eine Gewohnheit, die die Hälfte aller „es hat nicht funktioniert”-Momente verhindert:

Zwei weitere Fakten, bevor irgendetwas installiert wird:

  • Kenne meinen Rechner. Jede Download-Seite fragt, was ich benutze. Windows: about tippen → Info zu Ihrem PC (oder winver ausführen). macOS: Apple-Menü → Über diesen Mac. Linux: cat /etc/os-release.
  • Administratorrechte. Installieren verändert den Rechner für jeden Nutzer, also fragt das Betriebssystem um Erlaubnis - das „Zulassen, dass diese App Änderungen vornimmt?”-Fenster unter Windows, eine Passwortabfrage unter macOS/Linux (wo das Terminal-Wort sudo lautet). Auf meinem eigenen Laptop klicke ich Ja / gebe mein Passwort ein. Auf einem Firmen- oder Familiengerät können Installationen an das Konto von jemand anderem gebunden sein - das ist Richtlinie, kein Fehler; die Lösung ist, den Besitzer oder die IT zu fragen, nicht gegen den Dialog anzukämpfen.

Alles wurde zu Programmbeginn eingerichtet, der erste Schritt für jedes Werkzeug ist also prüfen - testen, ob es schon funktioniert. Die Installationsschritte sind die Referenz für einen neuen Rechner oder eine Neuinstallation.

Windows nutzt Windows Terminal - nichts zu tun. macOS/Linux führen Hyper aus, und es wird zuerst geprüft, weil alles andere innerhalb eines Terminals überprüft wird.

  1. Hyper öffnen (Cmd + Leertaste → hyper unter macOS; App-Suche unter Linux).

  2. Einen Befehl ausführen, um die Shell hinter dem Design zu belegen:

    Terminal-Fenster
    $ pwd
    /Users/ravi
  3. Öffnet sich und antwortet - geprüft. Installations-Referenz: von hyper.is herunterladen; unter macOS in Programme ziehen, unter Linux die .deb installieren (sudo apt install ./hyper_*.deb). Eingebaute Terminals (macOS Terminal, GNOME Terminal) sind der dauerhafte Rückfall.

  1. In einem Terminal die Prüfung ausführen:

    Terminal-Fenster
    $ git --version
    git version 2.45.1
  2. Jede Versionsnummer = fertig. Meine Nummer wird abweichen - das ist in Ordnung. Nur command not found muss behoben werden: zuerst ein frisches Terminal versuchen, dann installieren.

  3. Installations-Referenz:

Den Installer von git-scm.com/downloads herunterladen, ausführen und auf jedem Bildschirm die Standardeinstellungen akzeptieren - die Wand aus Optionsseiten schüchtert jeden einmal ein, aber keine davon muss hier geändert werden. Es installiert außerdem Git Bash, ein Bonus-Terminal, das die macOS-/Linux-Befehlssprache spricht. Ein neues Terminal öffnen und git --version ausführen.

Node bringt npm mit, das sind also zwei Prüfungen in einer:

Terminal-Fenster
$ node --version
v22.14.0
$ npm --version
10.9.0

Zwei Versionsnummern = fertig. Abweichende Nummern sind zu erwarten.

Den LTS-Installer von nodejs.org herunterladen, mit Standardeinstellungen ausführen. npm kommt automatisch mit - keine separate Installation. Ein neues Terminal öffnen und beide Prüfbefehle ausführen.

Kein Befehl - drei Handgriffe, die ich schon kenne:

  1. VS Code öffnen (Startmenü unter Windows; Spotlight code oder Programme unter macOS).

  2. Datei → Ordner öffnen, und einen Ordner wählen, den ich früher angelegt habe (z. B. startupistan-practice).

  3. Strg + Backtick drücken (die `-Taste, oben links), um das integrierte Terminal zu öffnen, und pwd ausführen - es sollte mit dem Pfad des Ordners antworten.

Funktionieren alle drei → Editor bereit. Installations-Referenz: von code.visualstudio.com herunterladen, durchgehend Standardeinstellungen (Windows-Installer; unter macOS in Programme ziehen; .deb unter Linux).

Extensions sind der Ort, an dem ein schlichter Editor seine Fähigkeiten gewinnt. Alle zwölf zu installieren dauert ~10 Minuten. Das Vorgehen, zwölfmal wiederholt:

  1. Die Extensions-Ansicht öffnen - das Vier-Quadrate-Symbol oder Strg + Shift + X.

  2. Den Namen der Extension ins Suchfeld tippen.

  3. Prüfen, dass der Publisher übereinstimmt mit dem unten angegebenen - es gibt Nachahmungen beliebter Extensions, und die Publisher-Zeile ist meine Garantie.

  4. Auf Install klicken. In Sekunden aktiv, kein Neustart.

GruppeExtensionsWarum
Formatierung & QualitätPrettier, ESLint, HTMLHint, Code Spell CheckerCode sauber halten; Probleme melden, bevor ich etwas ausführe
Web-WorkflowLive Server, Auto Rename Tag, JS (ES6) snippetsDas Bauen von Seiten beschleunigen - Live Server aktualisiert den Browser beim Speichern automatisch
Git-UnterstützungGitLens, Git HistoryWer welche Zeile geändert hat, und eine durchstöberbare Projekthistorie
Komfort & LesbarkeitAndromeda (Theme), Material Icon Theme, Better CommentsDer gemeinsame Look, aussagekräftige Datei-Icons, hervorgehobene TODO-/Warn-Kommentare

VS-Code-Einstellungen - die fünf für diesen Kurs

Abschnitt betitelt „VS-Code-Einstellungen - die fünf für diesen Kurs“

Extensions geben Fähigkeiten; Einstellungen bestimmen das Verhalten. Die Einstellungen mit Strg + , (Komma) öffnen, das Suchfeld nutzen und fünf Dinge setzen:

Suchen nachSetzen aufWas es tut
format on saveHaken bei Format On SaveCode räumt sich bei jedem Speichern selbst auf
format on pasteHaken bei Format On PasteEingefügter Code übernimmt sofort meine Formatierung
default formatterPrettier - Code formatterSagt den beiden oben, welches Werkzeug aufräumt
minimapHaken entfernen bei Minimap: EnabledEntfernt den winzigen Code-Übersichtsstreifen - mehr Platz, weniger Ablenkung
telemetryTelemetry Level → offKeine Nutzungsdaten verlassen meinen Rechner (Datenschutz-Hygiene)

Zwei Prüfungen: installiert und aktuell (Drei-Punkte-Menü → Hilfe → Über Google Chrome - es aktualisiert sich genau dort selbst) und als Standard gesetzt (der ehrliche Test: einen Link von außerhalb eines Browsers anklicken - eine E-Mail, ein PDF - und sehen, ob er sich in Chrome öffnet).

Den Standard setzen: Windows - Einstellungen → Apps → Standard-Apps → Google Chrome → Als Standard festlegen. macOS - Systemeinstellungen → Schreibtisch & Dock → Standard-Webbrowser. Linux - Einstellungen → Standardanwendungen. Es ändert nur, welche App Links öffnet; jeder andere Browser bleibt installiert.

Keine Software - eine Identität im Web, und in Kurs 05 wird es zum Online-Zuhause von allem, was ich baue. Prüfen: bei github.com anmelden; mein Dashboard zu sehen ist die ganze Prüfung. Passwort vergessen? „Forgot password?” jetzt nutzen, nicht mitten im Kurs.

In einem Rutsch, ausgeführt aus dem integrierten Terminal von VS Code. Ein Rechner, der alle acht besteht, ist bereit für den ganzen Block.

#PrüfungSo sieht Bestehen aus
1git --versionBeliebige Versionsnummer
2node --versionBeliebige Versionsnummer
3npm --versionBeliebige Versionsnummer
4Extensions (Strg + Shift + X)Die zwölf sind unter Installed gelistet
5Einstellungsketteconst x=1; schnappt beim Speichern zu const x = 1;
6ChromeEin außerhalb eines Browsers geklickter Link öffnet sich in Chrome
7Hyper (macOS & Linux)Öffnet sich und antwortet auf pwd
8GitHubIch kann mich bei github.com anmelden
MusterWas wirklich passiertDie Lösung
command not found direkt nach der InstallationMein Terminal las seine Liste der Programmordner beim Öffnen, bevor die Installation den neuen hinzufügteZuerst ein frisches Terminal - vollständig schließen, neu öffnen, erneut versuchen. Nur neu installieren, wenn ein wirklich frisches Terminal weiterhin fehlschlägt
Der Installer läuft nicht / die Admin-Abfrage weist mich abIch bin auf einem Rechner, auf dem die Installationsrechte jemand anderem gehören (Firmen-/Familiengerät)Menschlich, nicht technisch: der Besitzer oder die IT gibt Zugangsdaten ein oder installiert es. Nichts sollte das umgehen
Eine alte Version war schon daEine Installation von vor JahrenSpielt hier fast nie eine Rolle. Wenn ein Werkzeug sich falsch verhält und meine Version weit zurückliegt, ersetzt eine frische Installation der aktuellen Version einfach die alte - das ist das ganze Upgrade
KernpunktKurz gemerkt
GUI vs. CLIKlicken vs. Tippen; das Terminal ist das Fenster, in dem die CLI lebt
Terminal vs. ShellTerminal = das Fenster; Shell (PowerShell / Zsh / Bash) = das Programm darin, das Befehle ausführt
Nie den Prompt tippenDas $, % oder > ist der Prompt - ich tippe nur, was danach kommt
Der Fünf-Befehle-Rhythmuspwd (wo) · ls (was ist hier) · cd (bewegen, .. = hoch) · mkdir (anlegen) - prüfen-bewegen-bestätigen
Windows- vs. Unix-Befehletouch → New-Item in PowerShell; die meisten anderen (ls, cat, cp, rm) haben passende Aliase
Schweigen = Erfolgcd / mkdir sagen nichts, wenn sie funktionieren; mit pwd / ls bestätigen
Fehler lesennot found = Tippfehler/fehlendes Programm · no such file = falscher Ordner · too many arguments = das Leerzeichen quoten
Die vier WerkzeugeVS Code schreibt · Git merkt sich · Node.js führt JS aus (+ npm) · Browser zeigt & untersucht
Git vs. GitHubGit = das Werkzeug auf meinem Rechner (offline); GitHub = das Online-Zuhause für Git-Projekte
Node.js = RuntimeFührt JavaScript überall aus, nicht nur im Browser; bringt npm mit (Package-Installer)
DevTools ist eine SandboxUntersuchen bearbeitet nur meine lokale Kopie; ein Neuladen macht es rückgängig - sicher, an allem herumzuprobieren
Editor vs. IDEEditor = leicht + allgemein, nach Bedarf erweitern (VS Code); IDE = komplette Werkstatt für ein Ökosystem (ABAP später)
Die goldene RegelNach jeder Installation: das Terminal schließen, ein frisches öffnen, dann prüfen
Prüfen = beliebige Version--version, das mit irgendeiner Nummer antwortet, ist das Bestehen - Nummern unterscheiden sich auf jedem Rechner
Node: LTS wählenLong Term Support = Stabilität vor Neuheit; das, was professionelle Teams fahren
command not found nach der InstallationFast immer ein veraltetes Terminal - zuerst ein frisches Terminal (der PATH wurde beim Öffnen gelesen)