Metaclass by KTS
911 subscribers
132 photos
2 videos
256 links
Курсы для разработчиков, менеджеров и аналитиков от компании KTS

Ссылка на чат школы — https://t.iss.one/kts_dev
Download Telegram
Channel created
Channel photo updated
Привет!

Школа Метакласс набирает обороты, и мы решили сделать для нее отдельный канал. Здесь мы будем выкладывать полезные материалы для студентов: как учиться, отдыхать, сколько времени нужно для дипломного проекта и частые ошибки из домашних заданий.

В 2018 году мы запустили первый поток. Школа быстро растет: в феврале мы получили 200 заявок на обучение, а в июле уже 600.


Зачем учиться у нас?

Наш курс полностью прикладной: мы учим тому, что используем сами и показываем реальные примеры. За время обучения вы получите практический опыт: сделаете дипломный проект, который можно положить в портфолио и показывать на собеседованиях.

Ребят, которые хорошо учатся, мы берем к себе на стажировку с возможностью дальнейшего трудоустройства. Сейчас в KTS работают 22 выпускника школы.


Почитать про наши курсы и преподавателей: https://metaclass.kts.studio

Прочитать подробное интервью с одним из наших студентов:
https://habr.com/ru/company/kts/blog/572862/
#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 на этот и этот соответственно.