Golang 1.18: What is new?



Golang 1.18: What is new?

Golang 1.18: What is new?

What is new in Golang 1.18? Generics? Fuzzing? Workspaces? How to install using homebrew? docker? distributing the binaries using Alpine?

■ Examples: https://github.com/MarioCarrion/videos/tree/d5add59e12d3ee54797fcd1b592bb85a48ce1a3b/2022/03/17

== Installing

■ https://go.dev/dl/#go1.18
■ MacOS Homebrew: https://github.com/Homebrew/homebrew-core/pull/91369
■ goenv install: https://github.com/syndbg/goenv: run “goenv install 1.18.0”
■ “go install” https://twitter.com/golang/status/1503787326060875782

== New Feature: Type Parameters / Generics

Allows us to implement code that consists of data and behavior where types are not explicitly indicated, the simplest example would be defining a sorting algorithm where it can support any numeric type

■ https://go.dev/doc/faq#Type_Parameters

== New Feature: Fuzz Test Support

Another testing option that allows us to introduce inputs to our tests in order to find vulnerabilities or inputs that cause crashes

■ https://go.googlesource.com/proposal/+/master/design/draft-fuzzing.md

== Multi-Modules Workspaces

It’s a mode to allow working with multiple go modules at the same time

■ https://go.googlesource.com/proposal/+/master/design/45713-workspace.md
■ https://go.dev/ref/mod#workspaces
■ https://go.dev/doc/tutorial/workspaces

== All Go/Golang Playlists

■ Software Architecture in Go/Golang: https://www.youtube.com/playlist?list=PL7yAAGMOat_GCd12Lrv_evJ3Zhv1dl8B-
■ Building Microservices in Go/Golang: https://www.youtube.com/playlist?list=PL7yAAGMOat_Fn8sAXIk0WyBfK_sT1pohu
■ Go/Golang Tools and Packages: https://www.youtube.com/playlist?list=PL7yAAGMOat_HEEOvH99agDs_5g51A0Ls3
■ Learning Concurrency Patterns in Go/Golang: https://www.youtube.com/playlist?list=PL7yAAGMOat_Fhj_px_DzNzTsXs-mRwv1t
■ Learning Go/Golang : https://www.youtube.com/playlist?list=PL7yAAGMOat_F7bOImcjx4ZnCtfyNEqzCy
■ Learning Relational Databases in Go/Golang: https://www.youtube.com/playlist?list=PL7yAAGMOat_EgwoQTvNUflrYL_4qzdB7f
■ Testing in Go/Golang: https://www.youtube.com/playlist?list=PL7yAAGMOat_HSeW4zF0uRL9EaHadE4ZZq

00:00 – Intro Golang 1.18
00:13 – How to install
01:08 – Type Parameters / Generics (Quick Example)
05:57 – Fuzz Test Support
06:18 – Multi-Modules Workspaces
06:45 – Version in binaries
10:37 – New net/netip package
11:41 – New function strings.Cut
13:08 – Conclusion

=== Who am I?

Hello👋🏼! I’m Mario, a Hands-on Software Architect and Lead Backend Engineer with more than 16 years of professional experience building all kinds of software including on-premise Industrial Automation Systems, Linux Accessibility Desktop and Browser Components as well as Distributed Advertising Microservices.

Every week I will share with you different topics I’ve learned while working for small startups and large companies including the processes I’ve followed over the years for successfully delivering complex enterprise systems from start to end.

Subscribe if you like Software Development, Software Architecture and Systems Design!

Keep it up. Don’t give up!

#golang #generics #golang1.18

=== Our Vlog Channel

https://www.youtube.com/c/RubyCarrion/videos

=== Affiliate links

■ Amazon Shop 🛒 https://www.amazon.com/shop/rubycarrion
■ Technical/Non-technical Books – Recommended by Mario Carrion 📚 https://www.amazon.com/shop/rubycarrion?listId=P8KAGIWTNH3X&ref=cm_sw_em_r_inf_list_own_rubycarrion_dp_dyqYP6yk67Hif

DISCLAIMER: Some of the links shared above are affiliate links. As a member of these affiliate programs, I earn a small commission from your purchases at no additional cost to you. Thank you in advance for your support!

Comments are closed.