METANIT.COM – Telegram
METANIT.COM
5.96K subscribers
1.69K photos
82 videos
9 files
1.08K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Сегодня столкнулся на одном сайте. С первой попытке отгадать, на каких картинках находится "undefined", не удалось
😁53🤣9👀3👍1
Базовые моменты написания скриптов на Bash #linux
🔥15❤‍🔥1🤩1
Media is too big
VIEW IN TELEGRAM
Робособачки и deep learning
🥰5🥱2👏1🤯1
Наиболее распростраенные архитектурные паттерны

𝟭. Слоистая урхитектура : Разделяет приложения на логические слои (Presentation, Business, Data) с определенными обязанностями. Способствует разделению ответственности между различными частями приложения и упрощает поддержку и развитие приложения

𝟮. Микросервисы: Разбивает приложения на небольшие независимые сервисы, взаимодействующие через API. Каждый реализует одну бизнес-возможность и может быть развернут независимо от других сервисов, обеспечивая автономность и непрерывную доставку

𝟯. Событийная архитектура: Использует события для асинхронной связи между компонентами. Система не ждет завершения обработки событий, что делает ее идеальной для приложений реального времени, требующих высокой масштабируемости

𝟰. 𝗦𝗽𝗮𝗰𝗲-𝗯𝗮𝘀𝗲𝗱: Использует независимые "пространства" как автономные единицы на нескольких серверах. Устраняет отдельные точки отказа в системах с большим объемом данных и преодолевает узкие места в данных и сетевые задержки

𝟱. Микроядерная архитектура: Предоставляет минимальную базовую функциональность с дополнительными службами в виде отдельных модулей. Разработчики могут изменять компоненты, не влияя на базовую функциональность, что идеально подходит для приложений, требующих настройки.

𝟲. 𝗖𝗤𝗥𝗦 (𝗖𝗼𝗺𝗺𝗮𝗻𝗱-𝗤𝘂𝗲𝗿𝘆 𝗥𝗲𝘀𝗽𝗼𝗻𝘀𝗶𝗯𝗶𝗹𝗶𝘁𝘆 𝗦𝗲𝗴𝗿𝗲𝗴𝗮𝘁𝗶𝗼𝗻): Разделяет операции чтения и записи на отдельные модели. Улучшает производительность и масштабируемость в сложных доменах за счет независимой оптимизации каждого пути.

𝟳. Гексагональная: Изолирует бизнес-логику от внешних задач. Позволяет приложениям управляться различными источниками и разрабатываться независимо от зависимостей времени выполнения
7👍5👏1
(Наглядная иллюстрация к предыдущему посту)
👍14🔥1👏1
Undefined behavior
😁29🔥1👏1🤨1
Кэширование позволяет увеличить производительность приложение. И в данном случае важную роль играет коэффициент попадания в кэш (Cache Hit Ratio).
Прежде всего надо сказать, что попадаение в кэш или Cache Hit означает, что данные найдены в кэше. А промах кэша или Cache Miss означает, что данные в кэше не найдены, и надо для получения данных обращаться к хранилищу данных, например, базе данных. И каждый промах кэша — это небольшое снижение производительности.

Коэффициент попадания в кэш рассчитывается путем деления количества попаданий в кэш на общее количество поисков в кэше (попадания и промахи, общее количество запросов к кэшу) с последующим умножением на 100 для получения процента.

Cache Hit Ratio (%) = (Cache Hits / Total Lookups) x 100
Где
Cache Hit Ratio - Коэффициент попаданий в кэш (%),
Cache Hits - Число попаданий в кэш
Total Lookups - Общее количество поисков

Данный коэффициент измеряет, как часто данные извлекаются из кэша, а не из основного хранилища, что отражает эффективность работы кэша.
Проще говоря, это процент, который показывает нам, какая часть от общего числа запросов удовлетворяется кэшем, а не отправляется в основное хранилище (например, базу данных, API и т. д.).

Для контекста рассмотрим простой пример:
• Ваш сервис получает 10 запросов
• Первый запрос запрашивает кэш, ничего не находит (промах кэша / cache miss), запрашивает базу данных, а затем сохраняет результат в кэше.
• Следующие 9 запросов попадают в кэш и обслуживаются немедленно (попадаение в кэш/cache hit).

В этом сценарии у вас будет 9 попаданий в кэш из 10 общих поисков, что дает коэффициент попадания в кэш 90%.

Хотя универсальной цифры не существует, общее руководство следующее:
• Кэширование запросов к базе данных: 85-95%
• Кэширование ответов API: 95-99%
• Крупномасштабные CDN: 99%+

3 способа увеличить коэффициент попадания в кэш
• Предварительно загружайте наиболее запрашиваемые данные в кэша во время развертывания приложения или холодного запуска, чтобы избежать первоначального сильного роста промахов кэша.
• Настройте значение времени жизни (TTL). Если оно слишком короткое, элементы быстро устаревают, что приводит к пропускам. Если слишком большое, вы рискуете предоставить устаревшие данные.
• Убедитесь, что ключи уникальны, но предсказуемы, чтобы предотвратить пропуски записей в кэше.

Высокий коэффициент попадания в кэш — это хорошо, но не за счет предоставления устаревшей информации, поэтому всегда необходим баланс между эффективностью кэширования и актуальностью данных.
🔥11👍1
(Наглядная иллюстрация к предыдущему посту)
🔥5👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Наглядно как происходит рабочий процесс в Git
❤‍🔥14
Тестирование API вносит значительный вклад в обеспечение надежности, безопасности, функциональности и эффективности приложений. Рассмотрим 6 базовых типов тестирования API:

🔹 Тестирование рабочего процесса (Workflow Testing)
Проверяет, правильно ли работает последовательность вызовов API для завершения определенного процесса.
Часто такие тесты рабочего процесса связаны с какой-либо бизнес-целью, например, с совершением покупки на платформе электронной коммерции.

🔹 Тестирование производительности (Performance Testing)
Оценивает скорость, отзывчивость и стабильность API в различных условиях, чтобы убедиться, что он соответствует контрольным показателям и ожиданиям пользователей
И также оценивает такие ключевые факторы, как скорость обработки, использование памяти, нагрузка на соединение, время отклика и пропускная способность сети, чтобы выявить потенциальные узкие места
Цель состоит в том, чтобы убедиться, что система выдает ожидаемые ответы в разумные сроки, даже при различной нагрузке

🔹 Тестирование безопасности (Security Testing)
Выявляет уязвимости, которые потенциально могут привести к несанкционированному доступу или утечке данных
Включает в себя строгие проверки, чтобы гарантировать, что меры безопасности достаточно надежны, чтобы предотвратить атаки и утечки данных.
Использует тестирование на проникновение (pentest) и нечеткое тестирование для выявления уязвимостей

🔹 Тестирование на основе данных (Data-driven Testing)
Передает различные наборы и типы входных данных в API, чтобы гарантировать его корректную работу в различных сценариях.
Использует таблицы входных данных, сопоставленных с ожидаемыми выходными данными, прогон этих входных данных через систему и проверку соответствия фактических выходные данные ожидаемым результатам

🔹 Тестирование конечной точки (Endpoint Testing)
Проверяет, правильно ли отдельные конечные точки API реагируют на запросы и возвращают ли ожидаемый ответ, данные, коды состояния и сообщения об ошибках

🔹 Тестирование контракта (Contract Testing)
Проверяет, что взаимодействие между поставщиком API и потребителем соответствует предопределенному соглашению/контракту, включая ожидаемые структуры запросов, форматы ответов и типы данных.
Его основная задача — гарантировать, что поставщик API не вносит критических изменений, которые могут повлиять на потребителей, использующих API.
👍4🔥42😁1
(Иллюстрация к предыдущему посту)
🔥3
Media is too big
VIEW IN TELEGRAM
Популярность языков программирования с 1965 по 2022 гг. (Популярность в данном случае определяется как процент разработчиков, которые активно используют или изучают его. Не знаю, откуда они взяли эти данные, может от фонаря, но тем не менее.)
👍92
Шпаргалка по работе с HTML DOM в JavaScript #javanoscript
🔥10
VK готовит к запуску бета‑версию своего супераппа (многофункционального мобильного приложения, которое дает доступ к продуктам и сервисам цифровой экосистемы) на базе цифровой платформы Max с мессенджером, мини‑приложениями, конструктором чат‑ботов и платёжной системой — аналога китайского WeChat.
Суперапп Max будет доступен для iOS и Android, а также в десктопном варианте и через веб‑браузеры. Разработчики проекта планируют добавить различные государственные (например, Госуслуги) и другие сервисы для решения повседневных задач.
В нем будут доступны общение в мессенджере, звонки, голосовые сообщения и отправка файлов до 4 ГБ. Для звонков команда платформы уже установила дополнительные медиасерверы на всей территории страны и внедрила технологии машинного обучения для повышения качества передаваемой речи
На первом этапе в приложении VK Max будет несколько инструментов для создания корпоративных чат‑ботов. Разработчики из сторонних компаний смогут создавать свои мини‑приложения на базе Max Bot API, например, финансовые сервисы, каталоги товаров для магазинов, меню ресторанов и сервисы поддержки внутри супераппа Max.
По информации профильных источников, бета‑версия супераппа Max выйдет весной этого. Команда VK будет некоторое время тестировать функциональность платформы и работать с обратной связью от пользователей. Получить доступ в приложение Max на тестовом этапе смогут владельцы российских и белорусских сим‑карт.

https://www.vedomosti.ru/technology/articles/2025/03/25/1099980-vk-sozdaet-analog-kitaiskogo-messendzhera
👎24🤡92👍2🥴1🤣1