Летняя смена НОУ Поиск 2023

Планы на смену

Еду этим августом в НОУ Поиск в ИТ смену. Буду рассказывать про бекенд разработку 2 недели. Может быть сделаю запись видео и потом выложу у себя на ютубе.

Концепция — Получить понимаение как вот оно работает в интернетах ваших.

Накидал план для Гигачадов.

  1. Как работает интернет. Из каких частей он состоит. Накидываем всё высокоуровнево, чтобы понять, что нужно изучить. Разбираем, какие науки и предметы используются в интернете(типа физика математика и тд).

  2. Как общаются устройства в сети. Понятие сокета. Понятие http. Пытаемся открыть голый сокет и отправить запрос полностью вручную на сервер и получить ответ.

  3. Делаем сервер на чистом сокете. Узнаем что такое "слушать порт". Пытаемся отдать html вручную по сокету. Потом пишем простой чат по сети (без бд, без ничего. Типа 50 строк кода, я надеюсь)

  4. Понимаем, что голые сокеты — это жесть. Приходим к пониманию, зачем нужны uvicorn (asgi server), starlette (toolkit), fastapi (framework). Изучаем роутинг, виды запросов и куки/сессии.

  5. Ой, а как хранить данные? Знакомимся с СУБД. Небольшой экскурс в БД: базовые операции SQL. Делаем запросы в БД postgresql в консоли.

  6. А как делать запросы из приложения? Подключаемся напрямую по сокету в постгрес, отправляем запросы и получаем ответы. Понимаем, что это жесть и берем драйвер БД (psycopg3, asyncpg).

  7. Понимаем, что драйвер БД это жесть и берем ORM- либо Алхимия либо Tortoise. Учимся ими пользоваться и радуемся, как всё стало просто. Разбираем достоинства и недостатки ORM.

Результаты

  • Вспомнили Python и изучили декораторы, аннотации типов, дата-классы, генераторы, асинхронность (async/await).
  • Изучили основы работы интернета: tcp/ip, OSI, socket, port, http.
  • Написали чат на чистых tcp сокетах. Изучили curses.
  • Написали чат на websockets с помощью FastAPI.
  • Использовали sqlite и sqlalchemy.

Исходный код всех лекций

Презентация проекта команды pdf.

Ночная лекция

Прочитал лекцию про нейросети: "Как стать кошкодевочкой"