о полезности чтения чужих исходников
я кажется уже упомниал, что крайне полезно читать чужой код. благо, егокак говна за баней очень много на ГитХабе: по любой тематике, любого качества, на любом языке
через это ты не только учишься быстро понимать и вникать в код (а это тоже навык), но самое главное – можешь учиться новому (к вопросу про мой предыдущий пост, кстати☝️), перенимать какие-то фишки, приемчики или даже узнавать новые конструкции языка или используемые бибилиотеки. ну а где-то, наоборот, можешь понять, почему ты бы написал лучше и чем данный код плох, какие есть минусы и почему его сложно читать (=поддерживать)
это, кстати, касается и код-ревью: важно читать и перенимать чужой опыт и фишечки написания кода
так вот… читаю я сегодня на досуге код OpenShot (это такой видеоредактор). а что примечательно – его ГУЕвая часть написана на связке Python+Qt
читаю-читаю, и натыкаюсь в разделе инициализации логов на такую конструкцию:
и узнаю, что в питоне, оказывается, из коробки есть log rotation (об этом в другой раз; вкратце, это когда лог пишется до определенного момента в файл, после чего начинает писаться в следующий файл, чтобы файлы не разрастались)
поглядел в доке: так там целая поляна всевозможных лог хендлеров, от null до отправления UDP-датаграмм
так что в очередной раз даю совет: читайте чужой код!
#python #log #sourceCode #опыт
я кажется уже упомниал, что крайне полезно читать чужой код. благо, его
через это ты не только учишься быстро понимать и вникать в код (а это тоже навык), но самое главное – можешь учиться новому (к вопросу про мой предыдущий пост, кстати☝️), перенимать какие-то фишки, приемчики или даже узнавать новые конструкции языка или используемые бибилиотеки. ну а где-то, наоборот, можешь понять, почему ты бы написал лучше и чем данный код плох, какие есть минусы и почему его сложно читать (=поддерживать)
это, кстати, касается и код-ревью: важно читать и перенимать чужой опыт и фишечки написания кода
так вот… читаю я сегодня на досуге код OpenShot (это такой видеоредактор). а что примечательно – его ГУЕвая часть написана на связке Python+Qt
читаю-читаю, и натыкаюсь в разделе инициализации логов на такую конструкцию:
#
# Create rotating file handler
#
if os.path.exists(info.USER_PATH):
fh = logging.handlers.RotatingFileHandler(
os.path.join(info.USER_PATH, 'openshot-qt.log'),
encoding="utf-8",
maxBytes=25*1024*1024, backupCount=3)
fh.setLevel(info.LOG_LEVEL_FILE)
fh.setFormatter(file_formatter)
log.addHandler(fh)
else:
class DummyHandler:
def setLevel(self, level):
return True
fh = DummyHandler()
и узнаю, что в питоне, оказывается, из коробки есть log rotation (об этом в другой раз; вкратце, это когда лог пишется до определенного момента в файл, после чего начинает писаться в следующий файл, чтобы файлы не разрастались)
поглядел в доке: так там целая поляна всевозможных лог хендлеров, от null до отправления UDP-датаграмм
так что в очередной раз даю совет: читайте чужой код!
#python #log #sourceCode #опыт
🔥2👍1👌1
в Питоне для генерации чего-то более-менее критичного к секьюрности рекомендуется использовать пакет
вот дока https://docs.python.org/3/library/secrets.html
а вот PEP 506 с деталями https://peps.python.org/pep-0506/
the rule of thumb:
почитайте – крайне полезные вещи там
#security #python
secrets
вместо random
вот дока https://docs.python.org/3/library/secrets.html
а вот PEP 506 с деталями https://peps.python.org/pep-0506/
the rule of thumb:
random
используем для всякого матмоделирования и некриитчного к безопасности. secrets
– для генерации токенов, паролей и всего прочего на проде, что нужно хранить безопасно. Кстати, там же есть удобная функция для генерации валидных рандомных частей УРЛов – secrets.token_urlsafe()
почитайте – крайне полезные вещи там
#security #python
👍1🔥1
да уж… питона у меня на ГХ все больше и больше
второй график – на начало этого года
третий – на начало 2024
четвертый – два года назад
кстати, также видно и развитие утилиты git-stats-plate-gen за те же два года
итого, что у нас по питону:
авг 2023 – 25К
янв 2024 – 33К
янв 2025 – 58К
авг 2025 – 77К
🤪
это только полностью мои репы, которые мейнтейню в одно лицо. Никаких форков или те, куда я контрибутил «вовне»
#python #stats #gitHub
второй график – на начало этого года
третий – на начало 2024
четвертый – два года назад
кстати, также видно и развитие утилиты git-stats-plate-gen за те же два года
итого, что у нас по питону:
авг 2023 – 25К
янв 2024 – 33К
янв 2025 – 58К
авг 2025 – 77К
🤪
это только полностью мои репы, которые мейнтейню в одно лицо. Никаких форков или те, куда я контрибутил «вовне»
#python #stats #gitHub
🔥1