Jun. 5th, 2020

elglin: (Default)
Обнаружил для себя полезное свойство интереса к истории.
Вот у вас есть система ввода и обработки заказов, особенно если это реальный хайлоад, и она обмолачивает от сотен до сотни тысяч запросов в секунду, а каждый запрос обрабатывается за время от секунд до минут.
Представьте себе, как это бы выглядело в 19 веке. Что приходит вам из какой-то деревушки письмо: "прошу выслать мне керосиновую лампу и три бочки керосина". Вы пишете служебную записку на склад: "прошу зарезервировать для г-на У. лампу и три бочки керосина"; наутро вам приносят ответ: "Все найдено и зарезервировано" - и вы пишете уважаемому господину У., что у него есть неделя на то, чтобы оплатить два фунта, семь шиллингов и три пенса почтовым переводом. И так далее.
По сути, в этом нашем ойти происходит все то же самое, только намного большим потоком и быстрее. А так можно перемасштабировать задачу в ситуацию, которая легко осознается человеческим мозгом. А если учесть, что время было неспокойное, а люди бардачные, и все вот эти служебные записки и письма регулярно терялись или доходили с опозданием, то сразу сильно проще понимается, где нужно поретраить, где поставить таймаут и все такое.
Полезное это дело, короче. А если представить, что вместо вебхендлеров у вас сидят гремлины за конторским столиком, то получается практически Пратчетт.
elglin: (Default)
Читнул тут питоновский скрипт одного из наших амерских питонистов, причем не самого худшего.
Я не буду тут про отсутствие def main(), стандартного if __name__ == '__main__' и посланный лесом PEP 8. Это крючкотворство.
Но зачем при импорте pathlib вызывать os.getcwd()? Это все равно, что в плюсовом коде вызывать malloc() - можно и работать будет, но так не принято.
Но это эскиз к вокалу. Напоминаю, у нас импортнуты pathlib и os (а, следственно, и os.path). То есть у нас есть перегруженный "/" для Path и os.path.join(). Но мы имеем (имена изменены):
foo = Path(__file__).parent # makes sense in context
# ...
bar= '{0}/xyzzy'.format(foo) # Sooo cross-platform
with open(bar, 'r') as f: # open() accepts path-like objects!
    # ... who cares ...

Естественно, foo продолжает оставаться типа pathlib.Path.
Вот как раз тот случай, когда код работает не благодаря, а вопреки программисту. Хотя этот же человек год назад писал assert x == True, так что надо радоваться прогрессу.
Page generated May. 14th, 2026 08:02 am
Powered by Dreamwidth Studios