• Thanks for the thoughtful comment. I don't have a really strong opinion on the plural/singular thing, but I use plural for resources because it matches the urls and database tables I use (so path /users/1, table users etc). I don't feel this is a hugely important point though, and frankly don't think there should be a prescription either way. The important thing is to be consistent in the way that you use these things within a given app, and I think you have found a few more exceptions here to the rule that packages should be singular, I'm really not sure that there has to be a choice between one or the other as the article pretends.

    Re user Collections, I typically just work with slices rather than a custom collection type, so I'd be doing users.FindAll -> []*Users and users.Find -> *User and users.New -> *User, but yes what you suggest sounds reasonable - again I don't think there has to be a hard and fast rule here because different projects are structured differently.

    Re a service which works with both user and post, I find most of my handlers end up pulling in several resources, so I prefer to have handlers or other services in separate packages from resources, which solves this problem -I don't think resources should know all about other resources, if you start down that path, every resource has to know about every other and all your code becomes difficult to reason about and intertwined.

    Re the view.New you mention, I've actually changed this recently to view.NewRenderer as I think it makes it clearer what it does. comments.New I'm reasonably happy with - I think there's a convention in Go now that mypackage.New will return an instance of the primary type for that package, but equally given a different app/project I see nothing wrong with comment.Collection if used consistently.

    PS Re use of english, it would make your writing a lot more legible to simply omit your use of quotes - they are rarely appropriate unless directly quoting someone else, though they are often misused in this way (e.g. I 'miss' the point). I wouldn't normally mention this but did so because of your last paragraph - your English is actually very good, so no need to apologise.