

Gooo - The anti-magic Go lang web framework - theflubba
https://github.com/aaronlifton/Gooo

======
rartichoke
Your amazon credentials might be in the source code.

[https://github.com/aaronlifton/Gooo/blob/master/model/model....](https://github.com/aaronlifton/Gooo/blob/master/model/model.go#L14)

~~~
AYBABTME
I've sent him an email.

~~~
theflubba
>_< thanks for the email. Thankfully just a free heroku postgres account with
auto-generated credentials so I deleted it.

~~~
codygman
[https://github.com/aaronlifton/Gooo/commit/8d5f50fe9e45eb2b3...](https://github.com/aaronlifton/Gooo/commit/8d5f50fe9e45eb2b30455aa30328ce5ba9798b67)

Still available ;)

Follow this guide to totally erase it and optionally get rid of those commits
where you took it out:

<https://help.github.com/articles/remove-sensitive-data>

~~~
theflubba
thanks. it's useless data now, every param has changed and the previous are
void, but i'll take your advice anyway :)

~~~
codygman
I know it's useless data now, but I'm sure this won't be the last time you put
sensitive data in a git repo... I know it happens to me often :D

~~~
emil10001
This is why I always make config files for my projects that contain usernames
and passwords, add that config to the .gitignore and then create a
sample_config with the blank version. I learned to do this after one or two
commits containing sensitive data. =)

~~~
codygman
That's something useful that will also keep us from being lazy and hardcoding
things when we usually need a config anyway :D

------
voidlogic
I wish there were some examples- why is this better than "net/http" + Gorilla?

Why the focus on postgres? They talk about using a postgres driver that
conforms to "database/sql". But that should mean you could use a mysql
"database/sql" compatible driver like the one provided by mymysql
(<https://github.com/ziutek/mymysql>), with no code changes to your project...

------
phasevar
The documentation is a bit terse. Might be interesting.

~~~
JasonFruit
The commit messages are also a bit . . . terse

~~~
laurent123456
lol, nearly all the commits are for README.md. I guess he put the project on
Github after having nearly finished the framework.

------
doktrin
Apologies if this is off topic :

I would love to hear what other "no-magic" frameworks people in the community
enjoy developing in. Web.py comes to mind, for example - though I've never
worked with it.

~~~
rartichoke
I'm curious too. I would love to see someone make nearly an exact clone of
Express (the sinatra inspired lib for Node) but for Go.

Basically something that supports the concept of:

\- Arbitrary middleware as long as you adhere to a specific signature.

\- Proper caching at the http request/response level for dynamic templates.

\- Keep the router separate so you can plugin Pat or the Gorilla Muxer (both
of them are much different IMO).

\- Add some niceties like setting proper headers for certain popular responses
(json or templates, etc.) or easily distinguishing if the request is an XHR or
not so you can either render a template or json with a quick boolean check.

\- Implement Gorilla's session handler or some other solution and expose it in
a really clean way that's also easy to plugin different session adapters (app
memory, redis, etc.).

\- Some functionality of what "res.locals" does in Express.

I honestly feel like part of the reason why Node is so popular is because of
Express. tj did a tremendous job making a very out of the way but ridiculously
useful web library.

------
aleksi
I guess it's time to go for quality of Go web frameworks, not quantity.
Authors, work together, please.

~~~
theflubba
This is a framework that cuts the unnecessary metaprogramming and sugar that
has been obscuring architecture and slowing code for years. There are no
helpers. I called it a framework for ironic effect, however it is a framework
- an extremely minimilist one, a program that fetches data and serves
requests, and renders data.

Other Go web frameworks are like houses of cards, while this one is like a
computer monitor. The cards can be knocked over, but the computer monitor is
27".

Forthcoming features for Gooo v2: \- more speed \- faster \- documentation \-
quicker \- higher rate of movement

Eventually: integrating a persistent key-value store

------
mseepgood
There are many reasons why someone should choose Go, but "Hip, New, Unproven"
aren't any of them. It isn't even unproven. Actually it has proven itself
successful in production many times.

~~~
theflubba
Joke

\----------------------------------->

    
    
                        (your head)

------
drivebyacct2
Alternatives: <http://robfig.github.com/revel/>
(<http://news.ycombinator.com/item?id=4499151>)

Also, simply using net/http or Gorilla to piece things together.

I'm quite happy with go-restful and AngularJS for the frontend and hood for a
lightweight ORM (though I'm not completely sold on that. DAO is always awkward
for me).

~~~
codygman
Ah, I figured out why I didn't quite like revel. Mainly "interceptors" as
shown here: <http://robfig.github.com/revel/samples/booking.html>

It doesn't feel like idiomatic Go to me, which for me is a big deal. Perhaps
if I start running into problems using only net/http I'll change my mind.

Will be sure to give revel another try in that case, but it looks like I'll
like goooo's approach more.

~~~
jemeshsu
I also feel revel not idiomatic Go. I'm checking out beego
(<https://github.com/astaxie/beego>).

~~~
codygman
I have been eyeing beego for a while, and will probably give it a try very
soon. (well beego hasn't been out for long, but have kept it in my head of web
frameworks to try since I've seen it :P)

