A estrutura da Web Full Stack para Go. Bud escreve o código enfadonho para você, ajudando você a lançar seu site com mais rapidez.
Assista a um vídeo que demonstra como construir um clone mínimo de HN em 15 minutos com Bud.
Leia a documentação para saber como começar a usar o Bud.
O Bud é fornecido como um binário único que roda em Linux e Mac. Você pode acompanhar o suporte do Windows nesta edição.
A maneira mais fácil de começar é copiar e colar o comando abaixo em seu terminal:
curl -sf https://raw.githubusercontent.com/livebud/bud/main/install.sh | sh
Este script baixará o binário correto para o seu sistema operacional e moverá o binário para o local correto no seu $PATH
.
Confirme que você instalou o Bud digitando bud
em seu terminal.
bud -h
Você deverá ver o seguinte:
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
O seguinte software é necessário para usar o Bud.
Nó v14+
Este é um requisito temporário que planejamos remover na v0.3
Vá v1.17+
Bud depende muito de io/fs
e aproveitará as vantagens dos genéricos no futuro, portanto, embora o Go v1.16 funcione, sugerimos executar o Go v1.18+, se possível.
Com o bud instalado, agora você pode criar um novo projeto:
$ bud create hello
$ cd hello
O comando create irá estruturar tudo que você precisa para começar a usar o bud.
$ ls
go.mod node_modules/ package-lock.json package.json
... o que não é muito, aliás! Ao contrário da maioria dos outros frameworks fullstack, Bud começa de forma mínima. À medida que você adiciona dependências, o Bud irá gerar todo o código enfadonho para unir seu aplicativo. Vamos ver isso em ação.
Inicie o servidor de desenvolvimento com bud run
:
$ bud run
| Listening on http://127.0.0.1:3000
Clique no link para abrir o navegador. Você será saudado com a página de boas-vindas do Bud.
Parabéns! Você está executando seu primeiro servidor web com Bud. O servidor de boas-vindas é o seu ponto de partida para aprender mais sobre a estrutura.
Confira a demonstração do Hacker News, leia a documentação, agende uma ligação rápida ou embarque em sua própria aventura. O único limite é a sua imaginação.
Discussões recentes: Reddit, Hacker News, Twitter
Comecei a trabalhar no Bud em abril de 2019 depois de ver como os desenvolvedores poderiam ser produtivos no Laravel. Eu queria o mesmo para Go, então decidi tentar criar o Laravel para o ecossistema Go. No entanto, minha primeira versão após 6 meses precisou criar muitos arquivos apenas para começar. Se você vem do Rails ou Laravel, você pode encolher os ombros e considerar isso bastante normal.
Infelizmente, fui estragado pelo renascimento de estruturas de front-end como Next.js, que iniciam barebones, mas cada arquivo que você adiciona aprimora gradativamente seu aplicativo da web. Isso mantém a complexidade inicial sob controle.
Com essa inspiração adicional, trabalhei na próxima iteração durante os 18 meses seguintes.
Os objetivos agora são:
Gere arquivos somente quando você precisar deles. Mantenha esses arquivos gerados longe do código do seu aplicativo e dê aos desenvolvedores a opção de mantê-los fora do controle de origem. Você não precisa se preocupar com o código gerado. Você pode se surpreender ao saber que Go também gera código para transformar seu código Go em um executável, mas funciona tão bem que você nem precisa pensar nisso. Bud deveria se sentir assim.
Sinta-se como usar uma estrutura JS moderna. Isso significa que ele deve funcionar com várias estruturas de front-end modernas, como Svelte e React, suportar recarregamento ao vivo e ter renderização no lado do servidor para melhor desempenho e SEO.
A estrutura deve ser extensível desde o primeiro dia. Bud é ambicioso demais para uma pessoa. Precisaremos de uma comunidade ambiciosa por trás desta estrutura. A extensibilidade deve ser impulsionada principalmente pela adição de código, e não pela adição de configuração.
A Bud deve fornecer APIs de alto nível e com segurança de tipo para desenvolvedores, ao mesmo tempo que gera código Go de baixo nível e desempenho nos bastidores.
O Bud deve compilar em um único binário que contém todo o seu aplicativo da web e pode ser copiado para um servidor que nem tenha o Go instalado.
Consulte o Guia de Contribuição para saber como desenvolver o Bud localmente.