Язык программирования Go (2022) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (change last seminar date)
м (formating impro)
 
(не показаны 3 промежуточные версии 2 участников)
Строка 28: Строка 28:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
  ! Занятие !! Тема !! Дата !! Материалы для самоподготовки к семинарам !! Дополнительные материалы
+
  ! Занятие !! Тема !! Дата  
 
|-
 
|-
| style="background:#eaecf0;" | '''1''' || [[https://youtu.be/6SER596qUDQ?list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Установка языка. Основы синтаксиса, основные типы данных. Работа со стандартным I/O || 07.11.22 || ||
+
| style="background:#eaecf0;" | '''1''' || [[https://youtu.be/6SER596qUDQ?list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Установка языка. Основы синтаксиса, основные типы данных. Работа со стандартным I/O || 07.11.22  
 
|-
 
|-
| style="background:#eaecf0;" | '''2''' || [[https://www.youtube.com/watch?v=SxgG2hYJdZs&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Функции. Указатели. Написание тестов || 14.11.22 || ||
+
| style="background:#eaecf0;" | '''2''' || [[https://www.youtube.com/watch?v=SxgG2hYJdZs&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Функции. Указатели. Написание тестов || 14.11.22  
 
|-
 
|-
| style="background:#eaecf0;" | '''3''' || [[https://www.youtube.com/watch?v=OwyAlBupnEg&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Аналог ООП в Go. Структуры и методы, интерфейсы || 21.11.22 || ||
+
| style="background:#eaecf0;" | '''3''' || [[https://www.youtube.com/watch?v=OwyAlBupnEg&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Аналог ООП в Go. Структуры и методы, интерфейсы || 21.11.22  
 
|-
 
|-
| style="background:#eaecf0;" | '''4''' || [[https://www.youtube.com/watch?v=fVL03AioZ-o&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Горутины и каналы в Go. Экскурс в мультиплексирование и pipe в Linux || 28.11.22 || ||
+
| style="background:#eaecf0;" | '''4''' || [[https://www.youtube.com/watch?v=fVL03AioZ-o&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Горутины и каналы в Go. Экскурс в мультиплексирование и pipe в Linux || 28.11.22  
 
|-
 
|-
| style="background:#eaecf0;" | '''5''' || [[https://www.youtube.com/watch?v=cFHbkcxzdME&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Синхронизация, пул воркеров, состояние гонки. Экскурс в проблемы многопоточного программирования || 05.12.22 || ||
+
| style="background:#eaecf0;" | '''5''' || [[https://www.youtube.com/watch?v=cFHbkcxzdME&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Синхронизация, пул воркеров, состояние гонки. Экскурс в проблемы многопоточного программирования || 05.12.22
 
|-
 
|-
| style="background:#eaecf0;" | '''6''' || [[https://www.youtube.com/watch?v=r7vDfLxw10U&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Примитивы синхронизации. Атомики и мьютексы в Go. Пакет context, таймеры и таймауты || 12.12.22 || ||
+
| style="background:#eaecf0;" | '''6''' || [[https://www.youtube.com/watch?v=r7vDfLxw10U&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Примитивы синхронизации. Атомики и мьютексы в Go. Пакет context, таймеры и таймауты || 12.12.22
 
|-
 
|-
| style="background:#eaecf0;" | '''7''' || [[https://www.youtube.com/watch?v=XUDsXKkZbNM&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Работа с json и динамическими данными. Бенчмарки и тестирование || 19.12.22 || ||
+
| style="background:#eaecf0;" | '''7''' || [[https://www.youtube.com/watch?v=XUDsXKkZbNM&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Работа с json и динамическими данными. Бенчмарки и тестирование || 19.12.22  
 
|-
 
|-
 
| Конец первого модуля |
 
| Конец первого модуля |
 
|-
 
|-
| style="background:#eaecf0;" | '''8''' || [[https://www.youtube.com/watch?v=n8m0XeP3SMA&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Работа с сетью в Go. Профилирование веба || 17.01.23 || ||
+
| style="background:#eaecf0;" | '''8''' || [[https://www.youtube.com/watch?v=n8m0XeP3SMA&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Работа с сетью в Go. Профилирование веба || 17.01.23  
 
|-
 
|-
| style="background:#eaecf0;" | '''9''' || [[https://www.youtube.com/watch?v=i8eMwAk7Ifc&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Язык SQL. Различные виды баз данных. Работа с БД из Go || 23.01.23 || ||
+
| style="background:#eaecf0;" | '''9''' || [[https://www.youtube.com/watch?v=i8eMwAk7Ifc&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Язык SQL. Различные виды баз данных. Работа с БД из Go || 23.01.23  
 
|-
 
|-
| style="background:#eaecf0;" | '''10''' || [[https://www.youtube.com/watch?v=JxTCWKxr-Ww&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Работа с БД из Go. REST API и написание бота || 30.01.23 || ||
+
| style="background:#eaecf0;" | '''10''' || [[https://www.youtube.com/watch?v=JxTCWKxr-Ww&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Работа с БД из Go. REST API и написание бота || 30.01.23  
 
|-
 
|-
| style="background:#eaecf0;" | '''11''' || [[https://www.youtube.com/watch?v=1ViIqOxoS24&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Управление зависимостями в Go. Построение приложений || 06.02.23 || ||
+
| style="background:#eaecf0;" | '''11''' || [[https://www.youtube.com/watch?v=1ViIqOxoS24&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Управление зависимостями в Go. Построение приложений || 06.02.23  
 
|-
 
|-
| style="background:#eaecf0;" | '''12''' || [[https://www.youtube.com/watch?v=puZ7CCJDMPk&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Микросервисная и монолитная архитектуры. protobuf и gPRC || 20.02.23 || ||
+
| style="background:#eaecf0;" | '''12''' || [[https://www.youtube.com/watch?v=puZ7CCJDMPk&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2 Запись]] Микросервисная и монолитная архитектуры. protobuf и gPRC || 20.02.23  
 
|-
 
|-
| style="background:#eaecf0;" | '''13''' || [[ Запись]] Конфигурирование сервиса и мониторинги || 20.03.23 ||  ||
+
| style="background:#eaecf0;" | '''13''' || [[https://www.youtube.com/watch?v=NPVEmfRrGOw&list=PLmA-1xX7IuzAnhO7LGn4gRDHjPStjyPi2&index=14 Запись]] Конфигурирование сервиса и мониторинги || 20.03.23
 
|-
 
|-
 
|}
 
|}
 
=== Записи консультаций ===
 
  
 
==Формула оценивания==
 
==Формула оценивания==
  
Оценка = МИН(ДЗ + бонус, 10), где ДЗ-средняя оценка за 8 домашних заданий
+
Оценка = МИН(ДЗ + бонус, 10), где ДЗ-средняя оценка за 5 обязательных домашних заданий (одно из которых с двойным весом), а под бонусом понимается ДЗ-6 (баллы x2) и действительно бонусное дз :)
  
 
== Домашние задания ==
 
== Домашние задания ==
Строка 72: Строка 70:
 
# [https://github.com/Serggorsar/go2223/tree/main/hw4_test_coverage ДЗ 4 (Тесты)]: ''выдано 23.01.23'', '''19.02.23 23:00 МСК'''
 
# [https://github.com/Serggorsar/go2223/tree/main/hw4_test_coverage ДЗ 4 (Тесты)]: ''выдано 23.01.23'', '''19.02.23 23:00 МСК'''
 
# [https://github.com/Serggorsar/go2223/tree/main/hw5_db_explorer ДЗ 5 (Базы данных), баллы х2]: ''выдано 20.02.23'', '''12.03.23 23:59 МСК'''
 
# [https://github.com/Serggorsar/go2223/tree/main/hw5_db_explorer ДЗ 5 (Базы данных), баллы х2]: ''выдано 20.02.23'', '''12.03.23 23:59 МСК'''
#
+
# [https://github.com/Serggorsar/go2223/tree/main/hw6_microservice ДЗ 6 (Микросервисы, необязательное), баллы х2]: ''выдано 20.03.23'', '''04.04.23 11:59 МСК'''
 +
# [https://github.com/Serggorsar/go2223/tree/main/hw_bonus_signer ДЗ бонус (Каналы)]: ''выдано 20.03.23'', '''02.04.23 23:59 МСК'''
  
 
== Литература ==
 
== Литература ==

Текущая версия на 20:38, 28 марта 2023

О курсе

Первый курс из блока дисциплин, обучающих построению высоконагруженных систем. В рамках курса вы изучите основы синтаксиса и приложения языка для написания сервисов машинного обучения.

Занятия проводятся в Zoom по понедельникам в 19:00

Контакты

Канал курса в TG: channel link

Чат курса в TG: chat link

Преподаватель: Горшков Сергей Сергеевич

Ассистент Контакты
Игорь Балюк @lodthe
Адиль @kussyadil

Материалы курса

Ссылка на плейлист курса на YouTube: YouTube playlist

Ссылка на GitHub с материалами курса: GitHub repository

Занятие Тема Дата
1 [Запись] Установка языка. Основы синтаксиса, основные типы данных. Работа со стандартным I/O 07.11.22
2 [Запись] Функции. Указатели. Написание тестов 14.11.22
3 [Запись] Аналог ООП в Go. Структуры и методы, интерфейсы 21.11.22
4 [Запись] Горутины и каналы в Go. Экскурс в мультиплексирование и pipe в Linux 28.11.22
5 [Запись] Синхронизация, пул воркеров, состояние гонки. Экскурс в проблемы многопоточного программирования 05.12.22
6 [Запись] Примитивы синхронизации. Атомики и мьютексы в Go. Пакет context, таймеры и таймауты 12.12.22
7 [Запись] Работа с json и динамическими данными. Бенчмарки и тестирование 19.12.22
8 [Запись] Работа с сетью в Go. Профилирование веба 17.01.23
9 [Запись] Язык SQL. Различные виды баз данных. Работа с БД из Go 23.01.23
10 [Запись] Работа с БД из Go. REST API и написание бота 30.01.23
11 [Запись] Управление зависимостями в Go. Построение приложений 06.02.23
12 [Запись] Микросервисная и монолитная архитектуры. protobuf и gPRC 20.02.23
13 [Запись] Конфигурирование сервиса и мониторинги 20.03.23

Формула оценивания

Оценка = МИН(ДЗ + бонус, 10), где ДЗ-средняя оценка за 5 обязательных домашних заданий (одно из которых с двойным весом), а под бонусом понимается ДЗ-6 (баллы x2) и действительно бонусное дз :)

Домашние задания

  1. Контест 1: выдан 23.11.22, дедлайн - 30.11.22 10:00 05.12.22 02:00 МСК
  2. Контест 2: выдан 28.11.22, 08.12.22 23:59 МСК
  3. ДЗ 3 (Бенчмарки): выдано 23.01.23, 05.02.23 23:59 МСК
  4. ДЗ 4 (Тесты): выдано 23.01.23, 19.02.23 23:00 МСК
  5. ДЗ 5 (Базы данных), баллы х2: выдано 20.02.23, 12.03.23 23:59 МСК
  6. ДЗ 6 (Микросервисы, необязательное), баллы х2: выдано 20.03.23, 04.04.23 11:59 МСК
  7. ДЗ бонус (Каналы): выдано 20.03.23, 02.04.23 23:59 МСК

Литература

  • Nadareishvili, I., Mitra, R., McLarty, M., & Amundsen, M. (2016). Microservice Architecture : Aligning Principles, Practices, and Culture: Vol. First edition. O’Reilly Media.
  • Основы многопоточного, параллельного и распределенного программирования, Эндрюс
  • Джей Макгаврен. Head First. Изучаем Go
  • Марк Саммерфильд. Программирование на языке Go
  • Михалис Цукалос. Golang для профи