TGViewer
Channel Public Channel
METANIT.COM

METANIT.COM

@devnull22

Канал о программировании и разработке сайта metanit.com
Subscribers
5.81K
Photos
1.8K
Videos
86
Links
1.3K

Showing posts older than #1786 · Back to latest

Older Posts 14 shown
Post #1785 2.4K
9 распространенных принципов проектирования программного обеспечения:

1. DRY (Don't Repeat Yourself — Не повторяйтесь):
Избегайте дублирования кода. Храните логику в централизованном месте, чтобы упростить поддержку кодовой базы.

2. KISS (Keep It Simple, Stupid — Будь проще, глупыш):
Стремитесь к простоте в ваших решениях. Избегайте излишнего усложнения и добавления ненужных уровней.

3. YAGNI (You Aren't Gonna Need It — Тебе это не понадобится):
Создавайте только то, что необходимо прямо сейчас. Не тратьте время на гипотетические функции, которые могут никогда не использоваться.

4. LOD (Law of Demeter — Закон Деметры):
Взаимодействуйте только с непосредственными соседями. Не создавайте длинные цепочки вызовов.

SOLID-принципы:

5. SRP (Single Responsibility Principle — Принцип единственной ответственности):
Класс должен иметь только одну ответственность. Делайте каждый компонент сфокусированным и целостным.

6. OCP (Open/Closed Principle — Принцип открытости/закрытости):
Код должен быть открытым для расширения, но закрытым для модификации. Добавляйте новые функции, не изменяя существующую логику.

7. LSP (Liskov Substitution Principle — Принцип подстановки Лисков):
Подклассы должны быть взаимозаменяемы с родительскими классами без нарушения функциональности.

8. ISP (Interface Segregation Principle — Принцип разделения интерфейсов):
Создавайте небольшие, специализированные интерфейсы вместо больших и общих.

9. DIP (Dependency Inversion Principle — Принцип инверсии зависимостей):
Высокоуровневые модули не должны зависеть от низкоуровневых. Оба должны зависеть от абстракций.
  • 👍 32
  • 🔥 13
  • ❤ 5
  • 🤡 1
Post #1781 2.08K
Архитектура ИИ-агентов
  • ❤ 9
  • 🤮 5
  • 🤔 4
  • 🤡 4
  • 👍 1
  • 👎 1
  • 🌚 1
  • 🤨 1
Post #1779 2.17K
24 наиболее важных математических формул в Data Science
  • 🤔 27
  • 😨 17
  • 🔥 4
  • 🤡 3
  • 😭 2
  • ❤ 1
Post #1778 2.19K
Упаковка и распаковка данных в пакетах при передаче информации по сети
  • 👍 10
  • 🔥 4
  • 👏 2
  • 🤯 1
  • 💩 1
Post #1776 2.1K
Запись экрана с помощью Python #python
  • 😁 20
  • 👎 8
  • 👍 6
  • 🤮 4
  • 🔥 2
  • ❤ 1
  • 👏 1
Post #1775 1.95K
В руководство по языку Си добавлена статья про атрибуты и расширение attribute
https://metanit.com/c/tutorial/10.5.php
#c_ansi
  • 👍 13
  • ❤ 5
  • 👏 1
Post #1774 1.97K
Вкратце о том, как происходит перемножение матриц в GPU
  • 🤩 11
  • ❤ 4
  • 👍 4
Post #1773 2.33K
Топ-15 базовых компонентов проектирования систем:

1. Балансировщик нагрузки — распределяет входящий трафик между несколькими внутренними серверами, чтобы ни один из них не был перегружен. Повышает доступность, отказоустойчивость и скорость отклика системы.

2. API Gateway — единая точка входа для всех клиентских запросов в архитектуре микросервисов. Отвечает за маршрутизацию, аутентификацию, ограничение частоты запросов и агрегацию запросов.

3. DNS (Domain Name System) — система доменных имён, преобразующая удобочитаемые доменные имена в IP-адреса.

4. Кэш — хранит часто запрашиваемые данные в оперативной памяти. Существенно снижает задержки и нагрузку на базу данных.

5. CDN (Content Delivery Network) — сеть доставки контента, которая распространяет статический контент (изображения, CSS, JS и т. д.) через пограничные серверы, расположенные ближе к пользователям. Снижает задержки и нагрузку на полосу пропускания, особенно в глобальном масштабе.

6. База данных — основное хранилище данных. Может быть SQL или NoSQL в зависимости от потребностей. Поддерживает структурированные запросы, индексацию, транзакции и надёжность хранения.

7. API — определяет, как сервисы взаимодействуют друг с другом, обычно через HTTP или gRPC. Обеспечивает модульное проектирование и чёткое разделение обязанностей.

8. Микросервисы — разбивает монолитное приложение на независимо развёртываемые сервисы. Повышает гибкость, изоляцию сбоев и масштабируемость.

9. Ограничитель частоты запросов — контролирует количество запросов, которые пользователь или сервис может сделать за определённый промежуток времени. Защищает API от злоупотреблений и обеспечивает справедливое использование.

10. Хранилище объектов — хранит большие двоичные объекты (изображения, видео, резервные копии) с высокой доступностью и надёжностью. Примеры: AWS S3, Google Cloud Storage и др.

11. Очередь сообщений — обеспечивает асинхронную коммуникацию между сервисами через очередь (например, Kafka, RabbitMQ). Помогает разделить системы и справляться с пиковыми нагрузками.

12. Шардинг — разбивает большие наборы данных на несколько баз данных или таблиц. Помогает масштабировать хранилище и улучшать производительность запросов.

13. Репликация — копирует данные с одного узла базы данных на другой. Повышает отказоустойчивость и производительность чтения.

14. Согласованное хеширование — метод распределения данных между узлами с минимальными нарушениями при масштабировании. Широко используется в системах кэширования и распределённого хранения.

15. Система мониторинга — отслеживает состояние системы, собирает логи и метрики, отправляет оповещения о сбоях или аномалиях. Критически важна для наблюдения за системой, отладки и обеспечения бесперебойной работы.
  • ❤ 6
  • 👍 3
  • 👏 1
Post #1772 2.06K
Топ-15 базовых компонентов проектирования систем
  • ❤ 11
  • 🥰 1
  • 👏 1
Post #1771 2.52K
Представитель ЦБ РФ предложил передать на аутсорсинг в Индию часть российских IT-проектов из-за дефицита квалифицированных кадров и команд разработчиков на рынке России.
Это предложение сделал заместитель начальника Дальневосточного главного управления ЦБ РФ Денис Давыдов на Финансовом конгрессе Банка России.

«Сейчас много говорят у нас, конечно, о существенной нехватке в моменте кадров различных отраслей, особенно о дефиците инженерно‑технических специалистов в России. А вот, например, в Индии уровень безработицы выпускников в технических вузах в последние годы почти достигает 30%. При этом сложившийся на сегодня дифференциал заработных плат, тем более, если говорить о паритете покупательной способности, подталкивает к мысли о том, что здесь могли бы быть какие‑то эффекты кооперации», — рассказал Давыдов.

https://1prime.ru/20250704/indiya-859179950.html
  • 🤡 78
  • 🤣 16
  • 👎 10
  • 🤮 6
  • 👍 1
  • 👀 1
Post #1766 2.12K
Тем временем согласно статистике hh в июне в ИТ-секторе сохранялся крайне высокий уровень конкуренции соискателей за рабочие места, хотя накал чуть уменьшился

Однако количество вакансий в ИТ уменьшилось на 31% год к году, то есть почти на треть. Стоит отметить, что на протяжении полугода происходило снижение количества вакансий
Тогда как количество резюме, наоборот, в июне увеличилось на 28% год к году

К этому стоит добавить, что предлагаемые зарплаты последние 5 месяцев в ИТ не растут.

https://stats.hh.ru/?countrySalaryDynamicChartProfArea=information_technology&hhIndexProfArea=information_technology
  • 👎 16
  • 🤔 7
  • ✍ 4
  • 💅 3
Post #1765 1.79K
«Ростелеком» работает над созданием онлайн-магазина видеоигр. Площадка будет ориентирована на российские проекты, адаптированные под ОС «Аврора», используемую в планшетах компании.

По данным собеседников, магазин может быть интегрирован в игровую консоль от FPlus, представленную на «ЦИПР 2025». Однако эксперты сомневаются в успехе: «Авроре» не хватает поддержки современных графических движков, а предыдущие попытки «Ростелекома» в этой сфере (например, «Игровой Маркет» 2019 года) не стали массовыми.

В FPlus подтвердили переговоры с разработчиками «Авроры», но участники рынка отмечают, что без широкого ассортимента магазин рискует повторить судьбу других российских платформ, вынужденных продавать ключи от Steam.

https://www.kommersant.ru/doc/7855350
Коммерсантъ Геймерам подбирают витрину «Ростелеком» создает новый магазин видеоигр
  • 🤡 27
  • 🌚 13
  • 👎 6
  • 👍 3
  • 🤩 2
  • 🤮 2
Post #1764 1.82K
Временная и пространственная сложность популярных алгоритмов сортировки:

1. Сортировка выбором
* Время: Лучшее Ω(n²) | Среднее Θ(n²) | Худшее O(n²)
* Память: O(1)

2. Сортировка вставками
* Время: Лучшее Ω(n) | Среднее Θ(n²) | Худшее O(n²)
* Память: O(1)

3. Сортировка пузырьком
* Время: Лучшее Ω(n) | Среднее Θ(n²) | Худшее O(n²)
* Память: O(1)

4. Сортировка Шелла
* Время: Лучшее Ω(n log n) | Среднее Θ(n log² n) | Худшее O(n²)
* Память: O(1)

5. Сортировка слиянием
* Время: Лучшее Ω(n log n) | Среднее Θ(n log n) | Худшее O(n log n)
* Память: O(n)

6. Быстрая сортировка
* Время: Лучшее Ω(n log n) | Среднее Θ(n log n) | Худшее O(n²)
* Память: O(log n)

7. Пирамидальная сортировка
* Время: Лучшее Ω(n log n) | Среднее Θ(n log n) | Худшее O(n log n)
* Память: O(1)

8. Поразрядная сортировка подсчётом
* Время: Лучшее Ω(n+k) | Среднее Θ(n+k) | Худшее O(n+k)
* Память: O(k)

9. Сортировка распределением (корзинная)
* Время: Лучшее Ω(n+k) | Среднее Θ(n+k) | Худшее O(n²)
* Память: O(n)

10. Поразрядная сортировка
* Время: Лучшее Ω(nk) | Среднее Θ(nk) | Худшее O(nk)
* Память: O(n+k)

Примечание: n = количество элементов, k = диапазон элементов
  • 👍 10
  • 🫡 2
Post #1763 1.78K
Временная и пространственная сложность популярных алгоритмов сортировки
  • 🔥 10
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →