Словно Lisp на ЛОРе, все в один голос советуют «просто использовать стандартную библиотеку». Но кто-нибудь следовал этому совету? Не могу найти ни одного проекта, все либо используют фреймворки (что карается отлучением из Go сообщества), либо в результате разрабатывают свой страшно закрученный фреймворк и таки используют фреймворк.
Самое масштабное, что нашёл - Go Playground: одна html страница и пара-другая URL'ов JSON'а, реализация выглядит IMO по-уродски. Тут мы знакомимся с паттерном f1(f2(fN(SomeHandlerFn)))), где fN:
func fN(f http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *Request) {
// Do something useful here...
f(w, r) // Call the received handler function.
}
}