⚡️ 4 Репозитория на Github для подготовки к 4 различным типам собеседований по разработке программного обеспечения:
1. Собеседования по системному дизайну: https://github.com/ashishps1/awesome-system-design-resources
2. Собеседования по низкоуровневому проектированию: https://github.com/ashishps1/awesome-low-level-design
3. Собеседования по программированию: https://github.com/ashishps1/awesome-leetcode-resources
4. Поведенческое собеседование: https://github.com/ashishps1/awesome-behavioral-interviews
@golang_interview
1. Собеседования по системному дизайну: https://github.com/ashishps1/awesome-system-design-resources
2. Собеседования по низкоуровневому проектированию: https://github.com/ashishps1/awesome-low-level-design
3. Собеседования по программированию: https://github.com/ashishps1/awesome-leetcode-resources
4. Поведенческое собеседование: https://github.com/ashishps1/awesome-behavioral-interviews
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Держите полезный ресурс, здесь показана большая часть того, что понадобится в реальной работе с Go: структуры, интерфейсы, создание своего веб-сервера, межсайтовый скриптинг, работа с БД и много всего ещё.
Очень полезно, рекомендую
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golang
Мощная шпаргалка по Go, которая покрывает практически все темы
Если пролистать хотя бы по диагонали, есть отличный от нуля шанс пройти собеседование и получить оффер)
Что внутри?
├╼
Компилятор├╼
Пакеты├╼
Функции├╼
Управление памятью├╼
Операторы├╼
Управляющие структуры├╼
Объектноориентированность├╼
Интерфейсы├╼
Обработка ошибок├╼
Горутины (Goroutine)├╼
Проверка управления памятью├╼
Reflect ├╼
Добавление кода C├╼
GUI╰╼
Распределенные системы@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Итак, задача: написать свою фукнцию
sleep
time.After
, вот так:package main
import (
"log"
"time"
)
func sleep(d time.Duration) {
select {
case <-time.After(d):
}
}
func CallSleep() {
log.Println("Do something")
sleep(5 * time.Second)
log.Println("Something else")
}
Но выглядит как-то громоздко, да и вообще.
func sleep2(d time.Duration) time.Time {
ticker := time.Tick(d)
for done := range ticker {
return done
}
return time.Now()
}
func sleep(d time.Duration) {
<-time.After(d)
}
Ну вот, то, что нужно
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
network_api -> data(UseCase->Repository)
. Так как все
http
хендлеры обрабатываются параллельно, то каким образом корректно протянуть зависимости репозиториев и use_case
объектов в слой network_api
? То есть это будут синглтоны или же их нужно создавать для каждого отдельного request
? Что насчёт доступа к общим ресурсам?
Например,
use_case
при загрузке читает json
-конфигурацию и в дальнейшем к ней обращается по многим путям из слоя nwtwork_api
.Есть какие нибудь best practices?
Если наши данные терпимы к параллельному одновременному доступу — тогда можно не замарачиваться. Если же нельзя одновременно из нескольких потоков обращаться к менеджеру данных — тогда стоит ввести глобальную блокировку. Фактически, такой глобальной блокировкой будет являться единственное соединение к базе данных.
Вот и всё, пожалуй
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Держите полезную статью о тестировании Go-приложений
Что внутри?
ExecuteTest
, передавая контекст и testing.TB
или provider.T
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Но если ты посмотришь это видео, то будешь знать ответы, и во всеоружии встретишь такие вопросы, если они попадутся
Уверен, будет полезно)
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
var _ myInterface = &myImplementation{}
:type T struct{}
var _ I = T{} // Проверка, что T имплеменирует I.
var _ I = (*T)(nil) // Проверка, что *T имплеменирует I.
Обычно это указывают, чтобы ошибки были выявлены уже во время компиляции.
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Держите годный контент)
Тут неплохой список тем, которые с большой вероятностью будут обсуждаться на собеседовании + теория по самому важному
Собственно, теория покрывает такие разделы:
├╼
Скалярные├╼
Массив и слайс├╼
Map├╼
Структура╰╼
Интерфейс├╼
Каналы├╼
Горутины├╼
Sync╰╼
ПаттерныУверен, будет полезно) Успешных собеседований
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Держите репозиторий с вопросами по Golang. Здесь вы найдете вопросы, которые могут быть заданы на собеседовании, с подробными разъяснениями и анализом различных corner cases. Представьте, что это ваши билеты на экзамен - вытягивайте билет и готовьтесь!
Здесь затрагиваются самые важные темы Go, в том числе:
• Slices
• Maps
• Указатели
• Goroutines и Channels
• Работа со строками
@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM