× Want to read this newsletter every week?! × 👋  Join FAUN
 
 
🔗 View in your browser.   |  ✍️ Publish on FAUN   |  🦄 Become a sponsor
 
GoLang best tutorials, news and libraries from last week!
GoPa
 
Golang Weekly Newsletter, Gopa. Curated Golang news, tutorials, tools and more!
 
 
⭐ Patrons
 
faun.dev faun.dev
 
Now you Can Share Developer Events on FAUN
 
 
We are excited to offer developers the opportunity to post their events for free.

Whether you're hosting a virtual conference, a local meetup, or anything in between, you can showcase your event for free by posting it on FAUN.
 
 
goteleport.com goteleport.com
 
O'Reilly Book from Teleport: Identity-Based Infrastructure Access Management
 
 
What the largest tech companies like Google and Facebook have discovered as they have grown their infrastructure is that traditional access control systems do not scale. Not only does the risk of a breach increase with each secret, but forcing developers to juggle hundreds of credentials to do their jobs limits productivity and encourages insecure workarounds. The largest companies in the world have discovered that identity-based access is the way out of the dilemma.

This O'Reilly book will explain the concept of identity-based infrastructure access, and how it differs from more common older approaches based on secrets.

Download it here .
 
 

👉 Spread the word and help developers find you by promoting your projects on FAUN. Get in touch for more information.

 
🔗 Stories, Tutorials & Articles
 
medium.com medium.com
 
Build Efficient APIs in Go with GraphQL and gqlgen
 
 
A step-by-step guide on how to use gqlgen to build efficient APIs in Go with GraphQL.

In summary,REST APIs are limited when it comes to complex data relationships and efficient data retrieval. GraphQL offers a more flexible and efficient way to consume APIs. gqlgen is a schema-first GraphQL library that allows you to build and deploy high-quality GraphQL APIs in Go. It automates the generation of the required Go code for resolvers and data structures from a GraphQL schema. gqlgen is highly configurable and allows you to bypass struct generation and link to pre-existing structures.
 
 
www.komu.engineer www.komu.engineer
 
The complete guide to OpenTelemetry in Golang.   ✅
 
 
A comprehensive guide to OpenTelemetry in Golang. The author has covered all the major aspects of observability, including tracing, metrics, and logging, and has explained how to set up and configure an OpenTelemetry collector to receive, process, and export telemetry data.

The step-by-step instructions provided make it easy for readers to follow along and instrument their own applications for observability.

The author emphasized the importance of correlation between logs, traces, and metrics, and demonstrated how to achieve this correlation by using the same set of attributes when starting a span, taking metrics, and emitting logs. This could quickly help identify the root cause of issues.
 
 
blog.lobocv.com blog.lobocv.com
 
Testing complex workflows in Go   ✅
 
 
Testing complex workflows in Go can be challenging when dealing with sophisticated fixture setup, multiple edge cases, error handling, mocks, and complex outputs. While the standard library testing package in Go is simple and efficient, many developers turn to supplemental packages to address blind spots when writing tests.

One popular third-party package is stretchr/testify, which provides easy assertions, mocking, and test suite interfaces and functions. The testify/suite package is particularly useful for complex workflows because it provides better test setup, teardown, and organization capabilities.

To illustrate this approach, the author presents a case study of testing a stream processing application that calls the LinkedIn APIs to get organization posts and their lifetime metrics.The author adds by discussing alternatives to this approach, such as table tests and Behavior Driven Testing (BDD).
 
 
go.dev go.dev
 
All your comparable types
 
 
Robert Griesemer discusses the recent language change in Go 1.20, which allows all comparable types to satisfy the predeclared comparable type constraint.

The post explains the background on type parameters and constraints in Go 1.18, how the new type set view is more powerful, the problem with constraint satisfaction, and how the language was changed to differentiate between interface implementation and constraint satisfaction.

The author notes that the exception comes with a cost, as generic functions that rely on comparable are not statically type-safe anymore in Go 1.20. Finally, the post discusses the consequences of the exception and provides a mechanism for enforcing strict comparability in limited form.
 
 
www.tigrisdata.com www.tigrisdata.com
 
Using Tigris as an open source MongoDB Atlas alternative for Go applications
 
 
Tigris is a developer data platform that offers a scalable, cost-efficient, and open source alternative to MongoDB Atlas.

This blog post demonstrates a quickstart Go application that uses the Go driver for MongoDB in a way that is transparent to the application that the data is stored in Tigris Cloud database.
 
 
 
📺 Quick Hits
 
 
Watermill v1.2 is out. Watermill is a Go library for building message-driven applications.
 
 
The Go-Redis client is now part of the family of officially supported clients under the Redis umbrella.
 
 
⭐ Supporters
 
www.youtube.com www.youtube.com
 
Subscribe to our Youtube Channel
 
 
Every day, we publish a short video to answer questions such as:
  • Why Kubernetes in Written in Go
  • Go vs. Rust, Which is Better?
  • Is Quantum Computing a Threat to Bitcoin?
  • What are the Worst Mistakes in Computer Science?
Our approach: We simplify complicated topics and make them accessible in byte-sized videos!

Join FAUN on Youtube!
 
 
faun.dev faun.dev
 
Advertise with FAUN
 
 
Meet developers where they are, not where you want them to be. Fill out the form and download our mediakit .
 
 
👉 Spread the word and help developers find you by promoting your projects on FAUN. Get in touch for more information.
 
🎦 Videos, Talks & Presentations
 
www.youtube.com www.youtube.com
 
These are the MOST LOVED Programming Languages
 
 
The video reveals the most loved programming languages based on Stackoverflow Developer Survey.
 
 
 
📚 Book picks
 
www.amazon.com www.amazon.com
 
DevOps for Babies
 
 
DevOps for Babies introduces basic DevOps concepts to young children, including:
  • Version control
  • Automation
  • Testing
  • Deployment
 
 
 
⚙️ Tools, Apps & Software
 
github.com github.com
 
sourcegraph/conc
 
 
Better structured concurrency for go
 
 
github.com github.com
 
juicedata/juicefs
 
 
JuiceFS is a distributed POSIX file system built on top of Redis and S3.
 
 
github.com github.com
 
ebitengine/purego
 
 
A library for calling C functions from Go without Cgo.
 
 
github.com github.com
 
returntocorp/semgrep
 
 
Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
 
 
github.com github.com
 
TheR1D/shell_gpt
 
 
A command-line interface (CLI) productivity tool powered by OpenAI's GPT-3 models, will help you accomplish your tasks faster and more efficiently.
 
 

👉 Spread the word and help developers find and follow your Open Source project by promoting it on FAUN. Get in touch for more information.

 
❤️ Thanks for reading
 
 
👉 Never miss an issue
Join FAUN Developer Community and subscribe to our newsletter here.

👋 Keep in touch and follow us on social media:
- 💼LinkedIn
- 📝Medium
- 🐦Twitter
- 👥Facebook
- 📰Reddit
- 📸Instagram

👌 Was this newsletter helpful?
We'd really appreciate it if you could share it with your friends! You can also donate to help us keep this newsletter going.

ℹ️ Have a question or feedback?
Feel free to reach out to us at community@faun.dev. We'd love to hear from you!

🤩 Want to sponsor our newsletter?
Reach out to us at sponsors@faun.dev and we'll get back to you as soon as possible.