Hundreds of Go enthusiasts gathered at the prestigious Bently Reserve in downtown San Francisco for a day full of talks about data science, scaling, testing, speed, code reuse and refactoring, all in the context of Golang. Below, a write-up of a few selected talks:
When I was in the Ruby community, I built Sinatra. I’ve been using Go since 2009. Now I’m the founder at backplane.io.
Snappy == happy users
Slowness is inexcusable. So much work has gone into allowing engineers to build snappy websites. If you have a powerful language that lets you do powerful things, and things are slow, it’s even more frustrating.
Thank you to New Relic for hosting the April 2016 Golang SF meetup, sponsored by Iron.io!
Gohan with Nachi Ueno
Gohan provides a REST-based API server, database backend, CLI, and WebUI generated from a JSON schema. Gohan can interpret definitions and act as a REST API server. As opposed to Open API, which defines the API, Gohan defines the controller and data model as well.
Gohan provides for inheritance, schemas, policies and extensions. You can use a YAML format. Permission are defined by property using a CRUD model. You can also specify the relationship in the property;
I’ve often coded in PHP. Recently, I realized that when I code in Go, it’s easier to spot my PHPisms. After weeks of cleaning them up, it only takes a day to fry my brain with them again. I’m sure I’m not the only developer doing this, so I started collecting tips and tricks to help with the process. I’m sure other ElePHPants have their own tips and tricks, but here are a few of mine.
You don’t always need an additional memory allocation.
PHP’s API is formatted into functions that return values. Want to parse JSON? Just read a string into a variable and json_decode it.
I know – there are exceptions like fputcsv and fgetcsv. Still, you can anticipate that you pass a variable as input and get some kind of output. Variables, as opposed to resources, must be noted here.
Conversely, Go allows for variables as much as streams. You’re able to json.Marshal or json.(*Encoder).Encode an io.Reader.
In Go, you have to determine what to do and the ramifications of your actions. Will it be better to process loading/unloading from memory (json.Marshal) or just iteration through the io.Reader (json.Encoder)?
Last night’s meetup, which was hosted by Betable, included two presentations and two lightning talks rounding out a solid evening for the GoSF group. Topics included identity on the web, safe storage of tokens (beyond ENV vars), and even the debut of a new Go-inspired embedded systems language.
Last week, I had the pleasure of joining gophers at Gotham Go. It was a incredibly dense single day of information. What follows is a quick impression of each talk, along with links to more detailed material. Special thanks to Peggy Li for tossing her notes on github!
UPDATE: VODs are appearing online now. You can view these talks on Youtube.