Drillize
Drillize
Каталог
Менторы
Полезное
Цены
Регистрация
Вход
← Назад
Python / Senior
Собеседование Техническое. Загруженный курс.
Начать
Сообщение
Удаление курса из обучения
Вы уверены, что хотите удалить этот курс из обучения? Все ваши ответы, прогресс и избранные вопросы этого курса будут удалены.
Вопросы
1. Вопрос: Как объявить переменную в Go?
2. Вопрос: Как использовать короткое объявление `:=`?
3. Вопрос: Как объявить несколько переменных одной строкой?
4. Вопрос: Как поменять местами значения двух переменных без временной?
5. Вопрос: Как объявить константу?
6. Вопрос: Что такое `zero value` и как его увидеть?
7. Вопрос: Как преобразовать тип (type conversion)?
8. Вопрос: Как работает `if` и `else`?
9. Вопрос: Как объявить переменную внутри `if` (инициализация в условии)?
10. Вопрос: Как написать цикл `for` со счётчиком?
11. Вопрос: Как написать `for` как `while`?
12. Вопрос: Как сделать бесконечный цикл и выйти из него?
13. Вопрос: Как использовать `continue`?
14. Вопрос: Как написать `switch` по значению?
15. Вопрос: Как написать `switch` без выражения (как цепочка if)?
16. Вопрос: Как сделать `fallthrough` в `switch` и когда это опасно?
17. Вопрос: Как объявить массив фиксированной длины?
18. Вопрос: Как создать слайс и добавить элементы через `append`?
19. Вопрос: Как создать слайс через `make` и понять `len`/`cap`?
20. Вопрос: Как сделать slicing `s[a:b]` и что значит `b` не включительно?
21. Вопрос: Как скопировать слайс, чтобы не делить память?
22. Вопрос: Как итерировать слайс через `range`?
23. Вопрос: Как удалить элемент из слайса по индексу?
24. Вопрос: Как создать map и добавить элементы?
25. Вопрос: Как проверить наличие ключа в map?
26. Вопрос: Как удалить ключ из map?
27. Вопрос: Почему нельзя брать адрес элемента map (`&m[key]`) и изменять по месту?
28. Вопрос: Как отсортировать ключи map для детерминированного вывода?
29. Вопрос: Как написать простую функцию и вызвать её?
30. Вопрос: Как вернуть два значения из функции и обработать их?
31. Вопрос: Как возвращать ошибку как второй результат (идиома Go)?
32. Вопрос: Как создавать собственные ошибки?
33. Вопрос: Как оборачивать ошибки и сохранять причину (`%w`)?
34. Вопрос: Как использовать `errors.Is` для проверки причины?
35. Вопрос: Как использовать `defer` для гарантированного освобождения ресурсов?
36. Вопрос: В каком порядке выполняются несколько `defer`?
37. Вопрос: Как работает `panic` и `recover` на базовом уровне?
38. Вопрос: Как объявить структуру и создать экземпляр?
39. Вопрос: Как создать указатель на struct и почему это удобно?
40. Вопрос: Как определить метод struct (receiver)?
41. Вопрос: Когда нужен pointer receiver?
42. Вопрос: Как встроить (embed) структуру в другую?
43. Вопрос: Как работают теги struct для JSON?
44. Вопрос: Как маршалить структуру в JSON и печатать красиво?
45. Вопрос: Как распарсить JSON в структуру и обработать ошибку?
46. Вопрос: Как сделать интерфейс и реализовать его неявно?
47. Вопрос: Как проверить тип в интерфейсе (type assertion) безопасно?
48. Вопрос: Как сделать type switch?
49. Вопрос: Как создать goroutine и зачем она нужна?
50. Вопрос: Почему `main` может завершиться раньше goroutine и как это исправить?
51. Вопрос: Как использовать канал для передачи данных между goroutine?
52. Вопрос: Как работают буферизованные каналы?
53. Вопрос: Как закрывать канал и зачем?
54. Вопрос: Как понять что канал закрыт при чтении?
55. Вопрос: Как использовать `select` для конкурентного ожидания нескольких событий?
56. Вопрос: Как сделать таймаут через `select` + `time.After`?
57. Вопрос: Как защищать общий ресурс через `sync.Mutex`?
58. Вопрос: Как использовать `sync.RWMutex` и когда он полезен?
59. Вопрос: Как реализовать ограничение параллелизма (semaphore) на канале?
60. Вопрос: Как реализовать worker pool базово?
61. Вопрос: Как использовать `context.WithCancel` для отмены работы?
62. Вопрос: Как использовать `context.WithTimeout`?
63. Вопрос: Как создать HTTP handler и вернуть текст?
64. Вопрос: Как использовать `http.NewServeMux` и зачем это нужно?
65. Вопрос: Как прочитать query параметр в HTTP handler?
66. Вопрос: Как прочитать JSON из body запроса и валидировать?
67. Вопрос: Как вернуть JSON-ответ и статус код?
68. Вопрос: Как проверить HTTP-метод и вернуть 405?
69. Вопрос: Как сделать middleware для логирования?
70. Вопрос: Как применить middleware к отдельному маршруту?
71. Вопрос: Как задать таймауты для сервера (`http.Server`)?
72. Вопрос: Как сделать graceful shutdown HTTP-сервера по сигналу?
73. Вопрос: Как тестировать HTTP handler через `httptest`?
74. Вопрос: Как читать переменные окружения и задавать дефолт?
75. Вопрос: Как прочитать файл целиком и обработать ошибку?
76. Вопрос: Как использовать `bufio.Scanner` для чтения файла построчно?
77. Вопрос: Как распарсить число из строки безопасно?
78. Вопрос: Как форматировать строки без конкатенации?
79. Вопрос: Как получить длину строки в рунах (Unicode), а не в байтах?
80. Вопрос: Как итерировать строку по рунам?
81. Вопрос: Как работать с указателями: взять адрес переменной и разыменовать?
82. Вопрос: Как безопасно проверять `nil` у указателя?
83. Вопрос: Как передавать значения в функцию: по значению или по указателю?
84. Вопрос: Как создать `new(T)` и чем он отличается от `&T{}`?
85. Вопрос: Как работает сравнение структур и когда оно запрещено?
86. Вопрос: Как сравнивать слайсы корректно?
87. Вопрос: Как копировать map (поверхностно)?
88. Вопрос: Как реализовать set через map?
89. Вопрос: Как объединить два слайса?
90. Вопрос: Как работают буферизованные и небуферизованные каналы?
91. Вопрос: Как сделать non-blocking send/receive через `select` + `default`?
92. Вопрос: Как остановить goroutine через закрытие канала stop?
93. Вопрос: Как использовать `time.Ticker` и почему нужен `Stop()`?
94. Вопрос: Как использовать `time.Timer` и отличие от `time.After`?
95. Вопрос: Как ограничить время выполнения через context + select?
96. Вопрос: Как читать аргументы командной строки (`os.Args`)?
97. Вопрос: Как использовать пакет `flag` для CLI параметров?
98. Вопрос: Как создать HTTP запрос с контекстом?
99. Вопрос: Как задать общий таймаут для `http.Client`?
100. Вопрос: Как декодировать JSON из HTTP ответа потоково?
101. Вопрос: Как валидировать HTTP статус и вернуть информативную ошибку?
102. Вопрос: Как создать кастомную ошибку (тип) для HTTP?
103. Вопрос: Как извлечь кастомную ошибку через `errors.As`?
104. Вопрос: Как использовать `io.Reader`/`io.Writer` и зачем это полезно?
105. Вопрос: Как использовать `bufio.Writer` и зачем нужен `Flush()`?
106. Вопрос: Как работать со строками: `Split` и `Join`?
107. Вопрос: Как использовать `regexp` для поиска числа в строке?
108. Вопрос: Как сортировать слайс структур по полю?
109. Вопрос: Как сделать стабильную сортировку (`SliceStable`)?
110. Вопрос: Как использовать `atomic` для счётчика?
111. Вопрос: Как включить pprof (минимальный вариант) и зачем?
112. Вопрос: Как работать с Go modules: `go mod init` и `go get`?
113. Вопрос: Как использовать `embed` для встраивания файлов в бинарник?
114. Вопрос: Как ограничить размер HTTP request body?
115. Вопрос: Как запретить неизвестные поля в JSON (`DisallowUnknownFields`)?
116. Вопрос: Как корректно различать `nil` map и пустую map?
117. Вопрос: Как работает shadowing переменных и почему `:=` может быть опасен?
118. Вопрос: Как избежать утечек goroutine (goroutine leak) при каналах?
119. Вопрос: Как использовать `sync.Pool` и зачем он нужен?
120. Вопрос: Как правильно закрывать `resp.Body` в HTTP клиенте и почему важно дочитывать?
121. Вопрос: Как делать `context`-aware логирование в middleware?
122. Вопрос: Как хранить конфигурацию приложения (структура Config + env)?
123. Вопрос: Как сделать dependency injection вручную (без фреймворков)?
124. Вопрос: Как реализовать simple cache with TTL (вариант с cleanup goroutine)?
125. Вопрос: Как написать функцию, возвращающую канал (generator pattern)?
126. Вопрос: Как сделать пайплайн (fan-out → fan-in) на каналах?
127. Вопрос: Как сделать контекст-отменяемый generator, чтобы не было утечек?
128. Вопрос: Как использовать `errgroup` для конкурентных задач с общей отменой?
129. Вопрос: Как использовать `context` в SQL транзакции (`BeginTx`)?
130. Вопрос: Как сделать HTTP сервер с несколькими роутами и отдельным mux?
131. Вопрос: Как ограничить concurrency на сервере через middleware?
132. Вопрос: Как реализовать recover-middleware, чтобы сервер не падал на panic?
133. Вопрос: Как добавить CORS заголовки без библиотек (минимум)?
134. Вопрос: Как использовать `http.ServeFile` для раздачи статических файлов?
135. Вопрос: Как настроить `http.FileServer` на каталог?
136. Вопрос: Как писать лог в JSON (ручной формат) без библиотек?
137. Вопрос: Как сделать `context`-aware запрос к внешнему сервису с ретраями?
138. Вопрос: Как работать с `net/url` для сборки URL безопасно?
139. Вопрос: Как ограничить количество открытых файлов/соединений через пул воркеров?
140. Вопрос: Как использовать `sync.Once` для ленивой инициализации ресурса?
141. Вопрос: Как сделать `context`-aware sleep (остановка ожидания при отмене)?
142. Вопрос: Как сделать backpressure в пайплайне каналов?
143. Вопрос: Как использовать `context` + `http.Server` для shutdown и почему важно закрыть idle соединен
144. Вопрос: Как создать кастомный `RoundTripper` (middleware для клиента)?
145. Вопрос: Как правильно использовать `defer` внутри цикла и когда это плохо?
146. Вопрос: Как работает `range` по map и почему порядок случайный?
147. Вопрос: Как избежать копирования большой структуры при передаче в функции?
148. Вопрос: Как возвращать структуру из функции: по значению или по указателю?
149. Вопрос: Как использовать `fmt` корректно: Println vs Printf?
150. Вопрос: Как сделать безопасное чтение/запись JSON в файл?
151. Вопрос: Как парсить CSV через стандартную библиотеку?
152. Вопрос: Как использовать `context` для отмены чтения больших файлов?
153. Вопрос: Как использовать `strconv.FormatInt` и `ParseInt`?
154. Вопрос: Как использовать `net.Listen` и принять TCP соединение (минимум)?
155. Вопрос: Как сделать JSON API клиент с типизированным ответом (generic helper)?
156. Вопрос: Как использовать `context` в background задачах (cron-like) без утечек?
157. Вопрос: Как сделать `http.Client` переиспользуемым и почему это важно?
158. Вопрос: Как правильно настраивать Transport для большого числа запросов?
159. Вопрос: Как реализовать basic auth клиентом?
160. Вопрос: Как распарсить URL path и извлечь сегменты без роутера?
161. Вопрос: Почему нельзя использовать `:=` при повторном присваивании поля структуры?
162. Вопрос: Почему `if err != nil {}` — стандартный паттерн в Go?
163. Вопрос: Почему нельзя писать `if err := f(); err != nil {}` и использовать err дальше?
164. Вопрос: Почему `defer` в цикле может привести к утечке ресурсов?
165. Вопрос: Почему map нельзя модифицировать во время range?
166. Вопрос: Как правильно очищать map?
167. Вопрос: Почему порядок range по map каждый раз разный?
168. Вопрос: Почему `len(nilSlice)` безопасен?
169. Вопрос: Почему append может изменить исходный слайс неожиданно?
170. Вопрос: Как избежать побочных эффектов при append?
171. Вопрос: Почему нельзя писать в nil map?
172. Вопрос: Почему чтение из nil map безопасно?
173. Вопрос: Почему interface{} с nil внутри может быть не nil?
174. Вопрос: Как правильно проверять interface на nil?
175. Вопрос: Почему `for range` по слайсу копирует значение?
176. Вопрос: Как правильно изменять элементы слайса в range?
177. Вопрос: Почему замыкания в цикле работают не так, как ожидается?
178. Вопрос: Как исправить замыкание в цикле?
179. Вопрос: Почему нельзя читать и писать map из разных goroutine?
180. Вопрос: Как защитить map от data race?
181. Вопрос: Почему лучше передавать context первым аргументом?
182. Вопрос: Почему нельзя игнорировать `ctx.Done()`?
183. Вопрос: Почему нельзя использовать time.Sleep в handler?
184. Вопрос: Почему http.Client нужно переиспользовать?
185. Вопрос: Почему нельзя забывать закрывать resp.Body?
186. Вопрос: Почему `json.Decoder` лучше чем `ReadAll`?
187. Вопрос: Почему стоит использовать `omitempty` в JSON тегах?
188. Вопрос: Почему `time.Now()` нельзя сравнивать напрямую?
189. Вопрос: Почему в Go нет тернарного оператора?
190. Вопрос: Почему лучше возвращать ошибку, а не логировать внутри функции?
191. Вопрос: Почему `panic` — не замена error?
192. Вопрос: Когда panic всё-таки уместен?
193. Вопрос: Почему функции часто маленькие в Go?
194. Вопрос: Почему в Go не любят глубокие иерархии?
195. Вопрос: Почему интерфейсы маленькие?
196. Вопрос: Почему интерфейсы определяются на стороне потребителя?
197. Вопрос: Почему методы принимают value receiver по умолчанию?
198. Вопрос: Почему pointer receiver нужен при изменении состояния?
199. Вопрос: Почему лучше явно указывать capacity у make?
200. Вопрос: Почему нельзя полагаться на finalizer?
201. Вопрос: Почему лучше использовать errors.Is вместо сравнения?
202. Вопрос: Почему context.WithValue нельзя использовать для бизнес-данных?
203. Вопрос: Почему main не должен содержать бизнес-логику?
204. Вопрос: Почему в Go принято early return?
205. Вопрос: Почему лучше использовать named return аккуратно?
206. Вопрос: Почему defer с named return может менять возвращаемое значение?
207. Вопрос: Почему gofmt обязателен в команде?
208. Вопрос: Почему нельзя игнорировать data race даже если «работает»?
209. Вопрос: Почему тесты в Go пишут рядом с кодом?
210. Вопрос: Почему table-driven tests — стандарт?
211. Вопрос: Почему нельзя сравнивать error через `==`?
212. Вопрос: Почему лучше возвращать пустой слайс вместо nil в API?
213. Вопрос: Почему нельзя забывать `rows.Err()` после Next?
214. Вопрос: Почему sql.DB — это пул, а не соединение?
215. Вопрос: Почему лучше явно закрывать goroutine через context?
216. Вопрос: Почему нельзя использовать global variables для состояния?
217. Вопрос: Почему Go поощряет простоту синтаксиса?
218. Вопрос: Почему `sync.Mutex` нельзя копировать после первого использования?
219. Вопрос: Когда `sync.RWMutex` может быть медленнее `Mutex`?
220. Вопрос: Почему нельзя вызывать `Lock()` дважды в одной goroutine?
221. Вопрос: Почему `defer mu.Unlock()` может быть опасен в горячем коде?
222. Вопрос: Почему `context.Context` нельзя хранить в структуре?
223. Вопрос: Почему `context.Background()` нельзя использовать внутри handler?
224. Вопрос: Почему нельзя игнорировать ошибку `json.Encoder.Encode`?
225. Вопрос: Почему `http.ResponseWriter` нельзя использовать после возврата из handler?
226. Вопрос: Почему нельзя читать `r.Body` в нескольких goroutine?
227. Вопрос: Почему нужно всегда дочитывать `resp.Body`?
228. Вопрос: Почему `sql.DB` нельзя закрывать после каждого запроса?
229. Вопрос: Почему нельзя использовать `Prepare` без необходимости?
230. Вопрос: Почему `rows.Next()` нужно проверять вместе с `rows.Err()`?
231. Вопрос: Почему `panic` в goroutine может упасть всему процессу?
232. Вопрос: Как безопасно использовать `recover` в goroutine?
233. Вопрос: Почему `select {}` — опасная конструкция?
234. Вопрос: Почему закрывать канал должен только sender?
235. Вопрос: Почему `close(ch)` + send вызывает panic?
236. Вопрос: Почему нельзя делать `range` по каналу без гарантий закрытия?
237. Вопрос: Почему лучше передавать каналы как `<-chan` и `chan<-`?
238. Вопрос: Почему `time.After` может течь память?
239. Вопрос: Почему `sync.Pool` нельзя использовать как cache?
240. Вопрос: Почему нельзя полагаться на порядок `defer` в разных функциях?
241. Вопрос: Почему `named return` опасен в большом коде?
242. Вопрос: Почему нельзя сравнивать ошибки через `==` в продакшне?
243. Вопрос: Почему `errors.Is` и `errors.As` важны?
244. Вопрос: Почему нельзя использовать `fmt.Println` для логирования?
245. Вопрос: Почему логирование внутри библиотек — плохая идея?
246. Вопрос: Почему HTTP middleware должен быть идемпотентным?
247. Вопрос: Почему нельзя хранить state в handler struct без защиты?
248. Вопрос: Почему `http.DefaultServeMux` опасен в больших проектах?
249. Вопрос: Почему `os.Exit` нельзя использовать в бизнес-коде?
250. Вопрос: Почему `init()` усложняет тестирование?
251. Вопрос: Почему нельзя использовать глобальные переменные как конфиг?
252. Вопрос: Почему `context.WithValue` — last resort?
253. Вопрос: Почему нельзя использовать `reflect` без причины?
254. Вопрос: Почему generics не заменяют интерфейсы?
255. Вопрос: Почему `any` ухудшает читаемость?
256. Вопрос: Почему нельзя делать `go func(){}` без контроля жизненного цикла?
257. Вопрос: Почему `WaitGroup.Add` нельзя вызывать внутри goroutine?
258. Вопрос: Почему нельзя повторно использовать WaitGroup?
259. Вопрос: Почему worker pool без backpressure опасен?
260. Вопрос: Почему буфер каналов — это форма backpressure?
261. Вопрос: Почему `select` без default может зависнуть навсегда?
262. Вопрос: Почему `runtime.GOMAXPROCS` важен для CPU-bound задач?
263. Вопрос: Почему goroutine — не бесплатные?
264. Вопрос: Почему нельзя полагаться на порядок выполнения goroutine?
265. Вопрос: Почему нужно запускать `-race` в CI?
266. Вопрос: Почему нельзя игнорировать аллокации в hot-path?
267. Вопрос: Почему `pprof` обязателен для продакшна?
268. Вопрос: Почему оптимизация без профиля — зло?
269. Вопрос: Почему Go поощряет явность, а не магию?