
A brief overview over the project and an introduction what you can achieve in this course.
Together we will run a docker container with a bootstrapped PostgreSQL server, connect to it, and fill a first table wit some test values to access them later in the course.
Initial setup of the Go project with Go modules.
We prepare the data structure to serve later.
We make a connection to the already running PostgreSQL server's database.
We setup a router to access functionality thorugh different "folders" through an URL later.
We implement the route's destination as a service which can be reached through the API.
We run (and roughly debug) our the web server for the first time.
A second service and route will be setup.
Another service and route will be setup.
And a third service and route will be setup.
Yet another service implemented.
The forgotten route for the "delete post" is done and we quickly stumble through a test of all functionalities by web browser and some cURL commands.
A goodbye, thanks, and best wishes!
You will learn how to encounter a new task, analyze it, get organized, develop a solution strategy, and then successfully implement an approach.
Join me on an advanced short trip as we experience the development of a real-life coding project with Google's programming language Go (golang). Together we will setup a web server, connect it to a PostgreSQL database server, and let it serve an API to perform CRUD (Create, Read/Retrieve, Update, Delete/Destroy) commands on database entries - the whole thing we build from scratch of course.
As a developer of web applications, you can quickly find yourself in a situation on a train ride or a flight where you urgently and quickly need a reliable web server. It must be accessible via an API and be able to execute CRUD commands like Create, Read/Retrieve, Update, and Delete/Destroy database entries. Of course, it should be a reliable and handy solution, which is available on different operating systems (Linux, macOS, Windows), have short compilation and fast execution times.
With the Go programming language from Google, a simple tool is available for creating a development server. In this course you will learn to set up such a web server and put it into operation. Rather, I want to show how Google's programming language can be used to achieve respectable results in the shortest possible time in a real world scenario.
The fun of "ease of programming" is in the foreground here! So enjoy it, it's free!
Why did Google develop a new programming language?
In Google's words, "Go was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either
efficient compilation,
efficient execution, or
ease of programming;
all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. Go is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing.
Finally, working with Go is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for."
In my humble opinion, Go is the best programming language you can learn today. I've worked with a few programming languages since I was introduced to programming through BASIC in the mid-80s, and Go is by far the best-designed language I've ever used.
Now start your computer and let's have some fun coding a real webserver in Go!