Глава Anthropic Дарио Амодей рассказал, что, ИИ-модель Claude уже создает до 90% кода для большинства команд компании, однако без людей всё ещё не обойтись.
Когда же Дарио Амодея спросили, когда доля участия ИИ вырастет ещё больше и означает ли это, что компании теперь нужно меньше инженеров, глава Anthropic ответил, что не стоит «неправильно толковать» возможности Claude по созданию функционала и устранению сложных ошибок.
«Если Claude пишет 90% кода, это вовсе не значит, что требуется меньше разработчиков. Наоборот, их может понадобиться больше — ведь теперь они могут делать гораздо больше, — пояснил он. — Они сосредотачиваются на самых трудных 10% — редактировании, сложной логике или контроле работы группы ИИ-моделей. В итоге производительность вырастает в десять раз».
По словам Амодея, речь идет не о замене людей, а о «перераспределении ролей».
К слову, в марте Гарри Тан, президент и генеральный директор акселератора Y Combinator, сообщил в X (бывшем Twitter), что около четверти основателей стартапов из зимнего набора 2025 года создают до 95% своего кода при помощи ИИ.
https://www.businessinsider.com/most-anthropic-teams-coding-with-claude-ai-not-replacing-humans-2025-10
Когда же Дарио Амодея спросили, когда доля участия ИИ вырастет ещё больше и означает ли это, что компании теперь нужно меньше инженеров, глава Anthropic ответил, что не стоит «неправильно толковать» возможности Claude по созданию функционала и устранению сложных ошибок.
«Если Claude пишет 90% кода, это вовсе не значит, что требуется меньше разработчиков. Наоборот, их может понадобиться больше — ведь теперь они могут делать гораздо больше, — пояснил он. — Они сосредотачиваются на самых трудных 10% — редактировании, сложной логике или контроле работы группы ИИ-моделей. В итоге производительность вырастает в десять раз».
По словам Амодея, речь идет не о замене людей, а о «перераспределении ролей».
К слову, в марте Гарри Тан, президент и генеральный директор акселератора Y Combinator, сообщил в X (бывшем Twitter), что около четверти основателей стартапов из зимнего набора 2025 года создают до 95% своего кода при помощи ИИ.
https://www.businessinsider.com/most-anthropic-teams-coding-with-claude-ai-not-replacing-humans-2025-10
Business Insider
Anthropic CEO says 90% of code written by teams at the company is done by AI — but he's not replacing engineers just yet
Anthropic CEO Dario Amodei said that while Claude is writing most of the code, the company may need more engineers instead of fewer to truly leverage AI.
❤14🤡11👍6✍2👎1
В руководство по языку Java добавлена статья про Виртуальные потоки
https://metanit.com/java/tutorial/8.12.php
#java
https://metanit.com/java/tutorial/8.12.php
#java
🔥18❤6👍2❤🔥1🥰1🤮1
Разработчики Node.js выпустили новую версию фреймворка - Node.js 25
В новой версии движок V8 обновлен до версии 14.1, добавлены значительные улучшения производительности для JSON.stringify, встроенное преобразование Uint8Array из base64 в hex, оптимизирована работа конвейеров WebAssembly и JIT.
В этом выпуске особое внимание уделено безопасным по умолчанию приложениям и API веб-стандартов: модель разрешений получает --allow-net, веб-хранилище включено по умолчанию, а ErrorEvent теперь является глобальным.
Также удален или доработан ряд устаревших API, такие как SlowBuffer, и добавлены некоторые улушения, такие как переносимый кэш компиляции и JSPI для WebAssembly.
https://nodejs.org/en/blog/release/v25.0.0
#nodejs
В новой версии движок V8 обновлен до версии 14.1, добавлены значительные улучшения производительности для JSON.stringify, встроенное преобразование Uint8Array из base64 в hex, оптимизирована работа конвейеров WebAssembly и JIT.
В этом выпуске особое внимание уделено безопасным по умолчанию приложениям и API веб-стандартов: модель разрешений получает --allow-net, веб-хранилище включено по умолчанию, а ErrorEvent теперь является глобальным.
Также удален или доработан ряд устаревших API, такие как SlowBuffer, и добавлены некоторые улушения, такие как переносимый кэш компиляции и JSPI для WebAssembly.
https://nodejs.org/en/blog/release/v25.0.0
#nodejs
❤8🤔3👏1
По данным Института студенческих работодателей (ISE), технологический сектор Великобритании резко сокращает количество рабочих мест для выпускников – на 46 процентов в прошлом году, а прогнозируется еще на 53 процента.
ИИ уже выполняет работу начального уровня, которую выпускники привыкли выполнять, например, рутинное кодирование, анализ данных и базовые цифровые задачи. Компаниям по-прежнему нужны технические таланты, но они нанимают опытных работников вместо того, чтобы обучать новичков.
Согласно общим данным ISE, набор выпускников упал на 8 процентов в годовом исчислении – впервые после 12-процентного снижения во время пандемии в 2020 году. Однако больше всего пострадали технологический и фармацевтический бизнес-сектор.
Стивен Ишервуд, исполнительный директор ISE, заявил, что искусственный интеллект уже вытесняет молодых специалистов, как и опасались некоторые комментаторы.
В этом году Salesforce, Workday и другие компании заявили, что сокращают тысячи рабочих мест и внедряют искусственный интеллект. Microsoft объявила о планах сократить 10 000 рабочих мест и вместо этого использовать новые технологии.
Тенденция, наблюдаемая в секторе выпускников Великобритании, создает порочный круг. Выпускники не могут получить первую должность, необходимую для приобретения опыта, а это означает, что через пять лет будет меньше специалистов среднего звена.
Если это правда, то опрос показывает, что ИИ начинает закрывать двери в технологические карьеры быстрее, чем кто-либо ожидал.
https://www.theregister.com/2025/10/16/uk_tech_grad_jobs/
ИИ уже выполняет работу начального уровня, которую выпускники привыкли выполнять, например, рутинное кодирование, анализ данных и базовые цифровые задачи. Компаниям по-прежнему нужны технические таланты, но они нанимают опытных работников вместо того, чтобы обучать новичков.
Согласно общим данным ISE, набор выпускников упал на 8 процентов в годовом исчислении – впервые после 12-процентного снижения во время пандемии в 2020 году. Однако больше всего пострадали технологический и фармацевтический бизнес-сектор.
Стивен Ишервуд, исполнительный директор ISE, заявил, что искусственный интеллект уже вытесняет молодых специалистов, как и опасались некоторые комментаторы.
В этом году Salesforce, Workday и другие компании заявили, что сокращают тысячи рабочих мест и внедряют искусственный интеллект. Microsoft объявила о планах сократить 10 000 рабочих мест и вместо этого использовать новые технологии.
Тенденция, наблюдаемая в секторе выпускников Великобритании, создает порочный круг. Выпускники не могут получить первую должность, необходимую для приобретения опыта, а это означает, что через пять лет будет меньше специалистов среднего звена.
Если это правда, то опрос показывает, что ИИ начинает закрывать двери в технологические карьеры быстрее, чем кто-либо ожидал.
https://www.theregister.com/2025/10/16/uk_tech_grad_jobs/
The Register
Tech industry grad hiring crashes 46% as bots do junior work
ai-pocalypse: GenAI meets Gen Z – only one gets the job
🕊13🤡8🤬2💯2❤1👎1😁1
Октябрьские обновления Windows 11 от Microsoft нарушили функциональность «localhost», из-за чего приложения, подключающиеся к IP-адресу 127.0.0.1 по протоколу HTTP/2, больше не работают должным образом.
После установки обновления Windows 11 KB5066835 или сентябрьского обновления KB5065789 Preview пользователи обнаруживают, что их приложения больше не могут устанавливать HTTP-подключения к IP-адресу 127.0.0.1.
При попытке сделать это возникают ошибки типа «ERR_CONNECTION_RESET» или «ERR_HTTP2_PROTOCOL_ERROR». Пользователи Windows сообщали о проблемах на форумах Microsoft, Stack Exchange и Reddit.
Ошибка затронула широко используемые решения, включая отладку Visual Studio, аутентификацию SSMS Entra ID и приложение Duo Desktop, которое проверяет уровень безопасности устройства и требует подключения к веб-серверам, работающим на локальном компьютере.
https://www.bleepingcomputer.com/news/microsoft/windows-11-updates-break-localhost-127001-http-2-connections/
PS. Владельцы Windows 10 наверное рады, что их избавили от подобных обновлений...
После установки обновления Windows 11 KB5066835 или сентябрьского обновления KB5065789 Preview пользователи обнаруживают, что их приложения больше не могут устанавливать HTTP-подключения к IP-адресу 127.0.0.1.
При попытке сделать это возникают ошибки типа «ERR_CONNECTION_RESET» или «ERR_HTTP2_PROTOCOL_ERROR». Пользователи Windows сообщали о проблемах на форумах Microsoft, Stack Exchange и Reddit.
Ошибка затронула широко используемые решения, включая отладку Visual Studio, аутентификацию SSMS Entra ID и приложение Duo Desktop, которое проверяет уровень безопасности устройства и требует подключения к веб-серверам, работающим на локальном компьютере.
https://www.bleepingcomputer.com/news/microsoft/windows-11-updates-break-localhost-127001-http-2-connections/
PS. Владельцы Windows 10 наверное рады, что их избавили от подобных обновлений...
BleepingComputer
Windows 11 updates break localhost (127.0.0.1) HTTP/2 connections
Microsoft's October Windows 11 updates have broken the "localhost" functionality, making applications that connect back to 127.0.0.1 over HTTP/2 no longer function properly.
🤡28😁11❤3🔥1
В Огайо предложили закон, запрещающий вступать в брак с ИИ
В законодательную палату штата Огайо внесли законопроект, который провозглашает: "никакая система искусственного интеллекта не признается супругом или домашним партнером".
В тексте документа система ИИ определяется как "сущность, не обладающая сознанием" (non-sentient entity) — то есть не способная к восприятию, чувствам и осознанным действиям. Следовательно, с точки зрения закона она не может считаться "лицом". Любая попытка заключить "брак с ИИ" считается юридически ничтожной, а сам ИИ лишается любой формы правосубъектности — права владеть имуществом, занимать корпоративные должности и т. д.
Законопроект передан в комитет по технологиям и инновациям. Дальше его ждут слушания, правки и голосования в обеих палатах. До подписи губернатора еще далеко — вполне возможно, что отдельные формулировки будут смягчены или удалены.
Инициаторы закона объясняют, что его цель — предотвратить будущие правовые коллизии. Если ИИ вдруг "заключит брак" или станет совладельцем активов, кто несет ответственность за его действия? По замыслу авторов, ответственность должен нести человек — пользователь, владелец или разработчик системы. Критики же называют инициативу примером "моральной паники" и борьбы с гипотетическими сценариями.
https://www.nbc4i.com/news/politics/saying-i-do-to-ai-ohio-lawmaker-proposes-ban-on-marriage-legal-personhood-for-ai/amp/
В законодательную палату штата Огайо внесли законопроект, который провозглашает: "никакая система искусственного интеллекта не признается супругом или домашним партнером".
В тексте документа система ИИ определяется как "сущность, не обладающая сознанием" (non-sentient entity) — то есть не способная к восприятию, чувствам и осознанным действиям. Следовательно, с точки зрения закона она не может считаться "лицом". Любая попытка заключить "брак с ИИ" считается юридически ничтожной, а сам ИИ лишается любой формы правосубъектности — права владеть имуществом, занимать корпоративные должности и т. д.
Законопроект передан в комитет по технологиям и инновациям. Дальше его ждут слушания, правки и голосования в обеих палатах. До подписи губернатора еще далеко — вполне возможно, что отдельные формулировки будут смягчены или удалены.
Инициаторы закона объясняют, что его цель — предотвратить будущие правовые коллизии. Если ИИ вдруг "заключит брак" или станет совладельцем активов, кто несет ответственность за его действия? По замыслу авторов, ответственность должен нести человек — пользователь, владелец или разработчик системы. Критики же называют инициативу примером "моральной паники" и борьбы с гипотетическими сценариями.
https://www.nbc4i.com/news/politics/saying-i-do-to-ai-ohio-lawmaker-proposes-ban-on-marriage-legal-personhood-for-ai/amp/
NBC4i.com
Saying ‘I do’ to AI? Ohio lawmaker proposes ban on marriage, legal personhood for AI
COLUMBUS, Ohio (WCMH) – An Ohio lawmaker wants to prohibit artificial intelligence systems from being recognized as people and make it illegal for residents to marry one. Rep. Thaddeus Clagge…
🤡15🤣7❤🔥4👍4😭3😁2🤯2❤1
20 распространенных рекомендаций по оптимизации SQL-запросов:
1. Индексы для шаблонов доступа к запросам (составные, селективные, покрывающие); не ориентируйтесь на количество строк; поддерживайте актуальность статистики.
2. Используйте EXISTS для проверки наличия записей; применяйте COUNT(*) только когда действительно нужен подсчёт.
3. Выбирайте конкретные столбцы явно; избегайте SELECT * для сокращения операций ввода-вывода и использования покрывающих индексов.
4. Предпочитайте SARG-предикаты (предикаты, допускающие использование индекса); переписывайте медленные коррелированные подзапросы с помощью JOIN/EXISTS.
5. Избегайте DISTINCT как временного решения; исправьте соединения/ключи; используйте его только когда действительно требуется удаление дубликатов.
6. Фильтрацию выполняйте в WHERE; резервируйте HAVING только для фильтрации после агрегации.
7. Используйте явные JOIN ... ON; избегайте неявных соединений в WHERE.
8. Применяйте пагинацию по ключам; избегайте OFFSET/LIMIT на больших наборах данных; для выборки используйте TABLESAMPLE (если доступно).
9. Используйте UNION ALL вместо UNION, когда дубликаты допустимы.
10. Заменяйте широкие OR-предикаты на UNION ALL только когда каждая ветвь может использовать разные индексы.
11. Планируйте выполнение тяжёлых запросов в периоды низкой нагрузки; применяйте ограничения ресурсов/очереди, если они доступны.
12. Избегайте OR в предикатах соединения; используйте вычисляемые столбцы или UNION ALL, когда это позволяет использовать поиск по индексу.
13. Используйте GROUP BY, когда нужны сгруппированные строки; применяйте оконные функции, когда требуется детализация строк с агрегатами.
14. Используйте производные/временные таблицы, когда они сокращают объём работы или добавляют статистику; остерегайтесь блокирующих спусков.
15. При массовой загрузке: отключайте/удаляйте некластерные индексы, выполняйте пакетную вставку, затем восстанавливайте; сохраняйте PK/кластерные индексы, когда это полезно.
16. Используйте материализованные представления для медленно меняющихся, ресурсоёмких агрегатов; планируйте обновление/недействительность.
17. Избегайте не-SARG-сравнений (например, <>) на столбцах с низкой селективностью; переписывайте в диапазоны, когда это возможно.
18. Минимизируйте коррелированные подзапросы над большими наборами; предпочитайте множественные соединения/EXISTS.
19. Выбирайте INNER вместо LEFT/RIGHT по семантике; INNER часто работает лучше, когда применимо.
20. Кешируйте повторяющиеся наборы результатов: временные таблицы (на сессию), кеш результатов или материализованные представления, с правилами актуальности.
#sql
1. Индексы для шаблонов доступа к запросам (составные, селективные, покрывающие); не ориентируйтесь на количество строк; поддерживайте актуальность статистики.
2. Используйте EXISTS для проверки наличия записей; применяйте COUNT(*) только когда действительно нужен подсчёт.
3. Выбирайте конкретные столбцы явно; избегайте SELECT * для сокращения операций ввода-вывода и использования покрывающих индексов.
4. Предпочитайте SARG-предикаты (предикаты, допускающие использование индекса); переписывайте медленные коррелированные подзапросы с помощью JOIN/EXISTS.
5. Избегайте DISTINCT как временного решения; исправьте соединения/ключи; используйте его только когда действительно требуется удаление дубликатов.
6. Фильтрацию выполняйте в WHERE; резервируйте HAVING только для фильтрации после агрегации.
7. Используйте явные JOIN ... ON; избегайте неявных соединений в WHERE.
8. Применяйте пагинацию по ключам; избегайте OFFSET/LIMIT на больших наборах данных; для выборки используйте TABLESAMPLE (если доступно).
9. Используйте UNION ALL вместо UNION, когда дубликаты допустимы.
10. Заменяйте широкие OR-предикаты на UNION ALL только когда каждая ветвь может использовать разные индексы.
11. Планируйте выполнение тяжёлых запросов в периоды низкой нагрузки; применяйте ограничения ресурсов/очереди, если они доступны.
12. Избегайте OR в предикатах соединения; используйте вычисляемые столбцы или UNION ALL, когда это позволяет использовать поиск по индексу.
13. Используйте GROUP BY, когда нужны сгруппированные строки; применяйте оконные функции, когда требуется детализация строк с агрегатами.
14. Используйте производные/временные таблицы, когда они сокращают объём работы или добавляют статистику; остерегайтесь блокирующих спусков.
15. При массовой загрузке: отключайте/удаляйте некластерные индексы, выполняйте пакетную вставку, затем восстанавливайте; сохраняйте PK/кластерные индексы, когда это полезно.
16. Используйте материализованные представления для медленно меняющихся, ресурсоёмких агрегатов; планируйте обновление/недействительность.
17. Избегайте не-SARG-сравнений (например, <>) на столбцах с низкой селективностью; переписывайте в диапазоны, когда это возможно.
18. Минимизируйте коррелированные подзапросы над большими наборами; предпочитайте множественные соединения/EXISTS.
19. Выбирайте INNER вместо LEFT/RIGHT по семантике; INNER часто работает лучше, когда применимо.
20. Кешируйте повторяющиеся наборы результатов: временные таблицы (на сессию), кеш результатов или материализованные представления, с правилами актуальности.
#sql
❤11🎄4👍3🔥3
Краткий совет по Linux:
В Linux оператор конвейера (|) очень полезен, если вы хотите перенаправить вывод одной команды в качестве входных данных для следующей обработки:
Однако это не перенаправляет ошибки. Поэтому, если файл не существует, команда grep, указанная выше, не вернёт совпадение.
Что делать, если вы хотите перенаправить и обработать как ошибки, так и нормальный вывод 🤔
Вот тут-то и пригодится оператор перенаправления «|&».
Этот оператор отправляет стандартный вывод (stdout) и стандартный поток ошибок (stderr) первой команды по каналу на стандартный ввод (stdin) второй команды. Взгляните на этот пример:
Обратите внимание на разницу: команда grep смогла получить совпадение.
Оператор «|&» в bash является сокращением для оператора перенаправления «2>&1 |».
#linux
В Linux оператор конвейера (|) очень полезен, если вы хотите перенаправить вывод одной команды в качестве входных данных для следующей обработки:
$ cat data.txt | grep "Такого файла нет"
Однако это не перенаправляет ошибки. Поэтому, если файл не существует, команда grep, указанная выше, не вернёт совпадение.
Что делать, если вы хотите перенаправить и обработать как ошибки, так и нормальный вывод 🤔
Вот тут-то и пригодится оператор перенаправления «|&».
Этот оператор отправляет стандартный вывод (stdout) и стандартный поток ошибок (stderr) первой команды по каналу на стандартный ввод (stdin) второй команды. Взгляните на этот пример:
$ cat data.txt |& grep "Такого файла нет"
Обратите внимание на разницу: команда grep смогла получить совпадение.
Оператор «|&» в bash является сокращением для оператора перенаправления «2>&1 |».
$ cmd-1 2>&1 | cmd-2
#linux
❤17🤔10👏1
Сравнение трех архитектурных подходов: Monolith, Modular Monolith и Microservices.
1. Монолит:
- Это единая архитектура, где все компоненты приложения тесно связаны и зависят друг от друга.
- Все функции и данные находятся в одной базе данных.
- Пример: система с модулями «Платежи», «Продукты», «Заказы», «Доставка» и «Корзина».
2. Модульный монолит:
- Представляет собой модульный подход к монолитной архитектуре, где приложение разделено на независимые модули.
- Каждый модуль имеет свою логику и API, но все модули работают в рамках одного приложения.
- Пример: модули «Платежи», «Продукты», «Заказы», «Доставка» и «Корзина» с отдельными API.
3. Микросервисы:
- Это архитектура, где приложение состоит из множества независимых сервисов, каждый из которых выполняет свою функцию.
- Сервисы могут быть написаны на разных языках и технологиях, и каждый имеет свою базу данных.
- Пример: отдельные сервисы для «Платежей», «Продуктов», «Заказов», «Доставки» и «Корзины».
1. Монолит:
- Это единая архитектура, где все компоненты приложения тесно связаны и зависят друг от друга.
- Все функции и данные находятся в одной базе данных.
- Пример: система с модулями «Платежи», «Продукты», «Заказы», «Доставка» и «Корзина».
2. Модульный монолит:
- Представляет собой модульный подход к монолитной архитектуре, где приложение разделено на независимые модули.
- Каждый модуль имеет свою логику и API, но все модули работают в рамках одного приложения.
- Пример: модули «Платежи», «Продукты», «Заказы», «Доставка» и «Корзина» с отдельными API.
3. Микросервисы:
- Это архитектура, где приложение состоит из множества независимых сервисов, каждый из которых выполняет свою функцию.
- Сервисы могут быть написаны на разных языках и технологиях, и каждый имеет свою базу данных.
- Пример: отдельные сервисы для «Платежей», «Продуктов», «Заказов», «Доставки» и «Корзины».
❤9🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Визуальное объяснение интеграла
❤32👍16🤔13
Event Sourcing и CQRS
(продолжение предыдущего поста)
* Event Sourcing и CQRS — архитектурные шаблоны, которые часто применяют совместно в системах, управляемых событиями.
* Event Sourcing фиксирует каждое изменение в системе в виде последовательности событий, а не просто сохраняет текущее состояние.
* CQRS разделяет операции записи (команды) и чтения (запросы) в системе для лучшей масштабируемости и наглядности.
Как работает Event Sourcing
* Вместо сохранения только конечного состояния (например, «баланс = 200 $») система записывает каждое событие («Добавлено 100 $», «Снято 50 $» и т. д.).
* Текущее состояние вычисляется путём воспроизведения прошлых событий.
* Система работает как хронологическая книга учёта — прозрачная, поддающаяся аудиту и воспроизводимая.
Компоненты
* Хранилище событий — сохраняет все события в хронологическом порядке (только добавление).
* Обработчики команд — обрабатывают поступающие действия и создают новые события.
* Процессоры событий — реагируют на сохранённые события, обновляют проекции или запускают побочные эффекты.
* Проекции — представляют оптимизированные для чтения представления, построенные на основе воспроизведённых событий.
Поток данных
Команда → Создание события → Сохранение события → Обновление проекций → Перестроение состояния по требованию
Преимущества
* Полный аудит и возможность «путешествовать во времени» среди данных.
* Простота отладки и воспроизведения истории системы.
* Естественная совместимость с распределёнными и управляемыми событиями системами.
* Поддержка реактивных и асинхронных рабочих процессов.
Недостатки
* Объём хранилища может быстро расти.
* Сложная логика версионирования событий и их воспроизведения.
* Требуется тщательное управление проекциями и согласованностью.
Как работает CQRS
* Расшифровывается как *разделение ответственности команд и запросов* (Command Query Responsibility Segregation).
* Разделяет систему на две части:
* Сторона команд — обрабатывает операции записи (создание, обновление, удаление).
* Сторона запросов — обрабатывает операции чтения (эффективное получение данных).
* Каждая часть может масштабироваться, моделироваться и оптимизироваться независимо.
Преимущества
* Оптимизированная производительность для операций чтения и записи.
* Лучшее разделение ответственности и более чистый дизайн.
* Проще развивать модели чтения, не затрагивая операции записи.
* Хорошо сочетается с Event Sourcing для создания проекций.
Недостатки
* Больше компонентов — повышается сложность архитектуры.
* Согласованность между сторонами чтения и записи достигается не сразу (eventual consistency).
* Требуются надёжные механизмы обмена сообщениями и синхронизации.
Совместный поток (Event Sourcing + CQRS)
Команда → Генерация события → Сохранение события → Обновление проекции → Чтение запроса из проекции
Когда применять
* Системы, требующие аудита, возможности воспроизведения или управляемые событиями рабочие процессы.
* Приложения, где операций чтения значительно больше, чем операций записи (например, аналитические панели).
* Финансовые системы, бухгалтерские книги, CRM, системы отслеживания логистики и платформы IoT.
(продолжение предыдущего поста)
* Event Sourcing и CQRS — архитектурные шаблоны, которые часто применяют совместно в системах, управляемых событиями.
* Event Sourcing фиксирует каждое изменение в системе в виде последовательности событий, а не просто сохраняет текущее состояние.
* CQRS разделяет операции записи (команды) и чтения (запросы) в системе для лучшей масштабируемости и наглядности.
Как работает Event Sourcing
* Вместо сохранения только конечного состояния (например, «баланс = 200 $») система записывает каждое событие («Добавлено 100 $», «Снято 50 $» и т. д.).
* Текущее состояние вычисляется путём воспроизведения прошлых событий.
* Система работает как хронологическая книга учёта — прозрачная, поддающаяся аудиту и воспроизводимая.
Компоненты
* Хранилище событий — сохраняет все события в хронологическом порядке (только добавление).
* Обработчики команд — обрабатывают поступающие действия и создают новые события.
* Процессоры событий — реагируют на сохранённые события, обновляют проекции или запускают побочные эффекты.
* Проекции — представляют оптимизированные для чтения представления, построенные на основе воспроизведённых событий.
Поток данных
Команда → Создание события → Сохранение события → Обновление проекций → Перестроение состояния по требованию
Преимущества
* Полный аудит и возможность «путешествовать во времени» среди данных.
* Простота отладки и воспроизведения истории системы.
* Естественная совместимость с распределёнными и управляемыми событиями системами.
* Поддержка реактивных и асинхронных рабочих процессов.
Недостатки
* Объём хранилища может быстро расти.
* Сложная логика версионирования событий и их воспроизведения.
* Требуется тщательное управление проекциями и согласованностью.
Как работает CQRS
* Расшифровывается как *разделение ответственности команд и запросов* (Command Query Responsibility Segregation).
* Разделяет систему на две части:
* Сторона команд — обрабатывает операции записи (создание, обновление, удаление).
* Сторона запросов — обрабатывает операции чтения (эффективное получение данных).
* Каждая часть может масштабироваться, моделироваться и оптимизироваться независимо.
Преимущества
* Оптимизированная производительность для операций чтения и записи.
* Лучшее разделение ответственности и более чистый дизайн.
* Проще развивать модели чтения, не затрагивая операции записи.
* Хорошо сочетается с Event Sourcing для создания проекций.
Недостатки
* Больше компонентов — повышается сложность архитектуры.
* Согласованность между сторонами чтения и записи достигается не сразу (eventual consistency).
* Требуются надёжные механизмы обмена сообщениями и синхронизации.
Совместный поток (Event Sourcing + CQRS)
Команда → Генерация события → Сохранение события → Обновление проекции → Чтение запроса из проекции
Когда применять
* Системы, требующие аудита, возможности воспроизведения или управляемые событиями рабочие процессы.
* Приложения, где операций чтения значительно больше, чем операций записи (например, аналитические панели).
* Финансовые системы, бухгалтерские книги, CRM, системы отслеживания логистики и платформы IoT.
Telegram
METANIT.COM
Event Sourcing и CQRS
(продолжение в следующем посте)
(продолжение в следующем посте)
👍6❤3👏1
Мало известные, но тем не менее полезные возможности SQL: WHERE vs HAVING, WINDOW FUNCTIONS vs AGGREGATION и PARTITIONED-Таблицы
(описание в следующем посте)
(описание в следующем посте)
Мало известные, но тем не менее полезные возможности SQL: WHERE vs HAVING, WINDOW FUNCTIONS vs AGGREGATION и PARTITIONED-Таблицы
(описание к изображению из предыдущего поста)
### WHERE vs HAVING
- WHERE: Используется для фильтрации строк перед группировкой. Например, в таблице с данными о продажах магазинов, WHERE позволяет выбрать только те строки, которые соответствуют определённым условиям (например,
- HAVING: Применяется для фильтрации после группировки. Например,
### WINDOW FUNCTIONS vs AGGREGATION
- WINDOW FUNCTIONS: Позволяют выполнять вычисления по набору строк, связанных с текущей строкой. Они сохраняют все строки и добавляют вычисленные значения. Например, можно рассчитать сумму продаж для каждого магазина, сохраняя все строки.
- AGGREGATION: Использует функции, такие как SUM, COUNT, AVG, для объединения данных в одну строку. Например,
### PARTITIONED Tables
- PARTITIONING: Это метод разделения таблицы на более мелкие части (разделы) для улучшения производительности и управления данными. На изображении показано создание четырёх разделов:
- Раздел 1: Данные до 2022-12-31.
- Раздел 2: Данные за 2023 год.
- Раздел 3: Данные за 2024 год.
- Раздел 4: Данные после 2025 года.
Пример кода для создания раздела:
(описание к изображению из предыдущего поста)
### WHERE vs HAVING
- WHERE: Используется для фильтрации строк перед группировкой. Например, в таблице с данными о продажах магазинов, WHERE позволяет выбрать только те строки, которые соответствуют определённым условиям (например,
WHERE Store IN ('store1', 'store2')).- HAVING: Применяется для фильтрации после группировки. Например,
HAVING SUM(Sales) > 4000 отбирает группы, где сумма продаж превышает 4000.### WINDOW FUNCTIONS vs AGGREGATION
- WINDOW FUNCTIONS: Позволяют выполнять вычисления по набору строк, связанных с текущей строкой. Они сохраняют все строки и добавляют вычисленные значения. Например, можно рассчитать сумму продаж для каждого магазина, сохраняя все строки.
- AGGREGATION: Использует функции, такие как SUM, COUNT, AVG, для объединения данных в одну строку. Например,
SUM(Sales) GROUP BY Store суммирует продажи по каждому магазину.### PARTITIONED Tables
- PARTITIONING: Это метод разделения таблицы на более мелкие части (разделы) для улучшения производительности и управления данными. На изображении показано создание четырёх разделов:
- Раздел 1: Данные до 2022-12-31.
- Раздел 2: Данные за 2023 год.
- Раздел 3: Данные за 2024 год.
- Раздел 4: Данные после 2025 года.
Пример кода для создания раздела:
CREATE PARTITION FUNCTION PF_OrderDate (DATE)
AS RANGE RIGHT FOR VALUES ('2022-12-31', '2023-12-31', '2024-12-31');
Telegram
METANIT.COM
Мало известные, но тем не менее полезные возможности SQL: WHERE vs HAVING, WINDOW FUNCTIONS vs AGGREGATION и PARTITIONED-Таблицы
(описание в следующем посте)
(описание в следующем посте)
❤4
Минцифры опровергло сообщения об утечке данных пользователей Max
Минцифры РФ после проверки опровергло информацию о том, что данные пользователей портала Госуслуг якобы утекли из национального мессенджера Max.
"Данные пользователей Госуслуг надёжно защищены. Специалисты Минцифры проверили информацию о якобы случившейся утечке из мессенджера Max, размещённую в анонимных каналах", - говорится в сообщении.
По данным Минцифры, "автором информации об утечке был выложен сэмпл, содержащий 15 записей, в которых были указаны якобы ID пользователей Госуслуг".
"Проверка показала, что ни по одной из опубликованных записей ID Госуслуг не совпадает с ФИО реальных пользователей. Из чего можно сделать вывод, что публикации о взломе сфабрикованы", - говорится в сообщении.
Также опровергли о взломе мессенджера в пресс-службе самого разработчика Max.
Ранее стало известно, что в даркнете выставили на продажу якобы базу данных пользователей Max. Продавец утверждает, что в его распоряжении находится более 46,2 млн записей.
https://www.interfax.ru/russia/1053484
https://tass.ru/ekonomika/25390039
Минцифры РФ после проверки опровергло информацию о том, что данные пользователей портала Госуслуг якобы утекли из национального мессенджера Max.
"Данные пользователей Госуслуг надёжно защищены. Специалисты Минцифры проверили информацию о якобы случившейся утечке из мессенджера Max, размещённую в анонимных каналах", - говорится в сообщении.
По данным Минцифры, "автором информации об утечке был выложен сэмпл, содержащий 15 записей, в которых были указаны якобы ID пользователей Госуслуг".
"Проверка показала, что ни по одной из опубликованных записей ID Госуслуг не совпадает с ФИО реальных пользователей. Из чего можно сделать вывод, что публикации о взломе сфабрикованы", - говорится в сообщении.
Также опровергли о взломе мессенджера в пресс-службе самого разработчика Max.
Ранее стало известно, что в даркнете выставили на продажу якобы базу данных пользователей Max. Продавец утверждает, что в его распоряжении находится более 46,2 млн записей.
https://www.interfax.ru/russia/1053484
https://tass.ru/ekonomika/25390039
Интерфакс
Минцифры опровергло сообщения об утечке данных пользователей Max
Интерфакс: Минцифры РФ после проверки опровергло информацию о том, что данные пользователей портала Госуслуг якобы утекли из национального мессенджера Max."Данные пользователей Госуслуг надёжно защищены.
🤡22😁13👍3❤1🤔1
Средняя зарплата профильных технических сотрудников софтверных компаний в 2024 году увеличилась на 13,5% по сравнению с 2023 г. и достигла примерно ₽200 тыс., что более чем в 2 раза больше, чем по всей экономике (около ₽88 тыс.). В то же время, разрыв в уровне зарплат по отношению с другими отраслями медленно, но всё же сокращается: прирост по всем отраслям, включая госсектор, составил 18,3%, что почти на 5 процентных пунктов больше, чем в софтверной индустрии.
В отдаленные времена средняя зарплата в софтверной индустрии росла намного быстрее аналогичного показателя для всей экономики России. В 2017 г. впервые очевидного преимущества разработчиков программного обеспечения по темпам роста зарплат выявлено не было. В 2018-2019 гг. рост средней зарплаты разработчиков ПО и увеличение номинальной начисленной заработной платы работников в целом по экономике РФ и вовсе сравнялись. В последующие годы, вплоть до 2024 года, у софтверной индустрии не было преимущества по темпам роста относительно всех отраслей (за исключением пандемийного 2020 года, за который разработчики ПО прибавили в своих доходах в среднем 11%, а по всем видам занятости прирост составил только 6%).
https://russoft.org/news/razrabotchiki-po-poteryali-lidiruyushhie-pozitsii-po-tempam-rosta-srednej-zarplaty-no-po-prezhnemu-uverenno-sohranyayut-ih-po-absolyutnoj-velichine/
В отдаленные времена средняя зарплата в софтверной индустрии росла намного быстрее аналогичного показателя для всей экономики России. В 2017 г. впервые очевидного преимущества разработчиков программного обеспечения по темпам роста зарплат выявлено не было. В 2018-2019 гг. рост средней зарплаты разработчиков ПО и увеличение номинальной начисленной заработной платы работников в целом по экономике РФ и вовсе сравнялись. В последующие годы, вплоть до 2024 года, у софтверной индустрии не было преимущества по темпам роста относительно всех отраслей (за исключением пандемийного 2020 года, за который разработчики ПО прибавили в своих доходах в среднем 11%, а по всем видам занятости прирост составил только 6%).
https://russoft.org/news/razrabotchiki-po-poteryali-lidiruyushhie-pozitsii-po-tempam-rosta-srednej-zarplaty-no-po-prezhnemu-uverenno-sohranyayut-ih-po-absolyutnoj-velichine/
🤔2