Проблема N+1 запросов
(продолжение к предущему посту)
Проблема N+1 запросов - это ситуация, когда один запрос возвращает набор результатов, и для каждого из них требуется дополнительный запрос. Количество запросов, необходимых для загрузки страницы, зависит от размера набора результатов, что приводит к низкой производительности при большом значении N.
Пример (псевдокод):
Вместо этого можно переписать код как один запрос с JOIN, чтобы получить все данные за одно обращение к БД:
Для некоторых запросов влияние N+1 может быть минимальным. Если N — небольшое число, всё может казаться «быстрым», если БД хорошо настроена и находится рядом с серверами приложений. Но при N=100 начинают проявляться замедления, и БД загружается сильнее, чем необходимо. Устранение таких проблем улучшает пользовательский опыт и снижает нагрузку на БД.
(продолжение к предущему посту)
Проблема N+1 запросов - это ситуация, когда один запрос возвращает набор результатов, и для каждого из них требуется дополнительный запрос. Количество запросов, необходимых для загрузки страницы, зависит от размера набора результатов, что приводит к низкой производительности при большом значении N.
Пример (псевдокод):
// 1 запрос
users = db.query('SELECT * FROM users');
// ...что приводит к N дополнительным запросам
for (const user of users) {
posts = db.query(`
SELECT * FROM posts
WHERE user_id = user->id`);
user.posts = posts;
}
// Теперь можно вернуть результат запрашивающей стороне
Вместо этого можно переписать код как один запрос с JOIN, чтобы получить все данные за одно обращение к БД:
results = await db.query(
`SELECT u.*, p.*
FROM users u
LEFT JOIN posts p
ON u->id = p->user_id`);
Для некоторых запросов влияние N+1 может быть минимальным. Если N — небольшое число, всё может казаться «быстрым», если БД хорошо настроена и находится рядом с серверами приложений. Но при N=100 начинают проявляться замедления, и БД загружается сильнее, чем необходимо. Устранение таких проблем улучшает пользовательский опыт и снижает нагрузку на БД.
Telegram
METANIT.COM
Проблема N+1 запросов
(продолжение в следующем посте)
(продолжение в следующем посте)
👍9🤗3🔥2
Шпаргалка по интервью по API
(продолжение предыдущего поста)
Основы API
*Что такое API?*
API — это программное обеспечение, которое действует как посредник между приложениями, помогая им взаимодействовать друг с другом с помощью HTTP-запросов.
*Типы API*
* Открытые API
* Закрытые API
* Партнерские API
* Композитные API
Тестирование API
*Что такое тестирование API?*
Тестирование API — это стратегия тестирования программного обеспечения, которая гарантирует, что API стабильны, функциональны, надежны и безопасны.
*Преимущества тестирования API*
* Удобство
* Лучше, чем тестирование GUI
* Независимость от языка
* Гибкость в выборе языка программирования
REST vs SOAP
*REST*
* Использует XML или JSON
* Поддерживает HTTP
* Быстрее, чем SOAP
* Поддерживает кэширование
*SOAP*
* Использует только XML
* Поддерживает HTTP и HTTPS
* Более безопасен, чем REST
* Не поддерживает кэширование
API Testing vs Unit Testing
*Тестирование API*
* Использует тестирование «черного ящика»
* Проверяет функциональность
*Юнит-тестирование*
* Использует тестирование «белого ящика»
* Проверяет отдельные блоки кода
CRUD
Эта аббревиатура представляет четыре основные операции, распространенные в реляционных базах данных: создание, чтение, обновление и удаление.
Архитектура REST API
Схема показывает взаимодействие между клиентом и сервером через REST API, включая запросы и ответы.
Дополнительные вопросы об API
*Что такое аутентификация API?*
Аутентификация API — это процесс проверки прав доступа пользователя к данным и ресурсам, которые он запрашивает.
*Что такое Runscope?*
Runscope — это веб-приложение, используемое для мониторинга, отладки и тестирования производительности веб-сервисов API.
*Что такое документация API?*
Документация API — это технический контент, который подробно описывает API. Она включает все, что нужно знать об API, от эффективной интеграции до обновлений жизненного цикла API, проектирования и покрытия тестирования.
(продолжение предыдущего поста)
Основы API
*Что такое API?*
API — это программное обеспечение, которое действует как посредник между приложениями, помогая им взаимодействовать друг с другом с помощью HTTP-запросов.
*Типы API*
* Открытые API
* Закрытые API
* Партнерские API
* Композитные API
Тестирование API
*Что такое тестирование API?*
Тестирование API — это стратегия тестирования программного обеспечения, которая гарантирует, что API стабильны, функциональны, надежны и безопасны.
*Преимущества тестирования API*
* Удобство
* Лучше, чем тестирование GUI
* Независимость от языка
* Гибкость в выборе языка программирования
REST vs SOAP
*REST*
* Использует XML или JSON
* Поддерживает HTTP
* Быстрее, чем SOAP
* Поддерживает кэширование
*SOAP*
* Использует только XML
* Поддерживает HTTP и HTTPS
* Более безопасен, чем REST
* Не поддерживает кэширование
API Testing vs Unit Testing
*Тестирование API*
* Использует тестирование «черного ящика»
* Проверяет функциональность
*Юнит-тестирование*
* Использует тестирование «белого ящика»
* Проверяет отдельные блоки кода
CRUD
Эта аббревиатура представляет четыре основные операции, распространенные в реляционных базах данных: создание, чтение, обновление и удаление.
Архитектура REST API
Схема показывает взаимодействие между клиентом и сервером через REST API, включая запросы и ответы.
Дополнительные вопросы об API
*Что такое аутентификация API?*
Аутентификация API — это процесс проверки прав доступа пользователя к данным и ресурсам, которые он запрашивает.
*Что такое Runscope?*
Runscope — это веб-приложение, используемое для мониторинга, отладки и тестирования производительности веб-сервисов API.
*Что такое документация API?*
Документация API — это технический контент, который подробно описывает API. Она включает все, что нужно знать об API, от эффективной интеграции до обновлений жизненного цикла API, проектирования и покрытия тестирования.
Telegram
METANIT.COM
Шпаргалка по интервью по API
(описание в следующем посте)
(описание в следующем посте)
🤔5🔥4❤3🥱2
#### Аутентификация и авторизация (OAuth, JWT, сессии)
(продолжение предыдущего поста)
##### Что такое аутентификация?
Аутентификация — это процесс проверки подлинности пользователя или системы. Она гарантирует, что человек или приложение, пытающиеся получить доступ к системе, действительно являются теми, за кого себя выдают.
→ Пример: Вход в систему с использованием имени пользователя и пароля.
##### Что такое авторизация?
Авторизация определяет, какие действия аутентифицированному пользователю разрешено выполнять в системе. Она устанавливает разрешения и уровни доступа.
→ Пример: Обычный пользователь может просматривать контент, в то время как администратор может добавлять или удалять контент.
##### OAuth (Open Authorization)
→ Стандартный протокол для аутентификации и авторизации на основе токенов.
→ Позволяет пользователям входить в систему через сторонних провайдеров, таких как Google, Facebook или GitHub.
→ Пример: Кнопка «Войти через Google» на веб-сайтах.
##### JWT (JSON Web Token)
→ Компактный и безопасный формат токенов, используемый для аутентификации.
→ Содержит закодированную информацию о пользователе и подписывается для обеспечения целостности.
→ Часто используется в аутентификации без сохранения состояния, когда сервер не хранит данные о сессии.
→ Пример: После входа в систему сервер выдаёт JWT, который клиент отправляет с каждым запросом.
##### Сессии
→ Метод, при котором сервер временно хранит данные аутентификации пользователя.
→ Идентификатор сессии сохраняется в браузере клиента (cookie) и сопоставляется с данными на стороне сервера.
→ Пример: Традиционные веб-приложения, где пользователь остаётся авторизованным до истечения сессии или до выхода из системы.
##### Ключевые различия
→ OAuth: Передаёт аутентификацию внешним провайдерам.
→ JWT: Аутентификация без сохранения состояния, токены хранятся на клиенте.
→ Сессии: Аутентификация с сохранением состояния, данные хранятся на сервере.
(продолжение предыдущего поста)
##### Что такое аутентификация?
Аутентификация — это процесс проверки подлинности пользователя или системы. Она гарантирует, что человек или приложение, пытающиеся получить доступ к системе, действительно являются теми, за кого себя выдают.
→ Пример: Вход в систему с использованием имени пользователя и пароля.
##### Что такое авторизация?
Авторизация определяет, какие действия аутентифицированному пользователю разрешено выполнять в системе. Она устанавливает разрешения и уровни доступа.
→ Пример: Обычный пользователь может просматривать контент, в то время как администратор может добавлять или удалять контент.
##### OAuth (Open Authorization)
→ Стандартный протокол для аутентификации и авторизации на основе токенов.
→ Позволяет пользователям входить в систему через сторонних провайдеров, таких как Google, Facebook или GitHub.
→ Пример: Кнопка «Войти через Google» на веб-сайтах.
##### JWT (JSON Web Token)
→ Компактный и безопасный формат токенов, используемый для аутентификации.
→ Содержит закодированную информацию о пользователе и подписывается для обеспечения целостности.
→ Часто используется в аутентификации без сохранения состояния, когда сервер не хранит данные о сессии.
→ Пример: После входа в систему сервер выдаёт JWT, который клиент отправляет с каждым запросом.
##### Сессии
→ Метод, при котором сервер временно хранит данные аутентификации пользователя.
→ Идентификатор сессии сохраняется в браузере клиента (cookie) и сопоставляется с данными на стороне сервера.
→ Пример: Традиционные веб-приложения, где пользователь остаётся авторизованным до истечения сессии или до выхода из системы.
##### Ключевые различия
→ OAuth: Передаёт аутентификацию внешним провайдерам.
→ JWT: Аутентификация без сохранения состояния, токены хранятся на клиенте.
→ Сессии: Аутентификация с сохранением состояния, данные хранятся на сервере.
Telegram
METANIT.COM
#### Аутентификация и авторизация (OAuth, JWT, сессии)
(описание в следующем посте)
(описание в следующем посте)
👍8❤7👏1
Как работает Big O
* Big O показывает, насколько медленнее становится код при увеличении входных данных.
* Для конкретного алгоритма существуют три случая: наилучший, средний и наихудший.
* Кроме того, существуют оценки Big O для эффективности использования времени, памяти и хранилища.
* Big O помогает понять, какие структуры данных или алгоритмы демонстрируют лучшую производительность.
* Big O показывает скорость роста, а не фактическую скорость выполнения. Поэтому важно тестировать входные данные на практике.
Сложность Big-O
* O(1) — Доступ к значению в хеш-таблице по ключу.
* O(n!) — Добавление вложенного цикла для каждого ввода.
* O(2^n) — Наивное рекурсивное вычисление последовательности Фибоначчи.
* O(log n) — Алгоритмы «разделяй и властвуй».
* O(n) — Проход по списку.
* O(n log n) — Итерации, использующие «разделяй и властвуй».
* O(n^2) — Вложенный цикл на одном и том же вводе.
* Big O показывает, насколько медленнее становится код при увеличении входных данных.
* Для конкретного алгоритма существуют три случая: наилучший, средний и наихудший.
* Кроме того, существуют оценки Big O для эффективности использования времени, памяти и хранилища.
* Big O помогает понять, какие структуры данных или алгоритмы демонстрируют лучшую производительность.
* Big O показывает скорость роста, а не фактическую скорость выполнения. Поэтому важно тестировать входные данные на практике.
Сложность Big-O
* O(1) — Доступ к значению в хеш-таблице по ключу.
* O(n!) — Добавление вложенного цикла для каждого ввода.
* O(2^n) — Наивное рекурсивное вычисление последовательности Фибоначчи.
* O(log n) — Алгоритмы «разделяй и властвуй».
* O(n) — Проход по списку.
* O(n log n) — Итерации, использующие «разделяй и властвуй».
* O(n^2) — Вложенный цикл на одном и том же вводе.
👍14❤6👏1
«Лаборатория Касперского» выпустила обзорную статью на тему безопасности мессенджеров, в которой сравнила различные мессенджеры, в частности, по разрешениям, и пояснила, что мобильное приложение Max даже несколько «отстаёт» по своим «аппетитам» от других мессенджеров.
«В последнее время (особенно в контексте запуска мессенджера Max) обсуждение разрешений, требуемых современным мессенджерам, идёт особенно горячо. Давайте сравним разрешения, запрашиваемые тремя самыми актуальными для российских пользователей мессенджерами под Android: Telegram, WhatsApp и Max», — рассказали в «Лаборатории Касперского».
Эксперты компании выяснили, что запрашиваемые разрешения в целом примерно одинаковы для популярных приложений-мессенджеров, а Max тут даже не особо выделяется.
https://www.kaspersky.ru/blog/messengers-threats-and-countermeasures/40451/
«В последнее время (особенно в контексте запуска мессенджера Max) обсуждение разрешений, требуемых современным мессенджерам, идёт особенно горячо. Давайте сравним разрешения, запрашиваемые тремя самыми актуальными для российских пользователей мессенджерами под Android: Telegram, WhatsApp и Max», — рассказали в «Лаборатории Касперского».
Эксперты компании выяснили, что запрашиваемые разрешения в целом примерно одинаковы для популярных приложений-мессенджеров, а Max тут даже не особо выделяется.
https://www.kaspersky.ru/blog/messengers-threats-and-countermeasures/40451/
🤣35🤔8🤮5💩3👍1🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
На SQL теперь тоже пишут игры.
Проект DOOMQL развивает вариант игры DOOM на SQL и способный выполняться внутри СУБД CedarDB, частично совместимой с PostgreSQL. Игра поддерживает многопользовательский режим и выполняет отрисовку при помощи ASCII-графики.
Все компоненты игры (в том числе рендеринг, синхронизация состояния игроков в многопользовательской игре, игровой цикл) написаны на SQL. Игровая логика реализована при помощи таблиц, представлений и хранимых процедур
Игровой цикл для обработки и обновления игрового состояния запускается с помощью 20-строчного shell-скрипта, который 30 раз в секунду выполняет SQL-код для расчёта траектории выстрелов, анализа столкновений, обработки ввода и возрождения игроков
3D-рендер на SQL поддерживает трассировку лучей, проекцию спрайтов на 3D-сцену, обработку перекрытия объектов и HUD-интерфейс. Вся логика рендеринга реализована при помощи представлений. Синхронизация состояния игроков осуществляется при помощи таблиц и представлений
https://github.com/cedardb/DOOMQL
Проект DOOMQL развивает вариант игры DOOM на SQL и способный выполняться внутри СУБД CedarDB, частично совместимой с PostgreSQL. Игра поддерживает многопользовательский режим и выполняет отрисовку при помощи ASCII-графики.
Все компоненты игры (в том числе рендеринг, синхронизация состояния игроков в многопользовательской игре, игровой цикл) написаны на SQL. Игровая логика реализована при помощи таблиц, представлений и хранимых процедур
Игровой цикл для обработки и обновления игрового состояния запускается с помощью 20-строчного shell-скрипта, который 30 раз в секунду выполняет SQL-код для расчёта траектории выстрелов, анализа столкновений, обработки ввода и возрождения игроков
3D-рендер на SQL поддерживает трассировку лучей, проекцию спрайтов на 3D-сцену, обработку перекрытия объектов и HUD-интерфейс. Вся логика рендеринга реализована при помощи представлений. Синхронизация состояния игроков осуществляется при помощи таблиц и представлений
https://github.com/cedardb/DOOMQL
🤯31🔥8❤4👏3🕊1
Функциональные индексы
(продолжение предыдущего поста)
Что такое функциональный индекс?
* Обычный индекс говорит: «Я помогу тебе быстрее найти эту колонку».
* Функциональный индекс говорит: «Я помогу тебе быстрее найти результат этой функции».
Пример:
-- Обычный фильтр (медленно)
WHERE EXTRACT(YEAR FROM order_date) = 2023;
-- С функциональным индексом
CREATE INDEX idx_order_year ON orders ((EXTRACT(YEAR FROM order_date)));
Теперь функция YEAR() не вычисляется для каждой строки.
Система просто ищет значение, как в словаре.
Почему это важно?
Вы постоянно используете такие запросы:
* LOWER(email) → поиск без учёта регистра
* SUBSTRING(code, 1, 4) → частичное совпадение
* price * quantity → вычисляемые столбцы
* EXTRACT(MONTH FROM signup_date) → фильтрация по месяцу
Угадайте что? Все они работают медленно без функционального индекса.
Когда следует использовать?
* Вы применяете фильтры к вычисляемым значениям
* Выполняете операции с датами, строками или вычислениями в столбцах
* Ваше приложение ориентировано на чтение данных
* Вы хотите, чтобы запросы выполнялись менее чем за 100 мс
Важно запомнить:
1. Функциональные индексы хранят результат функции
2. Они избегают повторного вычисления при каждом запросе
3. Делают медленные фильтры молниеносными
4. Но... они занимают место на диске и работают только с детерминированными функциями
Сохраняйте спокойствие и изучайте SQL!
(продолжение предыдущего поста)
Что такое функциональный индекс?
* Обычный индекс говорит: «Я помогу тебе быстрее найти эту колонку».
* Функциональный индекс говорит: «Я помогу тебе быстрее найти результат этой функции».
Пример:
-- Обычный фильтр (медленно)
WHERE EXTRACT(YEAR FROM order_date) = 2023;
-- С функциональным индексом
CREATE INDEX idx_order_year ON orders ((EXTRACT(YEAR FROM order_date)));
Теперь функция YEAR() не вычисляется для каждой строки.
Система просто ищет значение, как в словаре.
Почему это важно?
Вы постоянно используете такие запросы:
* LOWER(email) → поиск без учёта регистра
* SUBSTRING(code, 1, 4) → частичное совпадение
* price * quantity → вычисляемые столбцы
* EXTRACT(MONTH FROM signup_date) → фильтрация по месяцу
Угадайте что? Все они работают медленно без функционального индекса.
Когда следует использовать?
* Вы применяете фильтры к вычисляемым значениям
* Выполняете операции с датами, строками или вычислениями в столбцах
* Ваше приложение ориентировано на чтение данных
* Вы хотите, чтобы запросы выполнялись менее чем за 100 мс
Важно запомнить:
1. Функциональные индексы хранят результат функции
2. Они избегают повторного вычисления при каждом запросе
3. Делают медленные фильтры молниеносными
4. Но... они занимают место на диске и работают только с детерминированными функциями
Сохраняйте спокойствие и изучайте SQL!
Telegram
METANIT.COM
Функциональные индексы
(описание в следующем посте)
(описание в следующем посте)
❤🔥12👍7👏1
Вышел первый RC для .NET 10 вместе с C# 14 и обновлениями для .NET MAUI, Entity Framework Core, ASP NET Core и т.д., релиз которого ожидается в ноябре 2025.
Этот релиз-кандидат главным образом ориентирован на улучшение качества. Из обновлений следуюет отметить следующие (по категориям):
🌐ASP.NET Core и Blazor
Поддержка постоянного состояния компонентов для улучшенной навигации
Новые метрики идентификации ASP.NET Core
Улучшения валидации для Minimal API и Blazor
Улучшения генерации схемы OpenAPI
📱 .NET MAUI
Диагностика и отслеживание метрик
События HybridWebView
Свойство RefreshView IsRefreshEnabled
.NET для Android: экспериментальная поддержка среды выполнения CoreCLR
🖥 Windows Forms
Темный режим теперь полностью интегрирован
Уточнение по ControlStyles ApplyThemingImplicitlyUsage
Несколько дополнительных улучшений в рендеринге, асинхронности и управлении состоянием
🎁 Entity Framework Core
Векторный поиск в SQL Server
Поддержка типов JSON в SQL Server
Полнотекстовый и гибридный поиск в Cosmos
Сложные типы
Заполнение для параметризованных коллекций
Подробнее: https://devblogs.microsoft.com/dotnet/dotnet-10-rc-1/
Этот релиз-кандидат главным образом ориентирован на улучшение качества. Из обновлений следуюет отметить следующие (по категориям):
🌐ASP.NET Core и Blazor
Поддержка постоянного состояния компонентов для улучшенной навигации
Новые метрики идентификации ASP.NET Core
Улучшения валидации для Minimal API и Blazor
Улучшения генерации схемы OpenAPI
📱 .NET MAUI
Диагностика и отслеживание метрик
События HybridWebView
Свойство RefreshView IsRefreshEnabled
.NET для Android: экспериментальная поддержка среды выполнения CoreCLR
🖥 Windows Forms
Темный режим теперь полностью интегрирован
Уточнение по ControlStyles ApplyThemingImplicitlyUsage
Несколько дополнительных улучшений в рендеринге, асинхронности и управлении состоянием
🎁 Entity Framework Core
Векторный поиск в SQL Server
Поддержка типов JSON в SQL Server
Полнотекстовый и гибридный поиск в Cosmos
Сложные типы
Заполнение для параметризованных коллекций
Подробнее: https://devblogs.microsoft.com/dotnet/dotnet-10-rc-1/
Microsoft News
Announcing .NET 10 Release Candidate 1
.NET 10 Release Candidate 1 is available with improvements across the runtime, SDK, libraries, ASP.NET Core, Blazor, .NET MAUI, and more!
👍14🔥4❤2🤮1
Также Microsoft выпустил первые превью-сборки новой среды Visual STudio 2026 для инсайдеров - среды, которая должна прийти на смену текущей Visual Studio 2022
https://visualstudio.microsoft.com/insiders/
Новые фичи:
### Производительность
Расширенные элементы управления редактором
Исключения файлов при поиске
### GitHub Copilot
Добавление своей модели в чат
Адаптивная вставка
Действия Copilot в контекстном меню
Рендеринг диаграммы Mermaid
URL-контекст Copilot
Улучшенные ответы Copilot
### Отладка и диагностика
Profiler Copilot Agent
Шаблон проекта BenchmarkDotNet
Диагностика CMake стала ещё лучше
Оптимизация массивов нулевой длины с Copilot
Новый интерфейс запуска Profiler
Встроенные значения после возврата
Поиск в текстовом визуализаторе
### Инструментарий Git
Встроенные комментарии к pull-запросам
Улучшенный искусственный интеллект для проверки кода
Контекст Git в чате Copilot
### IDE
Покрытие кода
Новый внешний вид и функциональность
Современный интерфейс настроек
### Облако
Устаревание облачных сервисов (расширенная поддержка)
Обновление инструментов Service Fabric
### .NET
.NET 10 и C# 14
Улучшения Hot Reload
Улучшения редактора Razor
### C++
Поддержка Toolset Windows
Устаревание и удаление функций C++
Обновления C++ STL
Улучшение Class View
Обновления шаблонов проектов
Подсветка синтаксиса для атрибутов C++
Улучшения clang-tidy
https://visualstudio.microsoft.com/insiders/
Новые фичи:
### Производительность
Расширенные элементы управления редактором
Исключения файлов при поиске
### GitHub Copilot
Добавление своей модели в чат
Адаптивная вставка
Действия Copilot в контекстном меню
Рендеринг диаграммы Mermaid
URL-контекст Copilot
Улучшенные ответы Copilot
### Отладка и диагностика
Profiler Copilot Agent
Шаблон проекта BenchmarkDotNet
Диагностика CMake стала ещё лучше
Оптимизация массивов нулевой длины с Copilot
Новый интерфейс запуска Profiler
Встроенные значения после возврата
Поиск в текстовом визуализаторе
### Инструментарий Git
Встроенные комментарии к pull-запросам
Улучшенный искусственный интеллект для проверки кода
Контекст Git в чате Copilot
### IDE
Покрытие кода
Новый внешний вид и функциональность
Современный интерфейс настроек
### Облако
Устаревание облачных сервисов (расширенная поддержка)
Обновление инструментов Service Fabric
### .NET
.NET 10 и C# 14
Улучшения Hot Reload
Улучшения редактора Razor
### C++
Поддержка Toolset Windows
Устаревание и удаление функций C++
Обновления C++ STL
Улучшение Class View
Обновления шаблонов проектов
Подсветка синтаксиса для атрибутов C++
Улучшения clang-tidy
Visual Studio
Visual Studio 2026 Insiders - Faster, smarter IDE
Try Visual Studio 2026 Insiders with Copilot AI deeply integrated, faster performance across C# and C++, and a refreshed, modern UI.
👍14❤4🔥4🤔1🤬1🤮1
По данным hh_ru, за первые 8 месяцев 2025 г. было открыто 88 тыс. вакансий для программистов и размещено 445 тыс. резюме
На 1 вакансию приходится 14 активных резюме. Наибольшая конкуренция – среди джунов: 18,6 резюме на 1 вакансию, у мидлов – 14,7 резюме. У сеньоров – лишь 3 резюме на 1 вакансию
В 2025 г. в вакансиях чаще стал упоминаться 1С – он оказался в тройке самых востребованных наряду PostgreSQL и Git. Но спецов по нему нет
47% всех открытых вакансий за 8 месяцев 2025 г. - в Москве. СПБ на 2-м месте с 13%. За ним - Свердловская и Новосибирская области и Татарстан - по 3% от общего числа вакансий
Хуже всего в ХМАО – зафиксировано 40 резюме на 1 вакансию. На 2 месте – Ставропольский край с результатом 38,1. У Оренбургской области – 28,9 резюме на 1 вакансию, у Ульяновской области – 28,1
Наилучшая ситуация в МСК – 10,3 резюме на 1 вакансию, в СПБ – 13,3, в Свердловской и Новосибирской областях – 11,5 и 12,4 резюме на вакансию
https://www.cnews.ru/news/top/2025-09-11_v_rossii_ostryj_defitsit_opytnyh
На 1 вакансию приходится 14 активных резюме. Наибольшая конкуренция – среди джунов: 18,6 резюме на 1 вакансию, у мидлов – 14,7 резюме. У сеньоров – лишь 3 резюме на 1 вакансию
В 2025 г. в вакансиях чаще стал упоминаться 1С – он оказался в тройке самых востребованных наряду PostgreSQL и Git. Но спецов по нему нет
47% всех открытых вакансий за 8 месяцев 2025 г. - в Москве. СПБ на 2-м месте с 13%. За ним - Свердловская и Новосибирская области и Татарстан - по 3% от общего числа вакансий
Хуже всего в ХМАО – зафиксировано 40 резюме на 1 вакансию. На 2 месте – Ставропольский край с результатом 38,1. У Оренбургской области – 28,9 резюме на 1 вакансию, у Ульяновской области – 28,1
Наилучшая ситуация в МСК – 10,3 резюме на 1 вакансию, в СПБ – 13,3, в Свердловской и Новосибирской областях – 11,5 и 12,4 резюме на вакансию
https://www.cnews.ru/news/top/2025-09-11_v_rossii_ostryj_defitsit_opytnyh
👍8🤔8🤮3👏2😁2😨2❤1
Microsoft разрешила разработчикам публиковать приложения для Windows в Microsoft Store без комиссии. Теперь разработчики получили возможность отправлять в магазин приложения Win32 (включая .NET WPF и WinForms), UWP, PWA, .NET MAUI и Electron без уплаты каких-либо регистрационных сборов.
Также Microsoft возьмёт на себя хостинг и подписание каждого приложения, избавив разработчиков от необходимости платить за эти услуги.
Компания предлагает упаковать приложение в MSIX, чтобы разместить исполняемый файл в инфраструктуре, а Microsoft возьмёт на себя оплату распространения, поэтому разработчикам не нужно настраивать собственную CDN. Microsoft бесплатно подпишет отправленное приложение, чтобы повысить доверие и безопасность, а Windows будет автоматически устанавливать обновления.
Разработчики неигровых приложений для Windows смогут развернуть собственную систему внутренних платежей, чтобы получать весь доход.
Для отправки приложения нужно иметь учётную запись Microsoft и следовать инструкциям нового интерфейса. Однако перед публикацией приложения разработчикам необходимо подтвердить свою личность, отсканировав действительное удостоверение личности государственного образца и сделав селфи.
https://blogs.windows.com/windowsdeveloper/2025/09/10/free-developer-registration-for-individual-developers-on-microsoft-store/
Также Microsoft возьмёт на себя хостинг и подписание каждого приложения, избавив разработчиков от необходимости платить за эти услуги.
Компания предлагает упаковать приложение в MSIX, чтобы разместить исполняемый файл в инфраструктуре, а Microsoft возьмёт на себя оплату распространения, поэтому разработчикам не нужно настраивать собственную CDN. Microsoft бесплатно подпишет отправленное приложение, чтобы повысить доверие и безопасность, а Windows будет автоматически устанавливать обновления.
Разработчики неигровых приложений для Windows смогут развернуть собственную систему внутренних платежей, чтобы получать весь доход.
Для отправки приложения нужно иметь учётную запись Microsoft и следовать инструкциям нового интерфейса. Однако перед публикацией приложения разработчикам необходимо подтвердить свою личность, отсканировав действительное удостоверение личности государственного образца и сделав селфи.
https://blogs.windows.com/windowsdeveloper/2025/09/10/free-developer-registration-for-individual-developers-on-microsoft-store/
Windows Developer Blog
Free developer registration for individual developers on Microsoft Store
We’re excited to share that individual developers can now publish apps to the Microsoft Store without paying any onboarding fees — and this new experience is now globally available in nearly 200 markets worldwide. Developers will no longer need a
❤32🔥10👍9
В Албании назначили первого в мире «неподкупного ИИ-министра»
Модель на базе искусственного интеллекта будет использоваться в Албании в качестве «ИИ-министра» по имени «Диелла». Первый в мире ИИ-министр будет отвечать за госзакупки
Премьер-министр Эди Рама заявил, что «Диелла» будет заниматься гостендерами, в рамках которых правительство заключает контракты с частными компаниями. В результате госзакупки будут «защищены от коррупции».
https://www.rbc.ru/politics/11/09/2025/68c30edf9a7947eb7aea850b?from=newsfeed
Модель на базе искусственного интеллекта будет использоваться в Албании в качестве «ИИ-министра» по имени «Диелла». Первый в мире ИИ-министр будет отвечать за госзакупки
Премьер-министр Эди Рама заявил, что «Диелла» будет заниматься гостендерами, в рамках которых правительство заключает контракты с частными компаниями. В результате госзакупки будут «защищены от коррупции».
https://www.rbc.ru/politics/11/09/2025/68c30edf9a7947eb7aea850b?from=newsfeed
РБК
В Албании назначили первого в мире «неподкупного ИИ-министра»
Модель на базе искусственного интеллекта будет использоваться в Албании в качестве ИИ-министра по имени Диелла (diella в переводе с албанского солнце , имя женское). Первый в мире ИИ-министр будет ...
😁28🤡25🥴4👍3🔥1
### Что такое MQTT?
(продолжение предыдущего поста)
MQTT (первоначально «Message Queuing Telemetry Transport» — транспорт телеметрии с очередями сообщений) — это:
* Лёгковесный протокол обмена сообщениями по принципу «публикация-подписка».
* Разработан для быстрой, эффективной и надёжной коммуникации между устройствами, особенно в условиях ограниченной пропускной способности и высокой задержки.
* Использует брокер, который маршрутизирует сообщения от издателей (устройств, отправляющих данные) к подписчикам (устройствам или приложениям, заинтересованным в этих данных), при этом им не нужно знать друг о друге.
### История развития
Создан в 1999 году Энди Стэнфорд-Кларком (IBM) и Арленом Ниппером (Arcom) для мониторинга нефтяных трубопроводов через ненадёжные спутниковые каналы связи.
Основная цель — минимальное использование пропускной способности и энергопотребления.
* В 2010 году IBM выпустила MQTT 3.1 как открытый протокол.
* Стандартизирован OASIS в 2013 году.
* MQTT 5 выпущен в 2019 году.
На сегодняшний день MQTT является фактическим стандартом для обмена сообщениями в IoT и широко применяется в различных отраслях.
### Примеры практического применения
Умная домашняя автоматизация:
* Умный термостат отправляет данные о температуре брокеру MQTT.
* Умные светильники или системы HVAC подписываются на эти данные и автоматически регулируют настройки.
* Владельцы домов могут управлять всеми устройствами и отслеживать их работу через единое приложение.
Другие важные области применения:
* Промышленный интернет вещей.
* Управление автопарками.
* Умные электросети.
* Здравоохранение (удаленный мониторинг).
* Сельское хозяйство.
* Логистика.
(продолжение предыдущего поста)
MQTT (первоначально «Message Queuing Telemetry Transport» — транспорт телеметрии с очередями сообщений) — это:
* Лёгковесный протокол обмена сообщениями по принципу «публикация-подписка».
* Разработан для быстрой, эффективной и надёжной коммуникации между устройствами, особенно в условиях ограниченной пропускной способности и высокой задержки.
* Использует брокер, который маршрутизирует сообщения от издателей (устройств, отправляющих данные) к подписчикам (устройствам или приложениям, заинтересованным в этих данных), при этом им не нужно знать друг о друге.
### История развития
Создан в 1999 году Энди Стэнфорд-Кларком (IBM) и Арленом Ниппером (Arcom) для мониторинга нефтяных трубопроводов через ненадёжные спутниковые каналы связи.
Основная цель — минимальное использование пропускной способности и энергопотребления.
* В 2010 году IBM выпустила MQTT 3.1 как открытый протокол.
* Стандартизирован OASIS в 2013 году.
* MQTT 5 выпущен в 2019 году.
На сегодняшний день MQTT является фактическим стандартом для обмена сообщениями в IoT и широко применяется в различных отраслях.
### Примеры практического применения
Умная домашняя автоматизация:
* Умный термостат отправляет данные о температуре брокеру MQTT.
* Умные светильники или системы HVAC подписываются на эти данные и автоматически регулируют настройки.
* Владельцы домов могут управлять всеми устройствами и отслеживать их работу через единое приложение.
Другие важные области применения:
* Промышленный интернет вещей.
* Управление автопарками.
* Умные электросети.
* Здравоохранение (удаленный мониторинг).
* Сельское хозяйство.
* Логистика.
Telegram
METANIT.COM
Что такое MQTT?
(продолжение в следующем посте)
(продолжение в следующем посте)
❤5👍4🔥2
Oracle сократила команду разработки открытой СУБД MySQL на 70 человек. Оставшихся ее членов американская корпорация объединила с разработчиками, работающими над облачным коммерческим продуктом на базе MySQL - Heatwave.
Стоявшие у истоков MySQL специалисты опасаются, что это может означать скорый конец открытой СУБД.
https://www.theregister.com/2025/09/11/oracle_slammed_for_mysql_job/
Стоявшие у истоков MySQL специалисты опасаются, что это может означать скорый конец открытой СУБД.
https://www.theregister.com/2025/09/11/oracle_slammed_for_mysql_job/
The Register
Monty Widenius 'heartbroken' at the extent of Oracle's MySQL job cuts
: Original author of open source database 'not surprised' but 'saddened' as critics slam vendor's layoffs
👎19😭12😱7🤯3🤬1
Шпаргалка по LVM (Logical Volume Manager) - системе управления томами в Linux.
(продолжение в следующем посте)
(продолжение в следующем посте)
👍4🔥2👏1
Шпаргалка по LVM (Logical Volume Manager)
(продолжение предыдущего поста)
LVM (Logical Volume Manager) в Linux позволяет гибко управлять дисковым пространством, добавлять или удалять диски, изменять размеры томов и обеспечивать резервное копирование данных. Ее основные элементы:
- **Файловая система: Это верхний уровень структуры, где размещаются данные. Примеры файловых систем включают
- Логические тома: Это абстрактные блоки хранения, которые создаются внутри групп томов. Примеры логических томов включают
- Группы томов: Объединяют физические тома в единое пространство хранения. Примеры групп томов:
- Физические тома: Это разделы или целые диски, которые используются для создания логических томов. Примеры физических томов:
- Разделы: Это физические разделы на дисках, которые используются для создания физических томов. Примеры разделов:
- Диски: Это физические устройства хранения данных, такие как жёсткие диски или SSD. На изображении показаны четыре диска, которые могут быть использованы для создания физических томов.
#linux
(продолжение предыдущего поста)
LVM (Logical Volume Manager) в Linux позволяет гибко управлять дисковым пространством, добавлять или удалять диски, изменять размеры томов и обеспечивать резервное копирование данных. Ее основные элементы:
- **Файловая система: Это верхний уровень структуры, где размещаются данные. Примеры файловых систем включают
/home, / и /mnt/backups. Эти файловые системы форматируются в определённый тип (например, ext4, xfs) и монтируются в соответствующих точках.- Логические тома: Это абстрактные блоки хранения, которые создаются внутри групп томов. Примеры логических томов включают
lv_home, lv_root и lv_backups. Они могут быть увеличены или уменьшены в размере без остановки системы.- Группы томов: Объединяют физические тома в единое пространство хранения. Примеры групп томов:
vg_system и vg_others. Группа томов позволяет гибко управлять дисковым пространством.- Физические тома: Это разделы или целые диски, которые используются для создания логических томов. Примеры физических томов:
/dev/vda1, /dev/vda2, /dev/vda3, /dev/vda4 и /dev/vda5. Они могут быть объединены в группы томов для создания единого пространства хранения.- Разделы: Это физические разделы на дисках, которые используются для создания физических томов. Примеры разделов:
/dev/vda1 и /dev/vda2.- Диски: Это физические устройства хранения данных, такие как жёсткие диски или SSD. На изображении показаны четыре диска, которые могут быть использованы для создания физических томов.
#linux
Telegram
METANIT.COM
Шпаргалка по LVM (Logical Volume Manager) - системе управления томами в Linux.
(продолжение в следующем посте)
(продолжение в следующем посте)
👍2🔥2👏1