METANIT.COM – Telegram
METANIT.COM
5.9K subscribers
1.68K photos
83 videos
9 files
1.04K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Методы, которые помогают оптимизировать работу API и улучшить его производительность:

1. Пагинация (Pagination):
- Разделение больших наборов данных на страницы для уменьшения нагрузки на сервер.
- Использование порядковых номеров страниц для управления большим количеством результатов.

2. Асинхронное логирование (Async Logging):
- Отправка логов в буфер без блокировки основного потока.
- Периодическая запись логов на диск для повышения пропускной способности и снижения задержки.

3. Кэширование (Caching):
- Хранение часто используемых данных в кэше вместо базы данных.
- Запрос к базе данных только при отсутствии данных в кэше.

4. Сжатие полезной нагрузки (Payload Compression):
- Сжатие данных для уменьшения размера при загрузке и выгрузке.

5. Пул соединений (Connection Pool):
- Поддержание открытого пула соединений для повторного использования, что снижает накладные расходы на открытие и закрытие соединений к базе данных.
👍154🗿3👎1
В скором будущем Google откажется от продвижения Android и Chrome OS по отдельности и объединит эти системы в одну платформу. Об этом официально заявил президент экосистемы Android в Google Самир Самат (Sameer Samat). Хотя слухи об этом были давно, это первое официальное подтверждение от Google

Кроме того, об этом уже свидетельствует сам выход Android 16, в котором компания сделала упор на новые десктопные функции этой ОС, которая на заре своего существования в своем нынешнем виде предназначалась только для смартфонов. В частности, в нее встроили очень много функций для использования ОС на больших экранах с ландшафтным (горизонтальным) расположением. Среди них – полноценный режим рабочего стола, режим оконного отображения рабочего стола, улучшенные функции управления внешними дисплеями и улучшенная адаптивность приложений для работы в десктопном режиме

https://www.techradar.com/phones/android/i-think-you-see-the-future-first-on-android-googles-android-leader-sameer-samat
🤔13🤮5🤝32😁2💩2
Что такое 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
Схематично как работает Event Sourcing (киллюстрация к предыдущему посту)
👍4👎2👨‍💻2👏1
Многие компании по всему миру при внедрении ИИ-сервисов столкнулись с необходимостью переделывать живыми сотрудниками работу за ИИ

В итоге таким заказчикам приходится тратить дополнительное время и деньги на исправление недочётов, обращаясь к профильным специалистам (техническим писателям, дизайнерам, маркетологам и программистам), которые занимаются исправлением ошибок ИИ.

В некоторых случаях людям приходится переделывать задачи заново, так как исправить материалы от ИИ не получается. Например, маркетолога Сару Скидд одно агентство попросило переделать документ для клиента, который, ради экономии был написан с помощью чат-бота. «Он должен был заинтриговывать и продавать, но оказался очень банальным», — пояснила Скидд. Она пояснила клиенту, что работу придётся делать с нуля. Это заняло 20 часов при ставке $100 в час.

В диджитал-агентстве Create Designs рассказали, что столкнулись последнее время с ростом заказов с заданием исправить материалы после ИИ. «Если раньше клиенты шли к нам, когда возникали проблемы с сайтами или они хотели добавить новый функционал, то теперь они в первую очередь обращаются к ChatGPT», — рассказал представитель агентства. Например, один клиент компании трое суток провёл с нерабочим сайтом и потом заплатил $500 из-за ошибки в одной строчке кода, который ему написал чат-бот. Если бы такую задачу изначально делал человек, то написать подобных апдейт для сайта вручную заняло бы изначально несколько минут с проверкой.

Причем в некоторых случаях диджитал-агентствам приходится брать плату за то, чтобы выяснить, что пошло не так у заказчика, а сами клиенты даже не признаются, что использовали ИИ. В итоге процесс внедрения исправлений занимает дольше времени. То есть, если бы клиент заказывал работу у специалистов-людей, то получилось бы быстрее и дешевле.

https://futurism.com/companies-fixing-ai-replacement-mistakes
😁35👍62
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
30👍6🥱5🥰2😐2🤡1
В руководство по языку Си добавлена статья про X-макросы
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
💩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 вы искали запрещенные законодательством материалы, вы уже нарушаете закон.
🖕55👎9🤡8😁7😭3💩2
Как работает API Gateway (API Шлюз)
8🔥1👏1
Как работает 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, ошибок и задержек в режиме реального времени для отладки.
9🔥1👏1
Шпаргалка по событиям в JavaScript #js #javanoscript
5👍4🤯2
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/
🤡49😁14🤮10👀4👎3🤷‍♂21🤔1
Структура памяти процесса в Linux
👍15👎1🥰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 для отображения файлов или анонимные области. Они могут появляться в разных местах, что обеспечивает гибкость. Функции безопасности, такие как рандомизация размещения адресного пространства, перемешивают элементы, чтобы усложнить эксплуатацию уязвимостей.
👍132🔥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), используя функции 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
13🤔6👍3