METANIT.COM – Telegram
METANIT.COM
5.98K subscribers
1.69K photos
81 videos
9 files
1.08K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Шпаргалка по примисам в JavaScript #javanoscript #js
😁9💊41
Как масштабировать компонент?

Вертикальное и горизонтальное масштабирование

Самый простой способ масштабирования компонента — вертикальное масштабирование.
Стандартная стратегия - увеличение объема оперативной памяти., больший диск или более мощный процессор.
Экономически эффективно в краткосрочной перспективе. Плюс, избегаем усложения, которое есть в распределенных архитектурах
Но в долгосрочной перспективе становится дорогостоящим и не позволяет увеличить отказоустойчивость

Горизонтальное масштабирование компонента происходит путем добавления большего количества машин.

Горизонтальное масштабирование приложений без сохранения состояния
Компонент без сохранения состояния не сохраняет клиентские данные из одного сеанса для использования в следующем сеансе. Это облегчает горизонтальное масштабирование.
Для распределения запросов между несколькими компонентами без сохранения состояния можно использовать балансировщик нагрузки.

Горизонтально масштабируемые компоненты с отслеживанием состояния
Компонент с отслеживанием состояния сохраняет данные из одного сеанса в следующий.
Например, веб-приложение, которое хранит информацию о сеансе. Или база данных/хранилище ключей и значений.
Для масштабирования компонентов с отслеживанием состояния придется использовать такие методы, как репликация, сегментирование и т. д.

👉 НЕкоторые аспекты:
- Вертикальное масштабирование менее сложное, и обычно подходит для большинства приложений.
- На горизонтальное масштабирование обычно переходят, когда вертикальное масштабирование больше не является экономически эффективным.
- Сначала лучше построить уровень приложения без сохранения состояния, иак как его легче масштабировать.
- Для компонентов с сохранением состояния, таких как базы данных, лучше выбирать современные варианты, разработанные для горизонтальной масштабируемости.
Как масштабировать компонент?
👍5
Шпаргалка по async-await в javanoscript #javanoscript #js
8
Зависимости сетевых протоколов
👍63👎1👏1👀1
Microsoft не будет поддерживать в Windows 11 24H2 процессоры Intel 8-го, 9-го и 10-го поколений от OEM производителей
Microsoft представила официальный список поддерживаемых процессоров в Windows 11 24H2. В него вошли процессоры AMD Ryzen 2019 года (Ryzen 2000, Ryzen 3000 и Ryzen 5000) и новее, но НЕ вошли процессоры Intel Core 8-го, 9-го и 10-го поколений от OEM производителей. Официально новая Windows 11 теперь поддерживает только Intel 12-го поколения и новее.
Если же у пользователя уже есть компьютер со старым процессором, то проблем с обновлениями Windows 11 не будет, когда пользователи подпишут отказ от ответственности за любой ущерб, который может произойти после установки на старый компьютер новой операционной системы. Но если производитель выпустит новый ПК со старыми процессорами, включая чипы Intel 8-10-го поколений, то ПК на этой сборке не сможет получить последнюю версию Windows 11.
Microsoft заявил, что Windows 11 будет поддерживать только те процессоры, которые отвечают принципам обеспечения безопасности и надёжности. Тем, кто использует Windows 11 на На ПК с Intel Core 8-го, 9-го и 10-го поколений (причём эти процессоры поддерживают TPM 2.0, который является аппаратной функцией безопасности, необходимой для установки новой ОС), включая Core i9-9900K и Core i9-10900K, рекомендуется перейти на более актуальное оборудование.
https://learn.microsoft.com/en-us/windows-hardware/design/minimum/supported/windows-11-24h2-supported-intel-processors
🤡23😁13🤣7👍1
Обзор стратегий, применяемых в сборщиках мусора
👍10
Исследование сотрудников Microsoft и Университета Карнеги показало, что, чем больше люди полагаются на инструменты генеративного ИИ для выполнения своих задач, тем меньше у них наблюдается навыков критического мышления.
Исследователи опросили 319 работников умственного труда, связанных с обработкой данных или информации. Их попросили подробно рассказать об использовании GenAI на рабочем месте. Так, нужно было уточнить, для каких конкретно задач применяется ИИ, каким образом, а также оценить уверенность в способности инструмента справиться с задачей. Наконец, участников просили уточнить, как они оценивают свои способности по выполнению каждой задачи без участия ИИ.
В ходе исследования выявилась, что, чем больше работник уверен в способности ИИ выполнить задачу, то тем меньше он полагается на критическое мышление и склонен проверять результаты работы инструмента. Чаще всего речь шла о выполнении простых задач.
Ещё один вывод исследования заключается в том, что у пользователей с доступом к генеративным инструментам, как правило, меньше вариантов решений одной задачи по сравнению с теми, у кого нет такого доступа. Исследователи объяснили это тем, что генеративный ИИ ограничен обучающими данными, поэтому выдаёт более однообразные результаты. Работа с таким материалом также может негативно сказываться на навыках критического мышления у работников.
Исследователи резюмировали, что хотя ИИ-инструменты и помогают повысить эффективность работы, но могут препятствовать критическому вовлечению и в долгосрочной перспективе могут также вызвать чрезмерную зависимость и снизить навыки поиска решения проблем.
https://www.microsoft.com/en-us/research/uploads/prod/2025/01/lee_2025_ai_critical_thinking_survey.pdf
👍14😁4🤔3💯2😭2
Заивисимость безопасности пароля от используемых в нем символов
🤡11👍8🍌4🙈2
Сервис ХабрКарьера подвел зарплатные итоги второго полугодия 2024 на основании 66 008 зарплат. Некоторые итоги:

Медианная зарплата IT-специалистов сейчас — 180 000 ₽, это на 19% больше, чем в первом полугодии 2024, когда медиана выросла на 8%.
Зарплаты ощутимо выросли как по городам, так и по специализациям. В регионах IT-специалистам сейчас платят в среднем 150 000 ₽, в Москве средняя зарплата — 221 000 ₽, а в Санкт-Петербурге — 184 000 ₽.
Ощутимее всего рост — в Нижнем Новгороде (+21%), Самаре (+18%), Красноярске (+17%) и Ростове-на-Дону (+15%).
Ощутимее всего выросли зарплаты специалистов по информационной безопасности (+21%) и тестировщиков (+20%).

По специализациям. Наиболее ощутимый рост зарплаты был у системных инженеров — на 39%, до 200 000 ₽. Заметно выросли зарплаты веб-разработчиков (+20%) — до 120 000 ₽ и фронтендеров (+18%) — до 200 000 ₽. Незначительно выросли зарплаты у ERP-программистов и программистов 1С (+2%). Не изменились зарплаты разработчиков баз данных.

Зарплаты в Objective-С продолжают оставаться самыми высокими, но во второй пол. 2024 медиана снизилась на 2% — до 350 000 ₽. 2-е место делят зарплаты в Elixir и Golang — 300 000 ₽. На 3-ем месте зарплаты Kotlin — 296 000 ₽.
На одну позицию выше поднялись зарплаты в Swift за счёт прироста на 7% и Ruby за счёт роста на 16%. Kotlin и Golang также поднялись выше с небольшим приростом в 2%. А вот оклады разработчиков в Scala снизились на 6% и потеряли третье место.

Если смотреть на динамику, то во втором полугодии 2024 года самый ощутимый рост зарплат был у разработчиков в Ruby — на 16%, до 290 000 ₽. У разработчиков Swift зарплаты выросли на 7%, до 295 000 ₽, а у разработчиков С — на 11%, до 200 000 ₽, хотя оклад в этом языке по-прежнему остается одним из самых низких среди представленных.
Незначительный рост зарплат был у разработчиков в Golang, Kotlin и Javanoscript (+2%).
Совсем не изменились зарплаты разработчиков на PHP.
Зарплаты снизились у программистов Scala — на 6%, до 270 000 ₽, Elixir — на 1%, до 300 000 ₽ и Oblective-C — на 2%, до 350 000 ₽.

По компаниям. Иннотех, Райффайзен Банк и VK по-прежнему входят в топ-5 компаний с самыми высокими зарплатами IT-специалистов, а Авито возглавляет рейтинг с медианной зарплатой в 360 000 ₽.
Зарплата в ИТ-Холдинге Т1 снизилась на 7% и спустилась с третьего места на шестое. А в пятерку компаний-лидеров по зарплате вошел Альфа-Банк с ростом на 10%, до 296 000 ₽.

https://habr.com/ru/specials/883242/
👍63🤡2
❤‍🔥12👎3
Наиболее распространенные в Data Science математические определения #math
🤯18👍4🫡4
Вкратце о семантическом версионировании
👍15
7 шаблонов проектирования многопоточности
Многопоточность — это вычислительная модель, которая позволяет одной программе (процессу) выполнять несколько потоков (действий) одновременно. Потоки совместно используют одни и те же ресурсы процесса (пространство памяти, открытые файлы и т. д.).
Хотя многопоточность открывает огромные возможности для повышения производительности и повышения отзывчивости приложений, она также создает такие сложности, как синхронизация, связь и потенциальные условия гонки.
Шаблоны проектирования многопоточности представляют собой многоразовые решения, позволяющие решать такие распространенные проблемы.

[1.] Модель «Производитель-Потребитель» (Producer-Consumer)
◾️ Этот шаблон включает два типа потоков: производители, которые генерируют данные, и потребители, которые обрабатывают эти данные.
◾️ Эти два типа потоков взаимодействуют через общую очередь, которая действует как буфер между ними.

Когда использовать?
◾️ Когда задачи можно разделить на отдельные этапы производства и потребления, и надо отвязать эти действия друг от друга для повышения параллелизма и эффективности.

[2.] Пул потоков (Thread Pool)
◾️ Поддерживает пул рабочих потоков, которые можно повторно использовать для выполнения задач.
◾️ Это позволяет избежать накладных расходов на создание и уничтожение потоков для каждой задачи.

Когда использовать?
◾️ Когда есть большое количество краткосрочных задач и надо управлять количеством потоков для лучшего использования ресурсов и производительности.

[3.] Future и Promise (промисы)
◾️ Представляет результат асинхронной операции.
◾️ Промис — это объек, содержащий конечный результат, а future предоставляет способ доступа к этому результату, когда он станет доступен.

Когда использовать?
◾️ При работе с длительными операциями, которые необходимо выполнять одновременно, не блокируя основной поток.


[4.] Монитор (Monitor Object)
◾️ Предоставляет механизм синхронизации доступа к общим ресурсам.
◾️ Позволяет только одному потоку выполнять критическую секцию кода одновременно, предотвращая возникновение состояний гонки.

Когда использовать?
◾️ Когда вам необходимо защитить общие данные или ресурсы от одновременного доступа и обеспечить безопасность потоков.


[5.] Блокировка чтения-записи (Read-Write Lock)
◾️ Позволяет нескольким потокам одновременно читать данные из общего ресурса, но позволяет записывать данные в него только одному потоку одновременно.

Когда использовать?
◾️ Если у вас есть общий ресурс, где операции чтения выполняются чаще, чем записи, и вы хотите оптимизировать его для одновременного чтения.


[6.] Барьер (Barrier)
◾️ Синхронизирует группу потоков для ожидания в общей точке перед продолжением работы.

Когда использовать?
◾️ Когда у вас есть параллельные задачи, которые необходимо выполнить на определенном этапе, прежде чем перейти к следующему этапу.

[7.] Активный объект (Active Object)
◾️ Разделяет выполнение метода и вызов метода для параллельных систем.
◾️ Он включает в себя объект с собственным потоком управления и планировщик для постановки в очередь и выполнения запросов.

Когда использовать?
◾️ Когда надо инкапсулировать управление потоками и логику планирования в объекте, предоставляя более понятный интерфейс для параллельных операций.
👍11👨‍💻31👏1
Процесс загрузки Linux
🔥9👍5👏1
Исследование состояния Rust 2024: большинство разработчиков Rust беспокоятся о будущем языка, отмечают его недостаточное распространение, сложность и слабую поддержку.

В рамках опроса State of Rust за 2024 год было опрошено около 10000 разработчиков на Rust на тему состояния экосистемы. И как показал опрос, что использование Rust не растет так, как ожидалось, несмотря на его преимущества в плане безопасности и несмотря на рекомендации известных организаций, включая правительство США и компании, включая Microsoft, в основном по соображениям безопасности.

Только 38,2% (из программистов) и 45,5% (из организаций) заявили, что используют Rust более менее на постоянной основе. Хотя эти цифры выросли с 2023 года, они также показывают, что многие респонденты пока не могут в полной мере использовать Rust для работы.

На вопрос о том, что их больше всего беспокоит в будущем Rust, 45,5% указали «недостаточное использование в технологической отрасли», что выше 42,5% в прошлом году, что немного больше 45,2%, которые назвали сложность проблемой. Другие существенные опасения включают в себя слишком слабую поддержку разработчиков и сопровождающих Rust, а также проблемы управления проектом. Только 18,6% заявили, что их «ничего не беспокоит», хотя это небольшое улучшение по сравнению с 17,8% в 2023 году.
Таким образом, сложность языка и недостаточная поддержка сдерживают распространение языка Rust.

Rust подходит для системного программирования, но, судя по опросу, он также популярен для общего использования. Самая большая категория использования — серверные приложения (53,4%), за которыми следуют распределенные системы (25,3%) и приложения облачных вычислений (24,3%).
Разработчики Rust в основном используют Linux (73,7 процента). Далее идут macOS (32,4 процента) и Windows (29,8 процента), хотя 13,3 процента разработчиков на Windows используют WSL (подсистема для Linux).
#rust
https://devclass.com/2025/02/18/state-of-rust-survey-2024-most-rust-developers-worry-about-the-future-of-the-language/
🤔6💊2
Шпаргалка по классам в JavaScript #javanoscript #js
👍6