Read more from the official Go Blog: Go Turns 10.
The Go Toronto meetup has been running on and off for many years since ~2013. A big shoutout to Tim and Zach for keeping the lights on.
If you're new to programming, exploring Go or simply curious this is a friendly and open place for everyone, regardless of skill level, so come join. Want to read a good code of conduct that's actually down-to-earth and embodies what we strive for, see Go Community Code of Conduct.
Curious? Check out the meetup page.
Location & Sponsors
pssttt… not only were the cakes gorgeous, but they were tasty as f*ck.
In addition to all the yummy goodness, there were stickers, plush gophers and a whole load of fun. We try our best to make this and all other events memorable for the community. We don’t gather often, so let’s go make the best of it :)
I love interacting with the GitHub API and collecting data. So any opportunity, for work or personal, I'll do it. The idea was to collect metadata, and eventually, clone, all publicly available Go repositories (500k !) and do some interesting analysis:
- Plot number of repos created by year
- A timeline, plotting some of the more popular repos for each year
- Finding interesting golang/go issues based on the intersection of:
- top issues by GitHub reactions, i.e., NoPlusOne sadf
- top issues by controversial comments, inspiration drawn from An algorithm to sort "Top" comments
- sentiment analysis of comments, run on AWS Comprehend and GCP Natural Language
- topic modelling repo descriptions on AWS Comprehend, using LDA (latent dirichlet allocation) algorithm
- top imports of third-party and std library packages, and other fun facts about source code (parsing/AST of package imports & comments)
- "committed gratitude". What are the top stack overflow URLs, and answers, in the source code? No shame, we've all done it
Kelvin Li • Slide found here
This was an interesting talk about mentoring others, the slides are really well laid out and speak for themselves. I'll keep it brief and highlight the summary slide:
- Listen carefully. Identify specific goals
- Standardize intent instead solutions
The main takeaway for me was there isn't a single recipe for mentoring others. It takes time and patience. One shouldn't always teach best practices without context. Lastly, it helps when there is a specific goal both mentor and mentee work towards.
This talk walked us through, with examples, of SOLID design principles and how they can be applied to building APIs. Why? Maintainable code. But, do keep in mind that these aren't laws, these aren't perfect truths.. it is merely good advice.
- Single responsibility
- Liskov substitution
- Interface segregation
- Dependency inversion
It's beyond the scope of this recap to go into detail. But I do recommend you check out William's talk and the following resources I've historically found useful on the topic:
An excellent talk by Sandi from a Ruby conference: SOLID Object-Oriented Design.
And lastly, a talk given at Golang UK by Dave: SOLID Go Design.