Golang вопросы собеседований
13.5K subscribers
625 photos
3 videos
1 file
432 links
@notxxx1 - админ

@Golang_google - Golang для разработчиков

@itchannels_telegram - 🔥лучшие из ит

@golangl - chat

@golangtests - golang tests

@golang_jobsgo - go chat jobs

@ai_machinelearning_big_data - AI

@data_analysis_ml

РКН: clck.ru/3FmtKd
加入频道
👣 Некторые недокуменированные особенности #golang 1.18 и 1.19, про которые вы могли не знать.

https://go101.org/blog/2022-08-22-some-undocumented-chang

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Вывод всех перестановок символов слайса или строки

Реализуйте функцию perm(), которая принимает слайс или строку и печатает все возможные комбинации символов.

Решение:

package main
import "fmt"

// Perm calls f with each permutation of a.

func Perm(a []rune, f func([]rune)) {
perm(a, f, 0)
}

// Permute the values at index i to len(a)-1.

func perm(a []rune, f func([]rune), i int) {
if i > len(a) {
f(a)
return
}
perm(a, f, i+1)
for j := i + 1; j < len(a); j++ {
a[i], a[j] = a[j], a[i]
perm(a, f, i+1)
a[i], a[j] = a[j], a[i]
}
}

func main() {
Perm([]rune("abc"), func(a []rune) {
fmt.Println(string(a))
})
}


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

#junior #golang
@golang_interview
🔘 Полезных функций тестирования: параллельные и бенчмарк тесты.

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

Это также поможет вам убедиться в том, что тесты не используют глобальное состояние, иначе они станут нестабильными.

Для этого достаточно пометить тест как параллельный следующим образом: изображение 1.

Бенчмарк-тесты
Бенчмарк-тесты - это отличный способ измерить и оптимизировать эффективность определенных частей кода.

Например, вот два способа конкатенации строки.

С помощью +: изображение 2.

Использование strings.Builder: изображение 3.

Если мы их запустим код, то получим следующий результат:

BenchmarkStringConcat-12 1000000 1200 ns/op BenchmarkStringBuilder-12 5000000 250 ns/op

Это означает, что тест выполнялся за 1000000 и 5000000 итераций, при этом stringConcat затрачивалось 1200 наносекунд на операцию, а strings.Builder - 250. Таким образом, strings.Builder гораздо эффективнее.

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Немного расширенный функционал Mutex в грядущем пакете "go101․org/nstd".

m.Lock()
defer m.Unlock()


vs

defer m.Lock().Unlock()

https://github.com/golang/go/issues/63941

#Golang

@golang_interview
👣 Что-то интересная #Golang и его количетсво звезд по всем репозиториям 🌠 по годам.

Будет ли в 2023 году больше или меньше звезд, чем в предыдущем? (на данный момент 2 610 110).

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Погружаемся в кроличью нору - сложности динамического подключения хуков на Golang

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

Описаны довольно интересные внутренние особенности языка, реализация хука с помощью Си и ассемблера. Однако все управление осуществялется с помощью Go. Решение довольно универсальное его можно адаптировать к различным платформам и архитектурам процессоров.

https://blog.quarkslab.com/lets-go-into-the-rabbit-hole-part-1-the-challenges-of-dynamically-hooking-golang-program.html

#golang #infosec

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Управление памятью в Golang - советы по обеспечению эффективности и стабильности работы Go приложений

#golang

https://golang.withcodeexample.com/blog/memory-management-golang-safeguarding-efficiency-stability/

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golang
👣😚 Выпущены версии Go 1.23.4 и 1.22.10🎉🎉🎉

🗣 Анонс: https://groups.google.com/g/golang-announce/c/3DyiMkYx4Fo

⬇️ Скачать: https://go.dev/dl/#go1.23.4

#golang

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉 Вышли версии Go 1.23.5 и 1.22.11!

🔒 Безопасность: включены исправления безопасности для CVE-2024-45336 и CVE-2024-45341 в файлах crypto/x509 и net/http.

📡 Анонс: https://groups.google.com/g/golang-announce/c/sSaUhLA-2SI.

📦 Скачать: https://go.dev/dl/#go1.23.5

@golang_interview

#golang #release #Go
👣 Сodenire Playground

Онлайн песочница с открытым исходным кодом для запуска кода.

Создана на основе образов Docker с надежной изоляцией, предоставляемой Google gVisor
#golang

Github

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