Golang задачи с собеседований
4.63K subscribers
476 photos
6 videos
12 files
244 links
Задачи, тесты и теоретические вопросы по Go. Так же по gin, grpc, горутинах, архитектуре api и http стэку.

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
Forwarded from Kaspersky Team
Всё могут тимлиды! 🤴 Development Team Lead в Kaspersky Сергей Наумкин объясняет, что делать тем, у кого работа занимает слишком много времени.

Возможно, ты помнишь, что ещё пару лет назад для разработки и тестирования приложений нужно было ставить на свою или виртуальную машину СУБД, брокер сообщений и прочий софт.

Только всё это — вчерашний день. Теперь достаточно поставить себе docker и скачать контейнеры, чтобы быстро проверить концепт или начать разработку.

Занимаешься микросервисными приложениями? Ответ тот же — ставь docker. С ним будет в разы проще поднять инфраструктуру, а с docker-compose заниматься разработкой и тестированием в максимально реалистичной среде.

Несколько доводов в пользу докеризации приложения:
➡️ удобно передавать свой сервис в пользование команды;
➡️ проще поднять всю среду для разработки и тестирования;
➡️ легче воспроизводить разные сценарии;
➡️ нет зависимости от окружения рабочей станции;
➡️ бесплатная масштабируемость;
➡️ легковесность (в отличие от ВМ).

Docker-образы не должны пугать тебя размерами, ведь multi-stage сборки помогут держать в контейнере только необходимый сервис, а distroless сэкономит место.

Согласен с тем, что докеризация — классное решение? Любишь Go и хочешь работать с нами? Загляни по этой ссылке с вакансиями для Go-разработчиков.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥Рекомендуем провести вторую половину лета с пользой, изучив Android разработку .

Мы собрали сложный материал и объясняем его максимально просто в нашем телеграм канале бесплатно, без смс и регистраций.

Научись:
- дизайну и созданию приложений
- правильной архитектуре
- разработке игр
- методам заработка на приложениях

Освой одну из самых топовых профессий в мире разработчика приложений с нуля, путешествуй и зарабатывай из любой точки планеты.

Не плати за курсы, кла
Каким будет вывод кода ниже? основной пакет
импорт ("фмт")
константа A int = 1 func main () { fmt.Println(A) }
Anonymous Quiz
97%
1
2%
2
1%
4
0%
3
👨🏻‍💻 Реальный вопрос от реального человека

Не понимаю, почему нельзя так сделать... Подскажите, пожалуйста

validationErrors = validator.ValidationErrors{
&validator.FieldError{
FieldError: errors.FieldError{
Field: "Name",
Tag: "required",
Err: fmt.Errorf("Name is required"),
},
},
&validator.FieldError{
FieldError: errors.FieldError{
Field: "Age",
Tag: "gte",
Param: "18",
Err: fmt.Errorf("Age must be greater than or equal to 18"),
},
},
}

Golang задачи с собеседований
👨🏻‍💻 Реальный вопрос от реального человека

Имеется сервис интернет-магазина, написанный на Golang. Как выгрузить заказы в XML, формировать их. Посмотрел информацию в интернете, практически ничего нет. Каким способом это сделать лучше всего?

Golang задачи с собеседований
Forwarded from IT NEWS
Вышел Go 1.21

Состоялся релиз языка программирования Go 1.21. Этот проект развивает компания Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок. Исходный код языка Go распространяется под открытой лицензией BSD.

Согласно данным портала OpenNET, синтаксис Go основан на привычных элементах языка C, включая отдельные заимствования из языка Оберон. Язык Go достаточно лаконичен, но при этом код легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно, без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов), что позволяет добиться производительности, сопоставимой с программами на языке C.

Подробнее

IT NEWS
👨🏻‍💻 Вопрос:

Непоследовательный вывод символов в консоль

Хотел написать программу генерации паролей для тренировки, при написании допустил ошибку(начиная со 2 ифа я генерил не диапазон и прибавлял начальное значение, а наоборот), и наткнулся на большую неожиданность. Почему-то вывод работает не последовательно. В конце должно выводиться слово ata , но оно выводится в центре, а должно быть в конце:

6CMW
#1BS&ata"&6,#
соответсвие символов кодам смотрю по таблице. Если выводить просто коды, то вывод следующий:

25
29
16
54
67
77
31
87
20
12
15
65
37
43
51
34
38
54
17
28
44
35
13
29
30
35
49
66
83
38
30
22
ata
Я понял, что 6CWM это коды которые начинаются с 54,67 и далее выводит все видимые символы(до 54 тоже символы не видимы), где-то видимо там же и перенос строки образуется

Максимально упростил код, разбил по отдельным ифам, всё равно ata в середине

сам код чтобы запустить

сам код чтобы был тут:

package main
import ("fmt"
"math/rand"
)

func main() {
length := 32
for i := 0; i < length; i++ {
var temp int
var choise int
choise = rand.Intn(4)
if choise == 0{
temp = rand.Intn(26) + 65 //big symbs
}
if choise == 1{
temp = rand.Intn(48) + 10 //numbers
}
if choise == 2{
temp = rand.Intn(97) + 26 //small symbs
}
if choise == 3{
temp = rand.Intn(33) + 15// cpec symbs
}
fmt.Printf("%c",temp)
// fmt.Println(temp)
}
fmt.Printf("%c",'a')
fmt.Printf("%c",116)
fmt.Printf("%c",'a')
}

Но на самый главный вопрос я ответа не нахожу: почему слово ata выводится в середине. В правильной версии такого нет.

Golang задачи с собеседований
👨🏻‍💻 Реальный вопрос от реального человека

Как почистить память после удаления структуры из List - golang

Как я могу удалить из памяти структуру и чтобы она вообще не вызывалась? Мне нужно чтобы когда я убирал из List она чистилась так же из памяти и останавливался цикл, но он не останавливается. Подскажите как сделать правильно, спасибо заранее.

type Player struct {
PlayerID int
}

func (p Player) Create() *Player {
fmt.Println("Create Player:", p.PlayerID)

go func() {
for {
println("test")
time.Sleep(time.Second * 2)
}
}()

return &p
}

func main() {

playersList := list.New()
playersList.PushFront(Player{PlayerID: 1}.Create())

for e := playersList.Front(); e != nil; e = e.Next() {
println("Remove Player:", e.Value.(*Player).PlayerID)
playersList.Remove(e)
e.Value = nil
runtime.GC()
}

fmt.Scanf("h")
}

[log] Create Player: 1 Remove Player: 1 test test. test...

Golang задачи с собеседований
Git Repository Management in 30 Days.pdf
29.7 MB
📔 Title: Git Repository Management in 30 Days

#book #Git #EN

🌐 Lang.: English
🧔 Author: Sumit Jaiswal
🕘 Year: 2023
📑 Pages: 290
#️⃣ ISBN: 978-93-55518-071

📝 Description: Это пошаговое руководство для разработчиков, желающих овладеть искусством управления репозиторием Git. Книга охватывает все, начиная с основ работы с Git и заканчивая такими продвинутыми темами, как ветвление, слияние, ребазинг и разрешение конфликтов. Книга поможет вам научиться создавать, управлять и сотрудничать с репозиториями Git. Кроме того, она научит вас использовать команды, инструменты и рабочие процессы Git для повышения качества кода и оптимизации процесса разработки.

@bzd_channel
👨🏻‍💻 Реальный вопрос от реального человека

Помогите найти ошибку в решении задачи на GO

Я пытаюсь решить на Go эту задачу:

Маша создала массив из n чисел от 1 до n. И какие-то из них поменяла на другие, также от 1 до n. Напишите функцию FindMissingValues(nums []int) []int, которая принимает данный массив и возвращает массив, содержащий числа, которые пропали, в порядке возрастания.

Я не особо понимаю что именно в алгоритме у меня не так. Выводит 3 4 5 6, хотя должно выводить 5 6.

package main

import (
"fmt"
"sort"
)

func FindMissingValues(nums []int) []int {
n := len(nums)
missingValues := make([]int, 0)

expectedValues := make([]int, n)
for i := 0; i < n; i++ {
expectedValues[i] = i + 1
}

sort.Ints(nums)
sort.Ints(expectedValues)

for i := 0; i < n; i++ {
check := false
for j := 0; j < n; j++ {
if nums[i] == expectedValues[i] {
check = true
}
}
if !check {
missingValues = append(missingValues, expectedValues[i])
}
}
fmt.Println(nums)
return missingValues
}

func main() {
fmt.Println(FindMissingValues([]int{4, 3, 2, 7, 8, 2, 3, 1}))

}

Golang задачи с собеседований
👨🏻‍💻 Реальный вопрос от реального человека

Почему не работает import "github.com/go-gl/gl/v4.1-core/gl"
Всё корректно установилось в GOPATH, однако при импорте VScode ругается и выдаёт две ошибки.

could not import github.com/go-gl/gl/v4.1-core/gl (no required module provides package "github.com/go-gl/gl/v4.1-core/gl")

error while importing github.com/go-gl/gl/v4.1-core/gl: build constraints exclude all Go files in D:\GoEnv\pkg\mod\github.com\go-gl\gl@v0.0.0-20211210172815-726fda9656d6\v4.1-core\gl

Вот так выглядит код в go.mod

module openGL

go 1.21.1

require (
github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6 // indirect
github.com/go-gl/glfw v0.0.0-20221017161538-93cebf72946b // indirect
)

Это код из go.sum

github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6 h1:zDw5v7qm4yH7N8C8uWd+8Ii9rROdgWxQuGoJ9WDXxfk=
github.com/go-gl/gl v0.0.0-20211210172815-726fda9656d6/go.mod h1:9YTyiznxEY1fVinfM7RvRcjRHbw2xLBJ3AAGIT0I4Nw=
github.com/go-gl/glfw v0.0.0-20221017161538-93cebf72946b h1:2hdUMUOJuLQkhaPAwoyOeSzoaBydYEkXkBEuqDuDBfg=
github.com/go-gl/glfw v0.0.0-20221017161538-93cebf72946b/go.mod h1:wyvWpaEu9B/VQiV1jsPs7Mha9I7yto/HqIBw197ZAzk=

Golang задачи с собеседований
Как вывести 'некорректный вод' ,если ввод будет, допустим, -1 7 7?

package main

import "fmt"

func main() {
var a int
var b int
var c int
fmt.Scan(&a, &b, &c)
if a == c && a == b && c == b {
fmt.Println("Все числа равны")
} else if a != c && a != b && c != b {
fmt.Println("Все числа разные")
} else if a == c || a == b || b == c {
fmt.Println("Два числа равны")
} else {
fmt.Println("Некорректный ввод")
}
}

условия

Все числа равны, если все три числа равны.

Два числа равны, если любые два числа из трех равны.

Все числа разные, если все три введенных числа различаются.

Если во входных данных есть ошибка, например, введены отрицательные числа, то программа должна выводить сообщение Некорректный ввод.


Golang задачи с собеседований
panic: runtime error: index out of range [20] with length 14

package main

import "errors"

func GetCharacterAtPosition(str string, position int) (rune, error) {
if position < 0 || position >= len(str) {
return 0, errors.New("position out of range")
}
return []rune(str)[position], nil
}
Выдает ошибку:panic: runtime error: index out of range [20] with length 14 Как исправить?

Golang задачи с собеседований