Senior Pomidor Developer
Senior Pomidor Developer
  • Видео 53
  • Просмотров 903 119
Django или FastAPI - кто быстрее?
Ссылка на репозиторий - github.com/chepe4pi/frameworks_compare
В ветках разные варианты приложения. Там же скрипт для генерации большого количества данных.
00:00 Тема урока и обзор приложения
04:00 Скрипт для генерации 1.000.000 записей
06:34 siege - инструмент нагрузочного тестирования
07:45 Django dev server - Нагрузочное тестирование
09:17 Gunicorn 1 worker 1 thread - DRF + ORM Нагрузочное тестирование
12:00 Gunicorn 4 worker 2 thread - DRF
14:15 Function based view без serializers
15:43 Async асинхронная функция вью на Джанго
18:45 Uvicorn - ASGI web server - нагрузим
19:35 asyncio.gather - тестируем асинхронные SQL запросы в базу
24:43 Логирование SQL
25:50 RAW SQL на Django - тестируем запросы...
Просмотров: 16 257

Видео

Хакаем тестовое задание при помощи Chat GPT-4o + Django
Просмотров 20 тыс.2 месяца назад
00:00 Ни слова про ИИ 00:13 Тестовое задание по Django 02:32 Просим Chat GPT сделать нам задание 04:33 Настраиваем Django проект в PyCharm 09:04 Переносим код из Ghat GPT в проект Django 14:47 Конфигурируем Django в PyCharm Pro 15:58 makemigrations / migrate 16:23 createsuperuser 17:30 Генерим классы для админки admin.py 18:27 Создаем тестовые данные 21:25 Создаем HTTP запросы с помощью Ghat GP...
Модульный Монолит и Микросервисы. Что лучше для масштабирования и производительности?
Просмотров 13 тыс.3 месяца назад
00:00 Вступление 01:56 Компоненты архитектур и их сравнение 15:44 Преимущества Микросервисов: 15:56 Менее связанные? 17:43 Лучше масштабируются? 18:52 Более производительные? 20:47 Более легкие? 22:14 Можем делать разделение прав 22:38 Вывод 28:12 Заключение
Как найти работу программистом в 2024 году? Суровая правда
Просмотров 17 тыс.4 месяца назад
00:00 Вступление 00:36 Как стать It-менеджером в Индии 02:20 Курсы программирования это хорошо или плохо? 03:07 На какие вакансии откликаться? 03:57 На что первым делом смотрят в вашем резюме 04:22 Какие сейчас Джуниоры нужны? 04:48 Почему Миддл программистов собеседуют на системный дизайн? 05:38 Как продуктивно обучаться 05:59 Какие темы надо знать в IT 06:55 Бизнес-логика компании это тоже ва...
РЕФАКТОРИНГ: Паттерн Проектирования - "Шаблонный метод"
Просмотров 2 тыс.5 месяцев назад
Вот pull request с изменениями - github.com/AndreyFedorov78/mini_CRM_for_construction/pull/1/files Группа в телеграмме тут - t.me/tomato_python
Делаем тестовое задание, которое дали на собеседовании
Просмотров 16 тыс.10 месяцев назад
Код задания - github.com/chepe4pi/test_task 00:00 вступление 00:43 Смысл задания 01:40 Переделываем Python2 на Python3 02:22 Попробуйте сделать самостоятельно 02:56 Создаем и настраиваем классы 05:36 b = B(5) 07:00 assert(a.i 3) 07:47 assert(a.fnc(2) 2 * 2 * 3) 09:51 assert(b.fnc(10, 4) 10 * 4 * 5) 11:33 assert(a.isFirst() 1) 12:11 assert(a.isSecond 0) 13:17 assert(b.isFirst() 0) 14:00 assert(b...
РЕФАКТОРИНГ: Избавляемся от дублирования
Просмотров 5 тыс.10 месяцев назад
Вот pull request с изменениями - github.com/nikolaisolovev/bot-real-estate/pull/1/files Группа в телеграмме тут - t.me/tomato_python
Новая рубрика: Pomidor Review! Присылайте ваши проекты!
Просмотров 3,1 тыс.11 месяцев назад
телеграм канал - t.me/tomato_python
Оптимизация Django. 10 - Глобальное кеширование, django-cachalot
Просмотров 6 тыс.Год назад
Оптимизация Django. 10 - Глобальное кеширование, django-cachalot
Оптимизация Django. 9 - DB Индексы
Просмотров 6 тыс.Год назад
Оптимизация Django. 9 - DB Индексы
Оптимизация Django. 8 - Redis и ручной кеш
Просмотров 10 тыс.Год назад
Оптимизация Django. 8 - Redis и ручной кеш
Оптимизация Django. 7 - Параллельные celery таски и их проблемы
Просмотров 5 тыс.Год назад
Оптимизация Django. 7 - Параллельные celery таски и их проблемы
Оптимизация Django. 6 - Celery таски - отложенный пересчет, SingleTone
Просмотров 9 тыс.Год назад
Оптимизация Django. 6 - Celery таски - отложенный пересчет, SingleTone
Оптимизация Django. 5 - Celery + Docker
Просмотров 15 тыс.Год назад
Оптимизация Django. 5 - Celery Docker
Оптимизация Django. 4 - Annotate и Aggregate в ORM. Вычисления в базе
Просмотров 7 тыс.Год назад
00:00 Вступление 01:02 пишем бизнес-логику приложения 04:35 SerializerMethodField 05:42 смотрим SQL запросы 07:51 вычисляем в базе через annotate и смотрим запросы 13:25 INNER JOIN которые нам сделала Django ORM 14:41 когда не нужно вычислять в базе 16:45 Пишем aggregate Sum, переопределяем list во view и дополняем response 26:08 смотрим какие формируются SQL запросы
Оптимизация Django. 3 - Оптимизация ORM-query
Просмотров 10 тыс.Год назад
Оптимизация Django. 3 - Оптимизация ORM-query
Оптимизация Django. 2 - проектирование приложения Django + DRF View API endpoint
Просмотров 12 тыс.Год назад
Оптимизация Django. 2 - проектирование приложения Django DRF View API endpoint
Оптимизация Django. 1 - Django + Docker
Просмотров 31 тыс.Год назад
Оптимизация Django. 1 - Django Docker
Оптимизация Django. О курсе
Просмотров 16 тыс.Год назад
Оптимизация Django. О курсе
Обо мне
Просмотров 10 тыс.Год назад
Обо мне
Разворачиваем Django приложение на Linux сервере
Просмотров 13 тыс.2 года назад
Разворачиваем Django приложение на Linux сервере
Django сервер на Linux: 12 Настройка Nginx
Просмотров 10 тыс.2 года назад
Django сервер на Linux: 12 Настройка Nginx
Django сервер на Linux: 11 Настройка Gunicorn
Просмотров 10 тыс.2 года назад
Django сервер на Linux: 11 Настройка Gunicorn
Django сервер на Linux: 10 Взаимодействия внутри сервер, порты и сокеты
Просмотров 4,5 тыс.2 года назад
Django сервер на Linux: 10 Взаимодействия внутри сервер, порты и сокеты
Django сервер на Linux: 9 Настройка среды для Django
Просмотров 7 тыс.2 года назад
Django сервер на Linux: 9 Настройка среды для Django
Django сервер на Linux: 8 Vim 😱
Просмотров 3,2 тыс.2 года назад
Django сервер на Linux: 8 Vim 😱
Django сервер на Linux: 7 Сетевые инструменты Linux
Просмотров 3,7 тыс.2 года назад
Django сервер на Linux: 7 Сетевые инструменты Linux
Django сервер на Linux: 6 Сетевые взаимодействия
Просмотров 3,7 тыс.2 года назад
Django сервер на Linux: 6 Сетевые взаимодействия
Django сервер на Linux: 5 про hardware
Просмотров 3,3 тыс.2 года назад
Django сервер на Linux: 5 про hardware
Django сервер на Linux: 4 про Linux
Просмотров 3,5 тыс.2 года назад
Django сервер на Linux: 4 про Linux

Комментарии

  • @GalimovBulat
    @GalimovBulat День назад

    Отличный видос, спасибо! Жду следующего видосика по архитектуре.

  • @GalimovBulat
    @GalimovBulat День назад

    Интересно на сколько бы стал медленнее FastAPI с SQLAlchemy? Не хватило этого момента конечно +) Да, и курс по FastAPI было бы интересно посмотреть. Спасибо!

  • @user-er7nh1vg4j
    @user-er7nh1vg4j 4 дня назад

    Было очень интересно!Большое спасибо за сравнительный анализ!Результаты теста превзошли мои ожидания.

  • @artemxyi
    @artemxyi 8 дней назад

    Сравни какой нибудь Rustовский фреймворк(Actix, Axum, Ntex) с Fastapi

  • @RomaCostin
    @RomaCostin 11 дней назад

    Ответь пажалуйста, Можно ли на Django/DRF делать проекты с микросервесной архитектурой и популярно ли такое решение в реальной разработке ?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 11 дней назад

      Делать можно. Но наверное такое не популярно. Хотя я не вижу больших причин почему нет

  • @whoami866
    @whoami866 13 дней назад

    А где курс про OpenSource ??

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 13 дней назад

      Так это и есть курс по open source!

    • @whoami866
      @whoami866 13 дней назад

      @@SeniorPomidorDeveloper Аа, спасибо. Подскажите пожалуйста вот в микросервисной архитектуре при деплое, что бы все работало на одном домене нужен nginx, его лучше разворачивать на отдельном сервере и за ним закреплять домен или nginx развернуть на сервере одного из микросервиса и за ним уже закрепить домен ? Может сделаете ролик про постройку и деплой микросерверов ? Это сейчас хорошая тема для ролика, на русском ютюбе есть ролики про микросервисы но про их деплой и настройку нету ))

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 13 дней назад

      Для микросервисов нужен load balancer. Кто будет выполнять его роль это уже другой вопрос. Это тема конечно не на видео, а на целый курс. Не уверен что я сейчас готов к такому.

  • @user-xj9nv6vi1t
    @user-xj9nv6vi1t 15 дней назад

    Здравсвтуйте, данный курс покрывает всю теорию которая нужна для разработчика?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 15 дней назад

      Здравствуйте! Это просто вводный курс про Linux, а также также практический рассказ, как поднять веб сервер для Django. На полноту не претендует.

  • @xakixaki6326
    @xakixaki6326 16 дней назад

    В 50 лет чему учиться? В перспективе нужна прибавка к нищей пенсии. Большая зарплата не нужна. Не хочется делать конкуренцию молодым.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 16 дней назад

      Может как-то связать свою профессию с IT? То что уже умеете и как-то прибавить digital решения?

  • @KUBD996
    @KUBD996 18 дней назад

    Спасибо за ролик! Очень информативно. Можно тесты разных базы данных?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 18 дней назад

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

    • @KUBD996
      @KUBD996 18 дней назад

      @@SeniorPomidorDeveloper окей

  • @ebnutaykaras2453
    @ebnutaykaras2453 19 дней назад

    Когда ищу класс User ,там нет именно User(AbstractUser), подскажите пожалуйста!

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 19 дней назад

      Вроде вот тут она теперь from django.contrib.auth.models import User

  • @Ramon4lk
    @Ramon4lk 20 дней назад

    Потестируй кеширование

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 20 дней назад

      Кеширование рулит! Но в основном на тех данных которые повторно запрашиваются

  • @nikren2248
    @nikren2248 21 день назад

    На данный момент стоит ли проходить данный курс, или же лучше начать с курса у которого оранжевая обложка так как он более новый? Буду благодарен за ответ

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 21 день назад

      Если особо не работали с Джанго и drf то лучше с этого начать. Какие-то вещи могут работать по-другому и с этим придется разбираться. Обычно в комментариях люди пишут про такое. Но этот курс дает базу , а оранжевый более сложный , где базу уже надо знать, хотя там она тоже будет, но вкратце

  • @shaxdjuraev5585
    @shaxdjuraev5585 22 дня назад

    Здравствуйте! я не хочу находить недостатки в коде, так как тут импровизация, но у вас такая проблема получилось, когда вы добавили новую запись с суммой 77, он добавился два раза в тотал прайс 459 + 154 = 613. объясняете замечательно, удачи в вашей работе.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 22 дня назад

      Здравствуйте! Еще бы вспомнить что там было) Ну да, тоже делаю ошибки , бывает. Спасибо за комментарий!

  • @user-xj9nv6vi1t
    @user-xj9nv6vi1t 24 дня назад

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

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper 24 дня назад

      Здравствуйте! У меня была книга Алгоритмы. Теория и практическое применение. | Стивенс Род Но сегодня я бы использовал чат gpt для изучения, просто быстрее и меньше усилий . А если совсем по серьезному то лучше даже с преподом их изучать, чем с книгой .

  • @dasar_dev_it
    @dasar_dev_it 29 дней назад

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

  • @danilovmy
    @danilovmy Месяц назад

    Автор, у тебя совершенно кривое сравнение результатов! Во-первых: ты не отключил middleware в Django коих у тебя в settings 7 штук, а в FastAPI ни одной. Во-вторых: ты сравниваешь DRF c FastAPI, а не Django. И, поверь, это большая разница. В-третьих: давно уже есть Async-CBV django. Может не надо бросаться переписывать на функции, а стоит документацию почитать? В-пятых: Если начнешь нормально сравнивать Django с FastAPI, поставь какой-нибудь сложный валидатор поля и удивись, что FastAPI резко начнет сдавать по скорости. В Pydantic есть проблема замедления при переключении контекста Rust<->Python, я обсуждал это лично с разработчиком Pydantic, и пока простого решения это обойти нет. Предлагаю автору посмотреть мой доклад про django-FTL, вероятно это улучшит понимание, как использовать django правильно для условного high load. Для реального highload стоит искать другие решения.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Дельные советы. Если тоже надумаете снимать видео, присылайте ссылку, с удовольствием посмотрю.

    • @augustsionis6542
      @augustsionis6542 8 дней назад

      это было до второго пайдантика, да и никто не мешает датаклассы юзать

    • @danilovmy
      @danilovmy 7 дней назад

      @@augustsionis6542 Мой комментарий упоминает именно вторую версию Pydantic, поскольку в первой версии Rust не использовался.

  • @user-rj2lh4kg9b
    @user-rj2lh4kg9b Месяц назад

    А как связать локальную sqlite3 с работающим контейнером. Тоже через volume, или нужно новый сервис как для Postgress?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Думаю через volume, это же просто файл

    • @user-rj2lh4kg9b
      @user-rj2lh4kg9b Месяц назад

      @@SeniorPomidorDeveloper Я делал так: version: "3.9" services: web_app: build: dockerfile: Dockerfile context: . # путь к Dockerfile image: meteo # название образа container_name: www # название контейнера ports: # слева порт на компьютере, справа порт внутри контейнера - "8000:8001" volumes: - ./db.sqlite3/:/db.sqlite3/ command: > bash -c "python manage.py runserver 0.0.0.0:8001" В контейнер полностью переносится локальная база, но в самой локальной базе сохранения нет. В этом проблема.

    • @user-rj2lh4kg9b
      @user-rj2lh4kg9b Месяц назад

      @@SeniorPomidorDeveloper Спасибо за ответ. Я пробовал: version: "3.9" services: web_app: build: dockerfile: Dockerfile context: . # путь к Dockerfile image: meteo # название образа container_name: www # название контейнера ports: # слева порт на компьютере, справа порт внутри контейнера - "8000:8001" volumes: - ./db.sqlite3/:/db.sqlite3/ command: > bash -c "python manage.py runserver 0.0.0.0:8001" Но у меня в контейнер копируется локальная БД и после закрытия контейнера она не сохраняется в локальном виде, т.е. том не связывается с локальной БД.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Я понял. Можно в чате уточнить, ссылка в профиле. Там вроде обсуждали какую-то проблему похожую

  • @user-yo6sd1nj4k
    @user-yo6sd1nj4k Месяц назад

    Я генерирую уникальные тексты для seo. Могу делать огромные сайты!

  • @koshakpoc2876
    @koshakpoc2876 Месяц назад

    Я всегда думал что fastapi конкурент фласку, для написания микросервисов, а если делать монолит, то инструменты из капота джанги очень даже пригодятся, и они удобные

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Ну это само собой. Просто хотелось как раз и потестить оверхед фреймворков в чистом виде

    • @koshakpoc2876
      @koshakpoc2876 Месяц назад

      @@SeniorPomidorDeveloper да я понял вашу задумку, у вас как всегда топ контент, я просто не очень понимаю в принципе сравнение джанго и фастапи, думал они используются для разных целей

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Не совсем так. Если мыслить чуть шире, то и монолит и микросервисы ведь используются для одних и тех же целей ) А вот из чего создавать компоненты бекенда веб-приложения, это вопрос спорный. Я бы даже сказал что монолит в чистом виде, как и микросервисы в чистом виде, это вещи довольно дискомфортные для разработки. Для среднего бизнеса, обычно есть приложение и у него несколько сервисов, не один но и не 20. На чем их писать, тут как раз и приходится делать выбор, и скорость ответа фреймворка, это то, что могло бы на этот выбор повлиять.

    • @koshakpoc2876
      @koshakpoc2876 Месяц назад

      @@SeniorPomidorDeveloper понял, спасибо

  • @coininvest7833
    @coininvest7833 Месяц назад

    Подскажите плиз какую прогу юзаете для мониторинга памяти?

  • @pashadjoystick
    @pashadjoystick Месяц назад

    правильно только 2 вещи - нет смысла привязывать войну к историческим справкам которые недоказуемы (как в мировую немцы - кому-то попадались злые, а кого-то забрали на высокооплачиваемую работу в германию) и призыв не участвовать в непонятных рисковых процессах)) а остальное слишком сложно в происходящем чтобы пытаться зарефакторить в одну итерацию большие куски в функции "чёрного ящика" - типа подсунутых народу причин что война из-за "выхода украины из под россии" или "запрета расширения НАТО своими ядерными ПВО". надо смотреть что сейчас выдаёт война как функция а не что обещают её лозунги - таковы правила юнит-тестов и по результатам она просто очищает территории снг от русских и украинцев. вот после такой оптимизации уже можно предсказать зачем они это делают - думаю военные фирмы наняты азиатами или странами принимающими беженцев. если первые то для заселения своими ибо они быстрее всех заполоняют Землю без кризисов ну. если заказчики вторые то причина обнаружение месторождения полезных ископаемых которыми не хотят делиться с выжившими и не эвакуированными. никто никогда не спасает жертв - украинцам разрешили эмигрировать чтобы убрать претендентов на обнаруженные минералы и заодно использовать вдвое дешевле местной рабсилы. любой с высшим образованием (не купленным) знает что привязка политики к истории, религии и нации это увод внимания. но как Дон Хуана учил Кастанеду - нужно из всего извлекать выгоду, можно получить статус беженца это уже повышение и шанс. если большая машина войны начинает движение - то ВСЕ кто рядом должны бежать, даже высоких чиновников знал которые там погибли пытаясь что-то урвать на месте

  • @khadzhik-_-8737
    @khadzhik-_-8737 Месяц назад

    has_permission нужно переопределять для post запроса? ведь has_object_permission имеет obj и условия с ней( а в post там не будет id и соответственно obj)

  • @user-xj9nv6vi1t
    @user-xj9nv6vi1t Месяц назад

    Здравствуйте, вы занимаетесь менторством ?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Здравствуйте! Раньше занимался. Сейчас пока сложно сказать, надо прикинуть по занятости. Напишите мне через группу, я там первый в списке админов. Ссылка на группу в профиле

  • @franca6597
    @franca6597 Месяц назад

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

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Спасибо за такой хороший отзыв! Буду продолжать )

  • @gahabool9173
    @gahabool9173 Месяц назад

    Спасибо тебе большое за курсы, и за то что ты не берешь за это деньги! 25.07.2024, я нашел человека на которого буду стараться равняться в похожих ситуациях! Спасибо еще раз!

  • @user-sy5my4vf8l
    @user-sy5my4vf8l Месяц назад

    Очень круто! Спасибо большое!

  • @Georgii1212
    @Georgii1212 Месяц назад

    Zdravstvuite ! Raznica SOA vs mikroservisi ?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Насколько я помню, ключевая разница это что SOA используют систему шину для сообщений , а микросервисы полагаются на децентрализованное взаимодействие.

  • @davidsaidov8308
    @davidsaidov8308 Месяц назад

    Было очень интересно, спасибо!

  • @user-dw8lb8lc7u
    @user-dw8lb8lc7u Месяц назад

    когда начинал вкатыватся в программирование и был чистым фронтом на работе надо было по-быстрому стать фулстеком и писать drf именно твои видосы оказались самыми полезными, большое спасибо а в этот видос очень сильно меня порадовал потому-что затронуты очень глубокие темы о которых я слышал только 1 раз краем уха, и не понимал что они значат в общем ты реально крут!

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Спасибо большое за такой отзыв! Рад что мои видосы помогли, всегда приятно такое слышать.

  • @markjulian2912
    @markjulian2912 Месяц назад

    А можно гайд по удаленному хранению статики и медиа, то есть хороший такой гайд по django-storages. В интернете оч мало информации по тому как сделать удаленное хранилище и передавать файлы статики например по sftp. Залайкайте пожалуйста, на ютубе не нашел такого контента:(

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Хорошая тема. Довольно непростая . Хотя на первый взгляд кажется что ничего сложного. Может как-нибудь доберусь , сделаю

  • @user-kq7mt8co3w
    @user-kq7mt8co3w Месяц назад

    Спасибо за советы👍. Разработал свое приложение для изучения английского языка. Отличие моего приложения от аналогичных состоит в том, что в нем НУЖНО говорить, а не тыкать на кнопки с правильным ответом. И это, кстати, очень сильно прокачивает английский, именно speaking. Но вот, работу программистом так и не нашёл до сих пор( Друзья, если есть интересные предложения для разработчика python, напишите или порекомендуйте своим знакомым. Ах, да. Приложение для андроид можно скачать в рустор English People называется. Так же можно тренировать на сайте. Выпендрился 🤣 Ну что Senior, удивил? 🤭

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Класс! Очень даже выпендрился 😀 это достойный результат. Думаю что работу еще получится найти. В любом случае, я думаю что время не прошло даром и получил много удовольствия.

  • @liopox_
    @liopox_ Месяц назад

    24:25 Да, асинхронность помогает когда эти запросы работают не мгновенно, например, если бд развернуто на другом сервере и есть хоть какой-то пинг.

    • @liopox_
      @liopox_ Месяц назад

      Более того, на сколько я понял, так как все запущено на одном компьютере, база замедляет работу сервера и делает асинхронный подход полностью бесполезным.

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      База замедляет асинхронный код в той же мере что и синхронный. Разве нет? В любом случае, предлагаю не перекидываться предположениями , а взять и проверить. Вроде это достаточно легко делается .

  • @Antinormanisto
    @Antinormanisto Месяц назад

    А откуда адрес редиски брать? 2:25

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Хм. Он вроде у всех одинаковый

    • @Antinormanisto
      @Antinormanisto Месяц назад

      @@SeniorPomidorDeveloper, благодарю

    • @Antinormanisto
      @Antinormanisto Месяц назад

      @@SeniorPomidorDeveloper, у меня появился новый вопрос. Я не замечал чтобы в функциях ты закрывал соединение(к примеру redis_client.close()). Если мы прописали CACHES и используем cache, то этого делать не надо? Просто в ручную, прямиком с использование библиотеки redis, надо было подключаться(redis_client = redis.Redis(host=, port=)), а в конце, когда мы понаписали всё что хотели, надо redis_client.close()

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      @Antinormanisto @Antinormanisto наверно. Я всегда через caches использую

  • @kai3341
    @kai3341 Месяц назад

    Мне кажется, у тебя страдает метрология -- ты скатился в сравнение погрешностей. Ты не учёл: 1) Паразитную нагрузку, создаваемую прочими приложениями (БД в докере, siege, DE, IDE. ОМГ, а ещё запись сразу 2 видеопотоков). А ещё есть тротлинг -- оказывается, у самого первого теста преимущество 2) Как следствие, ты скатился в сравнение погрешностей. Про доверительный интервал и сигму вообще молчу 3) Даже в школе проводят несколько экспериментов. Ну ладно, мне бы тоже было лениво сводить результаты 4) Мне кажется, что тесты на константной нагрузке вообще не имеют смысла. У всех тестов Availability >99.7%. То есть все перечисленные конфигурации справились с данным потоком клиентов. Выводов можно сделать ровно ноль. Кстати, codesenberg/bombardier будет сильно интереснее, чем siege

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Я тут измеряю не нагрузку на приложение, в абсолютных величинах, а просто сравниваю какое время отклика дают разные фреймворки. А время отклика у них в разы отличается и в этом смысле тесты показательные. Тут в принципе нет смысла именно нагрузку на приложения измерять, так как приложения как такового нет, три строчки - два запроса. Тут как раз и было интересно как фреймворк будет отрабатывать почти в чистом виде. Конечно я повторял тесты по несколько раз , но зачем мне это в видео включать , оно и так получилось огромное , более 30 мин. Паразитная нагрузка конечно есть, но для всех участников теста она плюс минус одиночная, тут все в одинаковых условиях. И если бы было нужно именно понять как выдерживает нагрузку конкретное приложение, то стоило бы поднять всю инфраструктуру на серверах. Но так как приложения нет то и тестировать нагрузку в абсолютных величинах нет смысле . А сравнить фреймворки и вполне можно и локально. PS. Докером я не пользуюсь, слишком много оверхеда даёт, если локально разворачивать все гораздо быстрее работает.

  • @bernardsoul8936
    @bernardsoul8936 Месяц назад

    Я так понимаю FastAPI работал на орм? На SQLAlchemy?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      На голом sql работал. Также как и Джанго в последних этих тестах. Не знаю как будет на sqlalchemy. Думаю тоже 30% съест или типа того

    • @bernardsoul8936
      @bernardsoul8936 Месяц назад

      @@SeniorPomidorDeveloper Спасибо за ответ)

  • @bernardsoul8936
    @bernardsoul8936 Месяц назад

    Видео классное и интересное! Лайк! Голосую за курс по FastAPI

  • @bernardsoul8936
    @bernardsoul8936 Месяц назад

    14:40 лучше добавлять в кортежи, они меньше занимают памяти и быстрее списков

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Да вроде на общем фоне не дают разницы, в каких-то вычислениях с большими данными- наверное да. Но тут это копейки, по сравнению с тем сколько потребляет сама джанга.

    • @bernardsoul8936
      @bernardsoul8936 Месяц назад

      @@SeniorPomidorDeveloper я тестил списки и кортежи не в веб приложении, а просто в запускал цикл с миллионом итераций. Сейчас почитал об этом подробнее и потестил еще раз. Размеры кортежа из 1млн элементов действительно меньше, а со скоростью есть ньюанс. Зависит от того как записывать

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      @@bernardsoul8936 Зависит от контекста, где-то в Джанго эта разница потеряется. Обычно мы не передаем на фронтенд 1мил объектов. Даже 10тыс не передаем. А вот в биг дата да, очень даже актуально.

    • @bernardsoul8936
      @bernardsoul8936 Месяц назад

      @@SeniorPomidorDeveloper согласен)

  • @humankind3098
    @humankind3098 Месяц назад

    Что мешает справа написать так же 2 строчки кода на sqlalchemy? + потестить бы скорость сериализации pydantic и в django

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Не уместилось уже в видео, и так больше 30 мин, никто досмотреть не может .

    • @humankind3098
      @humankind3098 Месяц назад

      @@SeniorPomidorDeveloper если не секрет, какой результат?)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Я имею ввиду что после нескольких часов съемки понял что уже не влазит. А что мешает вам самому это потестить? Обязательно это должен делать парень из ютюба, пока вы кофе пьете? Быстро за работу!

    • @humankind3098
      @humankind3098 Месяц назад

      @@SeniorPomidorDeveloper а как же банальная программистская лень?) лучше спрошу у chatgpt)

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      🤣

  • @fun-power
    @fun-power Месяц назад

    говно твои тесты. тестируемое приложение надо на отдельном сервере запускать. а тут ты и сервер хостишь и по 100 потоков нагружаешь

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      Это понятно. Но стоит учесть что все тестируемые варианты находятся в равных условиях, по этому относительно друг друга эти результаты будут более менее верные. Но в абсолютных количествах, конечно эти цифры не имею смысла

  • @commonbro1871
    @commonbro1871 Месяц назад

    Можно ролик про то, как правильно писать views, котороые могут создавать сложные объекты, когда один объект зависит от разных сущьностей, просто как новичку не совсем понятно, как писать такую логику на django?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      А зачем писать логику , где один объект зависит от разных сущностей ? )

    • @commonbro1871
      @commonbro1871 Месяц назад

      Допустим бывают случаи, когда мы с помощью переопределения метода perform_create() вытаскиваем user из запроса и связываем его с нашим объектом, а бывают же ситуации, когда помимо user необходимо наш объект связать с ещё какими-то сущностями, где правильно это писать ?

    • @SeniorPomidorDeveloper
      @SeniorPomidorDeveloper Месяц назад

      @@commonbro1871 На мой взгляд это не очень важно. По разному делают, бывает во вью, бывает в специальных классах логики. Пока это просто логика в одном экземпяре, можно оставить во вью. Как только мы что-то подобное должны еще где-то сделать, не копируем ни в коем случае, выносим в отдельный класс или функция и используем ее в двух местах. Вообще в разных проектах свои стандарты, но по мне так во вью норм, пока кода там не очень много и пока он не копипастится.

  • @user-qh2em5cb2i
    @user-qh2em5cb2i Месяц назад

    Как вам проводить нагрузочное тестирование между Django Ninja и DRF?

  • @user-ff4bg5go9f
    @user-ff4bg5go9f Месяц назад

    Спасибо!!!