This media is not supported in your browser
VIEW IN TELEGRAM
Привет 👋
Завтра наступает один из самых теплых и романтических дней в году - День Святого Валентина! В этот день принято дарить своим любимым не только внимание и заботу, но и небольшие знаки внимания. В этом году я предлагаю вам не ограничиваться бумажными открытками. Я подготовил для вас демо валентинки, сделанной с использованием HTML, CSS.
Посмотреть можно тут - JsFiddle(тык)🫰
#javascript #html #css
Завтра наступает один из самых теплых и романтических дней в году - День Святого Валентина! В этот день принято дарить своим любимым не только внимание и заботу, но и небольшие знаки внимания. В этом году я предлагаю вам не ограничиваться бумажными открытками. Я подготовил для вас демо валентинки, сделанной с использованием HTML, CSS.
Посмотреть можно тут - JsFiddle(тык)
#javascript #html #css
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🦄6👍5⚡1
Всем привет! Сегодня речь пойдет об свойстве
overscroll-behavior имеет три возможных значения:
Пример использования:
Этот код предотвратит "отскок" страницы при достижении верхнего или нижнего края в браузерах, поддерживающих это свойство.
Посмотреть и поскроллить можно тут - JsFiddle(тык)
#css
overscroll-behavior. Это свойство позволяет контролировать поведение прокрутки за пределами документа или элемента, то есть когда пользователь достигает края страницы или элемента и продолжает прокручивать. Это особенно актуально в мобильных браузерах, где стандартное поведение может включать эффект "отскока", что не всегда желательно.overscroll-behavior имеет три возможных значения:
auto - стандартное поведение прокрутки, когда прокрутка может передаваться родительскому элементу.contain - предотвращает распространение прокрутки на родительский элемент, но сохраняет эффекты прокрутки.none - полностью предотвращает прокрутку за пределами элемента, включая эффекты.Пример использования:
body {
overscroll-behavior: none;
}
Этот код предотвратит "отскок" страницы при достижении верхнего или нижнего края в браузерах, поддерживающих это свойство.
Посмотреть и поскроллить можно тут - JsFiddle(тык)
#css
👍15👾5🔥3🤔2❤1
Привет! Сегодня мы разберем один из самых популярных и полезных паттернов проектирования в программировани - паттерн "фабрика".
Что такое фабрика?
Фабрика относится к категории порождающих паттернов проектирования. Суть паттерна заключается в том, чтобы делегировать создание объектов, тем самым избавляя код от прямой зависимости.
Как работает фабрика?
Фабрика предлагает создать отдельный компонент, задача которого - инкапсулировать логику создания объектов. Это значит, что вместо того, чтобы вручную создавать каждый объект с помощью оператора new, вы делегируете эту задачу фабрике, которая определит, какой объект создать, исходя из предоставленных ей данных.
Пример
Допустим, у нас есть приложение, где нужно создавать разные типы уведомлений:
Пример реализации в прикрепленном изображении.
Преимущества паттерна:
- Паттерн позволяет легко внести изменения в процесс создания объектов, не затрагивая код, который использует эти объекты.
- Добавление новых типов объектов не требует изменений в клиентском коде, достаточно расширить функциональность фабрики.
- Детали создания объектов скрыты от клиента, что упрощает использование и поддержку кода.
Заключение
Фабрика позволяет сделать код более модульным, гибким и легко масштабируемым. Ее использование особенно оправдано, когда в вашем приложении присутствует необходимость создавать различные объекты, следующие общему интерфейсу, но имеющие различную реализацию. Надеюсь, этот пост поможет вам понять и применить паттерн "Фабрика" в ваших проектах.
#javascript #patterns
Что такое фабрика?
Фабрика относится к категории порождающих паттернов проектирования. Суть паттерна заключается в том, чтобы делегировать создание объектов, тем самым избавляя код от прямой зависимости.
Как работает фабрика?
Фабрика предлагает создать отдельный компонент, задача которого - инкапсулировать логику создания объектов. Это значит, что вместо того, чтобы вручную создавать каждый объект с помощью оператора new, вы делегируете эту задачу фабрике, которая определит, какой объект создать, исходя из предоставленных ей данных.
Пример
Допустим, у нас есть приложение, где нужно создавать разные типы уведомлений:
error, info, и success. Вместо того, чтобы создавать каждый тип уведомления вручную, мы можем использовать фабрику для упрощения этого процесса.Пример реализации в прикрепленном изображении.
Преимущества паттерна:
- Паттерн позволяет легко внести изменения в процесс создания объектов, не затрагивая код, который использует эти объекты.
- Добавление новых типов объектов не требует изменений в клиентском коде, достаточно расширить функциональность фабрики.
- Детали создания объектов скрыты от клиента, что упрощает использование и поддержку кода.
Заключение
Фабрика позволяет сделать код более модульным, гибким и легко масштабируемым. Ее использование особенно оправдано, когда в вашем приложении присутствует необходимость создавать различные объекты, следующие общему интерфейсу, но имеющие различную реализацию. Надеюсь, этот пост поможет вам понять и применить паттерн "Фабрика" в ваших проектах.
#javascript #patterns
👍10🔥5👾3❤2
Привет, фронтендеры! 👋
На этой неделе канал достиг первой тысячи подписчиков🥳 ! Я не могу выразить всей своей радости от того, что каждый из вас нашёл что-то интересное для себя и подписался. Это по-настоящему мотивирует меня продолжать развивать этот канал.
Огромное спасибо за вашу активность! Ваши вопросы, комментарии и реакция делают этот канал живым. Я надеюсь, что будущие посты будут для вас интересными и полезными, а ваша активность будет и дальше мотивировать меня на создание новых постов)
Хочу напомнить, что под любым постом вы можете предложить тему для постов или предложить любые другие улучшения. Ваше мнение и ваши идеи крайне важны для меня, и я всегда открыт к вашим предложениям и идеям!😉
Спасибо вам за поддержку🤗
На этой неделе канал достиг первой тысячи подписчиков
Огромное спасибо за вашу активность! Ваши вопросы, комментарии и реакция делают этот канал живым. Я надеюсь, что будущие посты будут для вас интересными и полезными, а ваша активность будет и дальше мотивировать меня на создание новых постов)
Хочу напомнить, что под любым постом вы можете предложить тему для постов или предложить любые другие улучшения. Ваше мнение и ваши идеи крайне важны для меня, и я всегда открыт к вашим предложениям и идеям!
Спасибо вам за поддержку
Please open Telegram to view this post
VIEW IN TELEGRAM
❤34👍7 5🔥4
С понедельником 💻 ! Сегодня разберем классику собеседований – реализацию последовательности Фибоначчи.
Что такое последовательность Фибоначчи?
Последовательность Фибоначчи – это ряд чисел, где каждое последующее число является суммой двух предыдущих. Начинается с 0 и 1. То есть, первые числа последовательности выглядят так: 0, 1, 1, 2, 3, 5, 8, 13, 21, и так далее.
Задача
Необходимо реализовать функцию
Алгоритм решения:
1. Проверяем, является ли
2. Инициализируем переменные
3. Задаем цикл
4. В каждой итерации цикла вычисляем следующее число как сумму
5. Обновляем
6. Присваиваем только что вычисленное следующее число переменной
7. После завершения цикла возвращаем
Решение
На самом деле, у этой задачи есть разные варианты решения. Если у вас есть свой вариант решения, не стесняйтесь делиться им в комментариях!
#interview #javascript
Что такое последовательность Фибоначчи?
Последовательность Фибоначчи – это ряд чисел, где каждое последующее число является суммой двух предыдущих. Начинается с 0 и 1. То есть, первые числа последовательности выглядят так: 0, 1, 1, 2, 3, 5, 8, 13, 21, и так далее.
Задача
Необходимо реализовать функцию
fibonacci, которая принимает на вход число n и возвращает n-ое число последовательности Фибоначчи.Алгоритм решения:
1. Проверяем, является ли
n меньшим или равным 1. Если да, возвращаем n, так как первые два числа последовательности Фибоначчи — это 0 для n = 0 и 1 для n = 1.2. Инициализируем переменные
prev и cur значениями 0 и 1, соответственно, которые представляют первые два числа последовательности.3. Задаем цикл
for от 2 до n включительно для вычисления каждого следующего числа последовательности Фибоначчи.4. В каждой итерации цикла вычисляем следующее число как сумму
prev и cur.5. Обновляем
prev значением cur.6. Присваиваем только что вычисленное следующее число переменной
cur.7. После завершения цикла возвращаем
cur как n-ное число последовательности Фибоначчи.Решение
function fibonacci(n) {
if (n <= 1) return n;
let prev = 0;
let cur = 1;
for (let i = 2; i <= n; i++) {
const next = prev + cur;
prev = cur;
cur = next;
}
return cur;
}
На самом деле, у этой задачи есть разные варианты решения. Если у вас есть свой вариант решения, не стесняйтесь делиться им в комментариях!
#interview #javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👾3👨💻2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
В веб-разработке важен не только функционал, но и впечатление, которое оставляет сайт. Один из способов улучшить пользовательский опыт - добавить индикатор загрузки. В этом примере мы реализовали лоадер с использованием HTML и CSS, который отображает процесс загрузки с минимальным количеством стилей. Посмотреть код можно здесь - JsFiddle(тык)
#html #css
#html #css
👍9🔥5❤2👾2
Привет! Сегодня поговорим о не таком уж и часто упоминаемом методе -
Что такое Array.from?
Примеры использования
Второй аргумент функции
А вы знали, что есть еще и второй аргумент? Второй аргумент - это функция, которая вызывается для каждого элемента итерируемого объекта, позволяя не только создать массив, но и трансформировать его элементы. Он сокращает необходимость в дополнительных вызовах
Преимущества:
-
- Преобразует данные в массивы для последующего использования всех методов массива, таких как
- Помогает избежать мутаций. Создавая новый массив, мы не изменяем исходный объект.
Это был краткий разбор
#javascript
Array.from. Этот метод позволяет нам создавать новые массивы из различных объектов, которые можно преобразовать в массив.Что такое Array.from?
Array.from - это статический метод класса Array, который создает новый экземпляр массива из массивоподобного или итерируемого объекта. Другими словами, если у вас есть что-то, что выглядит как массив или ведет себя как массив (например, строка или объект NodeList, полученный с помощью методов DOM, таких как document.querySelectorAll), вы можете превратить это "что-то" в настоящий массив.Примеры использования
// Преобразование строки в массив
let str = "Привет!";
let strArray = Array.from(str);
console.log(strArray); // ["П", "р", "и", "в", "е", "т", "!"]
// Использование с объектами NodeList
let elements = document.querySelectorAll('div'); // представим, что у нас на странице есть div'ы
let elementsArray = Array.from(elements);
elementsArray.forEach(element => console.log(element)); // теперь с этим массивом можно работать как с обычным массивом
Второй аргумент функции
А вы знали, что есть еще и второй аргумент? Второй аргумент - это функция, которая вызывается для каждого элемента итерируемого объекта, позволяя не только создать массив, но и трансформировать его элементы. Он сокращает необходимость в дополнительных вызовах
map, делая код более читаемым и элегантным, а так же уменьшает количество проходов по массиву, что потенциально может повысить производительность вашего кода.const array = Array.from({length: 10}, (v, i) => i + 1);
console.log(array); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Преимущества:
-
Array.from работает с любыми итерируемыми объектами, давая нам гибкость в обработке данных.- Преобразует данные в массивы для последующего использования всех методов массива, таких как
map, filter, reduce и т.д.- Помогает избежать мутаций. Создавая новый массив, мы не изменяем исходный объект.
Это был краткий разбор
Array.from. Надеюсь, это поможет вам лучше понять, как и когда использовать этот метод.#javascript
👍17❤4🆒2👏1👨💻1
Всем привет! 👋
Сегодня узнаем как при помощи CSS превратить обычный текст в элегантный макет с колонками, как в газете. Мы разберемся, как использовать свойства
Про свойства
Свойство
Свойство
Посмотреть демо можно тут - JsFiddle(тык)
Заключение
Использование свойств
#css
Сегодня узнаем как при помощи CSS превратить обычный текст в элегантный макет с колонками, как в газете. Мы разберемся, как использовать свойства
columns и column-rule, чтобы организовать содержимое страницы более привлекательно и читабельно.Про свойства
Свойство
columns в CSS позволяет легко разделить текст на несколько колонок, делая чтение на длинных страницах более комфортным. Это свойство является шорткатом для column-width (ширина колонки) и column-count (количество колонок), позволяя задавать их одной строкой..columns {
columns: 2 200px; /* Ширина колонки 200px и количество колонок 2 */
column-gap: 40px; /* Устанавливаем промежуток между колонками */
}
Свойство
column-rule добавляет разделительную линию между колонками, что придает макету дополнительную изысканность и структуру. Оно работает подобно border, но применяется между колонками..columns {
column-rule: 2px solid #333; /* Добавляет разделительную линию между колонками */
}
Посмотреть демо можно тут - JsFiddle(тык)
Заключение
Использование свойств
columns и column-rule в CSS может значительно ускорить процесс создания адаптивных колонок.#css
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤3🔥3👨💻1
Привет 🤝 ! Сегодня мы разберем функцию
Что за функция compose?
Это звучит сложно, но на деле все просто.
Пример реализации
В этом примере мы создали три простые функции:
Зачем использовать?
Использование
Заключение
#javascript
compose. Возможно вам не стоит тащить ее в свой проект, так как чаще всего проще использовать готовое решение из библиотек, но будет полезно знать как она работает.Что за функция compose?
compose - это функция высшего порядка, которая принимает на вход несколько функций и возвращает новую функцию. Эта новая функция, при вызове, запускает цепочку переданных функций так, что результат каждой функции передается как аргумент в следующую. Процесс начинается с крайней правой функции и продвигается к левой.Это звучит сложно, но на деле все просто.
Пример реализации
function compose(...funcs) {
return function(arg) {
return funcs.reduceRight((acc, fn) => fn(acc), arg);
};
}
// Пример использования
const multiplyBy2 = x => x * 2;
const add3 = x => x + 3;
const subtract4 = x => x - 4;
const doMagic = compose(multiplyBy2, add3, subtract4);
console.log(doMagic(5)); // Результат: 8
В этом примере мы создали три простые функции:
multiplyBy2, add3, subtract4. Затем мы использовали compose, чтобы создать новую функцию doMagic, которая применяет эти функции в обратном порядке: сначала вычитает 4, затем добавляет 3, и, наконец, умножает результат на 2.Зачем использовать?
Использование
compose позволяет нам строить сложные операции из простых функций, сохраняя при этом чистоту и читаемость кода. Это не только упрощает отладку и тестирование отдельных частей системы, но и способствует написанию декларативного кода, где мы описываем, что хотим сделать, а не как.Заключение
compose - это не просто функция, это философия построения кода, где композиция и простота лежат в основе решения сложных задач. Попробуйте применить compose в своих проектах и увидите, как это может изменить ваш подход к написанию кода.#javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥5👾2❤1🤯1
Вемс тепирв😄 ! Начнем неделю с разбора не самой сложной, но одной из самых популярных задач. Мы будем работать с анаграммами.
Что такое анаграммы?
Анаграммы - это слова или фразы, полученные путем перестановки букв исходного слова или фразы. Например, "привет" и "тепирв" являются анаграммами.
Задача:
Написать функцию, которая определяет, являются ли две строки анаграммами друг друга.
Алгоритм решения:
1. Сначала обе строки приводятся к нижнему регистру и из них удаляются все символы пробелы. Это делается для того, чтобы избежать различий из-за регистра или пробелов.
2. Для каждой нормализованной строки создается объект, где ключи - это символы строки, а значения - количество их вхождений в строку. Функция
3. Если длины нормализованных строк различаются, то они точно не могут быть анаграммами, и функция возвращает
4. Для каждого символа из первой строки проверяется, совпадает ли количество его вхождений в обеих строках, используя созданные карты подсчета символов. Если для любого символа количество вхождений не совпадает, строки не являются анаграммами, и функция возвращает
5. Если все предыдущие проверки пройдены успешно, строки являются анаграммами, тогда функция возвращает
Решение
Этот пример демонстрирует базовый подход к решению задачи об анаграммах. Мы нормализуем строки, удаляем не нужные символы, сравниваем их длины и подсчитываем количество каждого символа. Если все проверки прошли успешно, строки являются анаграммами.
А у вас есть идеи о том, как можно улучшить или изменить это решение? Или, может быть, у вас есть совершенно другой подход к решению? Делитесь своими мыслями и кодом в комментариях💻
#javascript #interview
Что такое анаграммы?
Анаграммы - это слова или фразы, полученные путем перестановки букв исходного слова или фразы. Например, "привет" и "тепирв" являются анаграммами.
Задача:
Написать функцию, которая определяет, являются ли две строки анаграммами друг друга.
Алгоритм решения:
1. Сначала обе строки приводятся к нижнему регистру и из них удаляются все символы пробелы. Это делается для того, чтобы избежать различий из-за регистра или пробелов.
2. Для каждой нормализованной строки создается объект, где ключи - это символы строки, а значения - количество их вхождений в строку. Функция
buildCharCountMap использует метод reduce для преобразования массива символов строки в объект подсчета символов.3. Если длины нормализованных строк различаются, то они точно не могут быть анаграммами, и функция возвращает
false.4. Для каждого символа из первой строки проверяется, совпадает ли количество его вхождений в обеих строках, используя созданные карты подсчета символов. Если для любого символа количество вхождений не совпадает, строки не являются анаграммами, и функция возвращает
false.5. Если все предыдущие проверки пройдены успешно, строки являются анаграммами, тогда функция возвращает
true.Решение
function isAnagram(str1, str2) {
const normalize = str => str.replace(/\s+/g, "").toLowerCase();
const buildCharCountMap = str => {
return str.split('').reduce((acc, char) => {
acc[char] = acc[char] + 1 || 1;
return acc;
}, {});
};
const normalizedStr1 = normalize(str1);
const normalizedStr2 = normalize(str2);
if (normalizedStr1.length !== normalizedStr2.length) {
return false;
}
const str1CharCount = buildCharCountMap(normalizedStr1);
const str2CharCount = buildCharCountMap(normalizedStr2);
for (let char in str1CharCount) {
if (str1CharCount[char] !== str2CharCount[char]) {
return false;
}
}
return true;
}
console.log(isAnagram("Привет", "тепирв")); // true
console.log(isAnagram("Привет", "Пока")); // false
Этот пример демонстрирует базовый подход к решению задачи об анаграммах. Мы нормализуем строки, удаляем не нужные символы, сравниваем их длины и подсчитываем количество каждого символа. Если все проверки прошли успешно, строки являются анаграммами.
А у вас есть идеи о том, как можно улучшить или изменить это решение? Или, может быть, у вас есть совершенно другой подход к решению? Делитесь своими мыслями и кодом в комментариях
#javascript #interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4🆒3❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Привет! Сегодня мы рассмотрим, как с помощью JavaScript создавать плавные анимации без использования сторонних библиотек. Речь пойдет о методе
Что такое animate()?
Метод
Как работает animate()?
Ключевые кадры - это объекты, которые описывают стили начального, промежуточного и конечного состояния анимации. Каждый ключевой кадр может содержать одно или несколько свойств CSS, которые вы хотите анимировать.
Параметры анимации - это объект, который может содержать длительность анимации (
Пример использования
Допустим, мы хотим анимировать шар, чтобы он отскакивал. Вот как это можно сделать:
В этом примере мы создаем анимацию для элемента с классом
Посмотреть демо можно тут - JsFiddle(тык)
Заключение
Метод
#javascript #webapi
animate() из Web Animations API.Что такое animate()?
Метод
animate() является частью Web Animations API и позволяет добавлять анимации к DOM-элементам напрямую через JavaScript. Этот метод принимает два основных аргумента: массив ключевых кадров (keyframes) и параметры анимации (options).Как работает animate()?
Ключевые кадры - это объекты, которые описывают стили начального, промежуточного и конечного состояния анимации. Каждый ключевой кадр может содержать одно или несколько свойств CSS, которые вы хотите анимировать.
Параметры анимации - это объект, который может содержать длительность анимации (
duration), функцию времени (easing), задержку перед началом (delay), количество повторений (iterations) и многое другое.Пример использования
Допустим, мы хотим анимировать шар, чтобы он отскакивал. Вот как это можно сделать:
const ball = document.querySelector('.ball');
ball.animate([
{ transform: 'translateY(0)', easing: "ease-in" },
{ transform: 'translateY(40vh)', easing: 'cubic-bezier(.21,.57,.71,1)' },
{ transform: 'translateY(0)', easing: 'ease-out' }
], {
duration: 1500,
iterations: Infinity,
});
В этом примере мы создаем анимацию для элемента с классом
.ball, который перемещается по оси Y, создавая эффект подпрыгивания. Посмотреть демо можно тут - JsFiddle(тык)
Заключение
Метод
animate(), предоставляя возможность работать с ключевыми кадрами и настраиваемыми параметрами анимации, без необходимости прибегать к сторонним библиотекам.#javascript #webapi
👍16🔥6❤2👾2⚡1
Привет! Сегодня поговорим о довольно новом, но уже достаточно популярном свойстве CSS -
Что такое accent-color?
Как работает accent-color?
Применение
В этом примере все элементы управления внутри
Посмотреть демо можно тут - JsFiddle(тык)
Заключение
Использование
#css
accent-color. Это свойство позволяет разработчикам задавать цвет акцента для элементов форм и других элементов управления. Использование accent-color обеспечивает единообразие стиля элементов.Что такое accent-color?
accent-color - это свойство CSS, которое позволяет разработчикам устанавливать цвет акцента для элементов формы, таких как флажки (checkbox), переключатели (radio) и ползунки (range). Это свойство применяется к контейнеру элементов управления, автоматически изменяя цвет акцента для всех дочерних элементов управления.Как работает accent-color?
Применение
accent-color очень просто. Вы задаете его для элемента в вашем CSS, и все поддерживаемые элементы управления внутри этого элемента будут использовать указанный цвет акцента. Например:form {
accent-color: dodgerblue;
}
В этом примере все элементы управления внутри
<form> будут использовать dodgerblue в качестве своего цвета акцента.Посмотреть демо можно тут - JsFiddle(тык)
Заключение
Использование
accent-color в вашем CSS - это простой способ улучшить визуальную согласованность. Это свойство дает вам больше контроля над стилизацией элементов формы, позволяя легко адаптировать их под общий стиль вашего интерфейса.#css
👍15🔥7👀2❤1
Привет, программисты! Сегодня разберем паттерн проектирования "Стратегия". Этот паттерн полезен, когда есть несколько способов выполнения задачи и необходимость легко переключаться между этими способами во время выполнения программы.
Основные приемущества паттерна:
- Помогает скрыть детали реализации алгоритмов от их использования, предоставляя общий интерфейс для выполнения.
- Благодаря общему интерфейсу, различные реализации алгоритмов могут быть легко заменены в зависимости от контекста использования.
- Упрощает добавление новых алгоритмов и изменение существующих без влияния на код, который их использует.
Пример
Рассмотрим использование паттерна на примере сортировки массива. Мы хотим иметь возможность выбирать метод сортировки в зависимости от ситуации.
Пример использования можно посмотреть на прикрепленном изображении
Этот пример демонстрирует, как с помощью стратегии можно легко изменить алгоритм сортировки, используемый в приложении. Паттерн позволяет добавлять новые алгоритмы сортировки, не влияя на код, который их использует.
Заключение
Стратегия удобна, когда нужно изменять поведение объекта в зависимости от условий, не вдаваясь в детали реализации алгоритмов. Она делает код более модульным, упрощает тестирование и поддержку, а также способствует более чистой и организованной архитектуре программы.
#patterns #javascript
Основные приемущества паттерна:
- Помогает скрыть детали реализации алгоритмов от их использования, предоставляя общий интерфейс для выполнения.
- Благодаря общему интерфейсу, различные реализации алгоритмов могут быть легко заменены в зависимости от контекста использования.
- Упрощает добавление новых алгоритмов и изменение существующих без влияния на код, который их использует.
Пример
Рассмотрим использование паттерна на примере сортировки массива. Мы хотим иметь возможность выбирать метод сортировки в зависимости от ситуации.
Пример использования можно посмотреть на прикрепленном изображении
Этот пример демонстрирует, как с помощью стратегии можно легко изменить алгоритм сортировки, используемый в приложении. Паттерн позволяет добавлять новые алгоритмы сортировки, не влияя на код, который их использует.
Заключение
Стратегия удобна, когда нужно изменять поведение объекта в зависимости от условий, не вдаваясь в детали реализации алгоритмов. Она делает код более модульным, упрощает тестирование и поддержку, а также способствует более чистой и организованной архитектуре программы.
#patterns #javascript
👍9🔥8❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Простой и интересный пример интерактивной карточки, которая при наведении мыши будет раскрывать дополнительную информацию с анимацией разворачивания.
Посмотреть можно тут - JsFiddle(тык)
#css #html
Посмотреть можно тут - JsFiddle(тык)
#css #html
👍8🔥6❤2🆒2👾1
Привет, дорогие читатели!
Хочу поделиться с вами новостью, которая, станет важным шагом в развитии канала. В скором времени вы начнете замечать появление рекламных публикаций среди контента. Это шаг, к которому я подходил с особой серьезностью, и я хочу обсудить его с вами, чтобы вы понимали мотивы и цели, которые я преследую.
Первое и самое важное - цель введения рекламы не в заработке. Моя основная задача - расширение этого канала и привлечение новых участников, которые разделяют наши интересы. Все это будет за счет дополнительных вложений полученных с рекламы.
Второе - я понимаю, как важно сохранить ваше доверие и комфорт. Мой приоритет - качество и полезность, поэтому рекламные посты будут соответствовать тематике программирования.
Надеюсь на ваше понимание🙏
Хочу поделиться с вами новостью, которая, станет важным шагом в развитии канала. В скором времени вы начнете замечать появление рекламных публикаций среди контента. Это шаг, к которому я подходил с особой серьезностью, и я хочу обсудить его с вами, чтобы вы понимали мотивы и цели, которые я преследую.
Первое и самое важное - цель введения рекламы не в заработке. Моя основная задача - расширение этого канала и привлечение новых участников, которые разделяют наши интересы. Все это будет за счет дополнительных вложений полученных с рекламы.
Второе - я понимаю, как важно сохранить ваше доверие и комфорт. Мой приоритет - качество и полезность, поэтому рекламные посты будут соответствовать тематике программирования.
Надеюсь на ваше понимание
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25 3🦄2