ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:00:30
Форматирование кода с помощью библиотеки Black:
  • 1. Установят библиотеки black, flake8, au, isort и pylint в виртуальную среду проекта
  • 2. Библиотека black автоматически преобразует длинные строки в короткие, заменяя одинарные кавычки на двойные
  • 3. Будут рассматривать изменения файла с конфигурациями (booking.py)
00:01:17
Проблемы с лишними импортами и длинными строками:
  • Обнаружены проблемы с лишними импортами библиотек (time, алхимия методов, классы)
  • Выявлена проблема сравнения значений ноль/нон (возможная ошибка в коде)
  • Упоминаются конкретные места в приложении, вызывающие сомнения и ошибки
00:01:48
Решение проблемы неизвестной переменной RoomLeft:
  • 1. Обнаружена проблема с переменной `румс лефт`, вызывающая ошибку импорта и краш программы при достижении определённой строки
  • 2. Рассматривается возможность исправления ошибки с помощью инструмента Black для проверки длин строк (до 90 символов)
  • 3. Решено детально изучить проблему и возможные пути её устранения, включая проверку работы Visual Studio Code
00:02:39
Настройка файла .pyproject.toml:
  • 1. Созданием файла `pyproject.toml` в корневой директории проекта займутся участники встречи
  • 2. В указанном файле планируется задать базовые настройки для используемых библиотек, включая указание версии Python (Python 3.9)
  • 3. Участники встречи рассмотрят рекомендации формата кода от инструмента Black относительно длины строк кода
00:03:52
Практическое применение формата Black:
  • 1. Решено протестировать форматирование файлов вручную, посмотреть разницу до и после обработки Black
  • 2. Предложено добавить цветовое выделение (зеленый и красный), чтобы визуально различать изменения в коде
  • 3. Обсуждается возможность автоматического запуска форматирования всех файлов командой `black /app`, однако рекомендовано использовать эту опцию осторожно
0: Друзья, пришло время нам поработать над нашим кодом, сделать его максимально стильным, красивым и читаемым, чтобы в нём не было ошибок. И нам потом не приходилось после уже релиза исправлять какие-то ошибки. Давай.
1: Давайте посмотрим на ряд библиотек, которые нам помогают. В этом начнём мы с библиотеки. Блэк блэк позволяет форматировать наш код по pep 8. Я думаю, вы знаете, что это такое. Это стандарт, который
2: И предписывает некоторые правила написания кода так вот, black нам поможет длинные строки конвертировать в коротенькие там кавычки одинарные конвертировать в двойные и так далее просто сделать код одинаковым.
3: Везде итак, мы заходим в наш проект и 1 делом устанавливаем ряд библиотек, давайте установим их сразу. Все это будет black, это будет флейк 8, это будет ау.
4: Flake это будет i sport, и это будет пай райт, мы их устанавливаем в наше виртуальное окружение, и далее что мы будем делать, давайте посмотрим на файл с букингами здесь.
5: Есть ряд проблем. Здесь есть лишние импорты, да, видите, выделены серым библиотеки, time каких-то из ск, алхимии методов каких-то из нашего приложения переменных классов и
6: Также мы нарочно здесь ещё, допустим, пару проблем. Смотрите, например, попробуем сравнить нон с нулём. Ну, представим, что вот где-то была допущена ошибка и room. Слайт реально стал ноном, или мы случайно так где-то написали и
7: Попробуем поработать с переменной румс лефт.
8: Например, вот таким образом смотрите рум лефт нигде до этого не задано вообще нигде, но visual studio code нас почему-то не ругает, он не видит, что она задана позже он думает.
9: Что? Ну окей, все нормально. Ну, очевидно, что здесь ошибка. Когда мы дойдём до этой строчки, пайтон не знает, что такое румет. Она ни на что не ссылается. Он выдаст нам ошибку, у нас крашнется наша программа. Давайте посмотрим, как решить эти проблемы вот такого рода
10: Вот такого рода с импортами также посмотрим на длинные строчки вот тут тут например у нас 90 символов строка посмотрим много это мало и что нам на это скажет блэк начнём пожалуй с black все.
11: Эти библиотеки, которые мы установили, каким-то образом конфигурируются. Давайте начнём с создания файлика в корне директории в корне нашего проекта под названием пай проджект точка томл. Это реко.
12: Рекомендуемое название в 1 из пепов именно такой файл, именно с таким расширением и здесь указываются настройки для различных библиотек. Давайте посмотрим на back.
13: Black это у нас форматор кода и он рекомендует в файлике пай проджект томл да, вот примерно такую структуру базовую определить давайте её скопируем, перейдём здесь, укажем что у нас python 3 и 9 и сразу мы видим, что можно.
14: Определить длину строки. Понятно, что есть ещё большое большое количество других настроек. Под себя можно настраивать, но мы посмотрим только на базовые. И, понятное дело, что длина строки это не что-то фиксированное, не может быть кем-то задана длина строки, которая
15: Будут использовать все разработчики, потому что, ну, это просто неправильно. По пепу это 79, кажется, по блэку это 88, у кого-то может быть 100 нормально. Тем не менее, давайте посмотрим, какие проблемы нам укажет блэк.
16: И что самое важное, не надо сразу форматировать по блэку все файлы. Попробуйте, потренируйтесь на 1. Причём не сразу форматировать, а просто увидеть хотя бы разницу. Да, давайте обратимся к файлу эп.
17: Slash букингс, слэш дау пай и напишем здесь дефис дефис дифф. Посмотрим, что нам скажет блэк. 1, что он говорит, самое важное, что 1 файл был бы отформатирован.
18: Но он не отформатирован, он не изменился. И что нам блэк тут спишет? Давайте сначала посмотрим. Давайте ещё добавим цвета, чтобы было видно, где, че, как зелёненьким, красненьким.
19: Он нам предлагает например вот запрос с получением комнат перед селектом создать скобочку и select перенести на новую строку там zoom квонтити отделить ещё 1 табом и в целом наш запрос разбить на там не знаю в 2 раза больше.
20: Строчек условно, чтобы джоины, чтобы веры все начинались с новой строчки. И, ну, действительно выглядит неплохо, да, наверное, даже лучше, чем у нас. Окей, тут согласны, где-то, в каких-то моментах вы можете принять такое решение, что
21: Вот именно, вот так отображать данные лучше, а blake может думать иначе. И вот для таких случаев не нужно запускать блэк вслепую и что-то нам ещё он подсказывает. И в целом мы можем попробовать отформатировать. Посмотрим, что будет, да, для этого.
22: Нам не нужно дифф и не нужно калор просто вот этот файлик запускаем и black говорит все готово, 1 файл отформатирован если вы уверены, что все файлы нуждаются в таком форматировании вы можете просто сказать black слэш, ну?
23: App слэш и все файлы внутри папки app будут отформатированы, но я бы не рекомендовал так делать. Смотрите, у нас действительно перенесли на новые строчки селект джойн вер групп теперь через точку, в принципе так же, как у нас и sq.
24: Вопросы построены, что довольно приятно, но тем не менее black не работает с ошибками типа Неизвестных переменных сравнения нон с нулём с импортами, которые нам мешают и они могут.
25: Ну, просто в ступор вводить людей, тем более, если они пользуются каким-то редактором, который, например, не подсвечивает, что эта библиотека не используется. Ну, такие бывают, кто-то работает в других айдшками, и тем не менее, нам они мешают, они просто захламляют наш
26: Код давайте посмотрим на остальные библиотек.