What does HackerNews think of guice?
Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 8 and above, brought to you by Google.
His murder represents a huge loss; he left a very positive impression on me.
Many people, including Google engineers (https://github.com/google/guice) see DI as useful tool, not hell. But nothing prevents you to write your java code without DI if you don't like it.
4k LOC of "lightweight" garbage for... variable lookups?
The backend is written in Java(8) and it is built with the following (noteworthy) components :
Netty[1] - Extremely fast and stable Java networking framework,
serves static files and relays traffic
(both tasks are custom implementations)
Guice[2] - IoC container by Google, nice for keeping the code clean
jOOQ[3] - I log some statistics in PostgreSQL
(file size, content type, transfer time - but no filenames).
If you're comfortable with SQL jOOQ is a real breeze to use.
The backend is hosted on the cheapest VM option at Digital Ocean (Amsterdam region), (which seems to be holding up pretty well so far :). I do run PostgreSQL on another $5 VM, so the Station307 server only has to worry about serving static content and moving large chunks of bytes around. SSL certificates are kindly provided by Let's Encrypt[4].For the frontend, I know for a fact it uses left-pad (babel-core)... Written in JavaScript (ES2015 + JSX) and built with :
Mithril[5] - Fast, small and simple React-like framework, quite a joy to use.
Bootstrap[6] - Because not having to worry about L&F is quite nice.
Trimmed it down a bit by only importing the parts I needed (SCSS).
And I think that's about it. If there's anything else you'd like to know, let me know! [1] http://netty.io
[2] https://github.com/google/guice
[3] http://www.jooq.org
[4] https://letsencrypt.org
[5] http://mithril.js.org
[6] https://getbootstrap.com
edit: formatting D:https://github.com/google/guice
https://github.com/square/dagger
Imagine injecting Futures into your code. Now imagine injecting them, but having the Provider record a lot of metadata about who you were calling, how you were calling it, how long it took, whether an error occurred, letting an SRE turn off the call, etc.