Das Full-Stack-Web-Framework für Go. Bud schreibt den langweiligen Code für Sie und hilft Ihnen so, Ihre Website schneller zu starten.
Sehen Sie sich ein Video an, das zeigt, wie Sie mit Bud in 15 Minuten einen minimalen HN-Klon erstellen.
Lesen Sie die Dokumentation, um zu erfahren, wie Sie mit Bud beginnen.
Bud wird als einzelne Binärdatei geliefert, die auf Linux und Mac läuft. Sie können den Windows-Support in dieser Ausgabe verfolgen.
Der einfachste Einstieg besteht darin, den folgenden Befehl zu kopieren und in Ihr Terminal einzufügen:
curl -sf https://raw.githubusercontent.com/livebud/bud/main/install.sh | sh
Dieses Skript lädt die richtige Binärdatei für Ihr Betriebssystem herunter und verschiebt die Binärdatei an die richtige Stelle in Ihrem $PATH
.
Bestätigen Sie, dass Sie Bud installiert haben, indem Sie bud
in Ihr Terminal eingeben.
bud -h
Sie sollten Folgendes sehen:
Usage:
bud [flags] [command]
Flags:
-C, --chdir Change the working directory
Commands:
build build the production server
create create a new project
run run the development server
tool extra tools
version Show package versions
Für die Verwendung von Bud ist die folgende Software erforderlich.
Knoten v14+
Dies ist eine vorübergehende Anforderung, die wir in Version 0.3 entfernen möchten
Gehen Sie zu Version 1.17+
Bud verlässt sich stark auf io/fs
und wird in Zukunft die Vorteile von Generika nutzen. Go v1.16 funktioniert zwar, wir empfehlen jedoch, Go v1.18+ auszuführen, wenn Sie können.
Wenn bud installiert ist, können Sie jetzt ein neues Projekt erstellen:
$ bud create hello
$ cd hello
Der Befehl „create“ stellt alles bereit, was Sie für den Einstieg mit bud benötigen.
$ ls
go.mod node_modules/ package-lock.json package.json
... was übrigens nicht sehr viel ist! Im Gegensatz zu den meisten anderen Fullstack-Frameworks startet Bud sehr minimalistisch. Wenn Sie Abhängigkeiten hinzufügen, generiert Bud den ganzen langweiligen Code, um Ihre App zusammenzuhalten. Sehen wir uns das in Aktion an.
Starten Sie den Entwicklungsserver mit bud run
:
$ bud run
| Listening on http://127.0.0.1:3000
Klicken Sie auf den Link, um den Browser zu öffnen. Sie werden mit der Begrüßungsseite von bud begrüßt.
Glückwunsch! Sie betreiben Ihren ersten Webserver mit Bud. Der Willkommensserver ist Ihr Ausgangspunkt, um mehr über das Framework zu erfahren.
Schauen Sie sich die Hacker News-Demo an, lesen Sie die Dokumentation, vereinbaren Sie einen kurzen Anruf oder begeben Sie sich auf Ihr eigenes Abenteuer. Die einzige Grenze ist Ihre Fantasie.
Aktuelle Diskussionen: Reddit, Hacker News, Twitter
Ich habe im April 2019 mit der Arbeit an Bud begonnen, nachdem ich gesehen hatte, wie produktiv Entwickler in Laravel sein können. Ich wollte dasselbe für Go und beschloss, Laravel für das Go-Ökosystem zu entwickeln. Allerdings musste meine erste Version nach 6 Monaten viele Dateien aufbauen, um loszulegen. Wenn Sie von Rails oder Laravel kommen, zucken Sie vielleicht mit den Schultern und betrachten das als ziemlich normal.
Leider wurde ich von der Renaissance von Frontend-Frameworks wie Next.js verwöhnt, die Barebones starten, aber jede Datei, die Sie hinzufügen, Ihre Webanwendung schrittweise verbessert. Dadurch bleibt die anfängliche Komplexität unter Kontrolle.
Mit dieser zusätzlichen Inspiration arbeitete ich in den folgenden 18 Monaten an der nächsten Iteration.
Die Ziele sind nun:
Generieren Sie Dateien nur dann, wenn Sie sie benötigen. Halten Sie diese generierten Dateien von Ihrem Anwendungscode fern und geben Sie Entwicklern die Möglichkeit, sie außerhalb der Quellcodeverwaltung zu halten. Sie sollten sich nicht um den generierten Code kümmern müssen. Sie werden vielleicht überrascht sein zu erfahren, dass Go auch Code generiert, um Ihren Go-Code in eine ausführbare Datei umzuwandeln, aber es funktioniert so gut, dass Sie nicht darüber nachdenken müssen. Bud sollte sich so fühlen.
Fühlen Sie sich wie ein modernes JS-Framework. Das bedeutet, dass es mit mehreren modernen Frontend-Frameworks wie Svelte und React funktionieren, Live-Reload unterstützen und über serverseitiges Rendering für bessere Leistung und SEO verfügen sollte.
Das Framework sollte vom ersten Tag an erweiterbar sein. Bud ist zu ehrgeizig für eine Person. Wir brauchen eine ehrgeizige Gemeinschaft hinter diesem Rahmen. Die Erweiterbarkeit sollte in erster Linie durch das Hinzufügen von Code und nicht durch das Hinzufügen von Konfigurationen vorangetrieben werden.
Bud sollte typsichere High-Level-APIs für Entwickler bereitstellen und gleichzeitig leistungsstarken Low-Level-Go-Code im Hintergrund generieren.
Bud sollte zu einer einzigen Binärdatei kompiliert werden, die Ihre gesamte Web-App enthält und auf einen Server kopiert werden kann, auf dem Go noch nicht einmal installiert ist.
Weitere Informationen zur lokalen Entwicklung von Bud finden Sie im Contributing Guide.