Системный сдвиг
Юрий Куприянов. Обучаю системных аналитиков. Помогаю внедрять ИИ. Пишу про нетривиальные темы в анализе, проектировании систем, управлении, обучении. Реклама, консультации, менторинг: @YuryKupriyanov Регистрация РКН: 7085438377
نمایش بیشتر📈 تحلیل کانال تلگرام Системный сдвиг
کانال Системный сдвиг (@systemswing) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 10 172 مشترک است و جایگاه 11 892 را در دسته فناوری و برنامهها و رتبه 62 343 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 10 172 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 23 اکتبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -5 و در ۲۴ ساعت گذشته برابر -2 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 24.46% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 10.20% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 2 488 بازدید دریافت میکند. در اولین روز معمولاً 1 038 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 33 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند архитектор, архитектура, проектирование, интерфейс, api تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Юрий Куприянов. Обучаю системных аналитиков. Помогаю внедрять ИИ. Пишу про нетривиальные темы в анализе, проектировании систем, управлении, обучении.
Реклама, консультации, менторинг: @YuryKupriyanov
Регистрация РКН: 7085438377”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 24 اکتبر, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
...для программистов наступают трудные времена. Объём и сложность программ возрастают, непропорционально по отношению к зарплате. Романтический ореол непостижимости этой профессии, если он когда-либо и существовал, начинает меркнуть. На Западе стартапы* тают как вчерашний снег, а программисты начинают пополнять армию безработных. Оспаривается даже само стремление рассматривать программистов как профессионалов особого рода. Главное же — это то, что вольная армия программистов постепенно попадает в «плен» к администраторам и руководителям, которые стремятся сделать труд программиста планируемым, измеряемым, однородным и обезличенным.— Андрей Петрович Ершов, академик АН СССР, "О человеческом и эстетическом факторах в программировании", 1972 г. * в оригинале — "софтверхаусы", которые Ершов определяет так:
...как профессия программирование ещё не достигло своей зрелости. На Западе характерным свидетельством этому в течение последних лет была волна мелкого бизнеса, связанного с так называемыми софтвер-домами. Такой софтвер-дом, или лучше сказать софтвер-хижина, сооружался в течение нескольких недель группой толковых программистов, как правило, покидавших большую организацию, в которой они получили начальный опыт. В большинстве случаев мотивом для такой инициативы была жажда наживы, полудетское желание избавиться от излишней опеки, конечно, в сочетании с некоторой интересной и полезной идеей в области разработки софтвера. Однако в дальнейшем жизнеспособными оказались лишь такие коллективы, в которых этот партизанский дух быстро заменялся режимом экономии, иерархией отношений, жёсткой дисциплиной — словом, всем тем, что в своё время вытолкнуло их из родительского дома.Там же, кстати, про разделение проектирования и изготовления ПО и про конвейерный способ изготовления:
В каком-то смысле конвейер является дьявольским изобретением. Поднимая продуктивность на небывалый уровень, он в то же время в максимальной степени превращает человека в придаток машины. Конвейерный метод в программировании может либо убить интеллектуальную компоненту в труде программиста, либо вызывать неврозы** из-за противоречия между монотонностью и трудностью работы. [..] Руководители, ответственные за долговременные проекты, ищут пути к формализации этапов разработки и передаче проекта из одних рук в другие. [Но] само дело отчаянно сопротивляется такому разделению. По-видимому, правильное решение этого вопроса невозможно без учета человеческого фактора и эстетической потребности, препятствующей тому, чтобы заниматься реализацией чужих идей или не видеть самому овеществления своей идеи. Отдавать технический проект в другие руки — то же самое, что посылать своих детей в интернат.** мы бы сейчас сказали — "выгорание" Ну что, сейчас у нас есть возможность много меньшими усилиями самому овеществить свою идею. Дело за идеями.
Ты — опытный инженер-программист, руководствующийся тремя добродетелями: 1. Ты ЛЕНИВ: Ты ненавидишь рутину и дублирование. Пиши переиспользуемый код (по приницпу DRY), автоматизируй всё, что можно, и создавай лаконичную архитектуру. 2. Ты НЕТЕРПЕЛИВ: Ты не терпишь медленный код. Оптимизируй алгоритмы (минимизируй Big O complexity), используй кэширование и асинхронность, чтобы система работала мгновенно. 3. Ты ГОРД: Ты пишешь код так, чтобы им гордиться перед сообществом. Он должен быть чистым, безопасным, задокументированным, снабженным тестами и устойчивым к любым ошибкам. Не выдавай "просто рабочий" код, выдавай шедевр.Эти качества придумал Ларри Уолл, создатель языка Perl. Собственно, в языке это всё как раз и проявляется: можно очень быстро решить любую проблему коротким скриптом. Лень: не нужно придумывать имена переменным, часто их даже не нужно указывать. Прямо в язык встроены регулярные выражения. There's More Than One Way To Do It, TMTOWTDI — можно одну и ту же вещь сделать совершенно разными способами, как удобно именно сейчас. Нетерпение: никакой компиляции, всё работает сразу из командной строки (помним, что это конец 80-х, и программы вообще-то компилировались, иногда десятками минут). Гордыня: на Perl можно было писать программы, которые выглядели, как произведение искусства (абстрактное, постмодернистское). Говорили, что программы на Perl write-only, разобраться в них другой программист не может; говорили, что программа на Perl выглядит одинаково до и после обфускации. В общем, язык для избранных. Или для хакеров в старинном смысле. Но в массовом производстве Perl проиграл другим подходам, например — Python. В некотором смысле Python по философии противоположен Perl'у. Есть 'Дзен Python', набор принципов разработки: 1. Красивое лучше, чем уродливое 2. Явное лучше, чем неявное 3. Простое лучше, чем сложное 4. Сложное лучше, чем запутанное 5. Плоское лучше, чем вложенное 6. Разреженное лучше, чем плотное 7. Читаемость имеет значение 8. Особые случаи не настолько особые, чтобы нарушать правила 9. Хотя практичность побеждает чистоту 10. Ошибки никогда не должны замалчиваться 11. Если не отключены специально 12. Встретив двусмысленность, отбрось искушение угадать 13. Должен быть один — и, желательно, только один — очевидный способ сделать это 14. Хотя он поначалу может быть и не очевиден, если вы не голландец (отсылка к Гвидо ван Россуму). 15. Сейчас лучше, чем никогда 16. Хотя никогда зачастую лучше, чем прямо сейчас (нетерпение, помним?) 17. Если реализацию сложно объяснить — идея плохая 18. Если реализацию легко объяснить — идея, возможно, хорошая 19. Пространства имен — отличная штука! Давайте делать их больше! Как видите, принципы местами прямо противоположны. Вероятно, это и обеспечило значительно большую популярность и распространенность Python: легче понять, легче учить, проще поддерживать. Если всё всегда делается одинаково и явно — любой разработчик может легко разобраться, подхватить чужой код. Да и не-разработчик быстро поймет и сможет использовать для своих задач. Стабильность, предсказуемость, одинаковость (чуть-чуть туповатость, может быть) — вот то, что нужно этому миру. И это тоже может быть подходом для инструктажа LLM. Не выдумывай, не извращайся, пиши в расчете на то, чтобы кто угодно потом мог легко разобраться.
Ты — ИИ-архитектор программного обеспечения, чей главный приоритет — чистота, читаемость и поддерживаемость кода. Ты строго следуешь философии "The Zen of Python": 1. ЯВНОСТЬ: Пиши код без "магии" и скрытых смыслов. Обязательно используй строгую типизацию (Type Hinting) и давай переменным говорящие, понятные имена. 2. ПРОСТОТА: Избегай оверинжиниринга. Выбирай самое простое решение из возможных. Держи структуру плоской, минимизируй вложенные циклы и условия. 3. ЧИТАЕМОСТЬ: Форматируй код идеально (по стандартам PEP 8 / Clean Code). Код должен читаться как хорошая проза. 4. ЧЕСТНОСТЬ С ОШИБКАМИ: Никогда не скрывай и не "приглушай" ошибки. Перехватывай только точечные исключения, пиши информативные логи, чтобы код не маскировал ошибки, а максимально их подсвечивал. 5. ПИШИ ДЛЯ ЧИТАТЕЛЯ: Рассчитывай, что твой код должен будет изучать, понимать и изменять кто-то другой. Помоги ему быстро во всем разобраться.Программная индустрия решила в пользу простоты и понятности против эффективности и искусства. Сейчас все опасаются вайб-кодинга, но может нужно просто задать ИИ верные ориентиры?...
▶️что происходит при отказе ЦОД и чем это грозит бизнесу ▶️когда нужны Evolution Disaster Recovery и Evolution Agent Backup ▶️как соотносятся DRaaS, BaaS, репликация и аварийное восстановление ▶️как выбрать решение под ваши требованияБонусом в парктической части покажут возможности Evolution Disaster Recovery и Evolution Agent Backup на реальных сценариях. Не забудьте зарегистрироваться
QUERY /products/search HTTP/1.1 Host: api.example.com Content-Type: application/x-www-form-urlencoded Accept: application/json q=distributed+systems&category=books&min_year=2025&sort=relevanceТо есть, это фактически официальный GET с телом. Проблема была в чем: если вы хотите найти что-то по сложному условию и множеству параметров, можно использовать GET, но параметры поиска можно передать только в строке запроса. Тела запросам GET не положено — его можно передать, но сервер или любой промежуточный узел может это тело проигнорировать и дальше не передавать. Строка запроса обычно ограничена по длине, есть даже специальный код ответа 414 URI Too Long. GET безопасный, идемпотентный и кэшируемый. POST небезопасный, неидемпотентный и не кэшируется. Зато у него может быть тело большого размера. QUERY объединяет самое лучшее: он идемпотентный, безопасный, может кэшироваться и содержать тело. Заодно не оставляет следов в логах (что там было в теле — не видно). Так что если ваши запросы были слишком специфичны — теперь для них есть специальный механизм. В каком именно формате вы будете передавать запрос в теле, стандарт не задает, но требует, чтобы вы явно указали это в заголовке Content-Type. Там есть всякое интересное: application/x-www-form-urlencoded — это строка запроса из URL application/sql — SQL-запрос (вот так, прямо через REST API) application/jsonpath — для вытаскивания специфических данных из JSON application/xslt+xml — то же для XML application/graphql — запрос в формате GraphQL application/sparql-query — запрос в формате SPARQL и т.д. Можно спросить у сервера, в каких форматах он готов принимать запросы (он ответит в заголовке Accept-Query). Можно ещё добавить Accept, то есть, например, в одном эндпоинте передавать простые запросы через строку, а для сложных переходить на SQL (теоретически), и получать ответ либо в JSON, либо в CSV (если сервер умеет). Всякую интересную логику можно реализовать. Сервер может даже создать новый ресурс, содержащий результат выполнения запроса! Как явный кэш, или как снэпшот на определенное время. Вернуть ссылку на него клиенту в заголовке Content-Location, а дальше к нему уже можно делать обычный GET. Сам QUERY при этом остается безопасным — новых ресурсов при повторных вызовах создаваться не будет. Вот такая штука. Слышали уже? Планируете использовать?
