We
promised 5-6 reasons to switch to Go, and it happened! At the GolangConf conference, which is fully devoted to Go, on October 7 there will be 5 reports marked "Switching to Go" for those who are just going to or starting to use this language in their projects.
But this is only the beginning. From the first time, we managed to put together a very strong and diverse program that meets the needs of three categories of participants: professional Go-developers; those who are just switching to Go; infrastructure engineers and users of tools written in Go.
The conference program includes
21 reports , a session of blitz reports and mitaps. At any time, conference guests will be able to choose from 3-4 different topics and find something interesting for themselves. I even think that the problem of choice and the inability to break between the flows will be more relevant (it’s good that everything will be on the video later). At the same time, topics relevant to a variety of specialists will be discussed in different rooms.
We will devote much attention to
best practices for working with Go and any code in general. We will discuss performance issues and various hardcore things with experienced gophers. For infrastructure engineers, there will also be some interesting reports. The block on non-standard ways of using Go will not leave anyone indifferent at all. In addition, there will be as many as two reports on the development of the frontend on Go, both from foreign speakers.
We can say that the frontend is an experimental direction. Front-end production is not often written on Go, more often WebAssembly is tried in personal small projects. The speakers we invited will be able to more than just outline how to start using WebAssembly. These are in-depth reports, built on personal experience, they will show that life can be done on WebAssembly, and how to use it in your projects.
GolangConf Speakers
The program committee approached the selection of topics and speakers very strictly. Most of our speakers are known in the Go community, but at the same time, there are new faces. When the same people speak at conferences at different times, it's a little boring. I want to see a new look, new challenges, new speakers. We managed to attract fresh blood, and they also have very interesting reports based on practical experience. For example, I look forward to the
report of Ksenia Yakil.
The selection of foreign speakers was almost tougher, because there were many applications from them. But we know that it can be difficult for our audience to listen to many reports in English. 8-9 reports per day is already a large amount of new information, and when you need to spend extra effort because of the language to understand, it becomes very difficult. Therefore, we have only three English-language reports, but they are the most-most.
In fact, the global Go-community is very friendly and ready to share experiences. We got a really good response when we opened Call for Papers on PaperCall.io and announced a conference in the international Go community on Slack and Twitter. True, we did not manage to attract superstars of the world community, their calendar of events is scheduled for the year ahead. But then we have far-reaching plans for the next GolangConf.
This year we will have 21 class reports. Here I’ll talk about several of them, and for the full information and schedule, go to
the conference
website .
Applied Go code similarity analysis
Iskander Sharipov (VKontakte) in the past worked on a Go-compiler and third-party tuning for him - static analyzers and utilities for refactoring. He now plans to port many of the tools created for Go to the PHP ecosystem. You can probably ask about this colossal experience of Iskander on the sidelines, and his
report will be primarily interesting to those who think about issues of processing Go code:
- How to find duplicate functions and methods in your code base.
- Avoiding reinventing the functionality of the Go standard library.
- How to simplify the analysis of Go-code at the syntactic level.
The key to answering these questions is the normalization of Go-programs, and it is about this that will be discussed in the report. But not in words, but in practice - consider a library for normalizing Go code and several of its practical applications.
Get Going with WebAssembly
The contributor at Go
Johan Brandhorst will come to Moscow to introduce us to WebAssembly and show how to get started with WebAssembly and Go. WebAssembly has been supported in browsers for almost two years now and has been included in Go as an experiment since version 1.11. Maybe he can even replace JavaScript in the browser and become that very language, the code on which can work anywhere.
After this
talk, novice gophers will learn how to use Go with WebAssembly, what these technologies can do now, and what will become possible in the future.
Scaling Go Socket Connections
There are some great WebSocket libraries in the Go ecosystem. It would seem - take and do your project, taking as a basis a ready-made solution. However, several urgent problems will have to be solved independently, for example:
- how to scale user connections;
- what to do with those users who cannot connect via WebSocket;
- how to manage the lifetime of a permanent connection;
- what to do with message loss during short-term user disconnects.
And finally - you will have to write your own protocol on top of WebSocket and the clients that implement it on all modern client platforms. Are you ready for this?
These issues are already being addressed by the Centrifuge opensource library, which adds many useful features on top of the Gorilla WebSocket for building real-time applications. The author of this project,
Alexander Emelin, will speak at GolangConf. Alexander
will teach techniques and practices that allow you to effectively work with a large number of connections, and will tell how these approaches work in the production of the Messenger Avito.
Making Go Competition Mistakes
We know (who still does not know, already learns to this report) that Go provides powerful and flexible tools for writing competitive programs, but does not dictate strict rules for their use. Articles and reports often give conflicting recommendations on how to transfer work to goroutines, how to complete them, how to handle errors ...
A gopher with experience, organizer of meetings and conferences, leading workshops and podcasts
Alexey Palazhchenko (Percona) will help to
understand these issues. Alexey will give a real example of the API, which will gradually improve in the course of the report and on which we will explore possible problems and problems.
Go make games!
Probably, many of us were interested in programming, because we dreamed of writing games. So
Alexey Akulovich is engaged in the backend of complex VKontakte projects, but he did not leave the desire to engage in GameDev, but successfully combines it with development on Go. Anyone who wants to unwind while writing a toy without getting into Unity / Unreal and other joys will find this report useful.
Alexey
will show us 2D- and 3D-desktop / web-frameworks, handmade development options and options for expanding functionality without recompiling the main binary. It will be about the situation in 2019, so that modern versions and trends are attached.
Go for frontend
And if you have long dreamed of writing interface code exclusively on GO, come to the report of
Aarushi Kansal (Tier)
. Traditionally, cool visualization and implementation of creative, at the junction with art, ideas is the prerogative of JavaScript developers, but Aarushi
will tell you how to create applications and graphics that work in a browser on Go. After this report, you will believe that you can fully reveal your potential in front-end development without giving up your favorite language.
How to write an operating system on Go
Andrey Smirnov is the author of many opensource projects and a master class entitled “Development of Reliable Highly Loaded Systems”. His
talk at GolangConf is primarily for those who use Kubernetes. Andrei will talk about the development process of the Talos operating system and what has been achieved through the use of Go. For example, the assembly of the operating system and the feedback loop through CI takes no more than 5 minutes.
We will see how simple and clear concepts of competitive programming in Go make it possible to organize the launch of OS initialization phases in parallel and at the same time in the correct sequence. We will discuss when to check the system you can get by with simple unit tests and what the integration tests for the OS look like. Andrei says that Go was practically in a monopoly position in this niche. We will find out why and why it is convenient for us.
Integration Tests on Go
By the way, about integration tests. Despite reports of their benefits and even a large number of memes, they still do not receive proper attention. Or is it only in gophers so, and we just have unit testing inherent in the genes? Be that as it may, Badoo set out to write integration tests on Go, and they did it very well.
Ksenia Yakil will tell you how. How to implement the Go framework for integration testing, what difficulties will fall in the way and what results can be achieved. You will see that writing integration tests on Go is real and not so painful.
How and why to write readable code
No matter what language you write in, it happens that the old code is easier to rewrite than to refactor. The saddest thing is when it is your own code, written with love “only” a few years ago.
Grigory Petrov (Evrone) loves neurophysiology and to get to the bottom of the reasons. His
talk at GolangConf is a practical guide to dealing with code complexity: where does it come from, why can't it be removed, and how to deal with it. Gregory will talk about decomposition, installing “beacons” in different ways, techniques for writing useful identifiers, creating traps using types. Before “write shorter functions, and identifier names are more understandable” we will not go down :)
And in the final part of the report, we will discuss the “gradual” approach to writing readable code, which is not limited to the familiar “dynamic typing” languages.
Why is Golang so weird
And here, in the evening, when we will already discuss many issues of development on Go, finally convince those who doubt to switch to Go,
Philip Kulin will raise this topic: “Why Golang is so strange” and promises to put everything on the shelves and tell how everything was on in fact, and where did the generics go.
Mitapy and expert zone
You may have noticed that there is not a single member of the program committee among the speakers, although it consists of community activists whom you know for sure if you were at Go-meetings and conferences. We did something else: selected topics, helped speakers, prepared additional activities.
Members of the program committee during the conference can be found and questioned in a special expert area. Often, newcomers to Go have questions that for some reason can not be resolved, for which for some unknown reason they get stuck, and even StackOverflow does not help. At the conference, we will have a separate stand where you can ask such questions to members of the program committee and activists of the Go-community. Come with your questions and together we will try to solve them!
GolangConf is part of the
Ontiko conference
family , which means that a separate room will be allocated for
mitaps - small narrow-topic meetings of a group of like-minded people. This may be a master class or workshop, but the main thing in it in any case will be communication between specialists, discussion of pains and a joint search for a solution. Each participant can try to organize their mitap or act as a member of the program committee and vote on the proposals of other participants.
And, of course, networking as an integral part of any conference in our case will be especially useful, since at the conference all participants will be somehow interested in one topic - Golang. In the evening after the main program, of course, we will have an afterparty and the opportunity to chat in a more informal atmosphere.
GolangConf exactly in a week on October 7 in Infospace, we look forward to seeing the Go-community. Join now!