service
pagoda


service | pagoda | |
---|---|---|
18 | 23 | |
3,666 | 2,290 | |
1.1% | 2.2% | |
9.4 | 6.5 | |
23 days ago | 3 days ago | |
Go | Go | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
service
-
Should I take the Ardan Labs course? If yes, then which one?
Ultimate Service was useful for me. None of the "backend" concepts were new, but you get to see how Bill would layout/design an API-based service. If you're experienced you'll notice the opinionated choices he makes, and I found myself saying "Nah, I'm not sure I'd do it like that". I appreciated its use of Kubernetes and KIND as I'd never played with them before. How he uses Docker to spin up a DB instance for tests is pretty cool. There's a lot of copy & paste as you code along with him (you copy from the "finished project" and paste into your work in progress). The full example project is online at https://github.com/ardanlabs/service. You won't write all that code, and this version is newer than the one I did, but it gives you an idea of what you might learn.
-
If you could go back in time | What would you do different regarding go
So what can you do insted? For testing databases, setup a docker instance for tests (e.g. like in https://github.com/ardanlabs/service), or start an embedded-postgres daemon (see https://github.com/fergusstrange/embedded-postgres). For communication with external APIs, just pass the http.Client (either in context.Context or as a field on the struct). Then in tests, you can override the http.Client.Transport func.
- Where can I find well-written go code to learn from?
-
GO web sever - file structuring convention
Take a look at https://github.com/ardanlabs/service from Bill Kennedy. You can probably simplify the structure a bit since your project is minimal, but that repo is gold.
-
Say you're mentoring someone just getting comfortable with go. What do you think they should know?
Checkout https://github.com/ardanlabs/service for inporation. Tip: try to avoid creating a service package with all services, a domain package with all domain structs, etc.
-
Any resources on building a simple web app with Go without any frameworks?
Or go through this repo https://github.com/ardanlabs/service
-
GitHub - johnwarden/httperror: Golang package for returning errors instead of handling them directly.
I've seen this handler modification and wrapping pattern in Ardan Labs' service repository. https://github.com/ardanlabs/service/tree/master/foundation/web
-
REST API project structure
https://github.com/ardanlabs/service This is something which I really like and has taken into account a lot of engineering decisions.
- GitHub examples of Go that's written really well?
- Is "Let's go" and "Let's go further" worth it?
pagoda
- Pagoda: Rapid, easy full-stack web development starter kit in Go
-
Some Go web dev notes
I stumbled on this Go starter project that has enough batteries included to get you started I think. You might find it useful
https://github.com/mikestefanello/pagoda
-
Is there a framework out for go that rivals Laravel as far as out of the box features and tools?
Recently, I have stumbled across this one: https://github.com/mikestefanello/pagoda
- Best Web Sever Framework?
-
Htmx
I'd like to make a small plug for a really awesome Golang web development starter kit I found recently called pagoda (https://github.com/mikestefanello/pagoda). It wires up HTMX, together with Alpine.js and Bulma CSS, onto a really fantastic collection of Go libraries on the back end.
-
Go Framework: No Framework?
Well said. The 'no big framework' thing works for Go because the Go standard library defines a common way for dealing with HTTP. The difficulty, then, is identifying 3rd party packages that play well with the rest of the ecosystem.
You can see the opposite in projects like Echo, Gin, Beego, etc., that eschew the standard library to various degrees and try to build the kitchen sink themselves. Sometimes this works! Echo is very popular, despite having nonstandard handlers and context. An absolute Go newbie is probably going to have an easier time using it than trying to pick out the best collection of libraries themselves.
I would love to see more 'blessed stack' collections that tie together good libraries such as this one: https://github.com/mikestefanello/pagoda
- Go for monolithic websites ?
- Pagoda: Full-stack web development starter kit in Go
-
Ghostly is a simple, lightweight, and fast full-stack framework for Golang
The readme doesn't seem to mention or list what libraries this depends on, it has chi and jet at least based on the structs section.
Given this "framework" is predominantly a collection of other people's (usually apache/mit) work, where is the BOM/licence text including all of the dependencies?
And why has the author attempted to licence their likely sub 100 lines of glue code under the GPL?
I don't see the point in using something like this which is basically a prefilled go.mod with some other files with a pretty stock organization.
I've used Pagoda (https://github.com/mikestefanello/pagoda) in the past which makes a show of displaying its nature as a wrapper around a bunch of community libraries, and is documented as such. They also make effort to document the interfaces for each component so you could easily replace them with your own implementations to avoid getting stuck due to the "framework". This is my preferred approach for all of these "starters" now since using pagoda.
-
Autostrada: A codebase generator for new Go projects
I recently came across https://github.com/mikestefanello/pagoda - which is also a very good starter kit. Unfortunately it comes with some tools I personally don't like a lot (yet) - like htmlx for templates. I suppose this is a problem of all starters - you can only build one which is ideal for you, but not for others. But anyway it's simpler to remove/replace unnecessary parts than create everything from scratch.
What are some alternatives?
go-starter - An opinionated production-ready SQL-/Swagger-first RESTful JSON API written in Go, highly integrated with VSCode DevContainers by allaboutapps.
golang-templates/seed - Go application GitHub repository template.
golang-standards/project-layout - Standard Go Project Layout
cookiecutter-golang - A Go project template
scaffold - Generate scaffold project layout for Go.
grav-theme-wheat - Wheat for Grav CMS
modern-go-application - Modern Go Application example
go-sample - Go Project Sample Layout
go-restful-api - An idiomatic Go REST API starter kit (boilerplate) following the SOLID principles and Clean Architecture

