Golang Юниор
4.79K subscribers
204 photos
6 videos
246 links
Канал для начинающих изучать язык программирования Go. Юниоры или Junior - Вперед.

Контент нашего канала состоит из:
- туториалы
- вопросы с собесов
- тесты на знания Go


@viktorreh
@anothertechrock

Чат: https://t.iss.one/+UA9kQbQdpFxmZGY6
Download Telegram
Effective Go
Руководство на русском языке

Автор: go.dev
Перевод от:
2024

#go #ru

Скачать
👍51
👣 Почему сообщество #golang старается не использовать сторонние библиотеки?

Некоторые причины исторические (до Go 1.11 в Go была довольно печальная история управления зависимостями), некоторые культурные (сообщество Go пропагандирует простоту и самодостаточность), но некоторые из них, я бы сказал, являются хорошей практикой независимо от используемого языка.

Безопасность - когда вы добавляете зависимость, вы добавляете разработчика (или команду разработчиков), с которым вы никогда не взаимодействовали, в качестве участника вашего проекта. Вы должны проанализировать библиотеку, как если бы она была написана собственными силами, и убедиться, что она соответствует вашим задачам и не несет никакого риска.

Сложность в поддержке - теперь вы и ваша команда должны поддерживать добавленную библиотеку в актуальном состоянии.

Воспроизводимые сборки - Вы можете добиться этого с помощью библиотек сторонних производителей, но чем меньше вам придется об этом беспокоиться, тем лучше.

Просто нет необходимости - Это одна из лучших причин. В Go есть замечательная стандартная библиотека, и вы можете добиться очень многого, используя ее.

Так когда же следует обращаться к библиотеке?
Если то, что вы хотите реализовать, является функционально сложным, имеет приемущества от поддержки сообществом и берется из надежного источника, то использование библиотеки может быть хорошим вариантом.

Примерами библиотек, которые, на мой взгляд, являются достойными для внимания:

- Библиотеки шин сообщений (Kafka, RabbitMQ и т.д.)
- Библиотеки БД (Mongo, Postgres).
- Сложные криптографические вещи алгоритмы, которые не поддерживаются стандартной библиотекой.

👇 Напишите в комментаряих о ваших любимых сторонних библиотеках.

@golangprofi
This media is not supported in your browser
VIEW IN TELEGRAM
⭐️ Две структуры с одинаковыми полями могут иметь разный размер.

Это явление известно как "padding", понятие, заимствованное из языка C++, но применимое и в Go.

Рассмотрим приведенный выше пример.

Структуры A и B имеют совершенно одинаковые поля, но если просто переставить порядок полей, то структура A станет в два раза больше.

Она увеличивается до 32 байт, в то время как структура B остается меньше - 16 байт.
👍5
Вакансии для Golang-разработчиков за последние 14 дней:


Golang Developer. Удалёнка, 100–140 т.р.

Golang Developer. Удалёнка, 1700–2300 $

Go Developer. Удалёнка, 150–175 т.р.

Golang Developer. Гибрид

Golang Разработчик. Офис/гибрид/удалёнка (Москва, Краснодар, Иннополис)

Go Developer. Удалёнка

Python Go разработчик. Гибрид/офис (Москва)

Golang Developer. Удалёнка/офис (Лиссабон, Португалия), 4000–6000 $

Golang Developer. Удалёнка, 4000–7000 $


#подборка #go
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Roboden-game

Создать RTS, которая бы хорошо работала в браузере с помощью #golang, сложная задача, но возможная.

Игра написана с использованием движка Ebitengine и даже доступна в Steam.

Github
Проект

#ebitengine #gamedev #golang
3👍2
Пишем первую программу на Go 🚀 Для самых начинающих.

Привет, будущие гоперы! 👋 Давайте отбросим страхи и напишем вашу первую программу на языке Go. Это проще, чем кажется!

Шаг 1: Готовим рабочее место

- Мы уже установили Go и редактор кода (например, VS Code). Открываем редактор и создаем новую папку для нашего проекта.
- Внутри папки жмем на «плюсик» и создаем файл. Но не простой, а с кодом на Go!

Шаг 2: Создаем правильный файл


- Файлы с кодом на Go имеют расширение .go
- Есть важное правило: главный файл программы, с которого всё начинается, принято называть main.go.
- Создаем файл main.go. Теперь мы готовы писать код!

В следующем посте перейдем к самому интересному — написанию кода!

#Go #Программирование #ДляНачинающих #УрокGo #Часть1

@golangprofi
Please open Telegram to view this post
VIEW IN TELEGRAM
5🥰3💩2
Первая программа на Go: разбираем код по косточкам 🦴

В нашем файле main.go нужно написать несколько строчек. Не пугайтесь незнакомых слов, сейчас всё объясню!

package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}


Давайте разберем, что тут происходит:

- package main — объявляем «главный пакет».
- import "fmt" — берем полезный ящик с инструментами под названием fmt. Он нужен, чтобы выводить текст на экран.
- func main() — объявляем главную функцию. Программа всегда начинает свою работу именно отсюда.
- {} — внутри этих фигурных скобок живет код, который будет выполняться.

⬇️ Самое главное:

fmt.Println(...) — это команда из нашего ящика fmt, которая печатает текст и переходит на новую строку.
Текст, который мы хотим вывести, пишем в кавычках "..."

В следующем посте мы ЗАПУСТИМ эту программу и увидим легендарный «Hello, World!»

#Go #Программирование #ДляНачинающих #УрокGo #Часть2

@golangprofi
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👀1
Запускаем первую программу на Go! Терминал и магия команды «go run»

Код написан, теперь нужно его выполнить. Редактор кода — это умный блокнот, но запускать программы он не умеет. Для этого нам нужен терминал и установленный Go!

Шаг 1: Открываем терминал в редакторе

Откроем сверху вкладку View ➡️ Terminal

Шаг 2: Волшебная команда

Убедитесь, что вы в папке с вашим main.go. Можно в терминале написать ls (на MacOS) или dir (на Windows), и нажать Enter, чтобы увидеть список файлов.

Вводим команду:
go run main.go

И нажимаем Enter

Что это значит?

- go — обращаемся к компилятору Go.
- run — просим его запустить файл.
- main.go — указываем, какой именно файл запускать.

Результат:
Если вы всё сделали правильно, в терминале вы увидите заветную надпись:
Hello, World!

Поздравляю! 🎉 Вы только что написали и запустили свою первую программу на Go! Это огромный шаг.

#Go #Программирование #ДляНачинающих #УрокGo #Часть3

@golangprofi
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4😁2
Переменные в программировании — это проще, чем кажется! 🧠 На примере Flappy Bird

Представьте, что вы играете в Flappy Bird. Вверху экрана есть счётчик, который увеличивается с каждой пролетевшей трубой. Как игра "помнит", сколько очков вы набрали? 🤔

Всё просто: она использует переменную!

Переменная — это специальная ячейка в оперативной памяти компьютера, где программа хранит какие-то данные. В случае со счётом в Flappy Bird — это число.


- Название (например, score) — это уникальное имя, по которому программа находит нужную ячейку в памяти.
- Значение (например, 0, 5, 15) — это сами данные, которые хранятся в этой ячейке.
- Тип данных — определяет, что именно мы храним (число, текст и т.д.).

Как это выглядит в коде на Go?
score := 0 // Создали переменную "score" и положили в неё 0


Аналогия:
Переменная — это как коробка с подписью. Вы кладёте в неё значение (например, число 5), и потом, когда оно вам понадобится, вы просто смотрите в коробку с подписью score и достаёте оттуда 5.

#Go #ДляНачинающих #Переменные

@golangprofi
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Вакансии для Golang-разработчиков за последние 14 дней:

Golang Developer. Удалёнка, 100–140 т.р.

Golang Разработчик. Удалёнка, 1 000 ₽/ч

Системный аналитик. Удалёнка, 120 т.р.

Golang Developer. Удалёнка, 75–125 т.р.

Backend Engineer. Гибрид (Варшава), 7 500 $

Go Developer. Удалёнка, 3000 USDT

Go Developer. Офис/гибрид/удалёнка (МСК)

Golang Developer. Удалёнка

Backend разработчик. Удалёнка

Fullstack Developer. Удалёнка

Go разработчик. Гибрид (Уфа)

Системный архитектор. Удалёнка, 250–300 т.р.

Backend разработчик. Гибрид (Астана), 600 000 KZT

Go Developer. Офис/гибрид/удалёнка (МСК)

Backend Разработчик. Офис (Алматы), 800 000 - 1 200 000 KZT

Golang Developer. Удалёнка, 4000–7000 $

Golang Developer. Удалёнка, 4800–5600 $

Senior/Middle+ Golang Developer (iGaming, Микросервисы). Удалёнка

#подборка #go
5
Так что же происходит "под капотом"! 👨‍💻

Мы выяснили, что переменная — это как ячейка памяти с именем

Представьте оперативную память как огромный шкаф с пронумерованными ящиками. Когда мы пишем:
score := 0


Мы делаем следующее:
1. Выделяем ящик в оперативной памяти
2. Даём ему имя score (вместо номера)
3. Кладём значение 0 внутрь

Как вывести значение переменной?

Точно так же, как мы выводили текст! Используем пакет fmt:
package main

import "fmt"

func main() {
score := 0 // Создали переменную
fmt.Println(score) // Вывели её значение!
}


Что происходит при выводе:

- Println видит, что мы передали не текст, а имя переменной score
- Он ищет в памяти ячейку с таким именем
- Достаёт оттуда значение (0)
- Выводит его на экран

Меняем значение — меняется вывод:
score := 20
fmt.Println(score) // Выведет 20!


Но есть важный нюанс! Пока мы просто редактируем файл в блокноте/редакторе — это просто текст. Магия начинается когда мы запускаем программу:
go run main.go


В этот момент:

- Программа загружается в оперативную память
- Компьютер выполняет код построчно
- Дойдя до score := 0, он создаёт реальную ячейку в памяти с именем score и значением 0

🚀 Всё оживает только при запуске программы командой go run, все тоже самое, как в посте выше

Теперь вы не просто пишете код — вы понимаете, как он работает на уровне памяти! Это основа для всех дальнейших тем в программировании.

В следующих постах разберём, какие бывают типы переменных и как с ними работать!

#Go #ДляНачинающих #Переменные

@golangprofi
Please open Telegram to view this post
VIEW IN TELEGRAM
1