concurrent-go/plan.md
2019-05-26 12:00:48 +03:00

1.8 KiB
Raw Blame History

План курса

TODO: когда планирование будет завершено, влить этот документ в README.md.

TODO: разрешить все TODO в документе.

Структура

TODO: нормально разбить материал по занятиям. Сейчас всё не очень сбалансировано.

План занятий:

  1. История появления и развития Go как языка программирования.
  2. Виды параллелизма, связанные с параллелизмом проблемы и как мы решаем их в Go.
    1. Параллельно vs асинхронно.
    2. Параллелизм на уровне процессоров.
    3. Параллелизм через OS threads.
    4. OS threads дорогие => green threads и подобные.
    5. Проблема: data races.
    6. Проблема: deadlocks.
    7. Синхронизация.
    8. Параллелизм через CSP (в интерпретации Go).
    9. Каналы как примитив синхронизации.
  3. Применение параллелизма.
  4. Написание веб-сервера на Go.
  5. Продвинутые паттерны в асинхронных приложениях.
  6. Отладка высокопараллельных программ, как уменьшить сложность системы.

Тестирование, профилирование и прочее, что важно для Go программистов, но напрямую не связано с темой параллелизма, лучше вынести в дополнительные материалы и/или домашние задания.