Фронтенд Гайд
7.96K subscribers
460 photos
266 videos
243 links
Канал для фронтендеров, много полезных лайфхаков, фичей, макетов, тестов!

Все представлено в виде готового кода, бери и юзай в своем проекте.

По всем вопросам: @it_dashka
Реклама: https://telega.in/channels/frontend_dev5/card
Download Telegram
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 для реализации подобных алгоритмов можно воспользоваться классами для работы с атомарными переменными, которые поддерживают указанные атомарные операции.
Какой компонент версии в семантическом версионировании увеличивается, если были внесены обратно несовместимые изменения 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️⃣ Сохранение состояния:
Замыкания позволяют функциям сохранять состояние между вызовами. Это полезно для создания функций с "памятью".

Пример:
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 для генерации палитры цветов

npm install poline

Название "POLINE" связано с сутью генератора — проведением линии в полярных координатах.
Хранилище веб-браузера предоставляет два основных механизма для хранения данных на клиентской стороне: 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.
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.
Javascript вопрос: Какой оператор позволяет выйти из цикла?
Anonymous Quiz
4%
leave
88%
break
3%
broke
2%
left
3%
Посмотреть ответы
Что такое Java Virtual Machine (JVM)? Как она работает?
Спросят с вероятностью 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%
Посмотреть ответы