#faq #backend
F.A.Q. по курсу «Начинающий Backend-разработчик»
Задавать вопросы при обучении — важно. Совершенно нормально, если что-то непонятно с первого раза, поэтому спрашивайте почаще.
В этом посте мы собрали самые популярные вопросы, которые задавали наши студенты. Если не найдете в этом списке того, что вам нужно, пожалуйста, напишите одному из преподавателей.
Вопрос #1: Почему у меня не запускаются тесты из Pycharm?
Ответ: По умолчанию Pycharm использует unitests. Чтобы использовать pytest в качестве дефолтного раннера тестов надо зайти в Preferences -> Tools -> Python Integrated Tools и в разделе testing выбрать pytest.
После этого у вас должны появится такие зеленые стрелочки рядом с тест-кейсом, как на картинке внизу поста.
Вопрос #2: Как надо делать поллер?
Ответ: Для реализации логики поллера предусмотрен отдельный класс Poller. В нем необходимо реализовать следующие функции:
poll - пока Poller не остановлен вызывает метод poll из VkApi accessor и, если пришли новые события, то отправляет их в bot_manager.handle_updates
start - запускает метод poll с помощью asyncio.create_task и сохраняет эту задачу к себе.
stop - gracefully завершает Poller, то есть ждет пока завершится после poll, а не просто удаляет задачу.
Вопрос #3: Как реализовать VkApi Accessor?
Ответ: Accessor находится в отдельном классе. Необходимо реализовать следующие методы:
_get_long_poll_server - запросить сервер для Long Polling и сохранить его параметры в стейте accsessor'а.
poll - отправить long poll запрос и вернуть список Update.
send_message - отправить сообщение в VkApi
connect - инстанцировать ClientSession и вызвать _get_long_poll_server
disconnect - gracefully закрыть ClientSession.
Вопрос #4: Что делает BotManager?
Ответ: BotManager отвечает за логику по обработке сообщений. Он принимает в себя список сообщений и решает что делать с каждым из ним. Здесь позже будет реализована логика игры. Сейчас достаточно, чтобы он просто вызывал метод vk_api.send_message с непустым сообщением при каждом новом сообщении, то есть отправлял фиксированное сообщение на каждое новое сообщение пользователя.
Вопрос #5: У меня не проходят тесты на создание тем/вопросов или тест на список вопросов возвращает больше вопросов чем нужно, что делать?
Ответ: Состояние сервера поддерживается всю тест-сессию. Это значит, что каждый тест запускается на том же сервере, не запуская его заново, соответственно база данных тоже не сбрасывается. Для того чтобы запускать каждый новый тест на чистой базе используется фикстура clear_db. Она вызывается перед запуском каждого теста и очищает базу данных. Так как невозможно предугать как каждый студент сделает структуру своей базы, то был объявлен и частично реализован метод у базы данных clear. Вам нужно дописать его под себя.
Вопрос #6: Какие события от ВКонтакте надо обрабатывать?
Ответ: В данной домашней работы надо обрабатывать события только с типом message_new.
Вопрос #7: Я начал делать проект до того, как были внесены правки касательно версии VK API, что делать?
Ответ: Необходимо заменить свои файлы app/store/vk_api/dataclasses.py и tests/bot/test_bot_manager.py на этот и этот соответственно.
F.A.Q. по курсу «Начинающий Backend-разработчик»
Задавать вопросы при обучении — важно. Совершенно нормально, если что-то непонятно с первого раза, поэтому спрашивайте почаще.
В этом посте мы собрали самые популярные вопросы, которые задавали наши студенты. Если не найдете в этом списке того, что вам нужно, пожалуйста, напишите одному из преподавателей.
Вопрос #1: Почему у меня не запускаются тесты из Pycharm?
Ответ: По умолчанию Pycharm использует unitests. Чтобы использовать pytest в качестве дефолтного раннера тестов надо зайти в Preferences -> Tools -> Python Integrated Tools и в разделе testing выбрать pytest.
После этого у вас должны появится такие зеленые стрелочки рядом с тест-кейсом, как на картинке внизу поста.
Вопрос #2: Как надо делать поллер?
Ответ: Для реализации логики поллера предусмотрен отдельный класс Poller. В нем необходимо реализовать следующие функции:
poll - пока Poller не остановлен вызывает метод poll из VkApi accessor и, если пришли новые события, то отправляет их в bot_manager.handle_updates
start - запускает метод poll с помощью asyncio.create_task и сохраняет эту задачу к себе.
stop - gracefully завершает Poller, то есть ждет пока завершится после poll, а не просто удаляет задачу.
Вопрос #3: Как реализовать VkApi Accessor?
Ответ: Accessor находится в отдельном классе. Необходимо реализовать следующие методы:
_get_long_poll_server - запросить сервер для Long Polling и сохранить его параметры в стейте accsessor'а.
poll - отправить long poll запрос и вернуть список Update.
send_message - отправить сообщение в VkApi
connect - инстанцировать ClientSession и вызвать _get_long_poll_server
disconnect - gracefully закрыть ClientSession.
Вопрос #4: Что делает BotManager?
Ответ: BotManager отвечает за логику по обработке сообщений. Он принимает в себя список сообщений и решает что делать с каждым из ним. Здесь позже будет реализована логика игры. Сейчас достаточно, чтобы он просто вызывал метод vk_api.send_message с непустым сообщением при каждом новом сообщении, то есть отправлял фиксированное сообщение на каждое новое сообщение пользователя.
Вопрос #5: У меня не проходят тесты на создание тем/вопросов или тест на список вопросов возвращает больше вопросов чем нужно, что делать?
Ответ: Состояние сервера поддерживается всю тест-сессию. Это значит, что каждый тест запускается на том же сервере, не запуская его заново, соответственно база данных тоже не сбрасывается. Для того чтобы запускать каждый новый тест на чистой базе используется фикстура clear_db. Она вызывается перед запуском каждого теста и очищает базу данных. Так как невозможно предугать как каждый студент сделает структуру своей базы, то был объявлен и частично реализован метод у базы данных clear. Вам нужно дописать его под себя.
Вопрос #6: Какие события от ВКонтакте надо обрабатывать?
Ответ: В данной домашней работы надо обрабатывать события только с типом message_new.
Вопрос #7: Я начал делать проект до того, как были внесены правки касательно версии VK API, что делать?
Ответ: Необходимо заменить свои файлы app/store/vk_api/dataclasses.py и tests/bot/test_bot_manager.py на этот и этот соответственно.
#frontend #backend #diploma
Сегодня отвечаем на вопросы про дипломный проект и домашние задания.
1. Как выглядит дипломная работа на курсах KTS для разработчиков?
Диплом студенты пишут по частям, выполняя ДЗ. Все наши домашние задания — части одного проекта. После завершения его можно будет положить в портфолио и показывать на собеседованиях.
С каждым ДЗ студент совершенствует свой уровень. Задачи можно решить и примитивными способами, но мы стараемся повысить класс будущих разработчиков и ведем учеников к тому, как пишут у нас в компании. Например, рассказываем про всякие фичи и учим ими пользоваться.
На фронтенде в качестве диплома студент пишет приложение с отображением репозиториев в Github. На бэкенде по частям собирают бота.
2. Как часто появляется новое ДЗ?
Раз в неделю на учебной платформе открывается новый модуль — набор уроков. За неделю нужно все изучить, сделать задание и отправить его преподавателям.
На картинке под этим постом — 1-й модуль курса «Начинающий frontend-разработчик».
3. Сколько времени нужно на домашние задания?
Конечно, многое зависит от опыта.
Есть люди, которые у нас уже учились. Они сбрасывают задание через пару дней после открытия нового модуля. Но на последнем потоке большинство ДЗ приходит в день дедлайна.
Поэтому рассчитывайте минимум на 2 дня плотной работы. В среднем, скорее всего, нужно 3-4 дня по 4-6 часов. Но на первое ДЗ сразу выделите максимум времени, чтобы успеть. После вы сможете планировать время точнее.
Тех, кто проходил или проходит сейчас наши курсы, просим поделиться в комментариях своим опытом по выполнению ДЗ.
4. Как проходит защита и как к ней подготовиться?
К защите диплома допускаются только те, кто сдал все задания. Студент показывает свой проект преподавателям, а они задают вопросы, как сделана та или иная часть. Отдельной проверки теоретической базы на сдаче диплома нет.
Если ваше дз не приняли, следующие мы уже не принимаем — но вы по-прежнему можете читать и смотреть все материалы.
5. Нужно ли повторять все материалы перед защитой?
Мы спрашиваем только про то, как сделан проект, пока вы его презентуете. Т.к. проект состоит из ДЗ, можно сказать, что мы повторяем пройденное на курсе.
Зубрить теорию не надо, а вот пройтись по своему диплому и освежить знания будет полезно. Главное, сдавайте домашние задания вовремя, чтобы вас допустили к защите.
6. Если у вас остались вопросы про ДЗ и диплом, задавайте в комментариях 👇
Сегодня отвечаем на вопросы про дипломный проект и домашние задания.
1. Как выглядит дипломная работа на курсах KTS для разработчиков?
Диплом студенты пишут по частям, выполняя ДЗ. Все наши домашние задания — части одного проекта. После завершения его можно будет положить в портфолио и показывать на собеседованиях.
С каждым ДЗ студент совершенствует свой уровень. Задачи можно решить и примитивными способами, но мы стараемся повысить класс будущих разработчиков и ведем учеников к тому, как пишут у нас в компании. Например, рассказываем про всякие фичи и учим ими пользоваться.
На фронтенде в качестве диплома студент пишет приложение с отображением репозиториев в Github. На бэкенде по частям собирают бота.
2. Как часто появляется новое ДЗ?
Раз в неделю на учебной платформе открывается новый модуль — набор уроков. За неделю нужно все изучить, сделать задание и отправить его преподавателям.
На картинке под этим постом — 1-й модуль курса «Начинающий frontend-разработчик».
3. Сколько времени нужно на домашние задания?
Конечно, многое зависит от опыта.
Есть люди, которые у нас уже учились. Они сбрасывают задание через пару дней после открытия нового модуля. Но на последнем потоке большинство ДЗ приходит в день дедлайна.
Поэтому рассчитывайте минимум на 2 дня плотной работы. В среднем, скорее всего, нужно 3-4 дня по 4-6 часов. Но на первое ДЗ сразу выделите максимум времени, чтобы успеть. После вы сможете планировать время точнее.
Тех, кто проходил или проходит сейчас наши курсы, просим поделиться в комментариях своим опытом по выполнению ДЗ.
4. Как проходит защита и как к ней подготовиться?
К защите диплома допускаются только те, кто сдал все задания. Студент показывает свой проект преподавателям, а они задают вопросы, как сделана та или иная часть. Отдельной проверки теоретической базы на сдаче диплома нет.
Если ваше дз не приняли, следующие мы уже не принимаем — но вы по-прежнему можете читать и смотреть все материалы.
5. Нужно ли повторять все материалы перед защитой?
Мы спрашиваем только про то, как сделан проект, пока вы его презентуете. Т.к. проект состоит из ДЗ, можно сказать, что мы повторяем пройденное на курсе.
Зубрить теорию не надо, а вот пройтись по своему диплому и освежить знания будет полезно. Главное, сдавайте домашние задания вовремя, чтобы вас допустили к защите.
6. Если у вас остались вопросы про ДЗ и диплом, задавайте в комментариях 👇
#backend
Технологии бэкенда: run_in_executor
Сегодня поговорим о том, как и зачем в асинхронном коде запускать синхронные операции.
Полная версия с подробностями лежит по ссылке в телеграфе.
Краткое содержание:
Вы спокойно пишете асинхронный код, как вдруг возникает непреодолимая потребность выполнить синхронную операцию.
Решение таково: запустить IO- или CPU-операцию не в event loop, а в отдельном потоке/процессе.
Механизм асинхронного запуска такого рода в asyncio называется run_in_executor.
Посмотреть отдельно синтаксис asyncio.loop.run_in_executor можно здесь.
Технологии бэкенда: run_in_executor
Сегодня поговорим о том, как и зачем в асинхронном коде запускать синхронные операции.
Полная версия с подробностями лежит по ссылке в телеграфе.
Краткое содержание:
Вы спокойно пишете асинхронный код, как вдруг возникает непреодолимая потребность выполнить синхронную операцию.
Решение таково: запустить IO- или CPU-операцию не в event loop, а в отдельном потоке/процессе.
Механизм асинхронного запуска такого рода в asyncio называется run_in_executor.
Посмотреть отдельно синтаксис asyncio.loop.run_in_executor можно здесь.
Telegraph
run_in_executor
Когда пригодится Тема сегодняшнего поста будет полезна, если в асинхронном коде вам вдруг позарез понадобилось вызвать синхронную операцию — или выполнить тяжелую cpu bound операцию. Подробнее о синхронных операциях Выделяют 2 основных типа синхронных операций:…
#backend #артём_бакулев
Разбираемся в asyncio 🐙
Наш бэкенд-разработчик Артём опубликовал на Хабре статью с разбором принципов асинхронного программирования: когда полезно, когда не очень и зачем, собственно, это учить.
Не ждите, как IO-bound-операция, заходите почитать!
Разбираемся в asyncio: где полезно, а где — нет?
Разбираемся в asyncio 🐙
Наш бэкенд-разработчик Артём опубликовал на Хабре статью с разбором принципов асинхронного программирования: когда полезно, когда не очень и зачем, собственно, это учить.
Не ждите, как IO-bound-операция, заходите почитать!
Разбираемся в asyncio: где полезно, а где — нет?
Хабр
Разбираемся в асинхронности: где полезно, а где — нет?
«Самое худшее, когда нужно ждать и не можешь ничего сделать. От этого можно сойти с ума» Э.М. Ремарк Привет! Меня зовут Артём, я backend-разработчик в отделе спецпроектов KTS . Я занимаюсь проектами,...
👍11🔥3
#курсы #frontend #backend #хабр
Интервью со студентами школы Metaclass 🏪
В понедельник начинают учиться студенты новых бесплатных курсов по React и Python, а мы пока собрали немного обратной связи от тех, кто уже прошёл обучение и попал к нам на стажировку:
🔸 Интервью с Анастасией Жуковой, курс «Начинающий React-разработчик»
🔹 Интервью с Иваном Пакеевым, курс «Начинающий Backend-разработчик»
Пока мы готовили интервью, набор на курс по фронтенду закрылся из-за большого количества участников, но вы ещё можете записаться на курс по бэкенду. Старт — 6 февраля.
Интервью со студентами школы Metaclass 🏪
В понедельник начинают учиться студенты новых бесплатных курсов по React и Python, а мы пока собрали немного обратной связи от тех, кто уже прошёл обучение и попал к нам на стажировку:
🔸 Интервью с Анастасией Жуковой, курс «Начинающий React-разработчик»
🔹 Интервью с Иваном Пакеевым, курс «Начинающий Backend-разработчик»
Пока мы готовили интервью, набор на курс по фронтенду закрылся из-за большого количества участников, но вы ещё можете записаться на курс по бэкенду. Старт — 6 февраля.
Хабр
Интервью со студенткой школы Metaclass, которая прошла два наших курса и дважды попала на стажировку в KTS
Привет! 6 февраля начинается очередной поток нашей школы Metaclass по курсам frontend и backend для начинающих. К сожалению, пока мы готовили интервью, набор на курс React-разработчика пришлось...
🔥7
Интервью со студентом школы Metaclass c курса бэкенда
21-го августа мы запустим новый поток школы, а пока собираем и делимся обратной связью от выпускников — стажёров KTS.
В сегодняшней статье-интервью о прохождении курса рассказывает наш бэкендер Кирилл Лапушинский:
👉 читать статью
#курсы #frontend #backend #хабр
21-го августа мы запустим новый поток школы, а пока собираем и делимся обратной связью от выпускников — стажёров KTS.
В сегодняшней статье-интервью о прохождении курса рассказывает наш бэкендер Кирилл Лапушинский:
👉 читать статью
#курсы #frontend #backend #хабр
Хабр
Как за полтора месяца получить опыт в IT и найти работу: интервью со студентом школы Metaclass
Привет! 21-го августа начинается очередной поток нашей школы Metaclass по курсам фронтенда и бэкенда для начинающих. Для улучшения курсов мы спрашиваем наших учеников о том, что было легко во время...
👍2👀2🔥1👌1
Сегодня — вебинары по курсу фронтенда и бэкенда
Напоминаем, что сегодня мы проводим вебинары по школе, которая стартует 21-го августа. Зарегистрироваться и получить ссылку можно на страницах курсов:
🔹«Начинающий Backend-разработчик», начало в 17:00 МСК
🔸«Начинающий React-разработчик», начало в 18:00 МСК
На вебинарах расскажем:
1. Про команды преподавателей на фронтенде и бэкенде
2. О программах каждого из курсов
3. Кому обучение подойдёт лучше всего
4. Как проходят занятия
5. Что нужно будет сделать на выпускном проекте
6. Кто в команде менторов в этому году
У вас есть свой вопрос? Приходите и задайте его!
Вебинары проводят ведущие преподаватели курсов Андрей Баронский и Фёдор Биличенко.
#школа #frontend #backend
Напоминаем, что сегодня мы проводим вебинары по школе, которая стартует 21-го августа. Зарегистрироваться и получить ссылку можно на страницах курсов:
🔹«Начинающий Backend-разработчик», начало в 17:00 МСК
🔸«Начинающий React-разработчик», начало в 18:00 МСК
На вебинарах расскажем:
1. Про команды преподавателей на фронтенде и бэкенде
2. О программах каждого из курсов
3. Кому обучение подойдёт лучше всего
4. Как проходят занятия
5. Что нужно будет сделать на выпускном проекте
6. Кто в команде менторов в этому году
У вас есть свой вопрос? Приходите и задайте его!
Вебинары проводят ведущие преподаватели курсов Андрей Баронский и Фёдор Биличенко.
#школа #frontend #backend
🔥2👍1👌1
Записи ознакомительных вебинаров 17-го августа по курсам фронтенда и бэкенда
Записи вебинаров доступны по ссылкам:
🔹«Вебинар о курсе Начинающий Backend-разработчик»
🔸«Вебинар о курсе Начинающий React-разработчик»
Посмотреть программу куров и записаться можно по ссылкам:
🔹«Начинающий Backend-разработчик»
🔸«Начинающий React-разработчик»
#школа #frontend #backend
Записи вебинаров доступны по ссылкам:
🔹«Вебинар о курсе Начинающий Backend-разработчик»
🔸«Вебинар о курсе Начинающий React-разработчик»
Посмотреть программу куров и записаться можно по ссылкам:
🔹«Начинающий Backend-разработчик»
🔸«Начинающий React-разработчик»
#школа #frontend #backend
👍2🔥2👏1