Що нового?

Придбаний [Balun.Courses] Concurrency в Go. Тариф Стандарт (Владимир Балун)

Інформація про покупку
Тип покупки: Складчина
Ціна: 14302 ГРН
Учасників: 0 з 60
Організатор: Відсутній
Статус: Набір учасників
Внесок: 247.9 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
Ты закроешь 95% вопросов по concurrency:
  • Получишь глубокие знания и изучишь "подкапотную" Concurrency в GO для работы в крупных проекта
  • Научишься писать параллельный код и разбираться в нем
  • Изучишь множество паттернов использования параллельного программирования
  • Попрактикуешься на реальных задачах, которые уже встречались или встретятся в рабочих проектах
  • Разработаешь свою In-memory key-value базу данных c WAL-ом, снэпшотами и асинхронной репликацией
  • Научишься решать задачи по Concurrency, которые встречаются на собеседованиях по Go
  • Разработаешь свою In-memory key-value базу данных с асинхронной репликацией, которая станет сильным портфолио при трудоустройстве, мощной практикой для реальных проектов и убедительным подтверждением навыков для повышения ответственности и уровня ЗП на работе
  • Ты получишь целый список учебников, статей, курсов и видео, которые позволят тебе изучать Concurrency после курса еще дальше и глубже
Программа курса:
1. Основы исполнения программного кода
  • Pipeline процессора
  • Устройство процессора и шина
  • Кэши процессора, когерентность кэша (MESI), false sharing, store bufer, invalidation queue
  • Виртуальная память (MMU, TLB, swapping)
  • Алгоритмы планирования (FCFS, SJN, RR)
  • Процессы и потоки
  • Context switching
  • Hyper-threading
  • Сопрограммы
Результат:
  • понимаешь, как выполняется код в рамках архитектуры компьютера и операционной системы
2. Горутины и планировщик GO
  • Внутреннее устройство горутины
  • Внутреннее устройство планировщика Go
  • Work sharing и work stealing
Результат:
  • разбираешься во внутреннем устройстве горутин и планировщика GO, а также начинаешь понимать Concurrency модель в Go
3. Примитивы синхронизации: часть 1

  • Примитивы синхронизации (sync.WaitGroup, sync. Mutex, sync. Once)
  • Проблемы конкурентного программирования (deadlock, livelock, data race, starvation)
  • Внутреннее устройство mutex
  • Go race detector
Результат:
  • понимаешь, как синхронизировать конкурентный код при помощи примитивов синхронизации, а также знакомишься с основными проблемами конкурентного программирования
4. Примитивы синхронизации: часть 2
  • Примитивы синхронизации (sync.RWMutex, sync. Map, sync. Cond, sync. Pool, sync. atomic)
  • Реализация (spinlock, recursive mutex, timed mutex, rw mutex, once)
  • Cache contention
Результат:
  • знакомишься с дополнительными примитивами синхронизации и знаешь, как писать свои, в случае необходимости
5. Каналы и их внутреннее устройство
  • Буферизованные и небуферизованные каналы
  • Однонаправленные каналы
  • Внутреннее устройство каналов
  • Share memory by communicating
  • Producer and consumer
  • Gracefull Shutdown
Результат:
  • разбираешься во внутреннем устройстве каналов и понимаешь, зачем они нужны в Go
6. Паттерны использование каналов
  • Promise and Future
  • Fan-In and Fan-Out
  • Generator
  • Error group
  • Pipeline
  • Cancelation
  • Or channel
  • Bridge
Результат:
  • понимаешь, где и как использовать каналы в GO
7. Контексты и модели памяти
  • Контексты (TODO, Background, WithCancel, WithCancelCause, WithDeadline, WithTimeout, WithValue)
  • Внутреннее устройство контекстов
  • Gracefull shutdown
  • Модели памяти (sequential, acquire/release, releaxed)
  • Memory reordering
  • Барьеры памяти
Результат:
  • знаешь контексты и понимаешь, как правильно их использовать в GO, а также дополнительно знакомишься с моделью памяти в Go
8. Алгоритмы синхронизации и lock-free структуры данных
  • Шардированная map
  • Алгоритмы синхронизации (грубая, тонкая)
  • Lock-free структуры данных (stack, queue)
  • Линеаризуемость
  • ABA проблема
Результат:
  • знаешь нетривиальные алгоритмы синхронизации структур данных, а также понимаешь, как писать конкурентный код без блокировок
9. Практическое использование конкурентных вычислений
  • Реализация worker pool (fixed и dynamic)
  • Реализация cache synchronization
  • Реализация scheduler
  • Реализация batcher
Результат:
  • ты самостоятельно прорешал(-а) реальные задачи, с которыми сталкивались современные IT-компании, и полностью готов(-а) применять все знания на практике в настоящих проектах
  • ты готов(-а) к решению задач на собеседовании по GO
https://privatelink.de/?https://balun.courses/courses/concurrency
 
Угорі