⚡️Ищем контрибьютеров для django-modern-rest!
Сегодня пообщались с Никитой Соболевым — он приглашает вас поучаствовать в разработке опенсорсного фреймворка django-modern-rest. Очень не хватает контрибьюторов в новом проекте! Свежий прорывной фреймворк — отличный опыт в резюме мидл/сеньор разработчика и ваш личный вклад в опенсорс!
👉 Отправляйте пулл-реквесты
👉 Тестируйте код
👉 Рассказывайте знакомым и используйте сами
Задач много, на всех хватит:
https://github.com/wemake-services/django-modern-rest/issues/138
https://github.com/wemake-services/django-modern-rest/issues/139
https://github.com/wemake-services/django-modern-rest/issues/140
https://github.com/wemake-services/django-modern-rest/issues/141
📌 Для новичков простые задачки по оперсорс проектам можно найти в канале @opensource_findings_python
Сегодня пообщались с Никитой Соболевым — он приглашает вас поучаствовать в разработке опенсорсного фреймворка django-modern-rest. Очень не хватает контрибьюторов в новом проекте! Свежий прорывной фреймворк — отличный опыт в резюме мидл/сеньор разработчика и ваш личный вклад в опенсорс!
👉 Отправляйте пулл-реквесты
👉 Тестируйте код
👉 Рассказывайте знакомым и используйте сами
Задач много, на всех хватит:
https://github.com/wemake-services/django-modern-rest/issues/138
https://github.com/wemake-services/django-modern-rest/issues/139
https://github.com/wemake-services/django-modern-rest/issues/140
https://github.com/wemake-services/django-modern-rest/issues/141
📌 Для новичков простые задачки по оперсорс проектам можно найти в канале @opensource_findings_python
🔥12❤2
❓Почему не нужно тратить время на asyncio
❗️При работе с асинхронным кодом в FastAPI стоит использовать только новые библиотеки, которые построены на AnyIO.
Почему так? Давайте разберемся!
📌Асинхронность в Python появилась только в версии 3.5. Разработчики завезли asyncio и сказали, что это стандартный event loop, но поторопились. На тот момент asyncio был самый популярным event loop, но при этом и самым «топорным», потому что его начали разрабатывать очень давно.
С начала его разработки появились очень продвинутые event loop, у которых есть умные переключалки, высокоуровневые объекты, которые работают лучше и эффективнее.
🔎Например, они дают возможность, распараллелить одну корутину на 10 и она не закончит работать, пока не отработают все 10 новых. То есть вы пишете все еще линейный код, но «под капотом» он распараллеливается, синхронизируется и собирается обратно.
А asyncio при этом оставался устаревшим. И чтобы эту проблему исправить, над ним сделали надстройку, которая превращает его в «конфетку» — AnyIO. Она решает и множество других проблем.
При этом asyncio переписывают не только делая обертки сверху, но и делая подмены снизу.
🔎Так, FastAPI использует под капотом Uvicorn, который «подменяет» Python. И вы уже пользуетесь не обычным Python, а пропатченным!
Это подменяет asyncio на event loop с альтернативной логикой, которая работает намного быстрее, чем asyncio.
📌Таким образом, от того самого asyncio уже давно ничего не осталось, его уже и снаружи обернули, и внутри подменили.
➡️Новые библиотеки, которые пишут для работы с асинхронным кодом все строятся на AnyIO. На голом asyncio уже не пишут ничего, потому что он сильно устарел и работать с ним сложно и не стоит в него закапываться.
💥Поработать с асинхронным кодом вы можете на нашем курсе «FastAPI: Создаем AI генератор сайтов с нуля».
🚀Уже можно забронировать место на следующий поток с 10 ноября на тарифе VIP или PRO с ментором или пройти его самостоятельно на тарифе Freestyle.
Оставляйте заявку на странице курса или пишите нам в Телеграм!
❗️При работе с асинхронным кодом в FastAPI стоит использовать только новые библиотеки, которые построены на AnyIO.
Почему так? Давайте разберемся!
📌Асинхронность в Python появилась только в версии 3.5. Разработчики завезли asyncio и сказали, что это стандартный event loop, но поторопились. На тот момент asyncio был самый популярным event loop, но при этом и самым «топорным», потому что его начали разрабатывать очень давно.
С начала его разработки появились очень продвинутые event loop, у которых есть умные переключалки, высокоуровневые объекты, которые работают лучше и эффективнее.
🔎Например, они дают возможность, распараллелить одну корутину на 10 и она не закончит работать, пока не отработают все 10 новых. То есть вы пишете все еще линейный код, но «под капотом» он распараллеливается, синхронизируется и собирается обратно.
А asyncio при этом оставался устаревшим. И чтобы эту проблему исправить, над ним сделали надстройку, которая превращает его в «конфетку» — AnyIO. Она решает и множество других проблем.
При этом asyncio переписывают не только делая обертки сверху, но и делая подмены снизу.
🔎Так, FastAPI использует под капотом Uvicorn, который «подменяет» Python. И вы уже пользуетесь не обычным Python, а пропатченным!
Это подменяет asyncio на event loop с альтернативной логикой, которая работает намного быстрее, чем asyncio.
📌Таким образом, от того самого asyncio уже давно ничего не осталось, его уже и снаружи обернули, и внутри подменили.
➡️Новые библиотеки, которые пишут для работы с асинхронным кодом все строятся на AnyIO. На голом asyncio уже не пишут ничего, потому что он сильно устарел и работать с ним сложно и не стоит в него закапываться.
💥Поработать с асинхронным кодом вы можете на нашем курсе «FastAPI: Создаем AI генератор сайтов с нуля».
🚀Уже можно забронировать место на следующий поток с 10 ноября на тарифе VIP или PRO с ментором или пройти его самостоятельно на тарифе Freestyle.
Оставляйте заявку на странице курса или пишите нам в Телеграм!
🔥5👍2
⚡️⚡️Делимся датами старта новых потоков курса «FastAPI: Создаем AI генератор сайтов с нуля» в формате созвонов с ментором!
🔥 10 ноября стартуют потоки PRO с ментором и VIP с Евгением Евсеевым!
🗣А также делимся отзывом выпускницы курса по FastAPI Ольги:
🚀В процессе обучения вы сделаете генератор сайтов: запустите первый проект на FastAPI, интегрируетесь по API с DeepSeek и подключите готовый фронтенд.
✅Преимущества формата:
— Выполняете проект в формате спринтов с дедлайнами.
— Индивидуальные созвоны с опытным разработчиком.
— Гибкий график занятий — пишите код в удобное время, учебные материалы доступны 24/7.
— Код-ревью от действующего разработчика.
— Возможность обсудить вопросы по код-ревью на последнем созвоне.
— Инсайты из опыта продуктовой разработки от действующего тимлида.
— Обсуждение и выбор технических решений, разбор архитектуры учебного проекта.
💥Осталось всего 3 места на тарифе PRO и одно на VIP! Успейте забронировать место!
👉Для записи оставьте заявку на странице или напишите нам в Телеграм
🔥 10 ноября стартуют потоки PRO с ментором и VIP с Евгением Евсеевым!
🗣А также делимся отзывом выпускницы курса по FastAPI Ольги:
Курс «FastAPI: Создаем AI генератор сайтов с нуля» мне очень понравился.
Это практический курс, как и все уроки Девмана, на которых учатся на практике.
Это курс не просто про FastAPI, это что-то гораздо большее. Это про программирование на Python вообще.
Кроме самого фреймворка FastAPI в курс входят современные инструменты, которые используются в настоящих рабочих проектах. Использование нейросетей тоже очень актуальная тема.
С первых шагов курса мы не просто учились новому, а учились учиться или изучать новое. Писать прототипы, мокапы, планомерно тестировать.
Необычный формат курса. Живое общение с профессионалом. А это, точно, всегда полезно. При таком формате каждый получит то, чего не хватает именно ему.
🚀В процессе обучения вы сделаете генератор сайтов: запустите первый проект на FastAPI, интегрируетесь по API с DeepSeek и подключите готовый фронтенд.
✅Преимущества формата:
— Выполняете проект в формате спринтов с дедлайнами.
— Индивидуальные созвоны с опытным разработчиком.
— Гибкий график занятий — пишите код в удобное время, учебные материалы доступны 24/7.
— Код-ревью от действующего разработчика.
— Возможность обсудить вопросы по код-ревью на последнем созвоне.
— Инсайты из опыта продуктовой разработки от действующего тимлида.
— Обсуждение и выбор технических решений, разбор архитектуры учебного проекта.
💥Осталось всего 3 места на тарифе PRO и одно на VIP! Успейте забронировать место!
👉Для записи оставьте заявку на странице или напишите нам в Телеграм
Как работает Девман. Часть 2. Код-ревью
Код-ревью — это практика в разработке программного обеспечения, когда более опытный специалист просматривает код и по итогам дает автору список улучшений, которые нужны, чтобы влить код в основную ветку проекта. Ревью не столько помогает отловить баги и ошибки в работе программы — это все-таки больше к тестированию, сколько – сделать код легко читаемым, масштабируемым, стабильным и безопасным.
⚡️ Код-ревью от действующего разработчика — ключевое звено методики Девмана. Ученик получает список улучшений, которые расскажут про best practice, помогут сделать код оптимальнее, изящнее, чище. Код-ревью позволяет сократить время обучения в разы, подняв планку качества кода наших выпускников до уровня джун+/миддл.
⚡️ Чистота кода. В Python есть обязательный стандарт PEP8, в котором рассмотрены правила форматирования и наименования объектов. Применение стандарта позволяет легко читать код, а не только писать. Часть подъем отловит настроенный линтер, остальное получится найти только на ручном код-ревью.
В интернете можно найти много книг по чистоте кода. Но в требованиях к коду нет единства. Общепринятого списка лучших практик в одном учебнике не найти. Поэтому в каждой компании они немного свой.
⚡️ Улучшения Девмана. Улучшения всегда имеют блок мотивации — чем предложенный вариант кода лучше и в какой ситуации. Почти всегда улучшение сводится к усовершенствования читаемости, возможностей поддержки и/или наращивания функционала. Для ревьюеров действует правило «не уверен — не штрафуй». Если разработчик не может аргументировать, чем предложенный вариант лучше, то вариант отклоняется. Никаких безосновательных требований из серии «непреложная истина — просто делай так и не спрашивай». Если уверены, что в данной ситуации предложенное проверяющим решение не оптимально — аргументируйте. Опирайтесь на конкретные кейсы. «Потому что Вася сказал» — не работает в обе стороны.
⚡️ Контекст важен. Код оценивается только применительно к конкретной ситуации. ООП незаменимо для Django ORM, но использование его для пары запросов через API усложняет поддержку и чтение кода. Не надо забивать гвозди микроскопом!
⚡️ Накопление опыта. В Девмане накоплен почти 20-летний опыт веб-разработки, которые позволяет сделать код стабильный, расширяемым и простым для поддержки. Да-да, автор курса Евгений начинал, когда еще даже первую Джангу только готовили к релизу! База улучшений Девмана – это больше, чем опыт одного разработчика. Это копилка, куда мы собираем опыт многих специалистов.
⚡️ Критика или советы. Улучшения не нужно рассматривать как список ошибок или критику. Вы выполнили урок, код работает! Уже победа! Но предусмотреть все проблемы, не имея опыта разработки и поддержки ПО невозможно. Во время обучения лучше максимально «наступить на грабли» и разобраться во всех неудачных решениях, которые приходили в голову. Чтобы на выходе действительно владеть и применять к месту лучшие практики Python.
⚡️ Пропустить нельзя. Все улучшения придется выполнить. Во-первых, вы получаете проект, который не стыдно добавить в портфолио. Во-вторых, вы не будете повторять неудачные решения в последующих уроках. По этой же причине нельзя получить доступ к следующему уроку, не сдав предыдущий. А вот проходить несколько тем параллельно наоборот рекомендуем. Так и разнообразнее, и не теряется время, пока ждёте ревью. В разработке часто используют именно блокирующие код-ревью, когда без него нельзя влить код в main-ветку проекта. Правило блокирующих ревью действует для всех уроков Девмана.
Попробуйте код-ревью при прохождении бесплатных уроков в модулях «Основы Python» и «Знакомство с Django: ORM. Или записывайтесь на тестовый урок курса «Профессия Middle Python/Django разработчик» — расскажем подробно о том, как проходит код-ревью!
Узнайте в Энциклопедии, какой код называется чистым и наши рекомендации по форматированию кода:
— Что такое чистая функция
— Понятные названия
— Форматирование кода
У вас был опыт код-ревью на курсах или на работе? Делитесь впечатлениями в комментариях!➡️
Код-ревью — это практика в разработке программного обеспечения, когда более опытный специалист просматривает код и по итогам дает автору список улучшений, которые нужны, чтобы влить код в основную ветку проекта. Ревью не столько помогает отловить баги и ошибки в работе программы — это все-таки больше к тестированию, сколько – сделать код легко читаемым, масштабируемым, стабильным и безопасным.
⚡️ Код-ревью от действующего разработчика — ключевое звено методики Девмана. Ученик получает список улучшений, которые расскажут про best practice, помогут сделать код оптимальнее, изящнее, чище. Код-ревью позволяет сократить время обучения в разы, подняв планку качества кода наших выпускников до уровня джун+/миддл.
⚡️ Чистота кода. В Python есть обязательный стандарт PEP8, в котором рассмотрены правила форматирования и наименования объектов. Применение стандарта позволяет легко читать код, а не только писать. Часть подъем отловит настроенный линтер, остальное получится найти только на ручном код-ревью.
В интернете можно найти много книг по чистоте кода. Но в требованиях к коду нет единства. Общепринятого списка лучших практик в одном учебнике не найти. Поэтому в каждой компании они немного свой.
⚡️ Улучшения Девмана. Улучшения всегда имеют блок мотивации — чем предложенный вариант кода лучше и в какой ситуации. Почти всегда улучшение сводится к усовершенствования читаемости, возможностей поддержки и/или наращивания функционала. Для ревьюеров действует правило «не уверен — не штрафуй». Если разработчик не может аргументировать, чем предложенный вариант лучше, то вариант отклоняется. Никаких безосновательных требований из серии «непреложная истина — просто делай так и не спрашивай». Если уверены, что в данной ситуации предложенное проверяющим решение не оптимально — аргументируйте. Опирайтесь на конкретные кейсы. «Потому что Вася сказал» — не работает в обе стороны.
⚡️ Контекст важен. Код оценивается только применительно к конкретной ситуации. ООП незаменимо для Django ORM, но использование его для пары запросов через API усложняет поддержку и чтение кода. Не надо забивать гвозди микроскопом!
⚡️ Накопление опыта. В Девмане накоплен почти 20-летний опыт веб-разработки, которые позволяет сделать код стабильный, расширяемым и простым для поддержки. Да-да, автор курса Евгений начинал, когда еще даже первую Джангу только готовили к релизу! База улучшений Девмана – это больше, чем опыт одного разработчика. Это копилка, куда мы собираем опыт многих специалистов.
⚡️ Критика или советы. Улучшения не нужно рассматривать как список ошибок или критику. Вы выполнили урок, код работает! Уже победа! Но предусмотреть все проблемы, не имея опыта разработки и поддержки ПО невозможно. Во время обучения лучше максимально «наступить на грабли» и разобраться во всех неудачных решениях, которые приходили в голову. Чтобы на выходе действительно владеть и применять к месту лучшие практики Python.
⚡️ Пропустить нельзя. Все улучшения придется выполнить. Во-первых, вы получаете проект, который не стыдно добавить в портфолио. Во-вторых, вы не будете повторять неудачные решения в последующих уроках. По этой же причине нельзя получить доступ к следующему уроку, не сдав предыдущий. А вот проходить несколько тем параллельно наоборот рекомендуем. Так и разнообразнее, и не теряется время, пока ждёте ревью. В разработке часто используют именно блокирующие код-ревью, когда без него нельзя влить код в main-ветку проекта. Правило блокирующих ревью действует для всех уроков Девмана.
Попробуйте код-ревью при прохождении бесплатных уроков в модулях «Основы Python» и «Знакомство с Django: ORM. Или записывайтесь на тестовый урок курса «Профессия Middle Python/Django разработчик» — расскажем подробно о том, как проходит код-ревью!
Узнайте в Энциклопедии, какой код называется чистым и наши рекомендации по форматированию кода:
— Что такое чистая функция
— Понятные названия
— Форматирование кода
У вас был опыт код-ревью на курсах или на работе? Делитесь впечатлениями в комментариях!➡️
👍1
🥳Впереди длинные выходные и это отличный повод начать что-то новое!
Предлагаем вам наши курсы на Stepik, которые легко пройти за пару дней!
🔥Курс «Введение в Python: онлайн-магазин в телеграм за 4 часа»
Этот курс для тех, кто никогда не программировал, но хочет за выходные создать свой первый работающий проект — Telegram-бота для интернет-магазина WeekendShop.
Это идеальный старт для абсолютных новичков без технического образования. Его цель — за 4 часа дать вам практический опыт и показать, что программирование может быть доступным и увлекательным.
🔥Курс по FastAPI: чат с ИИ за 4 часа
🚀Соберите свой первый прототип на FastAPI — работающее веб-приложение с интеграцией искусственного интеллекта и real-time взаимодействием всего за 4 часа!
🔥 А чтобы было проще начать мы дарим скидку 500 рублей по промокоду NOV25, которая будет действовать до 10 ноября!
Оформить заявку можно здесь:
👉Курс «Введение в Python»
👉Курс по FastAPI
Предлагаем вам наши курсы на Stepik, которые легко пройти за пару дней!
🔥Курс «Введение в Python: онлайн-магазин в телеграм за 4 часа»
Этот курс для тех, кто никогда не программировал, но хочет за выходные создать свой первый работающий проект — Telegram-бота для интернет-магазина WeekendShop.
Это идеальный старт для абсолютных новичков без технического образования. Его цель — за 4 часа дать вам практический опыт и показать, что программирование может быть доступным и увлекательным.
🔥Курс по FastAPI: чат с ИИ за 4 часа
🚀Соберите свой первый прототип на FastAPI — работающее веб-приложение с интеграцией искусственного интеллекта и real-time взаимодействием всего за 4 часа!
🔥 А чтобы было проще начать мы дарим скидку 500 рублей по промокоду NOV25, которая будет действовать до 10 ноября!
Оформить заявку можно здесь:
👉Курс «Введение в Python»
👉Курс по FastAPI
❤1
Девман для питонистов
⚡️⚡️Делимся датами старта новых потоков курса «FastAPI: Создаем AI генератор сайтов с нуля» в формате созвонов с ментором! 🔥 10 ноября стартуют потоки PRO с ментором и VIP с Евгением Евсеевым! 🗣А также делимся отзывом выпускницы курса по FastAPI Ольги: …
Девман для питонистов
🥳Впереди длинные выходные и это отличный повод начать что-то новое! Предлагаем вам наши курсы на Stepik, которые легко пройти за пару дней! 🔥Курс «Введение в Python: онлайн-магазин в телеграм за 4 часа» Этот курс для тех, кто никогда не программировал…
⚡️ Напоминаем, что до 10 ноября действует промокод NOV25 на скидку 500 рублей на наши курсы на Stepik!
🔥Курс «Введение в Python: онлайн-магазин в телеграм за 4 часа»
Начните свой путь в программировании! Всего за 4 часа вы создадите свой первый работающий проект — Telegram-бота для интернет-магазина WeekendShop.
🔥Курс по FastAPI
Соберите свой первый прототип на FastAPI — работающее веб-приложение с интеграцией искусственного интеллекта и real-time взаимодействием всего за 4 часа!
🚀Успейте забрать курсы по сниженной цене!
Купить курсы можно здесь:
👉Курс «Основы Python»
👉Курс по FastAPI
🔥Курс «Введение в Python: онлайн-магазин в телеграм за 4 часа»
Начните свой путь в программировании! Всего за 4 часа вы создадите свой первый работающий проект — Telegram-бота для интернет-магазина WeekendShop.
🔥Курс по FastAPI
Соберите свой первый прототип на FastAPI — работающее веб-приложение с интеграцией искусственного интеллекта и real-time взаимодействием всего за 4 часа!
🚀Успейте забрать курсы по сниженной цене!
Купить курсы можно здесь:
👉Курс «Основы Python»
👉Курс по FastAPI
❓Как работает Девман. Часть 3. Структура урока
⭐️ История. Урок Девмана — это проект. В нем всегда есть заказчик, с его историей и потребностями, и тимлид, выполняющий код-ревью. Выполнить урок — значит написать программный продукт, которым удобно пользоваться, у которого есть документация и который решает проблему заказчика.
Требования к итоговому результату возрастают постепенно. В «Основах Python» достаточно написать код с учетом требований к чистоте кода. В «API веб-сервисов» уже придется оформить репозиторий на GitHub и написать первый файл документации
⭐️ Теория. Уроки не перегружены теорией — только необходимый минимум. В интернете доступно огромное количество теории в разных форматах и стилях на любой вкус. Читайте по теме урока статьи и книги, расширяйте свои знания и технологиях и внутреннем устройстве Python. Изучайте документацию и будьте в курсе новостей ИТ-отрасли. Умение самостоятельно искать информацию – тоже навык разработчика.
⭐️ Шаги. Новичку сложно проложить путь с нуля до цели, не заблудившись. Поэтому шаги — это маршрут, который мы уже проложили для вас, чтобы упростить задачу и ускорить прохождение. Став разработчиком, вы научитесь это делать самостоятельно. А потренироваться можно уже на командных проектах.
⭐️ Цель. Каждый шаг начинается с цели — точка маршрута, к которой надо прийти. Старайтесь держать в голове при этом основную задачу проекта, описанную в начале урока. Так меньше шансов свернуть не туда по мере прохождения. Читайте начало шага, чтобы понимать зачем и что нужно сделать. Каждый шаг решает задачу.
⭐️ Как проверить. Это список объективных критериев, по которым вы сможете самостоятельно убедиться, что шаг пройден.
⭐️ Что понадобится. Зная цель, ознакомьтесь с материалами и попробуйте применить предложенные инструменты для выполнения шага.
⭐️ Тестирование. Перед тем как отправить код на проверку, убедитесь, что он работает и соответствует заданию. Не забудьте обновить инструкции для разработчиков в документации.
⭐️ Сдача проекта. В последнем шаге нужно отправить на проверку ссылку на проект — на репозиторий GitHub. После чего вас ждёт ещё несколько итераций код-ревью и улучшений, пока все проблемы не будут устранены. Поздравляем, ещё один кейс в портфолио готов!
👉 Для тех, кто ещё не приступил к обучению на Девмане, есть возможность пройти бесплатные уроки с код-ревью из «Основ Python» и «API веб-сервисов». Или записаться на тестовый урок и пообщаться с нашими менторами.
Как работает Девман, часть 1
Как работает Девман, часть 2
➡️ Проходили онлайн-курсы? Расскажите, как было устроено ваше обучение в комментариях!
⭐️ История. Урок Девмана — это проект. В нем всегда есть заказчик, с его историей и потребностями, и тимлид, выполняющий код-ревью. Выполнить урок — значит написать программный продукт, которым удобно пользоваться, у которого есть документация и который решает проблему заказчика.
Требования к итоговому результату возрастают постепенно. В «Основах Python» достаточно написать код с учетом требований к чистоте кода. В «API веб-сервисов» уже придется оформить репозиторий на GitHub и написать первый файл документации
README.md. А своих чат-ботов и сайты на Django нужно будет дополнительно развернуть на удаленном сервере. Идеи для проектов стараемся брать из практики. Иногда разработка одного программного продукта может быть разбита на несколько уроков.⭐️ Теория. Уроки не перегружены теорией — только необходимый минимум. В интернете доступно огромное количество теории в разных форматах и стилях на любой вкус. Читайте по теме урока статьи и книги, расширяйте свои знания и технологиях и внутреннем устройстве Python. Изучайте документацию и будьте в курсе новостей ИТ-отрасли. Умение самостоятельно искать информацию – тоже навык разработчика.
⭐️ Шаги. Новичку сложно проложить путь с нуля до цели, не заблудившись. Поэтому шаги — это маршрут, который мы уже проложили для вас, чтобы упростить задачу и ускорить прохождение. Став разработчиком, вы научитесь это делать самостоятельно. А потренироваться можно уже на командных проектах.
⭐️ Цель. Каждый шаг начинается с цели — точка маршрута, к которой надо прийти. Старайтесь держать в голове при этом основную задачу проекта, описанную в начале урока. Так меньше шансов свернуть не туда по мере прохождения. Читайте начало шага, чтобы понимать зачем и что нужно сделать. Каждый шаг решает задачу.
⭐️ Как проверить. Это список объективных критериев, по которым вы сможете самостоятельно убедиться, что шаг пройден.
⭐️ Что понадобится. Зная цель, ознакомьтесь с материалами и попробуйте применить предложенные инструменты для выполнения шага.
⭐️ Тестирование. Перед тем как отправить код на проверку, убедитесь, что он работает и соответствует заданию. Не забудьте обновить инструкции для разработчиков в документации.
⭐️ Сдача проекта. В последнем шаге нужно отправить на проверку ссылку на проект — на репозиторий GitHub. После чего вас ждёт ещё несколько итераций код-ревью и улучшений, пока все проблемы не будут устранены. Поздравляем, ещё один кейс в портфолио готов!
👉 Для тех, кто ещё не приступил к обучению на Девмане, есть возможность пройти бесплатные уроки с код-ревью из «Основ Python» и «API веб-сервисов». Или записаться на тестовый урок и пообщаться с нашими менторами.
Как работает Девман, часть 1
Как работает Девман, часть 2
➡️ Проходили онлайн-курсы? Расскажите, как было устроено ваше обучение в комментариях!
👍5❤1
⚡️⚡️Только сегодня 11.11 и всего один день по промокоду
Купить наши курсы можно здесь:
👉Курс «Основы Python»
👉Курс по FastAPI
STEPIKSALE15 вы можете купить любой курс на Stepik со скидкой 15%! Купить наши курсы можно здесь:
👉Курс «Основы Python»
👉Курс по FastAPI
🤔 Давайте вместе разберемся, что не так с этим кодом?
👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.
def download_book(book_id, filepath=...):
...
image_relative_path = soup.find('div', class_='bookimage').find('img')['src']
image_url = urljoin(book_page_url, image_relative_path)
response = requests.get(image_url)
...
with open(filepath, 'w') as image_obj:
image_obj.write(response.content)
...
response = requests.get(book_url)
...
with open(filepath, 'w') as book:
book.write(response.text)
...
👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.
Что не так с этим кодом?
Anonymous Poll
71%
Разбейте функцию на части
27%
Разделите обработку данных и ввод/вывод
2%
Не используйте контекстный менеджер with
⚡️⚡️ Завтра в 20:00 проведем онлайн-эфир на тему «Чистая архитектура: реальность или миф?»
🚀В прямом эфире разберем:
— Что такое чистая архитектура? И существует ли она на самом деле?
— Удается ли в реальности следовать правилам чистой архитектуры?
— А как правильно? На что обращать внимание при разработке архитектуры проекта?
🔥Мероприятие проведет Евгений Евсеев — основатель школы Devman и студии веб-разработки PelidTeam, автор методики обучения, разработчик с опытом 17+ лет
🕘Завтра (13.11, четверг) в 20:00, в формате онлайн-трансляции:
YouTube
VK (появится в группе)
RuTube
А вы пытались внедрить чистую архитектуру на своих проектах? Делитесь в комментариях, что вышло!⬇️
🚀В прямом эфире разберем:
— Что такое чистая архитектура? И существует ли она на самом деле?
— Удается ли в реальности следовать правилам чистой архитектуры?
— А как правильно? На что обращать внимание при разработке архитектуры проекта?
🔥Мероприятие проведет Евгений Евсеев — основатель школы Devman и студии веб-разработки PelidTeam, автор методики обучения, разработчик с опытом 17+ лет
🕘Завтра (13.11, четверг) в 20:00, в формате онлайн-трансляции:
YouTube
VK (появится в группе)
RuTube
А вы пытались внедрить чистую архитектуру на своих проектах? Делитесь в комментариях, что вышло!⬇️
🔥8👍1😱1
Девман для питонистов
⚡️⚡️ Завтра в 20:00 проведем онлайн-эфир на тему «Чистая архитектура: реальность или миф?» 🚀В прямом эфире разберем: — Что такое чистая архитектура? И существует ли она на самом деле? — Удается ли в реальности следовать правилам чистой архитектуры? — А как…
🚀Уже через 10 минут стартуем онлайн-эфир на тему «Чистая архитектура: реальность или миф?»
Присоединяйтесь послушать и поучаствовать в обсуждении!
Ссылки для подключения:
YouTube
VK (появится в группе)
RuTube
Присоединяйтесь послушать и поучаствовать в обсуждении!
Ссылки для подключения:
YouTube
VK (появится в группе)
RuTube
Девман для питонистов
🤔 Давайте вместе разберемся, что не так с этим кодом? def download_book(book_id, filepath=...): ... image_relative_path = soup.find('div', class_='bookimage').find('img')['src'] image_url = urljoin(book_page_url, image_relative_path) response…
Когда блок кода перестаёт умещаться в половину экрана монитора — пора разбивать его на функции. Выберите то, что проще всего отщипнуть и поместите в отдельные функции. Также полезно разбивать и сами функции, когда в них становится слишком много строк.
В нашем примере сложно понять, что происходит в функции. Куда проще, когда ключевые действия вынесены в отдельные функции. Так будет гораздо легче читать код.
Код из нашего примера может выглядеть так:
В нашем примере сложно понять, что происходит в функции. Куда проще, когда ключевые действия вынесены в отдельные функции. Так будет гораздо легче читать код.
Код из нашего примера может выглядеть так:
def download_text(book_id, filepath=...):
response = requests.get(url)
...
with open(filepath, 'w') as book_obj:
book_obj.write(response.text)
def download_image(url, folder='images/'):
response = requests.get(url)
...
with open(filepath, 'w') as image_obj:
image_obj.write(response.content)
def get_image_url(soup, book_page_url):
image_relative_path = soup.find('div', class_='bookimage').find('img')['src']
image_url = urljoin(book_page_url, image_relative_path)
return image_url
def download_book(book_id):
...
image_url = get_image_url(soup, book_page_url)
download_image(image_url)
download_text(book_url, filepath)
🔥В четверг мы провели онлайн-эфир на тему «Чистая архитектура: реальность или миф?»
🚀В прямом эфире разобрали:
— Что такое чистая архитектура? И существует ли она на самом деле?
— Удается ли в реальности следовать правилам чистой архитектуры?
— А как правильно? На что обращать внимание при разработке архитектуры проекта?
Делимся ссылками на видео для тех, кто не смог присутствовать:
👉YouTube
👉VK
👉RuTube
⚡️⚡️ Ставьте лайки – наберём 50 лайков на этот пост и Евгений сделает онлайн-разбор архитектуры проекта в прямом эфире!
🚀В прямом эфире разобрали:
— Что такое чистая архитектура? И существует ли она на самом деле?
— Удается ли в реальности следовать правилам чистой архитектуры?
— А как правильно? На что обращать внимание при разработке архитектуры проекта?
Делимся ссылками на видео для тех, кто не смог присутствовать:
👉YouTube
👉VK
👉RuTube
⚡️⚡️ Ставьте лайки – наберём 50 лайков на этот пост и Евгений сделает онлайн-разбор архитектуры проекта в прямом эфире!
👍7🔥4
🤔 Давайте вместе разберемся, что не так с этим кодом?
👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.
import library
def do_something():
NOTIFICATION = 'this is a global constant'
import another_library
...
def main():
do_something()
...
main()
👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.
❤2
💡Если структура кода в файла нарушена, то другие программисты будут путаться в вашем коде.
💡Вложенность функций, переменных и импортов влияет на результат. Например, импорт внутри функции будет выполнен только при первом вызове этой функции, а не перед запуском
Общая структура кода в файле должна быть такой:
— Импорты
— Объявления глобальных констант
— Объявления функций
— Остальной код, собранный в блок if name == 'main'
💡Код в нашем примере должен выглядеть так:
Тотального запрета на использование глобальных переменных нет. Но надо это делать с умом и там, где действительно нужно. Пример — объявление логгера.
💡Вложенность функций, переменных и импортов влияет на результат. Например, импорт внутри функции будет выполнен только при первом вызове этой функции, а не перед запуском
main() как обычно. А переменная NOTIFICATION будет доступна только в локальной зоне видимости функции do_something().Общая структура кода в файле должна быть такой:
— Импорты
— Объявления глобальных констант
— Объявления функций
— Остальной код, собранный в блок if name == 'main'
💡Код в нашем примере должен выглядеть так:
import library
import another_library
NOTIFICATION = "this is a global constant"
def do_something():
...
def main():
do_something()
...
if __name__ == "__main__":
main()
Тотального запрета на использование глобальных переменных нет. Но надо это делать с умом и там, где действительно нужно. Пример — объявление логгера.
🔥1
⚡️Проверяйте свои сайты! В тренде массовые проверки сайтов на наличие прав и лицензий на использование шрифтов, картинок и фотографий.
❗️Шрифты
Активизировался правообладатель FontFabric. Их дистрибьютер в РФ ООО «Компьютерные шрифты» проверяет сайты и высылает письма с требованием купить лицензию. Их созависимое юрлицо ООО «ТайпТайп» уже занимается судебными исками.
✅Что делать:
— Купить лицензию и жить спокойно — они вышлют отказ от претензий за использование шрифта ДО покупки лицензии;
— Сторговаться на меньшую стоимость и оплатить;
— Заменить шрифт на сайте и удалить из веб-архива, чтобы не было старых версий с коммерческим шрифтом. И надеяться, что продолжение не последует.
❌Если ничего не делать:
— По жалобе правообладателя провайдер будет вынужден заблокировать сайт до удаления нелицензионного шрифта
— Риск получить приглашение в суд в будущем
❓Как проверить: плагин для Chrome + проверить лицензию по названию
‼️Важно! Если сегодня шрифт с открытой лицензией в Google Fonts, это не значит что через год все будет также. Лицензию могут поменять. Некоторые владельцы сайтов столкнулись с тем, что 5-10 лет назад брали бесплатный шрифт, а сейчас получили претензии.
🌅Изображения
Поток судебных исков растет на использование фото со стоков. Юридические фирмы заходят к авторам и предлагают за комиссию проверить сайты и организовать процесс по консультации. Претензии подают на огромные суммы на сотни тысяч рублей. По суду получается уменьшить до 10 000 рублей, но это ещё надо уметь и иметь с кем в этот суд идти.
Недобросовестные фотографы, с которыми не были оформлены документы (оплатили работу без договора, например) также пользуются возможностью заработать.
📷Фотографии и персональные данные
Нужны письменные согласия на публикацию. Пока потока штрафов не видим, но в законах уже предусмотрены штрафы с большим количеством нулей.
❗️Шрифты
Активизировался правообладатель FontFabric. Их дистрибьютер в РФ ООО «Компьютерные шрифты» проверяет сайты и высылает письма с требованием купить лицензию. Их созависимое юрлицо ООО «ТайпТайп» уже занимается судебными исками.
✅Что делать:
— Купить лицензию и жить спокойно — они вышлют отказ от претензий за использование шрифта ДО покупки лицензии;
— Сторговаться на меньшую стоимость и оплатить;
— Заменить шрифт на сайте и удалить из веб-архива, чтобы не было старых версий с коммерческим шрифтом. И надеяться, что продолжение не последует.
❌Если ничего не делать:
— По жалобе правообладателя провайдер будет вынужден заблокировать сайт до удаления нелицензионного шрифта
— Риск получить приглашение в суд в будущем
❓Как проверить: плагин для Chrome + проверить лицензию по названию
‼️Важно! Если сегодня шрифт с открытой лицензией в Google Fonts, это не значит что через год все будет также. Лицензию могут поменять. Некоторые владельцы сайтов столкнулись с тем, что 5-10 лет назад брали бесплатный шрифт, а сейчас получили претензии.
🌅Изображения
Поток судебных исков растет на использование фото со стоков. Юридические фирмы заходят к авторам и предлагают за комиссию проверить сайты и организовать процесс по консультации. Претензии подают на огромные суммы на сотни тысяч рублей. По суду получается уменьшить до 10 000 рублей, но это ещё надо уметь и иметь с кем в этот суд идти.
Недобросовестные фотографы, с которыми не были оформлены документы (оплатили работу без договора, например) также пользуются возможностью заработать.
📷Фотографии и персональные данные
Нужны письменные согласия на публикацию. Пока потока штрафов не видим, но в законах уже предусмотрены штрафы с большим количеством нулей.
👍3❤1
⚡️⚡️ Черная пятница близко! Мы запускаем скидки на курсы!
🚀 Скидка 10% на первую ступень курса «Профессия Middle Python/Django разработчик»!
🚀 Скидка 10% на курс «FastAPI: Создаем AI генератор сайтов с нуля»!*
*Скидка распространяется на все тарифы! Количество мест для записи на тарифы PRO и VIP ограничено!
🔥Акция действует до 15 декабря! Успейте купить курсы по сниженной цене!
Чтобы воспользоваться скидкой, напишите нам в Телеграм или оставьте заявку на странице курса:
— Курс «Профессия Middle Python/Django разработчик»
— Курс «FastAPI: Создаем AI генератор сайтов с нуля»
🚀 Скидка 10% на первую ступень курса «Профессия Middle Python/Django разработчик»!
🚀 Скидка 10% на курс «FastAPI: Создаем AI генератор сайтов с нуля»!*
*Скидка распространяется на все тарифы! Количество мест для записи на тарифы PRO и VIP ограничено!
🔥Акция действует до 15 декабря! Успейте купить курсы по сниженной цене!
Чтобы воспользоваться скидкой, напишите нам в Телеграм или оставьте заявку на странице курса:
— Курс «Профессия Middle Python/Django разработчик»
— Курс «FastAPI: Создаем AI генератор сайтов с нуля»
🔥3😱1
🤔 Давайте вместе разберемся, что не так с этим кодом?
👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.
if __name__ == "__main__":
...
try:
if is_shorten_link(vk_token, user_url) == True:
url_clicks = count_clicks(vk_token, user_url)
...
except requests.exceptions.HTTPError as error:
...
👉 Чтобы понять, что можно исправить, загляните в типичные улучшения Девмана.