📜 ⬆️ ⬇️

Technosphere Lectures: Go Programming

image


We continue the publication of our educational materials. This course is dedicated to learning the basics of Go. For example, a simple textual game will consider all the main tasks faced by the developer of modern web applications in large projects, with their implementation on Go. The course does not set goals to teach programming from scratch; basic programming skills will be necessary for learning.


List of lectures:



You will gain experience in developing high-load backend applications on Go, as well as learn how to support, test and debug applications. From the course you will learn how to raise a web server, handle HTTP requests and work with a SQL database; what are gorutines with channels and how does asynchronous programming on Go looks like; What are the main things required to operate when taking a project in production.


The course is taught by Vasiliy Romanov, technical manager of Mail.Ru Mail, Ilya Ozherelev, programmer of the backend of Mail.Ru Mail, and Dmitry Dorofeev, programmer of the frontend of Mail.Ru Mail.


Lecture 1. Introduction



The introductory lecture, which describes the history of the language, its main features, the use of Go in Mail.ru, the basic syntactic constructions of the language and the basic data types.


Lecture 2. Functions, structures, interfaces. Object model



The second lecture covers the following questions:


Functions:



Structures:



Interface:



Lecture 3. Asynchronous model



The third lecture discusses concurrency and multithreading of the language, Go-routines (Gorutiny), channels, sync and atomic packages.


Lecture 4. Web. Work with network



In this lecture, you will learn about how Go works with the network: working with the TCP protocol, what are the limitations, how to work with the URL, how HTTP requests and responses are built, and much more.


Lecture 5. Work with DBMS



The fifth lecture tells about the client (browser) part when working with the DBMS, as well as about the server part: building business logic, creating an authorization session, profile, and working with content.


Lecture 6. Testing system



The lecture is devoted to building a testing system for checking code on Go, including the unit tests and performing continuous integration.


Lecture 7. Reflect or generate?



The lecture deals with such issues as reflection, laws of reflection, use of go generate, and so on.


Lecture 8. Performance



How to identify slow-running parts of the code on Go and how to optimize them so that the program runs quickly with limited resources available? You will learn about this from the eighth lecture.


Lecture 9. Context, unsafe, cgo



The final lecture of the course is devoted to the consideration of three topics: context (request state, cancellation of execution), unsafe (low-level programming), and cgo (integration of Go and C codes).




Playlist of all lectures is on the link . Recall that current lectures and master classes on programming from our IT specialists in Technopark, Technosphere and Tehnotrek projects are still published on Tekhnostrim channel.


')

Source: https://habr.com/ru/post/327966/


All Articles