💼 Обратное собеседование (reverse-interview) это список вопросов для соискателей.
Пункты не упорядочены и могут быть неприменимы к конкретной должности или виду работы. Вначале это был просто список вопросов, но со временем он стал включать ещё и те вещи, которых хотелось бы видеть больше, и «красные флажки», то есть вещи, которых хочется избегать. Ещё я обратил внимание, что многие люди, которых я собеседовал, не задавали эти вопросы, и, я думаю, это были упущенные возможности.
Разделы вопросов:
- Технологии
- Должность
- Команда
- Ваши будущие коллеги
- Компания
- Бизнес
- Удалённая работа
- Офисная работа
- Компенсация
- Больничный, декретный период, отпуск
📌 Вопросы
@golang_interview
Пункты не упорядочены и могут быть неприменимы к конкретной должности или виду работы. Вначале это был просто список вопросов, но со временем он стал включать ещё и те вещи, которых хотелось бы видеть больше, и «красные флажки», то есть вещи, которых хочется избегать. Ещё я обратил внимание, что многие люди, которых я собеседовал, не задавали эти вопросы, и, я думаю, это были упущенные возможности.
Разделы вопросов:
- Технологии
- Должность
- Команда
- Ваши будущие коллеги
- Компания
- Бизнес
- Удалённая работа
- Офисная работа
- Компенсация
- Больничный, декретный период, отпуск
📌 Вопросы
@golang_interview
Forwarded from Golang Библиотека Знаний
👉 Все Книги для Go разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
Go предоставляет встроенные средства управления конкурентностью: планировщик Go автоматически распределяет goroutine между системными потоками, балансируя нагрузку. Основное отличие в том, что goroutine не привязаны к конкретным потокам и могут свободно перемещаться между ними. Это снижает накладные расходы и упрощает конкурентное программирование.
Каналы chan используются для безопасного обмена данными между goroutine, обеспечивая синхронизацию и избегая гонок данных.
▪️ Ниже приведен пример, в котором две goroutine взаимодействуют через канал:
package main
import (
"fmt"
"time"
)
// Функция для записи чисел в канал
func produceNumbers(channel chan int) {
for i := 1; i <= 5; i++ {
fmt.Printf("Produced: %d\n", i)
channel <- i // Отправка числа в канал
time.Sleep(500 * time.Millisecond)
}
close(channel) // Закрытие канала после завершения отправки
}
// Функция для чтения из канала
func consumeNumbers(channel chan int) {
for num := range channel { // Чтение значений из канала
fmt.Printf("Consumed: %d\n", num)
time.Sleep(700 * time.Millisecond)
}
}
func main() {
channel := make(chan int)
go produceNumbers(channel) // Запуск первой goroutine
go consumeNumbers(channel) // Запуск второй goroutine
time.Sleep(4 * time.Second) // Ожидание завершения всех goroutine
}
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
try-catch
? Можете ли вы привести пример, где использование panic
и recover
будет уместным, и объяснить, почему этот подход не следует использовать повсеместно?package main
import (
"errors"
"fmt"
)
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("деление на ноль")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Ошибка:", err)
} else {
fmt.Println("Результат:", result)
}
}
package main
import "fmt"
func riskyFunction() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Поймана ошибка:", r)
}
}()
fmt.Println("Выполняется riskyFunction...")
panic("Что-то пошло не так!")
fmt.Println("Этот код не будет выполнен")
}
func main() {
fmt.Println("Начало программы")
riskyFunction()
fmt.Println("Конец программы")
}
Механизмы panic и recover следует использовать только в следующих случаях:
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Курс по основам системного дизайна
Вы готовитесь к интервью по системному дизайну или просто хотите узнать больше о работе сложных систем? Тогда репозиторий от ByteByteGo – идеальный выбор!
В этом курсе вас ожидают следующие темы:
– Протоколы
– CI/CD
– Архитектурные шаблоны
– Базы данных
– Кэширование
– Микросервисные архитектуры
– Платежные системы
– DevOps
– Git
– Облачные сервисы
– Инструменты для повышения производительности разработки
– Linux
– Безопасность
– Реальные примеры систем
▪ GitHub
▪ Перевод
@golang_interview
Вы готовитесь к интервью по системному дизайну или просто хотите узнать больше о работе сложных систем? Тогда репозиторий от ByteByteGo – идеальный выбор!
В этом курсе вас ожидают следующие темы:
– Протоколы
– CI/CD
– Архитектурные шаблоны
– Базы данных
– Кэширование
– Микросервисные архитектуры
– Платежные системы
– DevOps
– Git
– Облачные сервисы
– Инструменты для повышения производительности разработки
– Linux
– Безопасность
– Реальные примеры систем
▪ GitHub
▪ Перевод
@golang_interview
Go API
с помощью пользовательских middleware. Middleware перехватывает запросы перед отправкой на обработку и позволяет добавлять функции обработки.
Это поможет улучшить дебаггинг кода и повысить стабильность сервера.
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
▪️Github
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Linux: t.me/linuxacademiya
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Linux: t.me/linuxacademiya
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Pine — это фреймворк для создания серверов на языке Go, основанный на принципах простоты и удобства, подобных фреймворкам Fiber и Express.js.
🌟 Pine предоставляет лёгкий способ разработки веб-серверов с минимальной настройкой, поддержкой маршрутизации, middleware и работы с вебсокетами.
Фреймворк также неплохо оптимизирован, что делает его подходящим для обработки большого числа запросов.
🔐 Лицензия: MIT
▪️Github
@golang_interview
Фреймворк также неплохо оптимизирован, что делает его подходящим для обработки большого числа запросов.
▪️Github
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM