1 of 15

НИС Построение

Сервисов на Golang и Python

2 of 15

О себе

  • Golang разработчик в Авито Недвижимости
  • ex Яндекс (Биллинг), Ozon (Внутренние сервисы)
  • ФКН ПИ’24
  • levtulyavko@yandex.ru

3 of 15

Про курс: зачем

Цель: дать основные навыки и знания по разработке бэкенда и широкими мазками посмотреть на основные связанные с бэкендом вещи.

Кому может быть полезно: начинающим бэкендерам, фронтам/мобильщикам, системным аналитикам, любым t-shape в бэк.

4 of 15

Про курс: что

  • Go: основы, сравнение с другими языками, структуры данных, многопоточность
  • Виды API, проектирование контрактов, обратная совместимость
  • HTTP и gRPC сервера, кодогенерация
  • Контейнеризация, Docker, Podman
  • Внешние хранилища: PostgreSQL, Redis, Kafka, сценарии применения
  • Пирамида тестирования, инструменты тестирования
  • Способы оптимизации RT, pprof, трейсинг, логгирование
  • Все про авторизацию и аутентификацию, oauth, jwt
  • Архитектурные паттерны, межсистемное взаимодействие, распределенные системы
  • Python: сравение с Go, основные сценарии применения, библиотеки и фреймворки
  • Python: Django

5 of 15

Важные ссылки

Гугл диск с материалами

Чат курса в tg

6 of 15

Оценка за семинары

Семинары = min(среднее за домашки + посещаемость, 10)

Посещаемость = 1, если присутствий >= 80%, иначе 0

Домашки

  • Выдаются на семинарах
  • Есть два дедлайна:
    • неделя после семинара - максимум оценка 10
    • две недели после семинара - максимум оценка 7

7 of 15

Познакомимся?

Расскажите о себе

  • Работаете ли где-то в IT? Если да то кем?
  • Есть ли опыт разработки бэкенда? С каким стеком в основном работали? Писали ли на Go?
  • (*) Что бы хотели получить от курса �и семинаров?

Опрос

8 of 15

Основы Golang

01

9 of 15

Зачем вообще Go?

  • Придумали в Google как замену C/C++
  • “для решения реальных проблем”
  • Актуален в современном мире
  • Решает боли от других языков

10 of 15

Боли

  • ???

11 of 15

Боли

  • Долгая компиляция
  • Сложная работа с асинхронностью и конкурентностью
  • Отсутствие встроенного тулинга
  • Сложное управление зависимостями
  • Различия в кодстайле
  • Плохая читаемость кода
  • Сложная работа с памятью
  • etc

12 of 15

Решения

  • Ортагональность
  • Простая C-like грамматика
  • Адекватная типизация
  • Максимум явности
  • Garbage Collector
  • Готовые инструменты для асинхронности
  • Продуманная система пакетов
  • Богатые STL и тулинг
  • Прямая трансляция в машинный код

13 of 15

Другие особенности

  • Duck typing интерфейсы
  • Отказ от наследования и перегрузок
  • Мультипарадигменный
  • (почти) Полноценные указатели
  • Отказ от try catch
  • Стандартизация подхода к тестированию
  • Generics

14 of 15

Код

15 of 15

Обратная связь