Interfaces are one of the most powerful Go features. They allow you to develop applications and libraries that are flexible, re-usable, and testable.
Like other programming languages, interfaces allow you to abstract behavior without prescribing how objects implement them. Unlike other programming languages, however, Go favors small interfaces and implements them implicitly. This concept changes the paradigm of how we think about interfaces and design our programs to use them.
In this talk we'll deep dive into interfaces by applying them to solve different challenges, through hands-on examples. At the end of this talk, you will be able to: