Что такое Event Sourcing?
Event Sourcing (Порождение событий) — это паттерн архитектуры программного обеспечения, при котором каждое изменение состояния приложения фиксируется и сохраняется в виде события.
Вместо прямого обновления записей приложение добавляет неизменяемые события, создавая тем самым надёжную и прозрачную историю того, как было достигнуто текущее состояние.
На практике Event Sourcing смещает акцент с «хранения состояния» на «запись изменений».
Как работает Event Sourcing
Когда пользователь взаимодействует с вашим приложением или выполняются системные процессы, каждое изменение состояния записывается как отдельное событие. Эти события обладают следующими характеристиками:
* Неизменяемость: после записи события не могут быть изменены или удалены.
* Хронологичность: события хранятся в точном порядке их возникновения, что упрощает исторический анализ.
Чтобы воссоздать текущее состояние приложения, достаточно воспроизвести сохранённые события последовательно. Такая возможность воспроизведения обеспечивает надёжность и прозрачность приложения.
Почему Event Sourcing важен
Одно из главных преимуществ Event Sourcing — прослеживаемость. Представьте отладку или аудит приложения, когда вы точно знаете, какие действия привели к текущему состоянию. Это значительно упрощает процесс отладки.
Event Sourcing также обеспечивает гибкость. Например, события можно воспроизводить для:
* исправления ошибок путём точного воссоздания прошлых сценариев;
* тестирования и проверки новых функций;
* получения более глубокого понимания поведения пользователей и производительности системы.
Кроме того, поскольку обработка событий может быть асинхронной, Event Sourcing естественным образом поддерживает масштабируемость, позволяя системе эффективнее справляться с растущей нагрузкой.
С какими сложностями можно столкнуться
Event Sourcing может создавать сложность, особенно при восстановлении состояний, что может замедлить производительность, если не управлять этим должным образом.
Также требуется тщательное планирование решения для хранения, поскольку журналы событий постоянно растут и нуждаются в регулярном управлении и оптимизации.
Идеальные случаи использования
Event Sourcing отлично подходит для областей, где требуется строгий аудит и детальные исторические записи:
* финансовые услуги для соблюдения требований и аудита транзакций;
* сложные логистические или медицинские системы, где каждое действие имеет значение;
* среды, требующие детального исторического анализа для принятия решений или отладки.
Вкратце, Event Sourcing может значительно повысить прозрачность, удобство обслуживания и масштабируемость вашего приложения. Однако его преимущества требуют тщательной и продуманной реализации.
Event Sourcing (Порождение событий) — это паттерн архитектуры программного обеспечения, при котором каждое изменение состояния приложения фиксируется и сохраняется в виде события.
Вместо прямого обновления записей приложение добавляет неизменяемые события, создавая тем самым надёжную и прозрачную историю того, как было достигнуто текущее состояние.
На практике Event Sourcing смещает акцент с «хранения состояния» на «запись изменений».
Как работает Event Sourcing
Когда пользователь взаимодействует с вашим приложением или выполняются системные процессы, каждое изменение состояния записывается как отдельное событие. Эти события обладают следующими характеристиками:
* Неизменяемость: после записи события не могут быть изменены или удалены.
* Хронологичность: события хранятся в точном порядке их возникновения, что упрощает исторический анализ.
Чтобы воссоздать текущее состояние приложения, достаточно воспроизвести сохранённые события последовательно. Такая возможность воспроизведения обеспечивает надёжность и прозрачность приложения.
Почему Event Sourcing важен
Одно из главных преимуществ Event Sourcing — прослеживаемость. Представьте отладку или аудит приложения, когда вы точно знаете, какие действия привели к текущему состоянию. Это значительно упрощает процесс отладки.
Event Sourcing также обеспечивает гибкость. Например, события можно воспроизводить для:
* исправления ошибок путём точного воссоздания прошлых сценариев;
* тестирования и проверки новых функций;
* получения более глубокого понимания поведения пользователей и производительности системы.
Кроме того, поскольку обработка событий может быть асинхронной, Event Sourcing естественным образом поддерживает масштабируемость, позволяя системе эффективнее справляться с растущей нагрузкой.
С какими сложностями можно столкнуться
Event Sourcing может создавать сложность, особенно при восстановлении состояний, что может замедлить производительность, если не управлять этим должным образом.
Также требуется тщательное планирование решения для хранения, поскольку журналы событий постоянно растут и нуждаются в регулярном управлении и оптимизации.
Идеальные случаи использования
Event Sourcing отлично подходит для областей, где требуется строгий аудит и детальные исторические записи:
* финансовые услуги для соблюдения требований и аудита транзакций;
* сложные логистические или медицинские системы, где каждое действие имеет значение;
* среды, требующие детального исторического анализа для принятия решений или отладки.
Вкратце, Event Sourcing может значительно повысить прозрачность, удобство обслуживания и масштабируемость вашего приложения. Однако его преимущества требуют тщательной и продуманной реализации.
❤11❤🔥3👍2
Многие компании по всему миру при внедрении ИИ-сервисов столкнулись с необходимостью переделывать живыми сотрудниками работу за ИИ
В итоге таким заказчикам приходится тратить дополнительное время и деньги на исправление недочётов, обращаясь к профильным специалистам (техническим писателям, дизайнерам, маркетологам и программистам), которые занимаются исправлением ошибок ИИ.
В некоторых случаях людям приходится переделывать задачи заново, так как исправить материалы от ИИ не получается. Например, маркетолога Сару Скидд одно агентство попросило переделать документ для клиента, который, ради экономии был написан с помощью чат-бота. «Он должен был заинтриговывать и продавать, но оказался очень банальным», — пояснила Скидд. Она пояснила клиенту, что работу придётся делать с нуля. Это заняло 20 часов при ставке $100 в час.
В диджитал-агентстве Create Designs рассказали, что столкнулись последнее время с ростом заказов с заданием исправить материалы после ИИ. «Если раньше клиенты шли к нам, когда возникали проблемы с сайтами или они хотели добавить новый функционал, то теперь они в первую очередь обращаются к ChatGPT», — рассказал представитель агентства. Например, один клиент компании трое суток провёл с нерабочим сайтом и потом заплатил $500 из-за ошибки в одной строчке кода, который ему написал чат-бот. Если бы такую задачу изначально делал человек, то написать подобных апдейт для сайта вручную заняло бы изначально несколько минут с проверкой.
Причем в некоторых случаях диджитал-агентствам приходится брать плату за то, чтобы выяснить, что пошло не так у заказчика, а сами клиенты даже не признаются, что использовали ИИ. В итоге процесс внедрения исправлений занимает дольше времени. То есть, если бы клиент заказывал работу у специалистов-людей, то получилось бы быстрее и дешевле.
https://futurism.com/companies-fixing-ai-replacement-mistakes
В итоге таким заказчикам приходится тратить дополнительное время и деньги на исправление недочётов, обращаясь к профильным специалистам (техническим писателям, дизайнерам, маркетологам и программистам), которые занимаются исправлением ошибок ИИ.
В некоторых случаях людям приходится переделывать задачи заново, так как исправить материалы от ИИ не получается. Например, маркетолога Сару Скидд одно агентство попросило переделать документ для клиента, который, ради экономии был написан с помощью чат-бота. «Он должен был заинтриговывать и продавать, но оказался очень банальным», — пояснила Скидд. Она пояснила клиенту, что работу придётся делать с нуля. Это заняло 20 часов при ставке $100 в час.
В диджитал-агентстве Create Designs рассказали, что столкнулись последнее время с ростом заказов с заданием исправить материалы после ИИ. «Если раньше клиенты шли к нам, когда возникали проблемы с сайтами или они хотели добавить новый функционал, то теперь они в первую очередь обращаются к ChatGPT», — рассказал представитель агентства. Например, один клиент компании трое суток провёл с нерабочим сайтом и потом заплатил $500 из-за ошибки в одной строчке кода, который ему написал чат-бот. Если бы такую задачу изначально делал человек, то написать подобных апдейт для сайта вручную заняло бы изначально несколько минут с проверкой.
Причем в некоторых случаях диджитал-агентствам приходится брать плату за то, чтобы выяснить, что пошло не так у заказчика, а сами клиенты даже не признаются, что использовали ИИ. В итоге процесс внедрения исправлений занимает дольше времени. То есть, если бы клиент заказывал работу у специалистов-людей, то получилось бы быстрее и дешевле.
https://futurism.com/companies-fixing-ai-replacement-mistakes
Futurism
Companies That Tried to Save Money With AI Are Now Spending a Fortune Hiring People to Fix Its Mistakes
Companies that rushed to replace human labor with AI are now shelling out to have IRL workers to fix the technology's screwups.
😁35👍6❤2
C# возглавил рейтинг самых обсуждаемых языков программирования
Аналитики компании Sidorin Lab изучили, какие ИТ-профессии и цифровые навыки чаще всего обсуждали в российских медиа и соцсетях. В фокусе исследования — объем упоминаний, тональность сообщений, вовлеченность аудитории, а также социально-демографический профиль участников дискуссий. Анализ охватил 1,9 млн сообщений с общей аудиторией более 10 млрд человек и показал, какие компетенции и технологии формируют сегодняшнюю повестку в ИТ. Об этом CNews сообщили представители Sidorin Lab.
Среди ключевых результатов исследования — лидерство языка C# по упоминаниям в контексте ИТ-навыков (1,3 млн сообщений). Востребованность C# связана с его активным использованием в энтерпрайз-разработке и геймдеве. Интересно, что лишь 10,9% обсуждений носят позитивный оттенок, что может свидетельствовать о сложности самого языка, высоких требованиях к квалификации специалистов или трудности задач.
В топ-5 языков по обсуждаемости также вошли C++ (78 тыс. сообщений), Python (70 тыс.), Java (49 тыс.), SQL (36 тыс.) и Go (34 тыс.). Среди них Python и Java получили минимальный уровень негатива — 3,5% и 3,6% соответственно, что подтверждает их стабильную востребованность и положительный отклик у сообщества.
https://www.cnews.ru/news/line/2025-07-14_c_vozglavil_rejting_samyh
Аналитики компании Sidorin Lab изучили, какие ИТ-профессии и цифровые навыки чаще всего обсуждали в российских медиа и соцсетях. В фокусе исследования — объем упоминаний, тональность сообщений, вовлеченность аудитории, а также социально-демографический профиль участников дискуссий. Анализ охватил 1,9 млн сообщений с общей аудиторией более 10 млрд человек и показал, какие компетенции и технологии формируют сегодняшнюю повестку в ИТ. Об этом CNews сообщили представители Sidorin Lab.
Среди ключевых результатов исследования — лидерство языка C# по упоминаниям в контексте ИТ-навыков (1,3 млн сообщений). Востребованность C# связана с его активным использованием в энтерпрайз-разработке и геймдеве. Интересно, что лишь 10,9% обсуждений носят позитивный оттенок, что может свидетельствовать о сложности самого языка, высоких требованиях к квалификации специалистов или трудности задач.
В топ-5 языков по обсуждаемости также вошли C++ (78 тыс. сообщений), Python (70 тыс.), Java (49 тыс.), SQL (36 тыс.) и Go (34 тыс.). Среди них Python и Java получили минимальный уровень негатива — 3,5% и 3,6% соответственно, что подтверждает их стабильную востребованность и положительный отклик у сообщества.
https://www.cnews.ru/news/line/2025-07-14_c_vozglavil_rejting_samyh
CNews.ru
C# возглавил рейтинг самых обсуждаемых языков программирования - CNews
Аналитики Sidorin Lab изучили, какие ИТ-профессии и цифровые навыки чаще всего обсуждали в российских медиа и соцсетях....
❤30👍6🥱5🥰2😐2🤡1
В руководство по языку Си добавлена статья про X-макросы
https://metanit.com/c/tutorial/12.6.php
#c_ansi
https://metanit.com/c/tutorial/12.6.php
#c_ansi
❤9👍5🔥3🤯2
Генеральный директор Nvidia Дженсен Хуанг выразил мнение в интервью CNN, что страхи относительно масштабных увольнений вследствие распространения технологий искусственного интеллекта сильно преувеличены. По его убеждению, ИИ не является причиной сокращения рабочих мест, а скорее трансформирует характер труда, создавая совершенно новые формы деятельности. Он подчеркивает, что, хотя некоторые работники могут утратить свои позиции из-за активного внедрения ИИ, большинство сотрудников получит доступ к другим перспективным возможностям. Это касается и самой работы самого Хуна, чья деятельность тоже претерпела изменения благодаря ИИ.
Более того, Хуанг убежден, что риск увольнения работников возрастает не столько из-за влияния ИИ, сколько из-за нежелания самих организаций внедрять инновационные технологии, включая искусственный интеллект. Вместо страха перед новыми технологиями, он призывает воспринимать ИИ как мощный инструмент, позволяющий сократить разрыв между человеком и возможностями технологического прогресса.
https://edition.cnn.com/2025/07/11/business/nvidia-jensen-huang-ai-job-loss
Более того, Хуанг убежден, что риск увольнения работников возрастает не столько из-за влияния ИИ, сколько из-за нежелания самих организаций внедрять инновационные технологии, включая искусственный интеллект. Вместо страха перед новыми технологиями, он призывает воспринимать ИИ как мощный инструмент, позволяющий сократить разрыв между человеком и возможностями технологического прогресса.
https://edition.cnn.com/2025/07/11/business/nvidia-jensen-huang-ai-job-loss
CNN
Nvidia’s Jensen Huang says AI could lead to job losses ‘if the world runs out of ideas’
The chief executive of the world’s leading chipmaker warned that while artificial intelligence will significantly boost workplace productivity, it could lead to job loss if industries lack innovation.
💩19🤡9😁8👍4🥴2👎1
Госдума рассмотрит штрафы за поиск экстремистского контента и рекламу VPN
На рассмотрение в Госдуму внесли поправки в КоАП, предполагающие штрафы «за умышленный поиск» в интернете экстремистских материалов.
Законопроект предполагает создание новой статьи административного кодекса под номером 13.53. Причем в ее названии заложено, что получение доступа «к заведомо экстремистским материалам» может осуществляться, в том числе, «с использованием программно-аппаратных средств доступа к информационным ресурсам, информационно-телекоммуникационным сетям, доступ к которым ограничен». Под последнее определение в частности попадают сервисы VPN.
Штраф, предусмотренный за такое правонарушение может составить от 3 до 5 тыс. руб.
Кроме того, данный законопроект вводит штрафы за рекламу «программных средств», напоминающих своим функционалом VPN. От 50 до 80 тыс. руб. — для граждан, от 80 до 100 тыс. руб. — для должностных лиц и от 200 до 500 тыс. руб. — для юрлиц.
Госдума рассмотрит введение штрафов до 500 тысяч рублей за рекламу VPN-сервисов
https://www.kommersant.ru/doc/7890064
То есть если с помощью VPN вы искали запрещенные законодательством материалы, вы уже нарушаете закон.
На рассмотрение в Госдуму внесли поправки в КоАП, предполагающие штрафы «за умышленный поиск» в интернете экстремистских материалов.
Законопроект предполагает создание новой статьи административного кодекса под номером 13.53. Причем в ее названии заложено, что получение доступа «к заведомо экстремистским материалам» может осуществляться, в том числе, «с использованием программно-аппаратных средств доступа к информационным ресурсам, информационно-телекоммуникационным сетям, доступ к которым ограничен». Под последнее определение в частности попадают сервисы VPN.
Штраф, предусмотренный за такое правонарушение может составить от 3 до 5 тыс. руб.
Кроме того, данный законопроект вводит штрафы за рекламу «программных средств», напоминающих своим функционалом VPN. От 50 до 80 тыс. руб. — для граждан, от 80 до 100 тыс. руб. — для должностных лиц и от 200 до 500 тыс. руб. — для юрлиц.
Госдума рассмотрит введение штрафов до 500 тысяч рублей за рекламу VPN-сервисов
https://www.kommersant.ru/doc/7890064
То есть если с помощью VPN вы искали запрещенные законодательством материалы, вы уже нарушаете закон.
Коммерсантъ
Госдума рассмотрит штрафы за поиск экстремистского контента и рекламу VPN
Подробнее на сайте
🖕55👎9🤡8😁7😭3💩2
Как работает API Gateway (API Шлюз)
По мере роста приложения увеличивается и количество API. Без правильных инструментов и инфраструктуры управление этими API может быстро превратиться в сложную задачу. Именно здесь в игру вступает API Gateway.
Этот API располагается между клиентами (например, браузерами, мобильными приложениями) и внутренними службами, обеспечивая единую точку входа, которая управляет, оптимизирует и защищает вызовы API в вашей системе.
Основные функции API Gateway:
1. Аутентификация и авторизация. Обеспечивает доступ к ресурсам только для авторизованных пользователей через JWT, OAuth или API-ключи.
2. Ограничение частоты запросов. Предотвращает злоупотребления и защищает внутренние службы от DDoS-атак и перегрузок путём ограничения количества запросов на пользователя, IP-адрес или API-ключ.
3. Балансировка нагрузки. Распределяет входящие запросы между несколькими экземплярами служб, предотвращая узкие места и улучшая время отклика.
4. Кэширование. Сохраняет часто запрашиваемые ответы, чтобы снизить нагрузку на внутренние службы и ускорить вызовы API.
5. Преобразование запросов. Модифицирует запросы и ответы «на лету» (например, преобразует XML в JSON, изменяет заголовки).
6. Обнаружение служб. Динамически направляет запросы к доступным экземплярам по мере масштабирования микросервисов.
7. Предохранитель (Circuit Breaking). Предотвращает каскадные сбои, возвращая стандартные ответы при выходе служб из строя.
8. Логирование и мониторинг. Обеспечивает видимость производительности API, ошибок и задержек в режиме реального времени для отладки.
По мере роста приложения увеличивается и количество API. Без правильных инструментов и инфраструктуры управление этими API может быстро превратиться в сложную задачу. Именно здесь в игру вступает API Gateway.
Этот API располагается между клиентами (например, браузерами, мобильными приложениями) и внутренними службами, обеспечивая единую точку входа, которая управляет, оптимизирует и защищает вызовы API в вашей системе.
Основные функции API Gateway:
1. Аутентификация и авторизация. Обеспечивает доступ к ресурсам только для авторизованных пользователей через JWT, OAuth или API-ключи.
2. Ограничение частоты запросов. Предотвращает злоупотребления и защищает внутренние службы от DDoS-атак и перегрузок путём ограничения количества запросов на пользователя, IP-адрес или API-ключ.
3. Балансировка нагрузки. Распределяет входящие запросы между несколькими экземплярами служб, предотвращая узкие места и улучшая время отклика.
4. Кэширование. Сохраняет часто запрашиваемые ответы, чтобы снизить нагрузку на внутренние службы и ускорить вызовы API.
5. Преобразование запросов. Модифицирует запросы и ответы «на лету» (например, преобразует XML в JSON, изменяет заголовки).
6. Обнаружение служб. Динамически направляет запросы к доступным экземплярам по мере масштабирования микросервисов.
7. Предохранитель (Circuit Breaking). Предотвращает каскадные сбои, возвращая стандартные ответы при выходе служб из строя.
8. Логирование и мониторинг. Обеспечивает видимость производительности API, ошибок и задержек в режиме реального времени для отладки.
❤9🔥1👏1
4 способа обмена значений переменных на примере языка Python #python
❤14🤯7👏1🤮1
Microsoft уволит 200 сотрудников игровой студии King и заменит их инструментами искусственного интеллекта. Над ними трудились эти же самые разработчики, то есть Microsoft поставит вместо них их же детище.
Корпорация Microsoft собирается уволить около 200 сотрудников игровой студии King, создавшей очень популярную мобильную игру Candy Crush. Это происходит в рамках грандиозного сокращения игрового подразделения Microsoft, которое продолжается несколько месяцев и затрагивает тысячи сотрудников – только с начала июля 2025 г. работы лишились около 4000 человек.
Однако случай с King особенный с точки зрения морали и этики: Microsoft намерена заменить работников этой студии искусственным интеллектом. С одной стороны, в этом нет ничего примечательного – нейросети заменяют людей разных профессий по всему миру. С другой стороны, сотрудников King Microsoft решила променять на искусственный интеллект, который они же и создавали в течение длительного времени.
https://www.pcgamer.com/gaming-industry/microsofts-200-laid-off-king-devs-are-reportedly-being-replaced-by-ai-they-helped-build-while-its-absolute-s-show-hr-department-looks-away-and-whistles/
Корпорация Microsoft собирается уволить около 200 сотрудников игровой студии King, создавшей очень популярную мобильную игру Candy Crush. Это происходит в рамках грандиозного сокращения игрового подразделения Microsoft, которое продолжается несколько месяцев и затрагивает тысячи сотрудников – только с начала июля 2025 г. работы лишились около 4000 человек.
Однако случай с King особенный с точки зрения морали и этики: Microsoft намерена заменить работников этой студии искусственным интеллектом. С одной стороны, в этом нет ничего примечательного – нейросети заменяют людей разных профессий по всему миру. С другой стороны, сотрудников King Microsoft решила променять на искусственный интеллект, который они же и создавали в течение длительного времени.
https://www.pcgamer.com/gaming-industry/microsofts-200-laid-off-king-devs-are-reportedly-being-replaced-by-ai-they-helped-build-while-its-absolute-s-show-hr-department-looks-away-and-whistles/
PC Gamer
Microsoft's 200 laid-off King devs are reportedly being replaced by AI they helped build, while its 'absolute 's***show' HR department…
Morale is, predictably, "in the gutter."
🤡49😁14🤮10👀4👎3🤷♂2❤1🤔1
Структура памяти процесса в Linux (описание к рисунку из предыдущего поста)
Когда вы запускаете программу в Linux, операционная система создаёт определённую структуру для её памяти. Такая настройка помогает эффективно управлять использованием оперативной памяти процессом.
В нижней части располагается текстовый сегмент, который содержит исполняемый код. Над ним находится сегмент данных для инициализированных глобальных переменных.
Далее следует сегмент BSS (Block Started by Symbol), куда помещаются неинициализированные глобальные переменные, и система обнуляет их при запуске.
Динамическая память (heap) начинается сразу после BSS и растёт вверх по мере того, как программа динамически выделяет больше памяти с помощью таких функций, как malloc.
Выше располагается стек, который начинается в верхней части пользовательского пространства и растёт вниз. Он отвечает за локальные переменные, вызовы функций и адреса возврата. Между heap и стеком обычно есть промежуток, чтобы предотвратить их столкновение, если один из них слишком сильно разрастается.
В 32-разрядных системах общее адресное пространство составляет 4 ГБ, причём верхние 1 ГБ часто резервируются для ядра. Однако в 64-разрядных системах пространство огромно — около 128 ТБ для пользовательских процессов, поэтому структура может немного различаться в зависимости от архитектуры.
Отображения ядра располагаются в самом верху и отвечают за системные вызовы и взаимодействие с оборудованием. Общие библиотеки загружаются в память по мере необходимости, часто отображаясь между heap и стеком.
Проверить карту памяти процесса можно с помощью таких инструментов, как pmap, или просмотрев файл /proc/pid/maps. Например, если запустить простую программу на C и изучить её карту, можно чётко увидеть эти сегменты, причём адреса начинаются с низких значений для текстового сегмента и увеличиваются вверх.
Иногда управление памятью включает такие элементы, как mmap для отображения файлов или анонимные области. Они могут появляться в разных местах, что обеспечивает гибкость. Функции безопасности, такие как рандомизация размещения адресного пространства, перемешивают элементы, чтобы усложнить эксплуатацию уязвимостей.
Когда вы запускаете программу в Linux, операционная система создаёт определённую структуру для её памяти. Такая настройка помогает эффективно управлять использованием оперативной памяти процессом.
В нижней части располагается текстовый сегмент, который содержит исполняемый код. Над ним находится сегмент данных для инициализированных глобальных переменных.
Далее следует сегмент BSS (Block Started by Symbol), куда помещаются неинициализированные глобальные переменные, и система обнуляет их при запуске.
Динамическая память (heap) начинается сразу после BSS и растёт вверх по мере того, как программа динамически выделяет больше памяти с помощью таких функций, как malloc.
Выше располагается стек, который начинается в верхней части пользовательского пространства и растёт вниз. Он отвечает за локальные переменные, вызовы функций и адреса возврата. Между heap и стеком обычно есть промежуток, чтобы предотвратить их столкновение, если один из них слишком сильно разрастается.
В 32-разрядных системах общее адресное пространство составляет 4 ГБ, причём верхние 1 ГБ часто резервируются для ядра. Однако в 64-разрядных системах пространство огромно — около 128 ТБ для пользовательских процессов, поэтому структура может немного различаться в зависимости от архитектуры.
Отображения ядра располагаются в самом верху и отвечают за системные вызовы и взаимодействие с оборудованием. Общие библиотеки загружаются в память по мере необходимости, часто отображаясь между heap и стеком.
Проверить карту памяти процесса можно с помощью таких инструментов, как pmap, или просмотрев файл /proc/pid/maps. Например, если запустить простую программу на C и изучить её карту, можно чётко увидеть эти сегменты, причём адреса начинаются с низких значений для текстового сегмента и увеличиваются вверх.
Иногда управление памятью включает такие элементы, как mmap для отображения файлов или анонимные области. Они могут появляться в разных местах, что обеспечивает гибкость. Функции безопасности, такие как рандомизация размещения адресного пространства, перемешивают элементы, чтобы усложнить эксплуатацию уязвимостей.
👍13❤2🔥2
С 1 ноября 2025 года все новые приложения Android и обновления существующих приложений, использующих нативный код C/C++ и ориентированных на устройства с Android 15 и выше, должны поддерживать 16 КБ страницы памяти для публикации в Google Play. Это требование направлено на обеспечение максимальной производительности приложений на современных устройствах Android. Приложения, написанные исключительно на Kotlin или Java, уже совместимы, но для приложений с нативным кодом необходимы действия.
Преимущества перехода на 16 КБ страницы памяти:
- Увеличение общей производительности на 5–10%.
- Ускорение запуска приложений в среднем на 3,16%, в некоторых случаях до 30%.
- Снижение энергопотребления на 4,56%.
- Ускорение запуска камеры на 4,48–6,60%.
- Ускорение загрузки системы примерно на 0,8 секунды.
Необходимые шаги для разработчиков:
1. Проверка нативного кода: Если приложение использует C/C++ код или зависит от SDK с нативным кодом, его нужно перекомпилировать для совместимости с 16 КБ. APK Analyzer в Android Studio помогает выявить наличие нативных библиотек (.so файлы) и проверить их совместимость.
2. Обновление инструментов: Используйте Android Gradle Plugin (AGP) версии 8.5.1 или выше и Android NDK r28 или выше, которые автоматически поддерживают 16 КБ выравнивание.
3. Удаление жестко закодированных предположений: Исключите в коде зависимости от размера страницы 4 КБ (например, 4096), используя функции
4. Тестирование: Android Studio предоставляет эмулятор с поддержкой 16 КБ страниц для arm64 и x86_64. На устройствах Pixel 8 и новее (с Android 15 QPR1) доступна опция переключения между 4 КБ и 16 КБ для тестирования. Проверяйте размер страницы с помощью команды
Инструменты Android Studio для упрощения перехода:
- APK Analyzer: Определяет наличие нативных библиотек и их совместимость с 16 КБ.
- Lint: Выделяет библиотеки, не соответствующие 16 КБ выравниванию.
- Эмулятор: Позволяет тестировать приложения в среде с 16 КБ страницами.
Рекомендации:
- Проверьте зависимости на совместимость с 16 КБ, при необходимости обратитесь к разработчикам SDK.
- Тестируйте приложения на устройствах и эмуляторах с 16 КБ страницами, чтобы избежать проблем с производительностью.
- Обновите код и инструменты заранее, чтобы соответствовать требованиям Google Play и обеспечить лучший пользовательский опыт.
Переход на 16 КБ страницы памяти улучшит производительность и подготовит приложения к будущим инновациям Android. Разработчикам рекомендуется начать подготовку уже сейчас, используя инструменты Android Studio и предоставленные ресурсы
https://android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html
Преимущества перехода на 16 КБ страницы памяти:
- Увеличение общей производительности на 5–10%.
- Ускорение запуска приложений в среднем на 3,16%, в некоторых случаях до 30%.
- Снижение энергопотребления на 4,56%.
- Ускорение запуска камеры на 4,48–6,60%.
- Ускорение загрузки системы примерно на 0,8 секунды.
Необходимые шаги для разработчиков:
1. Проверка нативного кода: Если приложение использует C/C++ код или зависит от SDK с нативным кодом, его нужно перекомпилировать для совместимости с 16 КБ. APK Analyzer в Android Studio помогает выявить наличие нативных библиотек (.so файлы) и проверить их совместимость.
2. Обновление инструментов: Используйте Android Gradle Plugin (AGP) версии 8.5.1 или выше и Android NDK r28 или выше, которые автоматически поддерживают 16 КБ выравнивание.
3. Удаление жестко закодированных предположений: Исключите в коде зависимости от размера страницы 4 КБ (например, 4096), используя функции
getpagesize() или sysconf(_SC_PAGESIZE) для получения актуального размера страницы во время выполнения.4. Тестирование: Android Studio предоставляет эмулятор с поддержкой 16 КБ страниц для arm64 и x86_64. На устройствах Pixel 8 и новее (с Android 15 QPR1) доступна опция переключения между 4 КБ и 16 КБ для тестирования. Проверяйте размер страницы с помощью команды
adb shell getconf PAGE_SIZE.Инструменты Android Studio для упрощения перехода:
- APK Analyzer: Определяет наличие нативных библиотек и их совместимость с 16 КБ.
- Lint: Выделяет библиотеки, не соответствующие 16 КБ выравниванию.
- Эмулятор: Позволяет тестировать приложения в среде с 16 КБ страницами.
Рекомендации:
- Проверьте зависимости на совместимость с 16 КБ, при необходимости обратитесь к разработчикам SDK.
- Тестируйте приложения на устройствах и эмуляторах с 16 КБ страницами, чтобы избежать проблем с производительностью.
- Обновите код и инструменты заранее, чтобы соответствовать требованиям Google Play и обеспечить лучший пользовательский опыт.
Переход на 16 КБ страницы памяти улучшит производительность и подготовит приложения к будущим инновациям Android. Разработчикам рекомендуется начать подготовку уже сейчас, используя инструменты Android Studio и предоставленные ресурсы
https://android-developers.googleblog.com/2025/07/transition-to-16-kb-page-sizes-android-apps-games-android-studio.html
Android Developers Blog
Transition to using 16 KB page sizes for Android apps and games using Android Studio
Learn about Android's upcoming move to 16KB page sizes for performance gains, with tools in Android Studio to help app developers transition.
❤13🤔6👍3
Query Optimization Techniques .pdf
148.7 KB
10 рекомендаций по оптимизации SQL-запросов
Любая база данных позволяет извлекать информацию с помощью SQL-команд. Но если вы когда-либо работали с базами данных для получения информации, вы сталкивались с медленными запросами
Иногда причиной может быть нагрузка на систему, но чаще проблема заключается в не очень эффективном написании запроса
Несколько способов оптимизации SQL:
1. Используйте имена столбцов вместо символа * в инструкции SELECT
2. Избегайте использования предложения HAVING в SQL-запросах
3. Исключайте ненужные условия в предложении WHERE
4. Избегайте вложенных подзапросов
5. Рассмотрите возможность использования предиката IN при запросе к индексированному столбцу
6. Используйте EXISTS вместо DELETE при работе с объединениями таблиц, которые включают таблицы с отношениями «один ко многим»
7. Старайтесь использовать UNION ALL вместо UNION
8. Избегайте использования оператора OR в условиях соединения
9. Избегайте функций в правой части оператора
10. Удалите все избыточные вычисления
Любая база данных позволяет извлекать информацию с помощью SQL-команд. Но если вы когда-либо работали с базами данных для получения информации, вы сталкивались с медленными запросами
Иногда причиной может быть нагрузка на систему, но чаще проблема заключается в не очень эффективном написании запроса
Несколько способов оптимизации SQL:
1. Используйте имена столбцов вместо символа * в инструкции SELECT
2. Избегайте использования предложения HAVING в SQL-запросах
3. Исключайте ненужные условия в предложении WHERE
4. Избегайте вложенных подзапросов
5. Рассмотрите возможность использования предиката IN при запросе к индексированному столбцу
6. Используйте EXISTS вместо DELETE при работе с объединениями таблиц, которые включают таблицы с отношениями «один ко многим»
7. Старайтесь использовать UNION ALL вместо UNION
8. Избегайте использования оператора OR в условиях соединения
9. Избегайте функций в правой части оператора
10. Удалите все избыточные вычисления
👍17🤔9❤2
Компания JetBrains изменила политику распространения среды IntelliJ IDEA: начиная с версии 2025.3, IntelliJ IDEA будет распространяться в виде единого дистрибутива, вместо отдельных версий Community и Ultimate.
Теперь будет доступен только один установщик IntelliJ IDEA, который заменит отдельные дистрибутивы для Community Edition и Ultimate Edition. В новой схеме распространения IntelliJ IDEA все функции Ultimate по-прежнему будут требовать подписку для их активации. Однако, как обещает JetBrains, даже без подписки среда разработки останется полностью функциональной, бесплатной как для коммерческого, так и для некоммерческого использования, и будет включать больше возможностей, чем когда-либо предлагала версия Community Edition.
Если вы сейчас используете Community Edition, ваша среда разработки автоматически обновится до единого дистрибутива через стандартный механизм патч-обновлений. Вы получите доступ к дополнительным функциям бесплатно и более целостный пользовательский опыт. Кроме того, вы сможете попробовать функции Ultimate в один клик.
Для пользователей Ultimate изменения минимальны: среда разработки будет называться просто IntelliJ IDEA, без суффикса «Ultimate».
https://blog.jetbrains.com/idea/2025/07/intellij-idea-unified-distribution-plan/
Теперь будет доступен только один установщик IntelliJ IDEA, который заменит отдельные дистрибутивы для Community Edition и Ultimate Edition. В новой схеме распространения IntelliJ IDEA все функции Ultimate по-прежнему будут требовать подписку для их активации. Однако, как обещает JetBrains, даже без подписки среда разработки останется полностью функциональной, бесплатной как для коммерческого, так и для некоммерческого использования, и будет включать больше возможностей, чем когда-либо предлагала версия Community Edition.
Если вы сейчас используете Community Edition, ваша среда разработки автоматически обновится до единого дистрибутива через стандартный механизм патч-обновлений. Вы получите доступ к дополнительным функциям бесплатно и более целостный пользовательский опыт. Кроме того, вы сможете попробовать функции Ultimate в один клик.
Для пользователей Ultimate изменения минимальны: среда разработки будет называться просто IntelliJ IDEA, без суффикса «Ultimate».
https://blog.jetbrains.com/idea/2025/07/intellij-idea-unified-distribution-plan/
The JetBrains Blog
IntelliJ IDEA Moves to the Unified Distribution | The IntelliJ IDEA Blog
We are excited to announce the next step for IntelliJ IDEA: we are moving to a single, unified distribution. And yes, before you ask, our commitment to open source remains as strong as ever. There
🔥27👍6❤3