GotRo is abbreviation of Gotong Royong
. the meaning in Indonesia
: "do it together", "mutual cooperation".
This Framework is rewrite of gokil, that previously use fasthttp but now rewritten using fasthttprouter
- As similar as possible to Elixir's Phoenix Framework
- Opinionated (choose the best dependency), for example by default uses int64 and float64
- 1-letter supporting package so we short common function, such as:
I.ToS(1234)
to convertint64
tostring
)- A - Array
- B - Boolean
- C - Character (or Rune)
- D - Database
- F - Floating Point
- L - Logging
- M - Map
- I - Integer
- S - String
- T - Time (and Date)
- W - Web (the "framework")
- X - Anything (aka
interface{}
) - Z - Z-Template Engine, that has syntax similar to ruby string interpolation
#{foo}
or any other that javascript friendly{/* foo */}
,[/* bar */]
,/*! bar */
- Comment and examples on each type and function, so it can be viewed using godoc, something like:
godoc github.com/kokizzu/gotro/A
go get -u -v github.com/kokizzu/gotro
These dependencies automatically installed when you run go get
- Add httprouter to
W
, add logging, add panic handling (stacktrace censoring), add session loading - List most of Phoenix features and add it to
W
- Review which databases we must support primarily for
D
(drop ones that hard to install), that can be silver bullet for extreme cases (high-write: sharding/partitioning and multi-master replication or auto-failover; full-text-search) - Review which queuing service we're gonna use (NATS), requirement: must support persistence
- Add ExampleXxx function, getting started and more documentation
- Create example API App
- Add graceful restart (zero downtime deployment): grace or endless
- Write a book for about Advanced Programming, Database Systems and Web Programming that includes this framework