
A brief description about what we're going to build during this course.
In this video we're looking at a quick preview on what we're going to build, the approaches, the technologies, the patterns, the tools, everything so you can have a good idea about what you're about to learn during this course.
In this lecture I'm just sharing the course repositories so you can take a look at them from day one. This is all we're going to do during this course! Don't feel overwhelmed, I can ensure you that by the end of this course you'll dominate all of this! Enjoy and let's Go :)
Creating all of our projects in Github.
An introduction to HTTP frameworks in Go. We're using gin-gonic for both our Users and OAuth API and gorilla/mux for our Items API later.
An introduction to the MVC pattern in Go.
How and why we should always start from our domain and then going backwards in the layers.
How to structure the domain persistence layer: a kind introduction to the DAO pattern.
How to work with dates in Go.
Adding and configuring our MySQL database in Go.
How to insert rows in our MySQL database.
How to read a single row from our MySQL server.
How to handle MySQL errors.
How to update rows in our MySQL database.
How to delete rows from our MySQL database.
How to find rows in our MySQL database.
An introduction to the marshaller concept, how to develop and where to use it!
Implementing our services via interfaces so we have a consistent and mockeable business logic handler in our entire application.
Adding a logger to our application ( zap from Uber in this case).
An introduction to OAuth authentication.
An introduction to Domain Driven Development.
How to start working on the domain as the start point of our application development process.
How to implement our DDD approach in Go.
An introduction to CassandraDB.
An introduction to one of the Cassandra clients in Go.
In this lesson we're interacting with our Cassandra cluster to insert, get and update records.
In this lesson we're improving our GetSession() implementation based on recommendations from the Cassandra Go client.
How to authenticate users in our ecosystem by leveraging on the OAuth API.
In this lesson we're looking at how to generate access tokens in our OAuth API. Please take a look at the external resources attached to this lesson so you can define the best approach that fits the best for your use cases.
In this lesson we're defining two different requests: One for our OAuth API and other for our Users API so you can create one based on the other one and not be restrained to the same interface.
How to create an OAuth library in Github that we're going to use in all of our microservices to authenticate against our OAuth API.
An introduction to how dependencies work in Go and how we can use dep to generate and maintain our vendor folder.
GOROOT: Where Go is installed. Default: /usr/local/go
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
GOPATH: Workspace for Go projects. Default: ~/go
Go 1.13 set "modules" as the confirmed dependency system in Go.
Go < 1.13: Every Go project must be cloned INSIDE of your GOPATH.
Go >= 1.13: Every Go project using modules must be cloned OUTSIDE of your GOPATH.
How to explicitly define transitive dependencies in our libraries.
How to create a Utils library in Github and use it in all of our projects.
In this lesson we're configuring our Mux router in the Items API.
A kind introduction to ES.
Adding the ES client in our Go application.
In this lesson we're covering how to implement and organize our code in order to index new documents in ES.
In this lesson we're removing the copies of the logger from all the repos and moving it to a common library that we can import and use.
In this lesson we're improving the quality of our errors library.
In this lesson we're applying vendor to all of our projects and making them ready to ship.
In this lesson we're implementing both the get by id and search features in our API.
In this video I'm explaining the homework you have in order to add the delete and update endpoints to our API.
In this lesson we're unit testing our OAuth library. I'll leave some exercises so you can continue testing the application.
Welcome!
In this second part of the series I'm working with MySQL, Cassandra and Elasticsearch as persistence layers and we're going to create 3 different microservices using different design patterns: MVC, featured MVC and Domain Driven Development implementing the Hexagonal architecture.
At the end of the course you'll learn:
How to structure our application's packages and code.
MVC pattern, Domain Driven Development and Hexagonal Architecture applied!
How to configure MySQL client in Go. DAO pattern implemented.
How to configure and use CassandraDB client in Go.
How to configure and use Elasticsearch in Go.
Testing and mocking database integrations.
Stress test the microservice with goroutines.
How dependencies work in Go. Usage of Go modules.
How to build, publish, use and share a custom Go library.
Application design patterns.
Preparing our distributed logging system.
Real life examples and exercises.
I'm sure you're going to enjoy this course! if you have any doubts, please check the reviews on my other courses so you can get an idea about what you're about to get. This is real life and industry experience!
Hope to hear from you!
Fede.