This media is not supported in your browser
VIEW IN TELEGRAM
Тетрис на Angular и Akita
Отличная идея для пет-проекта)
Отличная идея для пет-проекта)
🖥 Как создать многопоточную безблокировочную очередь на Java
🟡 Постановка задачи: необходимо реализовать безопасную для работы с потоками (Thread Safe) и безблокировочную очередь на языке Java. Необходимо обойтись без использования блокировок или synchronized, при этом обеспечив корректную работу очереди в многопоточной среде.
🟡 Для решения этой задачи мы можем применить неблокирующие алгоритмы, основанные на атомарных операциях.
В основе таких алгоритмов лежит использование атомарной операции CAS (Compare-and-Swap или Compare-and-Set). В Java для реализации подобных алгоритмов можно воспользоваться классами для работы с атомарными переменными, которые поддерживают указанные атомарные операции.
🟡 Постановка задачи: необходимо реализовать безопасную для работы с потоками (Thread Safe) и безблокировочную очередь на языке Java. Необходимо обойтись без использования блокировок или synchronized, при этом обеспечив корректную работу очереди в многопоточной среде.
🟡 Для решения этой задачи мы можем применить неблокирующие алгоритмы, основанные на атомарных операциях.
В основе таких алгоритмов лежит использование атомарной операции CAS (Compare-and-Swap или Compare-and-Set). В Java для реализации подобных алгоритмов можно воспользоваться классами для работы с атомарными переменными, которые поддерживают указанные атомарные операции.
Какой компонент версии в семантическом версионировании увеличивается, если были внесены обратно несовместимые изменения API?
Anonymous Quiz
38%
Major
16%
Minor
30%
Patch
16%
Build
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Симуляция простейшей жизни на JavaScript
Игра «Жизнь» Конвея на максималках
Игра «Жизнь» Конвея на максималках
This media is not supported in your browser
VIEW IN TELEGRAM
Frantic maze — безумный лабиринт. Реализована с помощью CSS и JavaScript
Какой смысл замыканий, если бы не было функций высшего порядка ?
Спросят с вероятностью 3%
Замыкания (closures) - это мощная концепция, которая позволяет функциям сохранять доступ к лексическому окружению, в котором они были созданы, даже после завершения выполнения. Хотя замыкания часто используются с функциями высшего порядка, они обладают ценностью и самостоятельно, несмотря на наличие функций высшего порядка. Давайте рассмотрим их важность и применение.
Основные сценарии использования замыканий:
1️⃣ Сохранение состояния:
Замыкания позволяют функциям сохранять состояние между вызовами. Это полезно для создания функций с "памятью".
Пример:
2️⃣ Инкапсуляция данных:
Замыкания позволяют скрывать данные и предоставлять ограниченный доступ снаружи функции.
Пример:
Почему замыкания полезны даже без функций высшего порядка:
1️⃣ Лексическое окружение:
Замыкания используют лексическое окружение, позволяя функции обращаться к переменным из своей области видимости даже после завершения создания.
Пример:
2️⃣ Создание частных данных:
Замыкания позволяют создавать частные данные и методы, что важно для модульного и безопасного программирования.
Пример:
Таким образом, замыкания полезны не только в контексте функций высшего порядка, но и по себе. Они позволяют сохранять состояние, инкапсулировать данные и создавать функции с определенными параметрами. Замыкания используют лексическое окружение, что делает их мощным инструментом для структурирования и безопасности кода.
Спросят с вероятностью 3%
Замыкания (closures) - это мощная концепция, которая позволяет функциям сохранять доступ к лексическому окружению, в котором они были созданы, даже после завершения выполнения. Хотя замыкания часто используются с функциями высшего порядка, они обладают ценностью и самостоятельно, несмотря на наличие функций высшего порядка. Давайте рассмотрим их важность и применение.
Основные сценарии использования замыканий:
1️⃣ Сохранение состояния:
Замыкания позволяют функциям сохранять состояние между вызовами. Это полезно для создания функций с "памятью".
Пример:
function createCounter() {
let count = 0;
return function() {
count++;
return count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
console.log(counter()); // 3
2️⃣ Инкапсуляция данных:
Замыкания позволяют скрывать данные и предоставлять ограниченный доступ снаружи функции.
Пример:
function createPrivateCounter() {
let count = 0;
return {
increment: function() {
count++;
},
getValue: function() {
return count;
}
};
}
const privateCounter = createPrivateCounter();
privateCounter.increment();
console.log(privateCounter.getValue()); // 1
console.log(privateCounter.count); // undefined (переменная count недоступна)
Почему замыкания полезны даже без функций высшего порядка:
1️⃣ Лексическое окружение:
Замыкания используют лексическое окружение, позволяя функции обращаться к переменным из своей области видимости даже после завершения создания.
Пример:
function outer() {
let outerVariable = 'I am outside!';
function inner() {
console.log(outerVariable);
}
inner();
}
outer(); // 'I am outside!'
2️⃣ Создание частных данных:
Замыкания позволяют создавать частные данные и методы, что важно для модульного и безопасного программирования.
Пример:
function Person(name) {
let _name = name;
return {
getName: function() {
return _name;
},
setName: function(newName) {
_name = newName;
}
};
}
const person = Person('John');
console.log(person.getName()); // 'John'
person.setName('Doe');
console.log(person.getName()); // 'Doe'
console.log(person._name); // undefined (_name недоступна)
Таким образом, замыкания полезны не только в контексте функций высшего порядка, но и по себе. Они позволяют сохранять состояние, инкапсулировать данные и создавать функции с определенными параметрами. Замыкания используют лексическое окружение, что делает их мощным инструментом для структурирования и безопасности кода.
JavaScript. Функция Math.random() возвращает число в диапазоне...
Anonymous Quiz
26%
От 0 до 100
5%
От -1 до 0
52%
От 0 до 1
10%
От -100 до 100
8%
Посмотреть ответы
This media is not supported in your browser
VIEW IN TELEGRAM
Folded Paper Login Form - Форма входа в систему в виде сложенной бумаги, реализованная на чистом CSS.
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 POLINE — отличная библиотека TypeScript для генерации палитры цветов
—
Название "POLINE" связано с сутью генератора — проведением линии в полярных координатах.
—
npm install poline
Название "POLINE" связано с сутью генератора — проведением линии в полярных координатах.
Хранилище веб-браузера предоставляет два основных механизма для хранения данных на клиентской стороне: localStorage и sessionStorage
👉 localStorage позволяет сохранять данные без ограничения по времени. Данные, сохраненные в localStorage, остаются доступными даже после перезапуска браузера или компьютера. Методы работы с localStorage включают сохранение данных, получение данных, удаление конкретных элементов и очистку всего хранилища.
👉 sessionStorage, в отличие от localStorage, хранит данные только на время сессии. Это означает, что данные будут доступны только в течение одной сессии браузера и будут удалены после закрытия вкладки или окна. Методы работы с sessionStorage аналогичны методам работы с localStorage.
Примеры использования localStorage и sessionStorage включают сохранение настроек пользователя, временное хранение данных во время сеанса работы пользователя на сайте и кэширование информации для улучшения производительности.
👉 localStorage позволяет сохранять данные без ограничения по времени. Данные, сохраненные в localStorage, остаются доступными даже после перезапуска браузера или компьютера. Методы работы с localStorage включают сохранение данных, получение данных, удаление конкретных элементов и очистку всего хранилища.
👉 sessionStorage, в отличие от localStorage, хранит данные только на время сессии. Это означает, что данные будут доступны только в течение одной сессии браузера и будут удалены после закрытия вкладки или окна. Методы работы с sessionStorage аналогичны методам работы с localStorage.
Примеры использования localStorage и sessionStorage включают сохранение настроек пользователя, временное хранение данных во время сеанса работы пользователя на сайте и кэширование информации для улучшения производительности.
This media is not supported in your browser
VIEW IN TELEGRAM
Credit Card Payment Form
Форма оплаты кредитной картой. Реализована с помощью CSS и JavaScript.
Форма оплаты кредитной картой. Реализована с помощью CSS и JavaScript.
This media is not supported in your browser
VIEW IN TELEGRAM
💻Postgres.js — быстрый полнофункциональный клиент PostgreSQL для Node.js, Deno, Bun и CloudFlare
This media is not supported in your browser
VIEW IN TELEGRAM
Crazy Pie Chart
Диаграмма, созданная из svg-картинки и анимированная при помощи библиотеки d3.
Диаграмма, созданная из svg-картинки и анимированная при помощи библиотеки d3.
Javascript вопрос: Какой оператор позволяет выйти из цикла?
Anonymous Quiz
4%
leave
88%
break
3%
broke
2%
left
3%
Посмотреть ответы
Javascript вопрос: Принцип DRY гласит...
Anonymous Quiz
19%
Код должен быть понятным и простым
2%
Необходимо разделение интересов
26%
Одна функция отвечает за одно действие
44%
Не повторяйся
9%
Посмотреть ответы
Что такое Java Virtual Machine (JVM)? Как она работает?
Спросят с вероятностью 8%
👉 Java Virtual Machine (JVM) - это среда выполнения, которая позволяет запускать приложения на Java на любой платформе, где установлена JVM.
👉 JVM берет скомпилированный Java-код (байт-код) и интерпретирует его в машинный код на конкретной платформе. Он выполняет различные задачи, включая загрузку классов, управление памятью, выполнение потоков, оптимизацию кода и многое другое.
Когда Java-приложение запускается на JVM, оно получает доступ к обширному набору библиотек Java, предоставляющих готовые классы и методы для решения различных задач.
Благодаря JVM Java считается одним из самых надежных и масштабируемых языков программирования.
Спросят с вероятностью 8%
👉 Java Virtual Machine (JVM) - это среда выполнения, которая позволяет запускать приложения на Java на любой платформе, где установлена JVM.
👉 JVM берет скомпилированный Java-код (байт-код) и интерпретирует его в машинный код на конкретной платформе. Он выполняет различные задачи, включая загрузку классов, управление памятью, выполнение потоков, оптимизацию кода и многое другое.
Когда Java-приложение запускается на JVM, оно получает доступ к обширному набору библиотек Java, предоставляющих готовые классы и методы для решения различных задач.
Благодаря JVM Java считается одним из самых надежных и масштабируемых языков программирования.
JavaScript. Какой из методов объекта Date вернет время, прошедшее с 1/1/1970, в миллисекундах?
Anonymous Quiz
29%
getDate()
21%
getMilliseconds()
28%
getTime()
18%
Ни один из перечисленных
4%
Посмотреть ответы