Это история о том, как потерпеть фиаско, имея хорошо написанный и протестированный в боевых условиях работающий код и даже написанную документацию. Изначально я собирался делать анонс своей библиотеки, но что-то пошло не так. Поэтому начнём за здравие -- постановка и формализация задачи, описание возможностей и батареек. А закончим за упокой -- вопросами, как всё это теперь тестировать?
Разработчик
SQLAlchemy: а ведь раньше я презирал ORM
Так вышло, что на заре моей карьеры в IT меня покусал Oracle -- тогда я ещё не знал ни одной ORM, но уже шпарил SQL и знал, насколько огромны возможности БД.
Знакомство с DjangoORM ввело меня в глубокую фрустрацию. Вместо возможностей -- хрена с два, а не составной первичный ключ или оконные функции. Специфические фичи БД проще забыть. Добивало то, что по цене нулевой гибкости мне продавали падение же производительности -- сборка ORM-запроса не бесплатная. Ну и вишенка на торте -- в дополнение к синтаксису SQL надо знать ещё и синтаксис ORM, который этот SQL сгенерирует. Недостатки, которые я купил за дополнительную когнитивную нагрузку -- вот уж где достижение индустрии. Поэтому я всерьёз считал, что без ORM проще, гибче и в разы производительнее -- ведь у вас в руках все возможности БД.
Так вот, эта история с SQLAlchemy -- счастливая история о том, как я заново открыл для себя ORM. В этой статье я расскажу, как я вообще докатился до такой жизни, о некоторых подводных камнях SQLAlchemy, и под конец перейду к тому, что вызвало у меня бурный восторг, которым попытаюсь с вами поделиться.
Цензура в интернете. Когда базовых мер недостаточно — I2P
В прошлой статье я рассказал, какие выкрутасы можно сделать одним только браузером. В этой статье я расскажу, что ещё можно сделать, выйдя за рамки браузера
То, что изначально планировалось как небольшое дополнение к предыдущей статье с посылом "мы научились использовать прокси -- теперь добавим в их список шлюз i2p", выросло, словно собачка во время пути
Объём статьи не означает, что всё так сложно. Я подробно рассказал про несколько вариантов настройки. А какой выбрать -- решать вам
Цензура в интернете. Надо что-то делать
Интернет сегодня как воздух. Его никто не замечает и принимает как должное до тех пор, пока его кто-то не испортит или не отключат вовсе (привет горячему августу 2020 в РБ). В данной статье я расскажу, какие меры можно предпринять, имея в руках только браузер. Каждый инструмент вне браузера -- это тема для отдельной публикации
PS: а ещё вангую реакцию: "О, прикольно. Добавлю в закладки. Почитаю как-нибудь потом". Ага, когда интернет пропадёт?
Celery + asyncio
Celery taskcls: новый декоратор, новые возможности
Привет, Хабр! Я расскажу тебе историю своего профессионального подгорания.
Так вышло, что я терпеть не могу рутинных однообразных действий. У меня за плечами несколько проектов, использующих Celery. Каждый раз, когда задача становится сложнее вывода 2 + 2 = 5
, шаблон решения сводится к созданию класса, выполняющего задачу, и функции-стартера, с которой умеет работать Celery — бойлерплейта. В этой статье я расскажу, как я боролся с бойлерплейтом, и что из этого вышло.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность