Advertisement
  1. Code
  2. Reviews

Codierung mit Kodierung

Scroll to top
Read Time: 14 min

German (Deutsch) translation by Federicco Ancie (you can also view the original English article)

Cloud-IDEs gibt es schon seit einiger Zeit, und sie eignen sich hervorragend für Dinge wie die Paarprogrammierung oder für Fälle, in denen Sie unabhängig von Ihrem Standort konsistent codieren möchten. Koding ist gerade aus der privaten Beta herausgekommen, und sie möchten diesen Gedanken mit ihrem "Cloud-Ökosystem" noch ein paar Schritte weiter führen.

In diesem Artikel werden wir uns ansehen, was Koding ist und welche Vorteile Sie daraus ziehen können.

Koding ist schwer zu erklären, da es auf dem Markt kein ähnliches Produkt gibt. Um alle beweglichen Teile besser zu veranschaulichen, teilen wir den Service auf und beginnen mit der Entwicklungsumgebung.


Die Entwicklungsumgebung

Wenn Sie sich bei Koding anmelden, erhalten Sie sofort Ihre eigene Subdomain(.kd.io), Ihren eigenen VPS und einige integrierte Web-Apps zur Verwaltung Ihrer neuen Ressourcen.

Über den Administrator haben Sie die Möglichkeit, andere Subdomains über Ihrer aktuellen URL zu erstellen und neue VPS über eine benutzerfreundliche Benutzeroberfläche zu starten.

The Dev DashboardThe Dev DashboardThe Dev Dashboard

VMs

Diese VMs sind keine durchschnittlichen Mikroinstanzen, die viele Dienste anbieten. Es handelt sich um vollwertige VMs mit Zugriff auf acht Prozessoren und einem vollen GB RAM, sodass Sie nahezu jede App problemlos ausführen können und mit denen Sie herumspielen möchten Bei Cluster-Setups oder Netzwerken können Sie problemlos mehrere Instanzen für nur 5 US-Dollar pro Monat hochfahren.

In Bezug auf die Verarbeitungsleistung können diese Instanzen möglicherweise genauso leistungsfähig sein wie Ihr eigener Computer, und sie sind definitiv besser als das Laden einer lokalen virtuellen Maschine.

Was die Leute bei Koding versuchen, ist, Entwicklern die Möglichkeit zu geben, durch Experimente zu lernen und einfach Dinge auszuprobieren, die sie nicht unbedingt lokal ausprobieren möchten oder einfach nicht über die Ressourcen verfügen, um dies zu tun.

Diese Instanzen werden in Sekundenschnelle initialisiert. Wenn Sie Fehler machen und einige Systemdateien beschädigen, können Sie den Server einfach neu initialisieren und alles im Home-Ordner wiederherstellen. Im Wesentlichen haben Sie eine neue Instanz, aber alle Dateien, die Sie im Home-Ordner erstellt haben, bleiben erhalten.

Eine andere Sache, die sie bieten, was in manchen Situationen tatsächlich eine ziemlich große Sache ist, ist der Root-Zugriff auf alle Ihre Server. Koding ist ein sehr transparenter Dienst, Sie erhalten eine VM und können damit buchstäblich tun, was Sie wollen. Alles, was Sie mit einem Standard-VPS tun können, können Sie mit ihren VMs tun.

Betriebssystem und Sprachen

Die Instanzen selbst werden mit installiertem Ubuntu und so ziemlich jeder Sprache geliefert, die mir einfällt, einschließlich:

  • PHP
  • GO
  • Node.js
  • Ruby
  • Perl
  • Haskell

Unter anderem sind Sie also ziemlich gut darin, aus der Box zu gehen.

Apps

Mit Koding haben Sie zwei Anwendungsebenen. Sie haben die VM, auf der Sie, wie bereits erwähnt, alles ausführen können, was Sie möchten, aber außerdem haben Sie 'Koding Apps', Web-Apps, die auf Koding selbst ausgeführt werden, und über diese können Sie alle Ihre Koding-Ressourcen verwalten.

Einige der Standard-Apps, die Ihnen zur Verfügung stehen, sind beispielsweise Admin-Panels für Datenbanken oder Frameworks und Editoren für Code und Bilder. Der vorinstallierte Standardcode-Editor ist der Ace-Code-Editor für die reguläre Entwicklung oder Firepad, wenn Sie über die Teamwork-App zusammenarbeiten möchten.

AppsAppsApps

Neben all diesen wirklich coolen Apps haben Sie die Möglichkeit, Ihre eigenen zu erstellen. Sie werden mit einfachem JavaScript(CoffeScript) und dem KD-Framework (von Koding) geschrieben. Jetzt, da sie gerade aus der Beta-Phase herausgekommen sind, gibt es noch keine vollständige Dokumentationsseite, aber es stehen zwei Koding-Apps zur Verfügung (Kodepad und App Maker), die Ihnen eine Art Struktur geben sollen. mit Beispielen. Außerdem würde ich empfehlen, Github nach ".kdapp" zu durchsuchen und sich nur anzusehen, wie andere Apps erstellt wurden, um eine Vorstellung davon zu bekommen, welche Dinge möglich sind und wie sie erreicht werden können.

Insgesamt hat es das Gefühl eines Cloud- "Betriebssystems", in dem Sie die VMs als Ressourcen haben, aber mit den Koding-Apps können Sie Ihre Ressourcen verwalten und nach Ihren Wünschen einrichten. Das bedeutet, wenn Ihr Unternehmen über eine Art Boilerplate-Setup verfügt, können Sie eine kdapp erstellen, die eine neue VM mit den benötigten Dateien und Software konfiguriert. Wenn Sie dann eine neue Instanz starten, kann Ihre App diese nach Ihren Wünschen konfigurieren .

Darüber hinaus kann kdapps ein eigenständiges Tool sein, das nur Dateien wie den Ace-Editor oder verfügbare Bildeditoren ändert. Wenn Sie also Zeit investieren, können Sie im Wesentlichen Ihre eigene Entwicklungsumgebung mit allen benutzerdefinierten Tools erstellen, mit denen Sie Apps effizienter erstellen können.

Alles, was ich bisher erwähnt habe, deckt wirklich nur die Hälfte von Koding ab, und das ist der Teil der Entwicklungsumgebung. Koding hat auch eine soziale / organisatorische Seite, die die Entwicklungsfunktionen ergänzt und den Wert der Plattform erhöht.


Entwicklergemeinschaft

Wenn Sie sich bei Koding anmelden, werden Sie standardmäßig zur Koding- "Gruppe" hinzugefügt. Alle Funktionen, wie Aktivitätsbenachrichtigungen, Themen, Codefragmente usw., stammen aus dieser Standardgruppe. Es ist ziemlich cool, alle Updates von Benutzern auf der ganzen Welt zu erhalten, und Sie können nach Themen filtern, indem Sie auf die Themenseite gehen und etwas auswählen, an dem Sie interessiert sind. Diese Funktionen zeigen jedoch wirklich Potenzial, wenn Sie eine eigene Gruppe erstellen.

Koding Topics PageKoding Topics PageKoding Topics Page

Wenn Sie Koding als Gruppe verwenden, können Sie all diese Funktionen nutzen, um auf einfache Weise zu sehen, was Ihre Kollegen getan haben, Updates und Snippets von ihnen abzurufen und alle Beiträge nach Projekt zu filtern, indem Sie die Themen als Tags verwenden.

In einer Gruppe können Sie freigegebene VMs erstellen, auf die mehrere Benutzer Zugriff haben, oder Benutzern in der Gruppe Geld gutschreiben, damit sie ihre eigenen VMs erstellen und privat arbeiten können.

Es ist eine dieser Situationen, in denen sie wahrscheinlich gerade die Cloud-Entwicklungsumgebung, das soziale Netzwerk oder das Projektmanagement veröffentlicht haben könnten und es zu einem Markt passen würde. Aber wenn alle zusammenarbeiten und kostenlos sind, muss man wirklich darüber nachdenken.

Ich habe viele positive Dinge über Cloud-Umgebungen gesagt, aber es gibt einige Nachteile beim Vergleich mit der lokalen Entwicklung, die zumindest erwähnenswert sind.


Cloud vs. lokale Entwicklung

Nachteile

Eines der wichtigsten Dinge ist, dass Sie nicht wirklich das bekommen, was ich als IDE bezeichnen würde. Wenn Sie sich beispielsweise den Ace-Editor ansehen, ist er ein großartiger Editor, aber wenn Sie ihn mit einer vollwertigen IDE wie PhpStorm vergleichen, werden sie nicht verglichen. Ace ist lediglich ein Code-Editor, während PhpStorm alle Tools, die Sie vom Testen bis zum Refactoring benötigen, in einer App enthält.

Der andere Nachteil ist einfach die Latenz, jetzt im Vergleich zu anderen Web-IDEs hatte ich bei Koding kein allzu großes Problem damit, aber es ist immer noch nicht mit einem lokalen Setup vergleichbar. Wenn Sie eine Aktion wie das Öffnen eines Dokuments ausführen, kann das Öffnen manchmal eine Sekunde dauern.

Zusammenfassend lässt sich sagen, dass die Online-Entwicklung möglicherweise nicht über alle Tools verfügt, mit denen Sie gewohnt sind, und dass sie möglicherweise nicht so schnell ist wie die lokale Entwicklung. Wenn Sie jedoch lokal entwickeln, verlieren Sie die leistungsstarken VMs und alle Projektmanagement- / sozialen Funktionen.

Zum Glück müssen Sie keine Wahl treffen. Das Online-Bearbeiten von Code ist immer möglich, sodass Sie an dieser Stelle nicht auf Opfer verzichten müssen. Wenn Sie jedoch lieber lokal mit Ihren eigenen Tools codieren möchten, haben Sie vollen SSH-Zugriff auf Ihre Computer. Unabhängig davon, ob Sie FTP, SCP, GIT oder ein anderes Tool zum Übertragen Ihrer Änderungen auf den Server verwenden möchten, erhalten Sie diese Optionen wie bei einem Standard-VPS.


Einrichten von SSH und Rsync

Jetzt habe ich bereits erläutert, wie Sie ein nacktes GIT-Repo für die Bereitstellung auf Ihrem Server einrichten. Daher ist es überflüssig, diesen Prozess erneut zu behandeln. Schauen wir uns jedoch an, wie Sie Ihr Koding-Konto mit einem SSH-Schlüssel einrichten und Ihr Projekt mit rsync übertragen von und nach Koding.

Für Unbekannte ist rsync ein Dienstprogramm zum Übertragen großer Projekte von und zu Ihrem Computer. Es unterscheidet sich von SCP und der Grund für die Arbeit mit großen Projekten besteht darin, dass die Dateien sowohl lokal als auch remote gescannt werden und nur die geänderten Dateien übertragen werden. Wenn Sie an einem Projekt arbeiten, werden Sie einige Framework-Systemdateien, Boilerplate-Code, Bilder usw. haben und diese nicht wirklich bei jeder Anfrage senden wollen, daher ist rsync eine wirklich gute Wahl für solche Sachen.

Es ist nicht so gut wie GIT, Sie erhalten keine Form der Versionskontrolle, aber wenn Sie Koding als Testumgebung verwenden und nur Dateien hochwerfen oder herunterziehen möchten, ist rsync das Werkzeug für diesen Job.

Der erste Schritt ist ziemlich einfach und besteht darin, das SSH-Setup zu erhalten. Sie müssen nur Ihren öffentlichen Schlüssel abrufen (auf einem Mac können Sie cat .ssh/id_rsa.pub | pbcopy über ein Terminalfenster ausführen, um den Schlüssel zu kopieren) und ihn dann Ihrer Kontoseite bei Koding hinzufügen. Als Nächstes müssen Sie Ihren Computer für die Verbindung konfigurieren. Für Koding müssen Sie den Proxy als Tunnel zu Ihrem Server verwenden. Auf einem Unix-basierten System können Sie einfach eine Datei mit dem Namen 'config' mit den folgenden Angaben erstellen (Sie müssen diese durch Ihren Koding-Benutzernamen ersetzen):

1
Host *.kd.io
2
    User <username>
3
    ProxyCommand ssh %r@ssh.koding.com nc %h %p

Wenn Sie sich auf einem Windows-System befinden, finden Sie in der entsprechenden Anleitung Informationen zum Einrichten des Proxys mit Putty.

Wenn dies vorhanden ist, können Sie Folgendes ausführen:

1
ssh vm-<vm number>.<username>.koding.kd.io

Wenn Sie beispielsweise meinen Benutzernamen verwenden, würden Sie auf der ersten Standard-VM (Nummer 0) Folgendes ausführen:

1
ssh vm-0.gabrielmanricks.koding.kd.io

Wenn alles gut gegangen ist, sollten Sie eine Verbindung herstellen und die Meldung des Koding-Terminals sehen. Wenn keine Verbindung hergestellt werden soll, stellen Sie sicher, dass Sie den öffentlichen Schlüssel hinzugefügt haben und dass die VM in Koding aktiviert ist (Ihre VMs werden ausgeschaltet, wenn Sie sie etwa 20 Minuten lang nicht verwendet haben).

Mit diesem Setup können wir jetzt ein lokales Projekt erstellen. Wir brauchen hier eigentlich nichts Besonderes, also werde ich für dieses Beispiel nur eine einfache Hallo-Welt-HTML-Datei in einem leeren Verzeichnis erstellen:

1
<!DOCTYPE HTML>
2
<html>
3
    <head>
4
        <title>Koding Demo</title>
5
    </head>
6
    <body>
7
        <h1>Hello rsync</h1>
8
    </body>
9
</html>

Speichern Sie diese Datei in Ihrem projekts ordner und führen Sie dann Folgendes aus:

1
rsync -rvza --delete ./ vm-<vm number>.<username>.koding.kd.io:~/Web/

Dadurch wird der gesamte Inhalt des aktuellen lokalen Ordners in das Remote-Verzeichnis kopiert und alle Remote-Dateien gelöscht, die sich nicht im aktuellen Ordner befinden. Wenn Sie Änderungen aus der Ferne vornehmen, können Sie diese einfach nach unten ziehen, indem Sie die Pfade wie folgt umkehren:

1
rsync -rvza vm-<vm number>.<username>.koding.kd.io:~/Web/ ./

Jetzt sind diese Befehle etwas lang, und wenn Sie auf diese Weise entwickeln möchten, sollten Sie einige Verknüpfungen erstellen. Eine einfache Möglichkeit besteht darin, nur Bash-Aliase zu erstellen. Möglicherweise verfügen Sie jedoch über mehrere Server. Für jeden Server benötigen Sie einen Alias für jede Richtung. Erstellen Sie also einfach ein einfaches Bash-Skript, das die VM-Nummer zusammen mit dem Benutzernamen und dem akzeptiert In die gewünschte Richtung sollen die Dateien gehen, und die Übertragung wird durchgeführt.


Bash Primer

Ich werde nicht die gesamte Syntax von Bash behandeln, sondern nur die Teile, die wir für dieses Skript benötigen.

Zuerst benötigen wir die Variablen. In einem Bash-Skript definieren Sie Variablen, indem Sie name=value eingeben. Wenn wir beispielsweise eine Variable festlegen möchten, die eine Nachricht enthält, geben wir Folgendes ein:

1
message="Hello"

Um das Gleichheitszeichen sollten keine Leerzeichen stehen, damit es funktioniert. Nach dem Festlegen können Sie den Wert einer Variablen abrufen, indem Sie ihren Namen mit einem Dollarzeichen davor eingeben. Um den Wert der obigen Variablen zu drucken, geben wir Folgendes ein:

1
echo $message

Neben den Variablen, die Sie definieren und festlegen, können Sie einige globale Variablen verwenden, die von Ihrer Umgebung festgelegt werden. Diese können je nach Setup unterschiedlich sein, aber die von uns verwendeten sind $USER für den aktuell angemeldeten Benutzer und $PWD für den aktuellen Ordner. Sie können sehen, welche Variablen sich in Ihrer Umgebung befinden, indem Sie Ihrem Code printenv hinzufügen. Dadurch werden alle aktuellen Variablen der Umgebung ausgedruckt.

Das nächste, was unser Skript benötigt, ist, Befehlszeilenargumente akzeptieren zu können. Dies ist eigentlich sehr einfach, da sie zu nummerierten Variablen werden. $1 steht also für den ersten Parameter, $2 für den zweiten und so weiter.

Das Letzte, was wir in unserem Skript verwenden müssen, sind if-Anweisungen. Diese ähneln dem Schreiben einer if-Anweisung in den meisten Programmiersprachen mit einigen auffälligen Macken:

1
if [ expression ]
2
then

3
    do something here
4
else

5
    do something else here
6
fi

In Bash-Skripten haben Sie den Ausdruck zwischen zwei eckigen Klammern und müssen zwischen den Klammern und dem Ausdruck ein Leerzeichen lassen. Sie sollten auch beachten, dass die then-Zeile eine Anforderung ist. Der letzte Unterschied, der etwas anders ist und in anderen Bash-Strukturen zu finden ist, ist das Schlüsselwort fi. Grundsätzlich geben Sie einfach das if rückwärts ein. Dies gilt auch für eine switch-Anweisung. Sie starten den switch-Block beispielsweise mit case und beenden ihn dann mit esac (case reverse).

Erstellen wir mit diesen Informationen ein einfaches Skript, mit dem wir unseren Code hochladen und in Koding herunterladen können:


Erstellen Sie unser Skript

Zu Beginn benötigen wir den gesamten Shebang, um den Computer anzuweisen, ihn als Shell-Skript auszuführen, und dann werde ich eine einfache Hilfsfunktion erstellen, die dem Benutzer die Verwendung dieses Befehls erklärt:

1
#!/bin/sh

2
3
function koding_usage
4
{
5
    echo "Usage: koding [push|pull] <vm_number> <username>"
6
    exit 1
7
}

Wenn Sie mit dem Beenden von Codes noch nicht vertraut sind, bedeutet 0, dass es erfolgreich beendet wurde und die Standardeinstellung ist, die nach Beendigung eines Skripts zurückgegeben wird, während alles andere ein Beendigungscode ist, wenn ein Fehler aufgetreten ist. Wenn diese Funktion aufgerufen wird, bedeutet dies, dass das Skript nicht korrekt verwendet wurde und wir mit einem Fehlercode beenden.

Als nächstes müssen wir sicherstellen, dass die Argumente korrekt übergeben wurden, sie sammeln und in einigen Hilfsvariablen speichern:

1
if [ "$1" = "" ]; then

2
    echo "Command Required"
3
    koding_usage
4
fi

5


6
if [ "$1" != "push" ] && [ "$1" != "pull" ]; then

7
    echo "You Can Only push or pull"
8
    koding_usage
9
else

10
    command=$1
11
fi

12


13
if [ "$2" = "" ]; then

14
    echo "VM Number Required"
15
    koding_usage
16
else

17
    vmnumber=$2
18
fi

19


20
if [ "$3" = "" ]; then

21
    username=$USER
22
else

23
    username=$3
24
fi

In diesem Code führen wir vier verschiedene Überprüfungen durch:

  1. Wir prüfen, ob es einen ersten Parameter gibt
  2. Wir überprüfen, ob der erste Parameter entweder 'push' oder 'pull' ist.
  3. Wir stellen sicher, dass es einen zweiten Parameter gibt
  4. Wir prüfen, ob der dritte Parameter eingestellt wurde

In den ersten drei if-Anweisungen geben wir bei einem Problem eine Nachricht aus und rufen dann unsere Hilfsmethode von oben auf. Wenn für den letzten jedoch kein Benutzername angegeben wurde, verwenden wir nur den aktuell angemeldeten Benutzernamen des Benutzers. Wenn der Benutzername Ihres Computers mit Ihrem Koding-Benutzernamen übereinstimmt, können Sie den letzten Parameter weglassen.

Das Letzte, was wir tun müssen, ist, die rsync-Befehle basierend auf dem angeforderten Befehl (Push oder Pull) auszuführen:

1
if [ "$command" = "push" ]; then

2
    rsync -rvza --delete $PWD/ vm-$vmnumber.$username.koding.kd.io:~/Web
3
else

4
    rsync -rvza vm-$vmnumber.$username.koding.kd.io:~/Web/ $PWD
5
fi

Sie können sehen, dass wir nur die gesammelten Variablen (zusammen mit dem aktuellen Ordner $PWD) direkt in den Befehl einfügen. Da es sich um ein Shell-Skript handelt, können Sie Shell-Befehle einfach wie oben beschrieben direkt einfügen

Speichern Sie nun die Datei und nennen Sie sie koding und machen Sie sie dann ausführbar (Sie können dies tun, indem Sie chmod +x koding ausführen) und verschieben Sie diese Datei nicht zuletzt in Ihren bin-Ordner:

1
mv koding /usr/local/bin/

Wenn Sie alles richtig gemacht haben, sollten Sie in der Lage sein, koding auszuführen und zu sehen, wie unsere Nutzungsmeldung angezeigt wird. Jetzt können Sie das obige Beispielprojekt schnell ändern und einfach ausführen:

1
koding push 0

Angenommen, Sie benötigen die Eigenschaft username nicht und Ihr aktueller Ordner wird als Webverzeichnis auf Ihrem Server mit dem Namen vm-0 übertragen. Das Gleiche gilt, wenn Sie online Änderungen vornehmen, können Sie in den lokalen Projektordner cd und ausführen:

1
koding pull 0

Und Sie erhalten alle Updates.


Abschluss

Koding ist ein wirklich mächtiges Werkzeug zum Prototyping und Lernen durch Experimentieren. Es hat wirklich coole soziale und Projektmanagement-Funktionen und die Möglichkeit, mit jemand anderem live zu codieren, kann einen großen Unterschied machen, wenn Sie versuchen, Code zu debuggen. Ganz zu schweigen davon, dass dies alles kostenlos ist, was bedeutet, dass es wirklich keinen Grund gibt, warum Sie dies nicht verwenden möchten.

Ich mag die Idee, kd-Apps zu haben, die außerhalb der VMs laufen, und ich denke, es wird cool sein zu sehen, wohin die Leute das bringen und welche Art von Tools die Leute bauen werden.

Sie können sich bei koding anmelden, indem Sie koding.com besuchen.

Vielen Dank fürs Lesen. Ich hoffe, es hat Ihnen gefallen. Wenn Sie Fragen haben, können Sie mir unten einen Kommentar hinterlassen, auf Twitter oder über den Nettuts+ IRC-Kanal (#nettuts on freenode).

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.