зачем писать юнит-тесты, для чего нужны конвенции по именованию переменных, почему важны принципы типа DRY и т.д
Описанные вами проблемы (и процентов 80-90 других) вполне отлавливаются стандартными линтерами с дефолтными настройками. Какие-то более экзотичные - добавлением своих настроек/плагинов, но тут лучше смотреть по трудозатратам, стоит ли игра свеч .
Если интересуют конкретные примеры - можете взглянуть на настройки DjangoProject в каталоге .github. Много полезного почерпнул от них в свое время.
Но когда организован CI/CD с линтерами и процентом cоverage, то у пулреквеста будет красный крестик - не работает. Иди чини:
не соответствующие стандарту имена переменных в таких то строчках таких то файлов
дублирующийся код в таких то файлах
снижение процента покрытия кода тестами
и т.д. и т.п.
Если чел оказался достаточно хитер, чтобы впихнуть какую-то дичь в коде через эти фильтры, то выдаем ему пирожок, подкручиваем техпроцесс на предмет отлова этой дичи и повторяем цикл.
насчет гарантий соответствия - не задумывался, честно говоря. если подскажете какие-то бестпрактикс, и что вообще почитать по этому вопросу, то буду весьма благодарен.
впрочем, в данном конкретном случае размер кода - 85 строк, так что можно и руками сравнить :)
Если про "отправку уведомлений", то большинство сервисов и crm имеет встроенный функционал отправки оповещений на почту. Их можно перекидывать в телегу вот этим ботом:
Тем, кто уже прикрутил к проекту и использует GeoDjango, наверное ничего не мешает.
Но мне в своем небольшом проекте нужно только показать расположение на карте моих данных. Использовать для такой задачи GeoDjango - это как из пушки по воробьям. Ну и тащить ради этого в проект все зависимости GeoDjango совсем не хочется.
"прям любую" - это ваше преувеличение.
Описанные вами проблемы (и процентов 80-90 других) вполне отлавливаются стандартными линтерами с дефолтными настройками. Какие-то более экзотичные - добавлением своих настроек/плагинов, но тут лучше смотреть по трудозатратам, стоит ли игра свеч .
Если интересуют конкретные примеры - можете взглянуть на настройки DjangoProject в каталоге .github. Много полезного почерпнул от них в свое время.
Вполне себе аргумент.
Но когда организован CI/CD с линтерами и процентом cоverage, то у пулреквеста будет красный крестик - не работает. Иди чини:
не соответствующие стандарту имена переменных в таких то строчках таких то файлов
дублирующийся код в таких то файлах
снижение процента покрытия кода тестами
и т.д. и т.п.
Если чел оказался достаточно хитер, чтобы впихнуть какую-то дичь в коде через эти фильтры, то выдаем ему пирожок, подкручиваем техпроцесс на предмет отлова этой дичи и повторяем цикл.
Будет польза и вам и ему.
ГКС научились бы TLE делать для своих спутников. А то пока как в фильме - "дают осечки 50/50".
1.1 %
Насчет рендера в pdf. Если текст в markdown, то можете попробовать вот этот способ.
Если возникнут проблемы/вопросы/пожелания, пишите в личку.
под внешними бинарниками я подразумеваю дополнительные телодвижения при установке, помимо 'pip install'.
их не требуется -
мамой клянусь!запуск тестов в github actions это подтверждает.возможно, указанный компонент ставиться при штатной установке или является опциональным.
насчет публикаций на pypi - да, руками публикую.
насчет гарантий соответствия - не задумывался, честно говоря. если подскажете какие-то бестпрактикс, и что вообще почитать по этому вопросу, то буду весьма благодарен.
впрочем, в данном конкретном случае размер кода - 85 строк, так что можно и руками сравнить :)
боюсь, что полный рассказ о страданиях получился бы слишком длинным, в нескольких томах :)
мало народу до конца дочитало бы.
readme_ru
Если про "отправку уведомлений", то большинство сервисов и crm имеет встроенный функционал отправки оповещений на почту. Их можно перекидывать в телегу вот этим ботом:
https://vb64.github.io/telegram.email.notify/docs/ru/guide.html
А чем поможет эта либа тем, кто не использует Aiogram, но использует вебхук?
вопрос конечно интересный. при выводе средств из него в фиатную валюту в платежке будет указан источник платежа.
конечно не факт, что это будет реальная контора, но конец цепочки можно будет увидеть.
с другой стороны, использования для бота юзернейма, не оканчивающегося на 'bot', говорит о каком-то взаимодействии с командой Telegram.
насколько я понимаю, такие юзернеймы выдают по запросу и далеко не всем.
Огрехи перевода. По контексту речь об определениях типов через define и typedef.
Ну так нейминг и инвалидация кеша - две единственно сложные проблемы в программинге, по мнению одного умного буржуя.
Насчет понимания что такое "выразительность кода" - вот пример (из "Programmer's Stone")
Обычно такие проблемы с фразами, содержащими числа. Нужно проверять, как Алиса их преобразует в текст.
Тем, кто уже прикрутил к проекту и использует GeoDjango, наверное ничего не мешает.
Но мне в своем небольшом проекте нужно только показать расположение на карте моих данных. Использовать для такой задачи GeoDjango - это как из пушки по воробьям. Ну и тащить ради этого в проект все зависимости GeoDjango совсем не хочется.
нет.
либа делалась как максимально простая альтернатива GeoDjango, когда нужен только показ данных с координатами (долгота/широта) на карте.
Этого не видел, спасибо.
Но мне нужно было с шорткатами для самых часто используемых диапазонов, как в штатном фильтре Django. Ну и время, не только дата.
Наверное можно и нужно.
Шансов на то, что сигнатура вызова со временем не изменится, существенно больше, чем у вызова конструктора класса в коде из моей статьи.
Спасибо за подсказку.
Тесты ценны сами по себе, безотносительно любых случаев.
Я вообще в последнее время склоняюсь к мысли, что главной ценностью компании-разработчика являются не исходники приложения, а тестсьют для них.
И coverage 100% хоть и не является "серебряной пулей", но очень на нее похож.