METANIT.COM
6.24K subscribers
1.79K photos
86 videos
10 files
1.26K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Киберпреступники начали продавать заражённую вирусами технику на маркетплейсах
Эксперты предупредили, что киберпреступники могут продавать заражённую вирусами технику на популярных маркетплейсах. Встроенный софт позволяет им незаметно собирать информацию, контролировать действия пользователей и использовать устройства как часть ботнетов.
https://iz.ru/1823322/dmitrii-bulgakov/nanesti-zarazenie-kak-tehnika-s-marketpleisov-stanovitsa-istocnikom-virusov
🤯6👍3👏1
В дочерних компаниях Сбербанка проходят массовые увольнения, затрагивающие ИТ-специалистов. Об этом сообщили сотрудники «Купера», «МегаМаркета», «СберЛогистики» и «Самоката». Все четыре названные компании входят в Ecom.tech – команду, которая разрабатывает решения для в e-commerce.
Как рассказал руководитель одного из отделов в Ecom.tech, в «Купере» уже уволили 20% ИТ-специалистов: из 1000 около 200 человек. «Объясняют это экономией бюджета и указанием сверху», — отметил он.
«Буквально говорили: пиши два списка: первая волна 45%, вторая еще 9%, — рассказал сотрудник Ecom.tech. — И многие руководители писали». По его данным, сотрудники увольняются по соглашению сторон.
По словам другого из ИТ-специалистов Ecom.tech, увольнения начались до наступления 2025 г. В одном только «Мегамаркете» сократить могут до 25% сотрудников, отметил он. При этом официального объявления от Сбербанка нет. «На словах приходят с предложением уйти по соглашению сторон и далее идут торги насчет количества окладов/
https://www.cnews.ru/news/top/2025-01-18_sber_massovo_sokrashchaet_sotrudnikov
🤡16😱2👍1🤯1
Шпаргалка по системному дизайну
👍2🔥1🥰1
Алгоритмы машинного обучения
🔥9👏42🥴1
𝐆𝐈𝐓 𝐖𝐨𝐫𝐤𝐟𝐥𝐨𝐰

[1.] Начальное состояние
◾️ Есть удаленный репозиторий на сервере (с файлом README.md).
◾️ На локальном компьютере пока нет файлов проекта.

[2.] 𝐠𝐢𝐭 𝐜𝐥𝐨𝐧𝐞 <𝐫𝐞𝐩𝐨𝐬𝐢𝐭𝐨𝐫𝐲>
◾️ Копирует весь удаленный репозиторий (README.md) на локальный компьютер
◾️ Создает локальный репозиторий, связанный с удаленным

[3.] Создание нового файла
◾️ Создается новый файл (например, newfile.txt) в локальном рабочем каталоге
◾️ На данный момент этот файл не отслеживается Git

[4.] 𝐠𝐢𝐭 𝐚𝐝𝐝
◾️ Сохраняет все изменения (включая новый файл) в рабочем каталоге
◾️ Подготавливает их к включению в следующий коммит

[5.] 𝐠𝐢𝐭 𝐜𝐨𝐦𝐦𝐢𝐭 - 𝐦 "<𝐦𝐞𝐬𝐬𝐚𝐠𝐞>"
◾️ Делает снепшот сделанных изменений
◾️ Создает новый коммит в локальном репозитории с изменениями и сообщением о коммите

[6.] 𝐠𝐢𝐭 𝐩𝐮𝐬𝐡
◾️ Загружает все локальные коммиты в удаленный репозиторий
◾️ Теперь локальные и удаленные репозитории синхронизированы
👍7
Типы тестирования:

1/ Валидационные тесты: проверяют, что API соответствует функциональным требованиям
▪️ Тестирование контракта
▪️ Валидация схемы
▪️ Тестирование целостности данных

2/ Интеграционные тесты: проверяют правильность взаимодействия между системами и компонентами
🔸 Тесты интеграции компонентов
🔸 Тесты интеграции стороннего ПО

3/ Тесты системы безопасности: выявляют уязвимости и защищают данные
🔹 Тестирование на проникновение
🔹 Тестирование аутентификации
🔹 Тестирование авторизации
🔹 Тесты шифрования данных

4/ Тесты производительности: измеряют скорость, отзывчивость и стабильность при различных нагрузках
▪️ Нагрузочные тесты
▪️ Стресс-тестирование
▪️ Тест пиковых нагрузок
▪️ Тест на выносливость

5/ Тесты стабильности системы: проверяют стабильность работы с течением времени
Тест на выносливость
Тест на отказоустойчивость

6/ Тесты масштабируемости: оценивают способность системы расти по мере роста спроса
🔸 Тесты горизонтального масштабирования
🔸 Тесты вертикального масштабирования
👍1
21 января 2025 года «Ростелеком» заявил о вероятной утечке данных из инфраструктуры подрядчика. Предварительно выяснено, что инцидент не коснулся особо чувствительных персональных данных клиентов «Ростелекома». В компании рекомендуют пользователям сбросить пароли и включить двухфакторную идентификацию.
https://ria.ru/20250121/utechka-1994794738.html
3🤡2🤯1
Обмен значений двух переменных через XOR
🔥14🤯63👍2
Рекомендации по созданию безопасного API
❤‍🔥4👍2🙏2
Оркестрирование и хореография в микросервисах
1👍1🔥1🥰1
Это норм. GCC (да и Clang) по крайней мере в последней версии выполняет беззнаковое сравнение. Тем не менее флаг -Wextra даст предупреждение при компиляции.
Но вообще сравнивать числа с разным signedness не лучшая идея, надо понимать, как обрабатывает такое сравнение конкретный компилятор/интерпертатор
😱12👍2🤔2🗿2
Оператор == в JavaScript
🔥25🤣3😁2😢1
Шпаргалка по базовым моментам API
❤‍🔥6🔥2👏2
This media is not supported in your browser
VIEW IN TELEGRAM
#Linux. Для отображения текущей температуры CPU, GPU, Wi-Fi, NVMe SSD и HDD в реальносм режиме времени можно использовать следующую команду:
watch -d -n 1 sensors

В случае если датчики температуры не найдены (например, ос по умолчанию не поддерживает), то надо установить необходимые пакеты"
sudo apt install lm-sensors
sudo sensors-detect
🔥12👏2👍1
Вывод списка процессов на языке Python #python
👍8👏2🥰1
Типы индексов базы данных

1. Clustered Index (Кластерный индекс)

2. Non-clustered Index (Некластеризованный индекс)

3. Уникальный индекс

4. Фильтрованный индекс

5. Full-Text Index (Полный текстовый индекс)

6. Композитный индекс

7. Covering Index (Индекс покрытия, покрывающий индекс)

8. Индекс с включенными столбцами

9. XML-индекс

10. Partial Index (Частичный индекс)

11. Bitmap Index (Индекс битовых карт)

12. Spatial Index (пространственный индекс )
8🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Алгоритмы балансировки нагрузки

1) Round robin
Последовательно и равномерно распределяет запросы между серверами.

2) Random
Реализует простой способ распределения запросов независимо от нагрузки или возможностей сервера
Это базовый подход и подходит только для несложных сценариев

3) IP-хэш
Использует хеширование на основе IP-адреса клиента для маршрутизации запросов

4) Weighted round robin (round robin с весами серверов)
Улучшенный round robin. Нанправляет запросы в зависимости от возможностей сервера, стремясь лучше использовать ресурсы за счет распределения большего количества запросов на серверы с большей производительностью

5) Наименьшее количество подключений
Направляет запросы на сервер с наименьшим количеством активных подключений, адаптируясь к изменяющимся нагрузкам

6) Наименьшее время отклика
Повышает производительность за счет маршрутизации запросов на сервер с самым наименьшим временем отклика
👍3🔥3🥰1👏1
На 45% вырос спрос на ИТ-специалистов в государственных организациях. Выросли на 50% и предложения по зарплатам. В целом спрос на специалистов, несмотря на сообщения о сокращениях в отрасли, растет, как и предложения по зарплате.

Если в 2023 г. количество вакансий составляло 7,4 тыс., то в 2024 г. их количество выросло до 10,8 тыс.

Растут и зарплаты: госструктуры подняли их для своих ИТ-специалистов на 50%. Если в 2023 г. госорганизации в среднем предлагали ИТ-шникам 79,8 тыс. руб., то в 2024 г. предложения по зарплате увеличились до 119,7 тыс. руб. в среднем.

Количество вакансий в ИТ-сфере за год во всех отраслях выросло на 12%: с 632 тыс. до 708 тыс., подсчитали эксперты HeadHunter. Средняя зарплата также выросла на 13% с 77,3 тыс. руб. до 87,5 тыс.

Больше всего в 2024 г. в денежном выражении подросли предложения по зарплате у специалистов квалификации сеньор с 202 тыс. руб. до 241 тыс. руб. в среднем (на 19% выше, чем в 2023 г.). На 20 тыс. выросли зарплаты у мидл-специалистов: с 144 тыс. до 164,4 тыс. руб. (на 14%) и у джунов предлагаемая зарплата выросла на 11 тыс. с 56,3 тыс. до 67,9 тыс. руб., что на 21% выше, чем в среднем по России в 2023 г.
https://www.cnews.ru/news/top/2025-01-23_goskompanii_nuzhdayutsya_v
😁5👍2🤔2🤡2
Исследователь по ИБ Филипп Катурегли обнаружил ошибку DNS в системе MasterCard, которая оставалась незамеченной в течение многих лет. По информации ресурса Krebs On Security, с июня 2020 года один из DNS‑серверов MasterCard был настроен неверно: вместо akam.net один из хостов был указан как a22-65.akam.ne.
К тому же оказалось, что указанный в настройках домен akam.ne, относящийся к национальной зоне Нигера, вообще не был зарегистрирован. Когда Катурегли зарегистрировал домен (потратив $300), исследователь зафиксировал через DNS-сниффер, что на его сервер ежедневно поступают сотни тысяч DNS‑запросов из разных точек мира. По‑видимому, MasterCard была не единственной компанией, кто указал ошибочный домен, но она была самой крупной в статистике исследователя.
Если бы Катурегли был злоумышленником, то мог бы легко организовать атаку типа man‑in‑the‑middle, перехватывая трафик, предназначенный для mastercard.com.
https://krebsonsecurity.com/2025/01/mastercard-dns-error-went-unnoticed-for-years/
🤯24😁6👍3🙏1👀1
Как правило, общая стратегия при создании приложения заключается в создании модульного монолита. Но по мере роста приложения и возникновения узких мест или необходимости в независимом масштабировании отдельных компонентов приложение можно постепенно разбить на микросервисы. Некоторые полезные паттерны при внедрении архитектуры микросервисов:

[1.] API Gateway (API шлюз)
◾️ Единая точка входа для клиентов
◾️ обработка маршрутизации
◾️ аутентификация
◾️ другие проблемы при взаимодействии между компонентами

[2.] Circuit Breaker Pattern (автоматический выключатель)
◾️ Предотвращает каскадные сбои путем изоляции неисправных сервисов

[3.] Aggregator Pattern (агрегатор)
◾️ Объединяет данные из нескольких сервисов в один ответ.

[4.] Chain of Responsibility (цепочка ответственности)
◾️ Пропускает обработку запросов через последовательность сервисов

[5.] Database per Service (База данных на сервис)
◾️ Каждый сервис имеет свою собственную частную базу данных для слабой связанности

[6.] Saga Pattern
◾️ Управляет распределенными транзакциями между сервисами, используя серию локальных транзакций.

[7.] Sidecar Pattern
◾️ Расширяет функциональность сервиса с помощью отдельного компонента, развернутого параллельно

[8.] Бэкэнды для фронтэндов (Backends for Frontends или BFF)
◾️ Создает специализированные внутренние сервисы для определенных интерфейсов-фронтендов (для мобильного приложения - одни, для десктопа - другой, для веба - третий и т.д.)

[9.] CQRS (Command Query Responsibility Segregation)
◾️ Разделяет операции чтения и записи для улучшения масштабируемости и производительности.

[10.]Event Sourcing
◾️ Фиксирует все изменения состояния приложения как последовательность событий

[11.] Асинхронный обмен сообщениями
◾️ Обеспечивает слабую связь между сервисами с использованием очередей сообщений или брокеров

[12.] Strangler Fig Pattern
◾️ Пошаговая миграция устаревшей системы с постепенной заменой определенных компонентов новыми

[13.] Branch Microservice
◾️ Выполняет различные микросервисы динамически на основе определенных условий или логики.

[14.] Внешняя конфигурация
◾️ Сохраняет параметры конфигурации вне кода приложения

[15.] Централизованное ведение журнала и мониторинг
◾️ Объединяет журналы и метрики всех микросервисов для обеспечения мониторинга

[16.] Service Discovery Pattern (Шаблон обнаружения сервисов)
◾️ Позволяет сервисам динамически обнаруживать друг друга

[17.] Tolerant Reader (Модель толерантного читателя)
◾️ Позволяет клиентам продолжать работу, даже если некоторые сервисы недоступны.

[18.] Anti-Corruption Layer
◾️ Обеспечивает уровень изоляции для защиты приложения от негативного воздействия изменений во внешних системах.

[19.] Декомпозиция
◾️ Стратегии разбиения монолитного приложения на микросервисы:
- Разбить по задачам => Определить отдельные компоненты для отдельных задач (например, обработка заказов, управление запасами).
- Разбить по поддоменам => Дальнейшее разделение возможностей на более мелкие, более специализированные компоненты (например, управление клиентами в рамках заказов)
👏9👍7🔥32