37.1K subscribers
1.46K photos
34 videos
5 files
1.62K links
加入频道
15 Курсов по Go для начинающих

Мы собрали ссылки на полезные курсы Golang для начинающих.

Читать

#golang #junior

@Golang_google
👣 [Тестовое Google] Простые множители произведения массива

Задача
Дан массив целых положительных чисел nums, верните количество различных простых множителей в произведении элементов nums. Функция должна называться distinctPrimeFactors.

Обратите внимание, что:

Число, большее 1, называется простым, если оно делится только на 1 и само на себя.
Целое число val1 является множителем другого целого числа val2, если val2 / val1 является целым числом.
Пример

nums = [2,4,3,7,10,6]
distinctPrimeFactors(nums)
# 4


# Пояснение:
Произведение всех элементов в `nums` равно: `2 * 4 * 3 * 7 * 10 * 6 = 10080 = 25 * 32 * 5 * 7`.
Существует 4 различных простых множителя, поэтому мы возвращаем 4.

nums = [2,4,8,16]
distinctPrimeFactors(nums)
# 1

# Пояснение:
Произведение всех элементов в `nums` равно: `2 * 4 * 8 * 16 = 1024 = 210`.
Существует 1 различный простой множитель, поэтому мы возвращаем 1.

#junior #задача #golang

Пишите свое решение в комментариях👇

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Работаем с регулярными выражениями. Часть 1

regex для проверки того, содержит ли строка только заглавные буквы (картинка 1)

проверка того, начинается ли строка с "Tre" и заканчивается "s" (картинка 2,3).

Проверяем заканчивается ли строка на "port" (картинка 4,5).

проверка наличия в строке подстроки "zoo" (картинка 6,7).

проверка не содержит ли строка заданную подстроку где-либо внутри себя картинка 8,9).

проверка наличия в строке целых чисел с помощью regex 10).

https://regex101.com/ - попрактиковаться

🔥Ставьте лайк, если интересно продолжение темы.

#golang #junior #regex

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Что выведет код ?

package main

import "reflect"

func main() {
f := func() {}
s := []func(){f, f, f, f, f, f}
x := s[1:4]
y := s[3:6]
z := x[2:5]
println(
reflect.DeepEqual(x, y),
reflect.DeepEqual(y, z),
)
}


📌Запустить код

#junior #quiz

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Чем же отличаются горутины в Go от корутин в других ЯП?

Хмм, в Go легковесные потоки даже называются по-другому — горутины, в отличие от корутин в других языках.
Давайте сравним их и обсудим отличия.

Во-первых, сравнивать горутины и корутины - это как сравнивать горячее с высоким. Они предназначены для разных задач и спроектированы по-разному.

Корутины в С++, например, задуманы для написания асинхронных алгоритмов и генераторов в виде функций. Корутины в С++ возвращают значения. Это принципиальное отличие от горутин. Всё в корутинах заточено на возвращение значений. co_yield и co_return создают значения, co_await получает значение. В каком-то смысле это старый недобрый setjmp/longjmp с поддержкой хранилища локальных переменных от компилятора.

Горутины предназначены для реализации легковесных потоков, для которых переключение не требует обращения к ядру. Горутины не возвращают значения. Соответственно, в го нет ни yield, ни await. Нужно явным образом организовывать передачу данных из горутины через каналы.

Я не буду разводить флейм на тему, что лучше - асинхронные алгоритмы с yield/wait или легковесные потоки с каналами. Лично я препочитаю потоки/горутины, потому что мне проще думать в стиле обмена данными между акторами, а не нарезки функциональности на асинхронную лапшу.

Вот такие дела ¯\_(ツ)_/¯

📎 Кстати, сверхполезная статья по конкурентности в Go

#junior

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Великолепное наглядное руководство по слайсам в Go.

С этой статьей вы углубитесь во внутренние компоненты и посмотрите, как работают слайсы под капотом.

 🔗 Подобнее

#golang #junior

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Гайд по запуску Go в браузере с помощью WebAssembly

#golang #WebAssembly #junior

Статья
Код

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Программирование на Go — курс Golang с бонусными проектами (2024)

💡 Изучите язык программирования Go в этом полном курсе для начинающих. С помощью этих практических уроков и заданий вы попрактикуетесь в написании эффективного Go кода

🕞 Продолжительность: 9:32:47

🇷🇺 Видео на русском языке

🔗 Ссылка: *клик*

#golang #junior #go

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 gin-auth-example

Простой пример того, как реализовать логику аутентификации на основе cookie с помощью Gin

🖥 Github

#golang #gin #junior #web

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 «DNS Explained: From Basics to Building My Own DNS Server» - подробное руководство по пониманию системы доменных имен (DNS) и созданию собственного DNS-сервера с использованием языка программирования Go.​

Основные темы, рассмотренные в статье:
Что такое DNS и его значение:​

DNS (Domain Name System) действует как телефонная книга интернета, преобразуя удобочитаемые доменные имена (например, google.com) в машинно-читаемые IP-адреса (например, 142.250.182.206), облегчая навигацию в сети.​

Пошаговый процесс разрешения DNS:​

1️⃣ Инициирование запроса: Локальный резолвер в операционной системе проверяет кэш на наличие IP-адреса запрашиваемого домена. Если адрес отсутствует, запрос направляется к рекурсивному DNS-резолверу.​

2️⃣ Обращение к рекурсивному резолверу: Рекурсивный резолвер, такой как Google Public DNS (8.8.8.8) или Cloudflare DNS (1.1.1.1), принимает запрос и начинает процесс поиска.​

3️⃣ Запрос к корневому DNS-серверу:
Рекурсивный резолвер обращается к корневому серверу, который направляет его к соответствующему серверу верхнего уровня (TLD) для запрашиваемого домена.​

4️⃣ Запрос к TLD-серверу: Сервер верхнего уровня (например, для доменов .com или .tech) указывает на авторитетный сервер конкретного домена.​

5️⃣ Запрос к авторитетному серверу: Авторитетный сервер предоставляет окончательный IP-адрес запрашиваемого домена.​

Создание собственного DNS-сервера на Go:​

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

Годное чтиво на выходные )

📌Читать

#junior #golang #go #dns

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM