Size: a a a

2020 September 29

MD

Mike Drepin in Moscow Python
Tim Gray
Из 68 человек, 50 выбрало f-string. Наверное я бы тоже выбрал если бы не один кейс. И так был небольшой проект, в котором почти все строки с параметром использовали f-string (где-то начинали использовать шаблонизатор) Проект начал стремительно расти. И понадобилась сделать простую задачу. Добавить мультиязычность. Вот и проблема, где-то были простые оповещения и это f-string. Все раскидано по коду. Рефракторинг занял много времени. После этого я решил что всегда буду использовать str.format() если строка отправляется пользователю. Тут я могу просто указать глобально переменную и подставить все что нужно. Почему не оператор % ? Мне кажется str.format() более понятный и читабельный чем % . Неизвестно кто будет читать этот код . Если это будет не опытный Джун он сможет быстро сориентироваться. Поэтому рекомендую вам использовать str.format() если эта строка отправляется пользователю. Потому что если потом понадобится добавить мультиязычность вам придётся помучиться.
Как тимлид проекта на 8ми языках, в т.ч. один из них rtl, не согласен.
источник

TG

Tim Gray in Moscow Python
Alexander Shorin
Ну таки стоит понимать, что выбор зависит от юзкейса. f-стринги и str.format так же плохо подойдут для форматирований строк, где и так есть { } символы - % будет удобнее. Но не у всех есть такие случаи, равно как и мультиязычность.
А если использовать именованные переменные ? Разве у format() будут проблемы с { } ?
источник

MD

Mike Drepin in Moscow Python
При добавление в проект переводов ты перезжаешь на n\p\gettext и все стандартные питоньи способы форматирования строк тебя перестают волновать. А если вы для мультияхычности перехали с f'' на .format, обложив ифами if lang == 'ru', то у меня для вас плохие новости, скоро вы захотите третий язык
источник

TG

Tim Gray in Moscow Python
Mike Drepin
При добавление в проект переводов ты перезжаешь на n\p\gettext и все стандартные питоньи способы форматирования строк тебя перестают волновать. А если вы для мультияхычности перехали с f'' на .format, обложив ифами if lang == 'ru', то у меня для вас плохие новости, скоро вы захотите третий язык
Никто не говорит, что это супер решение которое осталось.
источник

MD

Mike Drepin in Moscow Python
Tim Gray
Никто не говорит, что это супер решение которое осталось.
А зачем тогда выбирать между инструментами, ни один из которых не подходит для задачи?)
источник

TG

Tim Gray in Moscow Python
Mike Drepin
А зачем тогда выбирать между инструментами, ни один из которых не подходит для задачи?)
Hot fix проще сделать при надобности
источник

AS

Alexey Starkov in Moscow Python
Tim Gray
Ну не знаю как кто, а я использую configparser и там храню сообщения. Потом подгружаю их. И если f-string, мне надо найти строку скорее всего в коде. А тут в *.ini просто нашёл блок и поменял.
лишние телодвижения, еще и следить надо чтоб названия параметров не рассинхронились, все равно придется чекнуть еще в коде, чтобы посмотреть что все по старому, что строчка используется только там где ты думаешь ну и т.п. гораздо хуже чем иметь в коде
источник

TG

Tim Gray in Moscow Python
Alexey Starkov
лишние телодвижения, еще и следить надо чтоб названия параметров не рассинхронились, все равно придется чекнуть еще в коде, чтобы посмотреть что все по старому, что строчка используется только там где ты думаешь ну и т.п. гораздо хуже чем иметь в коде
Возможно я просто привык и для меня это норм. Для кого-то сложно.
источник

AZ

Alexander Zelenyak in Moscow Python
Мультиязычность и правда лучше нормальными инструментами делать, а не питоньими строками.
Зачем же нужны фу-строки я так и не понял. Зачем-то смешали данные с кодом и все этому радуются. Впрочем, эти люди на фастапи пишут — удивляться особо нечему...
источник

MD

Mike Drepin in Moscow Python
Alexander Zelenyak
Мультиязычность и правда лучше нормальными инструментами делать, а не питоньими строками.
Зачем же нужны фу-строки я так и не понял. Зачем-то смешали данные с кодом и все этому радуются. Впрочем, эти люди на фастапи пишут — удивляться особо нечему...
Ты просто завидуешь что сам не пишешь на FastAPI
источник

AZ

Alexander Zelenyak in Moscow Python
Mike Drepin
Ты просто завидуешь что сам не пишешь на FastAPI
У меня нет проблемы на нём писать, так как сам выбираю инструменты.
источник

MD

Mike Drepin in Moscow Python
Так это очень узко специализированный инструмент, не подходит под твои задачи, вот ты его и не выбираешь
источник

MD

Mike Drepin in Moscow Python
"У тебя просто задач нормальных небыло" :)
источник

AZ

Alexander Zelenyak in Moscow Python
И чем он такой специализированный?   🙂
источник

AZ

Alexander Zelenyak in Moscow Python
В какой задаче я должен выбрать фастапи вместо аиохттп?
источник

MD

Mike Drepin in Moscow Python
Открытая версионированная документация для внешних заказчиков
источник

AZ

Alexander Zelenyak in Moscow Python
Мнэээ... И? При чём тут фастапи?
источник

MD

Mike Drepin in Moscow Python
в нём это есть из каробки
источник

AZ

Alexander Zelenyak in Moscow Python
У меня в проекте все заказчики внешние бай дизайн. И тащить туда инструмент, который конфигурируется на уровне импортирования с глобальным контекстом... У меня ещё есть чувство прекрасного.
источник

AZ

Alexander Zelenyak in Moscow Python
Я просто не въезжаю, в то, что там такого есть из коробки, что я не могу быстро запилить руками.
источник