Buffalo je webový Framework v Go. Nesnaží se objevovat znovu kolo v procesech jako je routing nebo templaty. Místo toho je jakýmsi lepidlem, které spojuje všechny nejlepší balíčky, které jsou dostupné a umožňuje jejich účinné propojení.
Buffalo je ekosystém na webový vývoj, který je navržen tak, aby usnadnil Go vývojářům život. Buffalo začíná tím, že vygeneruje webový projekt, který má v sobě všechno od front-endu (JavaScript, SCSS, atd.) po back-end (databáze, routing atd.). Projekt je nastavený a může být rovnou spuštěn. Buffalo pak nabízí jednoduché API, které pomáhá postavit vlastní webovou aplikaci v Go co nejrychleji.
Buffalo tak není jen Framework, ale i holistické prostředí pro webový vývoj a projektová struktura, která dovolí vývojářům pustit se rovnou do práce.
Hlavní funkce Buffalo frameworku
Routing. Buffalo používá Gorilla toolkit, aby spravoval routy, session, cookies. Existují i rychlejší routery, ale Gorilla je přesto jeden z nejsilnějších routovacích nástrojů.
Templaty. Templaty je možné psát za využití Plush, se syntaxí podobnou Rails. Funkcionalita lze rozšířit za pomoci kustomizovaných helperů.
Nástroje. Psaní modulu webové aplikace vždy začíná stejnými úkony. Buffalo nabízí jednoduchou sadu nástrojů, příkaz buffalo, který generuje mnoho částí aplikace a spouští obvyklé úkony.
Testování. Testování může být monotónní, proto Buffalo pomáhá definovat testovací sady a generovat akce, zdroje i modely pro tvorbu testovacích vzorů na míru kódu, který byl právě přidán. Je možné je spustit jednoduchým příkazem přímo z nástrojů.
Rychlá implementace změn. Je možné napsat kód, uložit a obnovit a všechny změny jsou okamžitě vidět.
Konfigurace. Za pomoci Webpackem generované konfigurace je možné stavět front-end tak, aby optimalizoval výkon front-endu i back-endu.
Modely. Hluboká integrace s pop nabízí snadný způsob, jak pracovat s databázemi. Podporuje MySQL, MariaDB, PostgreSQL, CockroachDB i SQLite.
Tasky. Podobně jako Rake tasky v Ruby funguje Grift.
Výhody použití Buffalo
Nevýhody použití Buffalo
Malá uživatelská základna. Framework není příliš známý. Neexistuje k němu příliš mnoho zmínek na vývojářských fórech. Na StackShare existuje pouze jedna společnost, která se hlásí k použití Buffalo, tou je CrossChx.
Integrace stávajících nástrojů. Buffalo je v podstatě pouze slepencem již existujících nástrojů.