Go 用のフルスタック Web フレームワーク。 Bud はあなたの代わりに退屈なコードを作成し、Web サイトをより速く立ち上げるのに役立ちます。
Bud を使用して 15 分で最小限の HN クローンを構築する方法を示すビデオをご覧ください。
Bud の使用を開始する方法については、ドキュメントを参照してください。
Bud は、Linux および Mac 上で動作する単一のバイナリとして出荷されます。この号の Windows サポートについては、こちらをご覧ください。
開始する最も簡単な方法は、以下のコマンドをコピーしてターミナルに貼り付けることです。
curl -sf https://raw.githubusercontent.com/livebud/bud/main/install.sh | sh
このスクリプトは、オペレーティング システムに適切なバイナリをダウンロードし、そのバイナリを$PATH
内の適切な場所に移動します。
ターミナルにbud
と入力して、Bud がインストールされていることを確認します。
bud -h
次の内容が表示されるはずです。
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
Budを使用するには以下のソフトウェアが必要です。
ノード v14+
これは一時的な要件であり、v0.3 で削除する予定です。
Go v1.17+
Bud はio/fs
に大きく依存しており、将来的にはジェネリックを活用する予定であるため、Go v1.16 は動作しますが、可能であれば Go v1.18 以降を実行することをお勧めします。
Bud がインストールされたら、新しいプロジェクトをスキャフォールディングできるようになります。
$ bud create hello
$ cd hello
create コマンドは、bud を開始するために必要なものすべてをスキャフォールディングします。
$ ls
go.mod node_modules/ package-lock.json package.json
...ところで、それはそれほど多くはありません!他のほとんどのフルスタック フレームワークとは異なり、Bud は非常に最小限の構成から始まります。依存関係を追加すると、Bud はアプリを結合するための退屈なコードをすべて生成します。これを実際に見てみましょう。
bud run
で開発サーバーを起動します。
$ bud run
| Listening on http://127.0.0.1:3000
リンクをクリックしてブラウザを開きます。 bud のウェルカム ページが表示されます。
おめでとうございます! Bud を使用して最初の Web サーバーを実行しています。ウェルカム サーバーは、フレームワークについて詳しく学ぶための出発点です。
Hacker News のデモをチェックしたり、ドキュメントを読んだり、簡単な通話をスケジュールしたり、独自の冒険に出かけたりできます。唯一の制限はあなたの想像力です。
最近のディスカッション: Reddit、ハッカー ニュース、Twitter
私は、開発者が Laravel でどのように生産性を発揮できるかを見た後、2019 年 4 月に Bud の開発に取り組み始めました。 Go にも同じことが欲しかったので、Go エコシステム用に Laravel を作成してみることにしました。ただし、6 か月後の最初のバージョンでは、開始するだけで多くのファイルをスキャフォールディングする必要がありました。 Rails や Laravel から来ている場合は、肩をすくめてこれがごく普通のことだと考えるかもしれません。
残念ながら、私は Next.js のような、ベアボーンを開始するフロントエンド フレームワークのルネッサンスに台無しになってしまいましたが、ファイルを追加するたびに Web アプリケーションが段階的に強化されます。これにより、初期の複雑さが制御されます。
このさらなるインスピレーションをもとに、私はその後 18 か月間、次の反復に取り組みました。
現在の目標は次のとおりです。
必要な場合にのみファイルを生成します。これらの生成されたファイルをアプリケーション コードから遠ざけて、開発者がソース管理から除外できるようにします。生成されたコードについて気にする必要はありません。 Go が Go コードを実行可能ファイルに変換するコードも生成することを知って驚くかもしれませんが、それは非常にうまく機能するため、それについて考える必要はありません。バドはこう感じるはずだ。
最新の JS フレームワークを使用しているように感じます。これは、Svelte や React などの複数の最新のフロントエンド フレームワークで動作し、ライブ リロードをサポートし、パフォーマンスと SEO を向上させるサーバーサイド レンダリングを備えている必要があることを意味します。
フレームワークは初日から拡張可能である必要があります。Bud は 1 人で行うには野心的すぎます。この枠組みの背後にある野心的なコミュニティが必要になります。拡張性は、構成の追加ではなく、主にコードの追加によって実現される必要があります。
Bud は、開発者に高レベルでタイプセーフな API を提供すると同時に、内部ではパフォーマンスの高い低レベルの Go コードを生成する必要があります。
Bud は、Web アプリ全体を含む単一のバイナリにコンパイルする必要があり、Go がインストールされていないサーバーにコピーすることもできます。
Bud をローカルで開発する方法については、貢献ガイドを参照してください。