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

  • Jednoduchost. Buffalo se snadno používá a zjednodušuje spoustu rutinních činností.
  • Dokumentace. K Buffalu je dostupná relativně obsáhlá dokumentace.

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ů.