Как стать автором
Обновить

Комментарии 14

from typing import Optional

Версия 3.10 вышла в конце 2021 года (сейчас 2024), уже можно делать так:

- def get_all_students(course: Optional[int] = None):
+ def get_all_students(course: int | None = None):

Тут тоже бы переписать

if course is None:
    return students
- else:
-     return_list = []
-     for student in students:
-         if student["course"] == course:
-             return_list.append(student)
-     return return_list
+ return_list = []
+ for student in stu dents:
+     if student["course"] == course:
+     return_list.append(student)
+ return return_list
  • -- test.py (функция в которой мы будем тестировать наше API через модуль requests)

Я ожидал (да, понимаю, проблема ожиданий), что будет pytest/unittest/whatever, а по факту это функции, которые в консоль плюют

Я напишу эти функции, но их реализацию, как и полный исходник кода с данной статьи, вы найдете в моей телеграмм канале

Может всё таки линк репы на гитхаб/лаб? Сегодня пост в телеге среди последних, а через год-два листать простыню ради этого сообщения, чтобы сравнить код?

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

Я не согласен с рядом ваших замечаний.

- def get_all_students(course: Optional[int] = None):+ def get_all_students(course: int | None = None):

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

В примере с условием if else я так же намеренно упрощал. Интересно почему тогда вы не сделали замечание по поводу НЕ использования генератора списка?

Pytest? Я тут описывал что такое апи и гет запросы. Вас это не смутило?)

Если будет тут поддержка пойдут и "боевые практики" и пайтест и пайдентик, но всем свое время и не делайте заранее выводов на счет моих "устаревших практик". Просто следите за обновлениями)

Замечания по делу были. Зря у вас включается защитная реакция.

Синтаксис python идёт вперёд, как бы вы не привыкли к старому. На мой взгляд, это не всегда удобно, но факт остаётся фактом.

Если уж вы делаете файл с тестами, то pytest в его простом варианте усложнения статье не добавит. Всего-то функцию переименовать и assert добавить.

В идеале, прогоните свой код через ruff с проверкой ALL + форматтером. Это поможет немного защититься как от плохих, так и от устаревших практик.

В остальном статья действительно будет полезна для новичков. Язык повествования весьма простой и понятный.

Спасибо

Замечательно! Продолжайте делиться опытом, этом у вас очень неплохо получается. Содержательный материал и доходчивая подача

Благодарю за обратную связь)

зачем тянуть requests, если среди зависимостей уже есть httpx?

Requests более попсовая библиотека и даже абсолютные новички с ней сталкивались, а httpx не так популярна. Но в целом да, вы правы. httpx уже идет с коробки с FastApi и в измененном коде проекта, модуль с запросами переписан на httpx

Автор также не учел, что requests - синхронная

О, Кирилл) Давно вас не видел. Дня два)

Этого времени более чем достаточно, чтобы:

  • Переписать примеры на async httpx (благо их разрабы подсуетились и специально для таких лентяев сделали схожий апи). Ну как же вы так, используете ваш любимый asyncpg-lite и FastAPI, но при этом requests? Как говорится, подоконник должен быть либо в ровень со стенкой, либо должен выпирать, а у вас с одной стороны вровень - а с другой - выпирает

  • Перестать игнорировать вопросы и конструктивную критику, переводя всё в шутки и смолток

  • Перестать писать статьи в принципе, т.к. половина из них даёт инфы по тематике меньше, чем офиц доки этой тематики (в данном случае офиц доки FastAPI точно лучше и полнее), а другая половина - полный мусор в принципе

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

Кирилл Гимранов, вам всего 25 лет. Вот вы рассказываете о своем шестилетнем опыте в разработке, а сами какие-то странные услуги оказывали иностранцам ещё в 2020. Как так, разве обманывать своих роботодателей хорошо?

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

Я понимаю, что вы: "Интуитивно-этический экстраверт, холерик, нарцисс, эгоист, циник, параноик, мизантроп и просто общительный активист-социофоб.", но на меня то это зачем все выплескивать? Сходите с этим к психологу, психиатру. Я тут при чем?

Теперь отдельно по "мусору". Я почитал вашу заветную статью. В ближайшее время дам свой критический анализ, очень надеюсь что вы ждете :)

На данный момент я просто спокойно и без надрыва прошу - займитесь своими вопросами. Просто тихонечко. В путь.

Всего вам доброго. Желаю в последний раз)

Алексей Яковлев (если это ваше настоящие имя-фамилия, я не знаю, я же не занимаюсь гуглингом людей). Не знаю, зачем вы интересуетесь информацией о том, сколько кому лет и кто чем увлекался, тем более, что это не имеет абсолютно никакого отношения к вашим статьям. Вы как маленький ребенок - вам говоришь: "Иди, убери свои игрушки на место", а вы все продолжаете искать, чем бы заняться вместо этого, главное - не делать того, что говорят!

Вроде бы взрослый человек (надеюсь). Нет бы, статейку поправить, или хотя бы продвинуть свои знания дальше уровня интерна, чтобы хоть немного соответсовать статусу "Опытного Python-разработчика с многолетним стажем". А то даже какой-то Кирилл Гимранов со всего лишь 6ти летним стажем (хотя с таким стажем люди уже лидят команды) указывает вам на очевидные недочеты. Глядишь, и всякие почемучки и остальные серьезные дядьки перестанут "снобить" в комментариях, поучая вас. Вы то поучать стремитесь в своих статьях, а вот критику как-то не привыкли принимать. Я к тому, что это мешает даже вам самому развиваться и двигаться дальше. Вам просто кажется, что если работаете фрилансерам и клиенты довольны вашим парсерам на requests, то вы - бог этого мира и дальше развиваться ну просто уже не куда!

своих роботодателей

У меня нет "роботодателей", возможно у вас на фрилансе их много, простите, тут я признаю, что не разбираюсь, никогда не доводилось сталкивать с "роботодателями"

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

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

P.s.: моя любовь ко вселенной Роулинг, ровно как и всё остальное, что вы смогли найти обо мне (или придумать) - никак не мешают мне развиваться. Представьте, если бы вам написал, например, Илон Маск, а вы бы вместо ответа на его вопросы к вашей статье также понакопировали бы информации о нем из открытых источников, в чем смысл? Ваша гордыня и эгоцентризм (или ужасное зрение, дислексия или визуальные галюцинации) мешают вам видеть вопросы и замечания, как мои, так и других людей в комментариях к вашим статьям. Возможно настала пора уже наконец открыть глаза и на правду?

Такие детальные статьи прям мотивируют)) Продолжай в том же духе, уже не первую твою статью читаю и для новичка очень доступно все излагаешь 👍

Благодарю за обратную связь)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий