Согласно результатам исследования "Сбераналитики" и "Работы.ру", доля вакансий в IT в 2025 году выросла на 7,5% за год, а средняя оплата труда IT-специалистов выросла на 15% - до 146,5 тыс. рублей.
"По итогам 9 месяцев средняя оплата труда IT-специалистов составила 146,5 тыс. рублей, что на 15% выше, чем в прошлом году. Заработная плата в IT превышает средний уровень дохода (96,1 тыс. рублей) в 1,5 раза и растет быстрее на 2,2%", - говорится в итогах исследования.
Также медианная заработная плата IT-специалистов составила 83 тыс. рублей, что на 15,9% выше, чем в прошлом году. Медианная зарплата в IT выше аналогичного показателя по всем отраслям на 21%. Самые высокие средние заработные платы IT-специалисты получают в Москве (222,8 тыс. рублей), Чукотском автономном округе (207,7 тыс. рублей), Московской области (179,3 тыс. рублей), Санкт-Петербурге (177,3 тыс. рублей) Ямало-Ненецком автономном округе (147,2 тыс. рублей).
Высокие зарплаты у IT-специалистов в крупных городах России (Москва, Санкт-Петербург), обусловлены высоким спросом на квалифицированных специалистов - крупнейшие IT-компании расположены здесь. В северных и дальневосточных регионах оплата труда IT-специалистов связана с общим высоким уровнем заработных плат, размер которых определяется суровыми климатическими условиями и географической отдаленностью от центральных районов страны.
Аналитики выяснили, что самая высокая заработная плата - у разработчиков - 178,3 тыс. рублей.
По данным сервиса Работа.ру, доля вакансий в IT с января по сентябрь 2025 года выросла на 7,5% по сравнению с аналогичным периодом 2024 года. При этом доля резюме в отрасли снизилась на 5,9%. Зарплатные предложения в сфере IT в вакансиях, опубликованных по всей России, выросли на 16,7%, а прирост зарплатных ожиданий соискателей составил 8,5%.
Наивысшие зарплатные предложения зафиксированы в вакансиях Краснодарского края - 585 тыс. рублей, Самарской области - 575 тыс. рублей, Республике Дагестан - 560 тыс. рублей, Москве - 550 тыс. рублей, а также Калужской области - 510 тыс. рублей.
https://tass.ru/ekonomika/25515469
"По итогам 9 месяцев средняя оплата труда IT-специалистов составила 146,5 тыс. рублей, что на 15% выше, чем в прошлом году. Заработная плата в IT превышает средний уровень дохода (96,1 тыс. рублей) в 1,5 раза и растет быстрее на 2,2%", - говорится в итогах исследования.
Также медианная заработная плата IT-специалистов составила 83 тыс. рублей, что на 15,9% выше, чем в прошлом году. Медианная зарплата в IT выше аналогичного показателя по всем отраслям на 21%. Самые высокие средние заработные платы IT-специалисты получают в Москве (222,8 тыс. рублей), Чукотском автономном округе (207,7 тыс. рублей), Московской области (179,3 тыс. рублей), Санкт-Петербурге (177,3 тыс. рублей) Ямало-Ненецком автономном округе (147,2 тыс. рублей).
Высокие зарплаты у IT-специалистов в крупных городах России (Москва, Санкт-Петербург), обусловлены высоким спросом на квалифицированных специалистов - крупнейшие IT-компании расположены здесь. В северных и дальневосточных регионах оплата труда IT-специалистов связана с общим высоким уровнем заработных плат, размер которых определяется суровыми климатическими условиями и географической отдаленностью от центральных районов страны.
Аналитики выяснили, что самая высокая заработная плата - у разработчиков - 178,3 тыс. рублей.
По данным сервиса Работа.ру, доля вакансий в IT с января по сентябрь 2025 года выросла на 7,5% по сравнению с аналогичным периодом 2024 года. При этом доля резюме в отрасли снизилась на 5,9%. Зарплатные предложения в сфере IT в вакансиях, опубликованных по всей России, выросли на 16,7%, а прирост зарплатных ожиданий соискателей составил 8,5%.
Наивысшие зарплатные предложения зафиксированы в вакансиях Краснодарского края - 585 тыс. рублей, Самарской области - 575 тыс. рублей, Республике Дагестан - 560 тыс. рублей, Москве - 550 тыс. рублей, а также Калужской области - 510 тыс. рублей.
https://tass.ru/ekonomika/25515469
TACC
Средняя зарплата IT-специалистов в 2025 году выросла до 146 тыс. рублей
Согласно результатам исследования "Сбераналитики" и "Работы.ру", это на 15% выше, чем в 2024 году
❤11🤔3👏1
В руководство по языку Java добавлена глава по аннотациям: их объявлению и применению, созданию своих аннотаций и использованию встроенных
https://metanit.com/java/tutorial/15.1.php
#java
https://metanit.com/java/tutorial/15.1.php
#java
🔥12👍6👏2
Сэм Альтман: «меня пугает сценарий, когда AGI можно будет запустить на ноутбуке»
В подкасте Брэда Герстнера глава OpenAI Сэм Альтман и босс Microsoft Сатья Наделла рассказали о совместных планах развития ИИ. По их словам, уже сейчас наблюдается мощный спрос на ИИ — крупных клиентов больше, чем вычислительные возможности компаний. Основное ограничение — недостаток железа и, особенно, электроэнергии. Это удобно для модели предоставления доступа к ИИ через облако: самые сильные модели живут в дата-центрах, доступ к ним регулируется и тарифицируется. И именно под эту модель сейчас делаются многомиллиардные инвестиции.
На этом фоне Альтман называет "пугающим" другой сценарий: если технологии оптимизации и локального запуска ИИ будут стремительно развиваться, то когда-нибудь настанет момент, когда пользователь сможет "запускать AGI на ноутбуке". Тогда вложения в дата-центры окажутся избыточными — для бизнеса это будет значить угрозу планируемой модели монетизации.
https://habr.com/ru/news/962534/
В подкасте Брэда Герстнера глава OpenAI Сэм Альтман и босс Microsoft Сатья Наделла рассказали о совместных планах развития ИИ. По их словам, уже сейчас наблюдается мощный спрос на ИИ — крупных клиентов больше, чем вычислительные возможности компаний. Основное ограничение — недостаток железа и, особенно, электроэнергии. Это удобно для модели предоставления доступа к ИИ через облако: самые сильные модели живут в дата-центрах, доступ к ним регулируется и тарифицируется. И именно под эту модель сейчас делаются многомиллиардные инвестиции.
На этом фоне Альтман называет "пугающим" другой сценарий: если технологии оптимизации и локального запуска ИИ будут стремительно развиваться, то когда-нибудь настанет момент, когда пользователь сможет "запускать AGI на ноутбуке". Тогда вложения в дата-центры окажутся избыточными — для бизнеса это будет значить угрозу планируемой модели монетизации.
https://habr.com/ru/news/962534/
Хабр
Сэм Альтман: «меня пугает сценарий, когда AGI можно будет запустить на ноутбуке»
В подкасте Брэда Герстнера глава OpenAI Сэм Альтман и босс Microsoft Сатья Наделла рассказали о совместных планах развития ИИ. По их словам, уже сейчас наблюдается мощный спрос на искусственный...
😈17🤔5😁3💯3👏1😨1
Внешние ключи vs ограничения. Многие путают эти понятия
Внешний ключ (foreign key): столбец, который устанавливает связь между двумя таблицами. Обычно реализуется как столбец в одной таблице (
Ограничение внешнего ключа (foreign key constraint): механизм, заставляющий СУБД обеспечивать целостность внешних ключей. Он гарантирует, что значения в столбце внешнего ключа (
Ограничения — полезное удобство (они поддерживают компонент «C» в ACID), но имеют свою цену: операции вставки, обновления и удаления в таблицах с ограничениями требуют дополнительных вычислительных ресурсов и операций ввода‑вывода для их соблюдения
Их удаление может привести к повышению производительности, но потребует переноса поддержки связей на уровень приложения. Приложения должны гарантировать, что их транзакции всегда оставляют эти связи в корректном состоянии
#sql
Внешний ключ (foreign key): столбец, который устанавливает связь между двумя таблицами. Обычно реализуется как столбец в одной таблице (
post), хранящий значения первичного ключа из другой таблицы (user) для обеспечения связи между ними.Ограничение внешнего ключа (foreign key constraint): механизм, заставляющий СУБД обеспечивать целостность внешних ключей. Он гарантирует, что значения в столбце внешнего ключа (
post→user_id) ссылаются на существующую запись в другой таблице (user→id)Ограничения — полезное удобство (они поддерживают компонент «C» в ACID), но имеют свою цену: операции вставки, обновления и удаления в таблицах с ограничениями требуют дополнительных вычислительных ресурсов и операций ввода‑вывода для их соблюдения
Их удаление может привести к повышению производительности, но потребует переноса поддержки связей на уровень приложения. Приложения должны гарантировать, что их транзакции всегда оставляют эти связи в корректном состоянии
#sql
❤🔥12🤔1
Один энтузиаст начал проект по портированию Linux на WASM
https://github.com/joelseverin/linux-wasm
Этот порт ядра Linux на WebAssembly уже работает и запускает базовые программы из командной оболочки в веб-браузере. Однако есть проблемы со стабильностью и некоторыми браузерами
demo - https://joelseverin.github.io/linux-wasm/
https://github.com/joelseverin/linux-wasm
Этот порт ядра Linux на WebAssembly уже работает и запускает базовые программы из командной оболочки в веб-браузере. Однако есть проблемы со стабильностью и некоторыми браузерами
demo - https://joelseverin.github.io/linux-wasm/
GitHub
GitHub - joelseverin/linux-wasm: WebAssembly (Wasm) arch support for the Linux kernel
WebAssembly (Wasm) arch support for the Linux kernel - joelseverin/linux-wasm
❤12🤯12👍5🤝3😨2
4 основных типа машинного обучения (Machine Learning)
(описание к предыдущему посту)
### 1. Supervised Learning (Обучение с учителем)
- Описание: модель обучается на размеченных данных, где известны и входные, и выходные значения.
- Рабочий процесс:
1. Сбор размеченных данных (Collect labeled data).
2. Предварительная обработка датасета (Preprocess dataset).
3. Разделение на наборы данных (Split into sets).
4. Выбор алгоритма (Choose algorithm).
5. Настройка гиперпараметров (Tune hyperparameters).
6. Валидация модели (Validate model).
7. Обучение на данных (Train on data).
8. Оценка производительности (Evaluate performance).
9. Создание прогнозов (Make predictions).
10. Мониторинг точности (Monitor accuracy).
### 2. Unsupervised Learning (Обучение без учителя)
- Описание: модель находит скрытые закономерности в данных без размеченных результатов.
- Рабочий процесс:
1. Сбор сырых данных (Gather raw data).
2. Очистка датасета (Clean dataset).
3. Выбор признаков (Choose features).
4. Выбор алгоритма (Select algorithm).
5. Визуализация результатов (Visualize output).
6. Обнаружение закономерностей (Discover patterns).
7. Подбор модели (Fit the model).
8. Анализ кластеров (Analyze clusters).
9. Интерпретация результатов (Interpret results).
10. Уточнение входных данных (Refine inputs).
### 3. Reinforcement Learning (Обучение с подкреплением)
- Описание: агент учится, взаимодействуя с окружением, чтобы максимизировать вознаграждения.
- Рабочий процесс:
1. Определение окружения (Define environment).
2. Инициализация агента (Initialize agent).
3. Выбор действий (Choose actions).
4. Выполнение действий (Take action).
5. Улучшение стратегии (Improve strategy).
6. Обновление политики (Update policy).
7. Наблюдение за вознаграждением (Observe reward).
8. Повтор эпизодов (Repeat episodes).
9. Оценка поведения (Evaluate behavior).
10. Оптимизация вознаграждений (Optimize rewards).
### 4. Semi-Supervised Learning (Полууправляемое обучение)
- Описание: сочетает небольшое количество размеченных данных с большим набором неразмеченных данных.
- Рабочий процесс:
1. Сбор смешанных данных (Gather mixed data).
2. Предварительная обработка входных данных (Preprocess input).
3. Разметка небольшого набора (Label small set).
4. Обучение начальной модели (Train initial model).
5. Переобучение модели (Retrain model).
6. Добавление псевдометок (Add pseudo-labels).
7. Прогнозирование неразмеченных данных (Predict unlabeled).
8. Проверка точности (Validate accuracy).
9. Тонкая настройка модели (Fine-tune model).
10. Финальные прогнозы (Final predictions).
(описание к предыдущему посту)
### 1. Supervised Learning (Обучение с учителем)
- Описание: модель обучается на размеченных данных, где известны и входные, и выходные значения.
- Рабочий процесс:
1. Сбор размеченных данных (Collect labeled data).
2. Предварительная обработка датасета (Preprocess dataset).
3. Разделение на наборы данных (Split into sets).
4. Выбор алгоритма (Choose algorithm).
5. Настройка гиперпараметров (Tune hyperparameters).
6. Валидация модели (Validate model).
7. Обучение на данных (Train on data).
8. Оценка производительности (Evaluate performance).
9. Создание прогнозов (Make predictions).
10. Мониторинг точности (Monitor accuracy).
### 2. Unsupervised Learning (Обучение без учителя)
- Описание: модель находит скрытые закономерности в данных без размеченных результатов.
- Рабочий процесс:
1. Сбор сырых данных (Gather raw data).
2. Очистка датасета (Clean dataset).
3. Выбор признаков (Choose features).
4. Выбор алгоритма (Select algorithm).
5. Визуализация результатов (Visualize output).
6. Обнаружение закономерностей (Discover patterns).
7. Подбор модели (Fit the model).
8. Анализ кластеров (Analyze clusters).
9. Интерпретация результатов (Interpret results).
10. Уточнение входных данных (Refine inputs).
### 3. Reinforcement Learning (Обучение с подкреплением)
- Описание: агент учится, взаимодействуя с окружением, чтобы максимизировать вознаграждения.
- Рабочий процесс:
1. Определение окружения (Define environment).
2. Инициализация агента (Initialize agent).
3. Выбор действий (Choose actions).
4. Выполнение действий (Take action).
5. Улучшение стратегии (Improve strategy).
6. Обновление политики (Update policy).
7. Наблюдение за вознаграждением (Observe reward).
8. Повтор эпизодов (Repeat episodes).
9. Оценка поведения (Evaluate behavior).
10. Оптимизация вознаграждений (Optimize rewards).
### 4. Semi-Supervised Learning (Полууправляемое обучение)
- Описание: сочетает небольшое количество размеченных данных с большим набором неразмеченных данных.
- Рабочий процесс:
1. Сбор смешанных данных (Gather mixed data).
2. Предварительная обработка входных данных (Preprocess input).
3. Разметка небольшого набора (Label small set).
4. Обучение начальной модели (Train initial model).
5. Переобучение модели (Retrain model).
6. Добавление псевдометок (Add pseudo-labels).
7. Прогнозирование неразмеченных данных (Predict unlabeled).
8. Проверка точности (Validate accuracy).
9. Тонкая настройка модели (Fine-tune model).
10. Финальные прогнозы (Final predictions).
Telegram
METANIT.COM
4 основных типа машинного обучения (Machine Learning)
(описание в следующем посте)
(описание в следующем посте)
❤6👍4🤓2👏1
Микросервисы — ключевые шаблоны проектирования
(описание к предыдующему посту)
Всегда начинайте с монолита. По мере роста вашего приложения и появления узких мест в отдельных компонентах (или когда им требуется независимое масштабирование) постепенно выделяйте их в микросервисы.
Netflix стал первопроходцем в применении архитектуры микросервисов, разбив своё монолитное приложение на сотни небольших сервисов.
Это позволило компании быстро масштабироваться и добиться высокой доступности.
Если вы переходите на архитектуру микросервисов, обратите внимание на следующие шаблоны:
[1.] Шаблон API‑шлюз (API Gateway)
◾️ единая точка входа для клиентов;
◾️ обработка маршрутизации;
◾️ аутентификация;
◾️ решение прочих сквозных задач.
[2.] Шаблон Прерыватель цепи (Circuit Breaker)
◾️ предотвращает каскадные сбои за счёт изоляции неисправных сервисов.
[3.] Шаблон Агрегатор (Aggregator)
◾️ объединяет данные из нескольких сервисов в единый ответ.
[4.] Шаблон Цепочка (цепочка ответственности) (Chained (Chain of Responsibility))
◾️ упорядочивает обработку запросов через последовательность сервисов.
[5.] База данных для каждого сервиса (Database per Service)
◾️ каждый сервис имеет собственную приватную базу данных для слабой связности.
[6.] Шаблон Saga
◾️ управляет распределёнными транзакциями между сервисами с помощью серии локальных транзакций.
[7.] Шаблон Сайдкар (Sidecar)
◾️ расширяет функциональность сервиса за счёт отдельного компонента, развёрнутого рядом.
[8.] Бэкенды для фронтендов (BFF / Backends for Frontends)
◾️ создаёт специализированные бэкенд‑сервисы для конкретных фронтендов.
[9.] CQRS (Command Query Responsibility Segregation - разделение ответственности за команды и запросы)
◾️ разделяет операции чтения и записи для улучшения масштабируемости и производительности.
[10.] Шаблон Event Sourcing
◾️ фиксирует все изменения состояния приложения в виде последовательности событий.
[11.] Асинхронный обмен сообщениями
◾️ обеспечивает слабую связность между сервисами с помощью очередей сообщений или брокеров.
[12.] Шаблон Strangler Fig
◾️ поэтапно переносит монолитное приложение на микросервисы.
[13.] Внешняя конфигурация
◾️ хранит настройки конфигурации вне кода приложения.
[14.] Централизованное логирование и мониторинг
◾️ агрегирует журналы и метрики из всех микросервисов для наблюдаемости.
[15.] Шаблон Обнаружение сервисов (Service Discovery)
◾️ позволяет сервисам динамически находить друг друга.
[16.] Шаблон Anti-Corruption Layer
◾️ создаёт слой изоляции, чтобы защитить ваше приложение от негативного влияния изменений во внешних системах.
[17.] Шаблоны декомпозиции
◾️ стратегии разбиения монолитного приложения на микросервисы:
1. Декомпозиция по бизнес‑возможностям → привязка сервисов к отдельным бизнес‑функциям (например, обработка заказов, управление запасами).
2. Декомпозиция по поддоменам → дальнейшее разделение возможностей на более мелкие и сфокусированные сервисы (например, управление клиентами в рамках заказов).
«Золотая середина» между монолитной и микросервисной архитектурами — модульный монолит.
(описание к предыдующему посту)
Всегда начинайте с монолита. По мере роста вашего приложения и появления узких мест в отдельных компонентах (или когда им требуется независимое масштабирование) постепенно выделяйте их в микросервисы.
Netflix стал первопроходцем в применении архитектуры микросервисов, разбив своё монолитное приложение на сотни небольших сервисов.
Это позволило компании быстро масштабироваться и добиться высокой доступности.
Если вы переходите на архитектуру микросервисов, обратите внимание на следующие шаблоны:
[1.] Шаблон API‑шлюз (API Gateway)
◾️ единая точка входа для клиентов;
◾️ обработка маршрутизации;
◾️ аутентификация;
◾️ решение прочих сквозных задач.
[2.] Шаблон Прерыватель цепи (Circuit Breaker)
◾️ предотвращает каскадные сбои за счёт изоляции неисправных сервисов.
[3.] Шаблон Агрегатор (Aggregator)
◾️ объединяет данные из нескольких сервисов в единый ответ.
[4.] Шаблон Цепочка (цепочка ответственности) (Chained (Chain of Responsibility))
◾️ упорядочивает обработку запросов через последовательность сервисов.
[5.] База данных для каждого сервиса (Database per Service)
◾️ каждый сервис имеет собственную приватную базу данных для слабой связности.
[6.] Шаблон Saga
◾️ управляет распределёнными транзакциями между сервисами с помощью серии локальных транзакций.
[7.] Шаблон Сайдкар (Sidecar)
◾️ расширяет функциональность сервиса за счёт отдельного компонента, развёрнутого рядом.
[8.] Бэкенды для фронтендов (BFF / Backends for Frontends)
◾️ создаёт специализированные бэкенд‑сервисы для конкретных фронтендов.
[9.] CQRS (Command Query Responsibility Segregation - разделение ответственности за команды и запросы)
◾️ разделяет операции чтения и записи для улучшения масштабируемости и производительности.
[10.] Шаблон Event Sourcing
◾️ фиксирует все изменения состояния приложения в виде последовательности событий.
[11.] Асинхронный обмен сообщениями
◾️ обеспечивает слабую связность между сервисами с помощью очередей сообщений или брокеров.
[12.] Шаблон Strangler Fig
◾️ поэтапно переносит монолитное приложение на микросервисы.
[13.] Внешняя конфигурация
◾️ хранит настройки конфигурации вне кода приложения.
[14.] Централизованное логирование и мониторинг
◾️ агрегирует журналы и метрики из всех микросервисов для наблюдаемости.
[15.] Шаблон Обнаружение сервисов (Service Discovery)
◾️ позволяет сервисам динамически находить друг друга.
[16.] Шаблон Anti-Corruption Layer
◾️ создаёт слой изоляции, чтобы защитить ваше приложение от негативного влияния изменений во внешних системах.
[17.] Шаблоны декомпозиции
◾️ стратегии разбиения монолитного приложения на микросервисы:
1. Декомпозиция по бизнес‑возможностям → привязка сервисов к отдельным бизнес‑функциям (например, обработка заказов, управление запасами).
2. Декомпозиция по поддоменам → дальнейшее разделение возможностей на более мелкие и сфокусированные сервисы (например, управление клиентами в рамках заказов).
«Золотая середина» между монолитной и микросервисной архитектурами — модульный монолит.
Telegram
METANIT.COM
Микросервисы — ключевые шаблоны проектирования
(описание в следующем посте)
(описание в следующем посте)
❤6🔥3👍2
Традиционный обзор по рынку труда по статистике hh
В октябре ситуация на рынке труда в сфере ИТ в целом продолжила ухудшаться
Средние ожидаемые зарплаты остались примерно на одном уровне (100 000 р), зато немного повысились предлагаемые зарплаты - на 2396 (до 92396). С начала года прирост предлагаемых зарплат составил 8,7%, что уже немного выше официальной инфляции, но ниже среднего (10,4%)
(К слову, даже в сельском хозяйстве предлагаемые зп выше - 121 667)
Однако hh-индекс - показатель соотношения количества активных резюме к количеству активных вакансий снова ухудшился - рост до 17,8 (крайне высокий уровень конкуренции соискателей за рабочие места)
А год к году снижение вакансий составило 41%, а по сранению с сентябрем - уменьшение на 5%
https://stats.hh.ru/?countrySalaryDynamicChartProfArea=information_technology&hhIndexProfArea=information_technology
В октябре ситуация на рынке труда в сфере ИТ в целом продолжила ухудшаться
Средние ожидаемые зарплаты остались примерно на одном уровне (100 000 р), зато немного повысились предлагаемые зарплаты - на 2396 (до 92396). С начала года прирост предлагаемых зарплат составил 8,7%, что уже немного выше официальной инфляции, но ниже среднего (10,4%)
(К слову, даже в сельском хозяйстве предлагаемые зп выше - 121 667)
Однако hh-индекс - показатель соотношения количества активных резюме к количеству активных вакансий снова ухудшился - рост до 17,8 (крайне высокий уровень конкуренции соискателей за рабочие места)
А год к году снижение вакансий составило 41%, а по сранению с сентябрем - уменьшение на 5%
https://stats.hh.ru/?countrySalaryDynamicChartProfArea=information_technology&hhIndexProfArea=information_technology
😢9🤯8🤬3😭2😁1
Вышла новая версия среды разработки Qt Creator - Qt Creator 18. (Qt Creator предназначен для создания кроссплатформенных приложений с использованием библиотеки Qt и языков C++, Python и QML/JavaScript)
Резюме изменений в Qt Creator 18
1. Поддержка контейнеров разработки: Добавлена экспериментальная поддержка контейнеров разработки ("Development Containers") для автоматизации настройки среды проекта. Контейнеры создаются на основе файла "devcontainer.json" и позволяют автоматически настраивать наборы инструментов (kits).
2. Обзорная вкладка "Overview": Новый интерфейс включает вкладку "Overview" на экране приветствия, объединяя полезную информацию из других вкладок. Она рекомендует учебные пособия и примеры, основываясь на потребностях разработчика, и выделяет посты разработчиков из блога Qt.
3. Интерфейс редактирования: Реализована возможность выбора редактора с вкладками. Улучшена интеграция с инструментом Clangd версии 21.1, улучшен встроенный код-моделлер для поддержки новых функций C++, добавлены быстрые исправления кода, такие как удаление фигурных скобок и автоматическое создание определений статических членов класса.
4. Работа с проектами: Файлы настроек проектов (.user) теперь хранятся в подпапке .qtcreator/, что улучшает совместимость старых проектов. Появилась возможность фильтрации отображаемых конфигураций сборки и запуска, позволяя выбирать доступные комплекты или настроенные конфигурации. Настройки построения и запуска были перемещены из окна набора инструментов в отдельные вкладки.
5. Удалённые устройства: Усовершенствована настройка удалённых устройств, позволяющая автоматически обнаруживать инструменты вроде GDB-серверов, CMake, clangd и других. Поддерживаются инструменты на удаленных устройствах Linux. Возможность автоматического подключения к устройствам при запуске IDE и использование утилиты rsync для развертывания приложений на удалённом устройстве.
6. Тестирование: Для проектов на основе CMake появилась поддержка тестовых пресетов и фильтр "ct" для запуска тестов на основе CTest.
7. Интеграция с GitHub: Подключён GitHub Copilot для корпоративных сред GitHub Enterprise.
8. Другие улучшения: Обновлён редактор коммитов для Git, позволяющий быстрее управлять файлами перед отправкой. Были устранены многие мелкие проблемы и улучшены функциональные возможности интерфейса.
https://www.qt.io/blog/qt-creator-18-released
Резюме изменений в Qt Creator 18
1. Поддержка контейнеров разработки: Добавлена экспериментальная поддержка контейнеров разработки ("Development Containers") для автоматизации настройки среды проекта. Контейнеры создаются на основе файла "devcontainer.json" и позволяют автоматически настраивать наборы инструментов (kits).
2. Обзорная вкладка "Overview": Новый интерфейс включает вкладку "Overview" на экране приветствия, объединяя полезную информацию из других вкладок. Она рекомендует учебные пособия и примеры, основываясь на потребностях разработчика, и выделяет посты разработчиков из блога Qt.
3. Интерфейс редактирования: Реализована возможность выбора редактора с вкладками. Улучшена интеграция с инструментом Clangd версии 21.1, улучшен встроенный код-моделлер для поддержки новых функций C++, добавлены быстрые исправления кода, такие как удаление фигурных скобок и автоматическое создание определений статических членов класса.
4. Работа с проектами: Файлы настроек проектов (.user) теперь хранятся в подпапке .qtcreator/, что улучшает совместимость старых проектов. Появилась возможность фильтрации отображаемых конфигураций сборки и запуска, позволяя выбирать доступные комплекты или настроенные конфигурации. Настройки построения и запуска были перемещены из окна набора инструментов в отдельные вкладки.
5. Удалённые устройства: Усовершенствована настройка удалённых устройств, позволяющая автоматически обнаруживать инструменты вроде GDB-серверов, CMake, clangd и других. Поддерживаются инструменты на удаленных устройствах Linux. Возможность автоматического подключения к устройствам при запуске IDE и использование утилиты rsync для развертывания приложений на удалённом устройстве.
6. Тестирование: Для проектов на основе CMake появилась поддержка тестовых пресетов и фильтр "ct" для запуска тестов на основе CTest.
7. Интеграция с GitHub: Подключён GitHub Copilot для корпоративных сред GitHub Enterprise.
8. Другие улучшения: Обновлён редактор коммитов для Git, позволяющий быстрее управлять файлами перед отправкой. Были устранены многие мелкие проблемы и улучшены функциональные возможности интерфейса.
https://www.qt.io/blog/qt-creator-18-released
www.qt.io
Qt Creator 18 released
Qt Creator 18 highlights development containers to ease kit configuration, a convenient Overview tab, and various UX improvements.
❤10👍5🔥5
Событийно‑ориентированная архитектура (Event-Driven Architecture )
(описание в следующем посте)
(описание в следующем посте)
👍8🔥1👏1
Событийно‑ориентированная архитектура (Event-Driven Architecture )
(описание к предыдущему посту)
Обзор
→ Событийно‑ориентированная архитектура — это шаблон проектирования, при котором компоненты системы взаимодействуют и реагируют на события (изменения состояния или значимые действия).
→ Она обеспечивает асинхронное взаимодействие, что способствует масштабируемости и слабой связанности сервисов.
→ События проходят через систему, инициируя реакции без прямых зависимостей между компонентами.
Основные компоненты
→ Генератор событий — создаёт и отправляет события при наступлении определённых ситуаций (например, «Заказ оформлен»).
→ Канал событий — передаёт события от генераторов к потребителям (например, через брокеры сообщений вроде Kafka, RabbitMQ).
→ Потребитель событий — отслеживает события и выполняет действия в ответ на них (например, обновляет запасы после оформления заказа).
→ Хранилище событий — опционально сохраняет прошедшие события для аудита или повторной обработки.
Поток обработки
→ Происходит событие → Генератор публикует его в канале событий → Потребители подписываются и реагируют → Действия обрабатываются независимо.
Преимущества
→ Высокая масштабируемость благодаря асинхронной обработке.
→ Слабая связанность компонентов позволяет независимо разрабатывать и развёртывать сервисы.
→ Реагирование на действия в системе в режиме реального времени.
→ Простая интеграция новых сервисов — достаточно подписаться на соответствующие события.
Недостатки
→ Сложность отладки и мониторинга из‑за асинхронного поведения.
→ Возможны дублирование событий или потеря сообщений при отсутствии должной обработки.
→ Требуется надёжная инфраструктура брокеров сообщений и согласованные схемы событий.
Рекомендации к применению
→ Чёткие правила именования событий («ЗаказСоздан», «ОплатаЗавершена»).
→ Идемпотентность потребителей, чтобы избежать повторной обработки событий.
→ Централизованный журнал событий для отслеживания.
→ Реализация обработки ошибок и повторные попытки при неудачном потреблении событий.
Когда применять
→ В системах, требующих обновлений в реальном времени (финансы, IoT, электронная коммерция).
→ В микросервисных архитектурах с минимальными зависимостями между сервисами.
→ В масштабируемых системах с высокой пропускной способностью по обработке событий.
(описание к предыдущему посту)
Обзор
→ Событийно‑ориентированная архитектура — это шаблон проектирования, при котором компоненты системы взаимодействуют и реагируют на события (изменения состояния или значимые действия).
→ Она обеспечивает асинхронное взаимодействие, что способствует масштабируемости и слабой связанности сервисов.
→ События проходят через систему, инициируя реакции без прямых зависимостей между компонентами.
Основные компоненты
→ Генератор событий — создаёт и отправляет события при наступлении определённых ситуаций (например, «Заказ оформлен»).
→ Канал событий — передаёт события от генераторов к потребителям (например, через брокеры сообщений вроде Kafka, RabbitMQ).
→ Потребитель событий — отслеживает события и выполняет действия в ответ на них (например, обновляет запасы после оформления заказа).
→ Хранилище событий — опционально сохраняет прошедшие события для аудита или повторной обработки.
Поток обработки
→ Происходит событие → Генератор публикует его в канале событий → Потребители подписываются и реагируют → Действия обрабатываются независимо.
Преимущества
→ Высокая масштабируемость благодаря асинхронной обработке.
→ Слабая связанность компонентов позволяет независимо разрабатывать и развёртывать сервисы.
→ Реагирование на действия в системе в режиме реального времени.
→ Простая интеграция новых сервисов — достаточно подписаться на соответствующие события.
Недостатки
→ Сложность отладки и мониторинга из‑за асинхронного поведения.
→ Возможны дублирование событий или потеря сообщений при отсутствии должной обработки.
→ Требуется надёжная инфраструктура брокеров сообщений и согласованные схемы событий.
Рекомендации к применению
→ Чёткие правила именования событий («ЗаказСоздан», «ОплатаЗавершена»).
→ Идемпотентность потребителей, чтобы избежать повторной обработки событий.
→ Централизованный журнал событий для отслеживания.
→ Реализация обработки ошибок и повторные попытки при неудачном потреблении событий.
Когда применять
→ В системах, требующих обновлений в реальном времени (финансы, IoT, электронная коммерция).
→ В микросервисных архитектурах с минимальными зависимостями между сервисами.
→ В масштабируемых системах с высокой пропускной способностью по обработке событий.
Telegram
METANIT.COM
Событийно‑ориентированная архитектура (Event-Driven Architecture )
(описание в следующем посте)
(описание в следующем посте)
👍9❤6🗿2
Как работает Elasticsearch
(описание к предыдущему посту)
Elasticsearch использует инвертированный индекс, чтобы обеспечить быстрый полнотекстовый поиск и эффективный доступ к данным.
Принцип его работы аналогичен тому, как устроен указатель в книге.
Распределённая архитектура системы не только повышает скорость работы, но и гарантирует высокую доступность за счёт шардирования и репликации данных на множестве узлов.
Мощный язык запросов DSL и эффективный механизм индексирования позволяют решать широкий спектр поисковых задач — от простых до сложных.
Чтобы лучше понять, как это работает, рассмотрим рабочий процесс системы:
1. Приём данных
→ Elasticsearch начинает с импорта данных в формате JSON — как напрямую, так и через инструменты вроде Logstash и Beats.
2. Индексирование
→ Затем система индексирует данные, создавая инвертированный индекс. Это позволяет быстро находить текстовые фрагменты, связывая термины с их местоположением в документах.
3. Шардинг и репликация
→ Система распределяет данные по узлам посредством шардирования. Репликация повышает отказоустойчивость и доступность данных.
4. Поиск
→ Язык запросов DSL позволяет пользователям выполнять поиск: система обращается к инвертированному индексу и быстро находит нужные документы.
5. Анализ и агрегация
→ Elasticsearch также даёт возможность анализировать данные и составлять сводки, выявляя тенденции и закономерности.
6. Получение результатов
→ Система извлекает и возвращает результаты запроса практически в режиме реального времени.
Ключевые преимущества Elasticsearch:
* исключительная масштабируемость;
* возможность поиска в реальном времени;
* интуитивно понятный RESTful API, который позволяет эффективно анализировать большие объёмы данных.
Благодаря обширным возможностям анализа журналов и событий система улучшает мониторинг и диагностику. Это помогает повысить безопасность и производительность приложений.
Сферы применения Elasticsearch разнообразны:
* мгновенный поиск товаров на платформах электронной коммерции;
* анализ транзакций в финансовых системах в режиме реального времени;
* системы мониторинга и журналирования — здесь Elasticsearch агрегирует и анализирует логи, давая детальную картину состояния системы и потенциальных угроз безопасности.
(описание к предыдущему посту)
Elasticsearch использует инвертированный индекс, чтобы обеспечить быстрый полнотекстовый поиск и эффективный доступ к данным.
Принцип его работы аналогичен тому, как устроен указатель в книге.
Распределённая архитектура системы не только повышает скорость работы, но и гарантирует высокую доступность за счёт шардирования и репликации данных на множестве узлов.
Мощный язык запросов DSL и эффективный механизм индексирования позволяют решать широкий спектр поисковых задач — от простых до сложных.
Чтобы лучше понять, как это работает, рассмотрим рабочий процесс системы:
1. Приём данных
→ Elasticsearch начинает с импорта данных в формате JSON — как напрямую, так и через инструменты вроде Logstash и Beats.
2. Индексирование
→ Затем система индексирует данные, создавая инвертированный индекс. Это позволяет быстро находить текстовые фрагменты, связывая термины с их местоположением в документах.
3. Шардинг и репликация
→ Система распределяет данные по узлам посредством шардирования. Репликация повышает отказоустойчивость и доступность данных.
4. Поиск
→ Язык запросов DSL позволяет пользователям выполнять поиск: система обращается к инвертированному индексу и быстро находит нужные документы.
5. Анализ и агрегация
→ Elasticsearch также даёт возможность анализировать данные и составлять сводки, выявляя тенденции и закономерности.
6. Получение результатов
→ Система извлекает и возвращает результаты запроса практически в режиме реального времени.
Ключевые преимущества Elasticsearch:
* исключительная масштабируемость;
* возможность поиска в реальном времени;
* интуитивно понятный RESTful API, который позволяет эффективно анализировать большие объёмы данных.
Благодаря обширным возможностям анализа журналов и событий система улучшает мониторинг и диагностику. Это помогает повысить безопасность и производительность приложений.
Сферы применения Elasticsearch разнообразны:
* мгновенный поиск товаров на платформах электронной коммерции;
* анализ транзакций в финансовых системах в режиме реального времени;
* системы мониторинга и журналирования — здесь Elasticsearch агрегирует и анализирует логи, давая детальную картину состояния системы и потенциальных угроз безопасности.
Telegram
METANIT.COM
Как работает Elasticsearch
(подробное описание в следующем посте)
(подробное описание в следующем посте)
👍5❤4👏1