🤔 Зачем вообще что-то оптимизировать?
Чтобы сделать код быстрее, легче, безопаснее и надёжнее. Оптимизация уменьшает нагрузку на сервер, улучшает UX, снижает энергопотребление, ускоряет загрузку и делает систему масштабируемой и устойчивой.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Чтобы сделать код быстрее, легче, безопаснее и надёжнее. Оптимизация уменьшает нагрузку на сервер, улучшает UX, снижает энергопотребление, ускоряет загрузку и делает систему масштабируемой и устойчивой.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍5🔥3💊2
🤔 Что такое amp страницы?
AMP (Accelerated Mobile Pages) — это технология от Google, которая позволяет создавать очень быстрые и легкие веб-страницы для мобильных устройств. AMP-страницы загружаются почти мгновенно, потому что:
Используют оптимизированный HTML (AMP HTML)
Ограничивают использование JavaScript
Подключают Google AMP Cache для мгновенной загрузки
🚩Зачем нужны AMP?
Ускоряют загрузку страниц → полезно для мобильных пользователей
Улучшают SEO → Google любит быстрые сайты
Увеличивают CTR → в поиске AMP-страницы помечены ⚡️ и привлекают внимание
Снижают нагрузку на сервер
🚩Как создать AMP-страницу?
AMP-страница – это обычный HTML, но с ограничениями и своими тегами.
Ставь 👍 и забирай 📚 Базу знаний
AMP (Accelerated Mobile Pages) — это технология от Google, которая позволяет создавать очень быстрые и легкие веб-страницы для мобильных устройств. AMP-страницы загружаются почти мгновенно, потому что:
Используют оптимизированный HTML (AMP HTML)
Ограничивают использование JavaScript
Подключают Google AMP Cache для мгновенной загрузки
🚩Зачем нужны AMP?
Ускоряют загрузку страниц → полезно для мобильных пользователей
Улучшают SEO → Google любит быстрые сайты
Увеличивают CTR → в поиске AMP-страницы помечены ⚡️ и привлекают внимание
Снижают нагрузку на сервер
🚩Как создать AMP-страницу?
AMP-страница – это обычный HTML, но с ограничениями и своими тегами.
<!DOCTYPE html>
<html ⚡️ lang="ru">
<head>
<meta charset="UTF-8">
<title>AMP Страница</title>
<link rel="canonical" href="https://example.com/normal-page.html">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<style amp-boilerplate>
body { visibility: hidden; }
</style>
<noscript>
<style amp-boilerplate>
body { visibility: visible; }
</style>
</noscript>
</head>
<body>
<h1>Привет, это AMP!</h1>
<amp-img src="image.jpg" width="600" height="400" layout="responsive"></amp-img>
</body>
</html>
Ставь 👍 и забирай 📚 Базу знаний
👍5💊1
🤔 Как называется характеристика HTML, которая говорит о том, как можно использовать разные теги для конкретных ситуаций?
Эта характеристика называется семантика. Она определяет смысловое значение тега и его роль в документе.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Эта характеристика называется семантика. Она определяет смысловое значение тега и его роль в документе.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥7💊2
🤔 Что такое flexbox?
Flexbox (Flexible Box Layout) – это модель размещения элементов в CSS, которая делает макет гибким и удобным для адаптивной верстки.
Главные особенности
🟠Гибкое выравнивание
элементов в строку или колонку
🟠Равномерное распределение
пространства между элементами
🟠Упрощает адаптивную верстку
без
🟠Легкое центрирование
элементов
🚩Основные термины Flexbox
Когда включается
Flex-контейнер → родительский элемент (
Flex-элементы → дочерние элементы контейнера
Главная ось (main axis) → ось, вдоль которой расположены элементы
Поперечная ось (cross axis) → перпендикулярная ось
🚩Основные свойства Flexbox
🟠`display: flex;`
Включает Flexbox для контейнера.
🟠`flex-direction` – направление оси
Определяет, как располагаются элементы (по горизонтали или вертикали).
🟠`justify-content` – выравнивание по главной оси
🟠`align-items` – выравнивание по поперечной оси
🟠`flex-wrap` – перенос элементов на новую строку
🟠`align-content` – выравнивание строк (если `flex-wrap: wrap;`)
Работает, когда элементы занимают несколько строк.
🚩Управление отдельными элементами (`flex`-элементы)
Ставь 👍 и забирай 📚 Базу знаний
Flexbox (Flexible Box Layout) – это модель размещения элементов в CSS, которая делает макет гибким и удобным для адаптивной верстки.
Главные особенности
🟠Гибкое выравнивание
элементов в строку или колонку
🟠Равномерное распределение
пространства между элементами
🟠Упрощает адаптивную верстку
без
float и position 🟠Легкое центрирование
элементов
🚩Основные термины Flexbox
Когда включается
display: flex;, элементы внутри него становятся флекс-элементами. Flex-контейнер → родительский элемент (
display: flex;) Flex-элементы → дочерние элементы контейнера
Главная ось (main axis) → ось, вдоль которой расположены элементы
Поперечная ось (cross axis) → перпендикулярная ось
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
.container {
display: flex;
}🚩Основные свойства Flexbox
🟠`display: flex;`
Включает Flexbox для контейнера.
.container {
display: flex;
}🟠`flex-direction` – направление оси
Определяет, как располагаются элементы (по горизонтали или вертикали).
.container {
flex-direction: row; /* По умолчанию: слева направо */
}
/* Другие значения */
.container {
flex-direction: column; /* В столбик */
flex-direction: row-reverse; /* Справа налево */
flex-direction: column-reverse; /* Вниз-вверх */
}🟠`justify-content` – выравнивание по главной оси
.container {
justify-content: flex-start; /* По умолчанию, слева направо */
justify-content: center; /* Центр */
justify-content: flex-end; /* Справа налево */
justify-content: space-between; /* Равномерное распределение */
justify-content: space-around; /* С отступами */
justify-content: space-evenly; /* Равномерные промежутки */
}🟠`align-items` – выравнивание по поперечной оси
.container {
align-items: stretch; /* По умолчанию (растягивает) */
align-items: center; /* Центр по вертикали */
align-items: flex-start; /* Вверх */
align-items: flex-end; /* Вниз */
align-items: baseline; /* По базовой линии текста */
}🟠`flex-wrap` – перенос элементов на новую строку
.container {
flex-wrap: nowrap; /* По умолчанию – все в одной строке */
flex-wrap: wrap; /* Элементы переносятся */
flex-wrap: wrap-reverse; /* Перенос в обратном порядке */
}🟠`align-content` – выравнивание строк (если `flex-wrap: wrap;`)
Работает, когда элементы занимают несколько строк.
.container {
align-content: flex-start; /* Вверх */
align-content: flex-end; /* Вниз */
align-content: center; /* По центру */
align-content: space-between; /* Равномерное распределение */
align-content: space-around; /* С отступами */
align-content: stretch; /* Растянуть (по умолчанию) */
}🚩Управление отдельными элементами (`flex`-элементы)
flex-grow – рост элемента .item {
flex-grow: 1; /* Растянется, если есть место */
}flex-shrink – сжатие элемента .item {
flex-shrink: 0; /* Не уменьшаться */
}flex-basis – начальный размер элемента.item {
flex-basis: 200px; /* Фиксированный размер */
}Ставь 👍 и забирай 📚 Базу знаний
👍5
🤔 Что известно про управляемые и неуправляемые компоненты?
- Управляемые компоненты — компоненты, где значения элементов (например, input) хранятся в состоянии компонента (через useState) и изменяются с помощью событий.
- Неуправляемые компоненты — компоненты, которые используют рефы для доступа к значениям напрямую в DOM, без контроля со стороны React.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Управляемые компоненты — компоненты, где значения элементов (например, input) хранятся в состоянии компонента (через useState) и изменяются с помощью событий.
- Неуправляемые компоненты — компоненты, которые используют рефы для доступа к значениям напрямую в DOM, без контроля со стороны React.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥5
🤔 В чем различие методов call apply bind?
Методы call, apply и bind принадлежат к функциональному объекту
🚩Сall
Вызывает функцию, явно устанавливая
🚩Apply
Очень похож на
🚩Bind
Создаёт новую функцию, которая, когда она вызывается, имеет установленный контекст
Ставь 👍 и забирай 📚 Базу знаний
Методы call, apply и bind принадлежат к функциональному объекту
Function и используются для указания контекста this при вызове функции. Хотя все три метода позволяют контролировать значение this внутри функции, между ними существуют ключевые различия в способе использования и поведении.🚩Сall
Вызывает функцию, явно устанавливая
this в первом аргументе. Остальные аргументы передаются в вызываемую функцию как есть.function greet(message, name) {
console.log(${message}, ${name}. This is ${this});
}
greet.call("Earth", "Hello", "Alice"); // "Hello, Alice. This is Earth"🚩Apply
Очень похож на
call, но принимает аргументы в виде массива, а не по отдельности.function greet(message, name) {
console.log(
${message}, ${name}. This is ${this}
);
}
greet.apply("Earth", ["Hello", "Alice"]); // "Hello, Alice. This is Earth"🚩Bind
Создаёт новую функцию, которая, когда она вызывается, имеет установленный контекст
this, указанный в первом аргументе. В отличие от call и apply, bind не вызывает функцию сразу, а возвращает новую функцию, которую можно вызвать позже.function greet(message, name) {
console.log(
${message}, ${name}. This is ${this}
);
}
const greetEarth = greet.bind("Earth", "Hello", "Alice");
greetEarth(); // "Hello, Alice. This is Earth"Ставь 👍 и забирай 📚 Базу знаний
👍9
🤔 Что такое FOUC (Flash of Unstyled Content)?
Это вспышка неоформленного контента, которая возникает, когда HTML отрендерен до загрузки и применения CSS. Пользователь кратко видит «голую» страницу до применения стилей.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Это вспышка неоформленного контента, которая возникает, когда HTML отрендерен до загрузки и применения CSS. Пользователь кратко видит «голую» страницу до применения стилей.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥5
🤔 Почему повсеместно нужен https?
HTTPS (HyperText Transfer Protocol Secure) — это безопасная версия HTTP, которая шифрует данные между браузером и сервером. Он защищает пользователей и сайты от перехвата данных, атак и подделки информации.
🚩 Главные причины использовать HTTPS
🟠Шифрование данных (Защита от перехвата)
Без HTTPS злоумышленники могут перехватить* данные, например, пароли или банковские карты.
В HTTP данные передаются открытым текстом (их легко украсть в открытых Wi-Fi).
В HTTPS данные зашифрованы с помощью SSL/TLS, и даже если их перехватят, их невозможно прочитать.
🟠Защита от атак "Человек посередине" (MITM)
Без HTTPS злоумышленник может подменить содержимое сайта.
Опасные сценарии:
Хакер в Wi-Fi кафе встраивает вредоносный код в сайт.
Вредоносный провайдер заменяет рекламу или ворует куки.
🟠Google даёт больше доверия к HTTPS-сайтам
Google понижает в поиске сайты без HTTPS, а Chrome помечает их как "Небезопасные".
🟠Обязателен для онлайн-платежей и авторизации
Для ввода паролей, карт и личных данных HTTPS обязателен по закону (например, PCI DSS для платежей).
Если сайт работает без HTTPS, браузеры блокируют передачу банковских данных.
Ставь 👍 и забирай 📚 Базу знаний
HTTPS (HyperText Transfer Protocol Secure) — это безопасная версия HTTP, которая шифрует данные между браузером и сервером. Он защищает пользователей и сайты от перехвата данных, атак и подделки информации.
🚩 Главные причины использовать HTTPS
🟠Шифрование данных (Защита от перехвата)
Без HTTPS злоумышленники могут перехватить* данные, например, пароли или банковские карты.
В HTTP данные передаются открытым текстом (их легко украсть в открытых Wi-Fi).
В HTTPS данные зашифрованы с помощью SSL/TLS, и даже если их перехватят, их невозможно прочитать.
🟠Защита от атак "Человек посередине" (MITM)
Без HTTPS злоумышленник может подменить содержимое сайта.
Опасные сценарии:
Хакер в Wi-Fi кафе встраивает вредоносный код в сайт.
Вредоносный провайдер заменяет рекламу или ворует куки.
🟠Google даёт больше доверия к HTTPS-сайтам
Google понижает в поиске сайты без HTTPS, а Chrome помечает их как "Небезопасные".
🟠Обязателен для онлайн-платежей и авторизации
Для ввода паролей, карт и личных данных HTTPS обязателен по закону (например, PCI DSS для платежей).
Если сайт работает без HTTPS, браузеры блокируют передачу банковских данных.
Ставь 👍 и забирай 📚 Базу знаний
👍8
🤔 Что такое adaptive и responsive web-страницы?
- Responsive (отзывчивый) дизайн — подстраивается под любое устройство с помощью гибкой сетки, процентов, vw/vh, media-запросов.
- Adaptive (адаптивный) — использует фиксированные "точки останова", под каждое разрешение загружается заранее подготовленная верстка.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Responsive (отзывчивый) дизайн — подстраивается под любое устройство с помощью гибкой сетки, процентов, vw/vh, media-запросов.
- Adaptive (адаптивный) — использует фиксированные "точки останова", под каждое разрешение загружается заранее подготовленная верстка.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥5👍3💊1
🤔 Чем spa отличается от классического сайта?
SPA (Single Page Application) и классический сайт (MPA – Multi Page Application) — это два разных подхода к созданию веб-приложений. Они отличаются по способу загрузки данных, навигации и производительности.
🚩Классический сайт (MPA – Multi Page Application)
Каждый раз при переходе на новую страницу браузер запрашивает HTML с сервера. Сервер формирует страницу и отправляет готовый HTML.
🚩SPA (Single Page Application)
При первом заходе загружается одна HTML-страница и весь JavaScript. Дальше контент подгружается динамически через AJAX или Fetch API.
Ставь 👍 и забирай 📚 Базу знаний
SPA (Single Page Application) и классический сайт (MPA – Multi Page Application) — это два разных подхода к созданию веб-приложений. Они отличаются по способу загрузки данных, навигации и производительности.
🚩Классический сайт (MPA – Multi Page Application)
Каждый раз при переходе на новую страницу браузер запрашивает HTML с сервера. Сервер формирует страницу и отправляет готовый HTML.
<?php
echo "<h1>Добро пожаловать!</h1>";
?>
<a href="/about">О нас</a>
🚩SPA (Single Page Application)
При первом заходе загружается одна HTML-страница и весь JavaScript. Дальше контент подгружается динамически через AJAX или Fetch API.
import React, { useState, useEffect } from "react";
function App() {
const [data, setData] = useState(null);
useEffect(() => {
fetch("/api/products")
.then(res => res.json())
.then(data => setData(data));
}, []);
return <div>{data ? JSON.stringify(data) : "Загрузка..."}</div>;
}
export default App;Ставь 👍 и забирай 📚 Базу знаний
👍6
🤔 Что произойдёт, если написать невалидную разметку?
- Браузер попытается исправить автоматически.
- Может сломаться верстка, стили, поведение.
- Влияет на SEO и доступность.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Браузер попытается исправить автоматически.
- Может сломаться верстка, стили, поведение.
- Влияет на SEO и доступность.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍3🔥3💊1
🤔 Для чего скрипт подключают в концe body?
Основная причина – ускорение загрузки страницы и избежание блокировки рендеринга.
Когда браузер загружает HTML, он читает код сверху вниз. Если в
🟠Проблема: блокировка рендеринга
Если скрипт загружается в
🟠Решение: подключение в конце `<body>`
Если разместить
🟠Альтернативы: `defer` и `async`
Ставь 👍 и забирай 📚 Базу знаний
Основная причина – ускорение загрузки страницы и избежание блокировки рендеринга.
Когда браузер загружает HTML, он читает код сверху вниз. Если в
<head> встречается <script>, браузер останавливает разбор HTML, загружает и выполняет скрипт, а только потом продолжает загружать страницу. 🟠Проблема: блокировка рендеринга
Если скрипт загружается в
<head>, он останавливает отрисовку страницы до завершения загрузки. <head>
<script src="script.js"></script> <!-- ❌ Плохо: блокирует рендеринг -->
</head>
<body>
<h1>Сайт загружается...</h1>
</body>
🟠Решение: подключение в конце `<body>`
Если разместить
<script> перед закрывающим </body>, сначала загружается контент страницы, а потом выполняется JavaScript. <body>
<h1>Контент загрузился!</h1>
<script src="script.js"></script> <!-- Хорошо: не блокирует рендеринг -->
</body>
🟠Альтернативы: `defer` и `async`
defer – отложенное выполнение после загрузки HTML<head>
<script src="script.js" defer></script>
</head>
async – загрузка и выполнение параллельно <head>
<script src="script.js" async></script>
</head>
Ставь 👍 и забирай 📚 Базу знаний
👍5💊2
🤔 Как будет выглядеть структура кода?
Типичная структура проекта может быть следующей:
- controllers/ — логика обработки запросов.
- services/ — бизнес-логика.
- models/ — описание структур данных или ORM моделей.
- routes/ — маршруты API или приложения.
- utils/ — вспомогательные функции.
- views/ — шаблоны (если HTML).
- reports/ — модуль или слой для генерации отчётов.
- public/ или static/ — статические ресурсы (если нужно).
Такая структура помогает разделить ответственность и улучшает масштабируемость проекта.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Типичная структура проекта может быть следующей:
- controllers/ — логика обработки запросов.
- services/ — бизнес-логика.
- models/ — описание структур данных или ORM моделей.
- routes/ — маршруты API или приложения.
- utils/ — вспомогательные функции.
- views/ — шаблоны (если HTML).
- reports/ — модуль или слой для генерации отчётов.
- public/ или static/ — статические ресурсы (если нужно).
Такая структура помогает разделить ответственность и улучшает масштабируемость проекта.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
💊15👍5🤔3🔥2
🤔 Что такое псевдоклассы?
Это ключевые слова, добавляемые к селекторам, которые указывают на специальное состояние выбранного элемента. Псевдоклассы позволяют стилизовать элементы на основе их состояния в документе, без необходимости добавления дополнительных классов или ID напрямую в HTML-код. С их помощью можно, например, изменить внешний вид ссылок при наведении курсора, стилизовать четные и нечетные элементы списка, изменять стиль элементов при получении фокуса и многое другое.
🚩Зачем нужны псевдоклассы?
Они делают CSS более мощным и гибким, позволяя разработчикам применять стили к элементам на основе их состояния или положения в документе, без изменения HTML-структуры. Это особенно полезно для создания интерактивных и реактивных пользовательских интерфейсов, где визуальное состояние элемента должно меняться в ответ на действия пользователя.
Ставь 👍 и забирай 📚 Базу знаний
Это ключевые слова, добавляемые к селекторам, которые указывают на специальное состояние выбранного элемента. Псевдоклассы позволяют стилизовать элементы на основе их состояния в документе, без необходимости добавления дополнительных классов или ID напрямую в HTML-код. С их помощью можно, например, изменить внешний вид ссылок при наведении курсора, стилизовать четные и нечетные элементы списка, изменять стиль элементов при получении фокуса и многое другое.
:hover — применяется к элементу, когда на него наводят курсор мыши.a:hover {
color: red; /* Ссылка станет красной при наведении /
}:focus — применяется к элементу, когда он получает фокус (например, при переходе на элемент с помощью клавиатуры или при клике мыши).input:focus {
border-color: blue; / Граница инпута станет синей при фокусе /
}:active — применяется к элементу в момент его активации пользователем (например, во время клика по кнопке).button:active {
transform: scale(0.98); / Кнопка немного уменьшится при клике /
}:nth-child() — позволяет стилизовать элементы в зависимости от их порядка среди детей родительского элемента.li:nth-child(odd) {
background-color: gray; / Заливка каждого нечетного элемента списка /
}:not() — исключает из выборки элементы, соответствующие указанному селектору.div:not(.special) {
color: green; / Применяется к каждому div, который не имеет класса special */
}🚩Зачем нужны псевдоклассы?
Они делают CSS более мощным и гибким, позволяя разработчикам применять стили к элементам на основе их состояния или положения в документе, без изменения HTML-структуры. Это особенно полезно для создания интерактивных и реактивных пользовательских интерфейсов, где визуальное состояние элемента должно меняться в ответ на действия пользователя.
Ставь 👍 и забирай 📚 Базу знаний
👍3
🤔 В чём разница между foreach и map?
forEach выполняет функцию для каждого элемента массива, не возвращая нового массива, тогда как map создает новый массив, заполняя его результатами выполнения функции для каждого элемента исходного массива. forEach обычно используется для выполнения побочных эффектов, таких как изменение существующих данных или вызов внешних функций. map удобен для преобразования массива в новый массив с изменёнными данными. Если требуется создать новый массив, предпочтительнее использовать map.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍9🔥1
🤔 Можешь ли пояснить разницу между progressive enhancement и graceful degradation?
Оба подхода используются в веб-разработке для обеспечения доступности и совместимости веб-приложений на разных устройствах и браузерах.
🚩Progressive Enhancement (Прогрессивное улучшение)
Сначала создаём простую, но рабочую версию сайта, которая работает на всех устройствах и браузерах. Затем добавляем улучшения (CSS-анимации, сложный JavaScript), которые работают только в современных браузерах.
🚩Graceful Degradation (Постепенное упрощение)
Сначала создаём полнофункциональную версию с последними технологиями. Затем добавляем fallback'и (упрощённые версии) для старых браузеров.
Используем CSS Grid, но добавляем
Приложение на React, но показываем простой HTML, если JavaScript отключён.
Ставь 👍 и забирай 📚 Базу знаний
Оба подхода используются в веб-разработке для обеспечения доступности и совместимости веб-приложений на разных устройствах и браузерах.
🚩Progressive Enhancement (Прогрессивное улучшение)
Сначала создаём простую, но рабочую версию сайта, которая работает на всех устройствах и браузерах. Затем добавляем улучшения (CSS-анимации, сложный JavaScript), которые работают только в современных браузерах.
🚩Graceful Degradation (Постепенное упрощение)
Сначала создаём полнофункциональную версию с последними технологиями. Затем добавляем fallback'и (упрощённые версии) для старых браузеров.
Используем CSS Grid, но добавляем
@supports для fallback'а на FlexboxПриложение на React, но показываем простой HTML, если JavaScript отключён.
Ставь 👍 и забирай 📚 Базу знаний
👍4
🤔 Что ещё является важной частью понимания кода?
Структура проекта, читаемость, консистентность, наличие документации, комментирование сложных участков и покрытие тестами. Также важен контекст — бизнес-цель и поведение кода.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Структура проекта, читаемость, консистентность, наличие документации, комментирование сложных участков и покрытие тестами. Также важен контекст — бизнес-цель и поведение кода.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍4🔥4💊3
🤔 Какая есть важная особенность у pipe?
Это популярная концепция в программировании, особенно в функциональных языках и библиотеках вроде RxJS (в контексте реактивного программирования). Она используется для последовательного применения функций к данным.
🚩Почему это важно?
🟠Чистота
🟠Композиция
Вместо вложенных вызовов функций (когда результат одной функции передается в другую)
🟠Читаемость
Код становится проще для понимания, особенно если функций много.
🟠Легкость модификации
Можно легко добавлять или удалять шаги в цепочке, не меняя структуру кода.
🚩Как работает `pipe`?
🚩Пример реализации простого `pipe`
🚩Использование в RxJS
В контексте RxJS
Ставь 👍 и забирай 📚 Базу знаний
Это популярная концепция в программировании, особенно в функциональных языках и библиотеках вроде RxJS (в контексте реактивного программирования). Она используется для последовательного применения функций к данным.
🚩Почему это важно?
🟠Чистота
pipe работает с чистыми функциями, которые не изменяют исходные данные и возвращают новый результат. Это повышает предсказуемость кода.🟠Композиция
Вместо вложенных вызовов функций (когда результат одной функции передается в другую)
pipe упрощает цепочку, делая её линейной.🟠Читаемость
Код становится проще для понимания, особенно если функций много.
🟠Легкость модификации
Можно легко добавлять или удалять шаги в цепочке, не меняя структуру кода.
🚩Как работает `pipe`?
pipe принимает несколько функций в качестве аргументов и применяет их слева направо к переданным данным. То есть результат одной функции передается как вход в следующую.🚩Пример реализации простого `pipe`
const pipe = (...functions) => (input) =>
functions.reduce((acc, fn) => fn(acc), input);
// Пример функций
const multiplyByTwo = (num) => num * 2;
const addThree = (num) => num + 3;
const square = (num) => num ** 2;
// Использование pipe
const processNumber = pipe(multiplyByTwo, addThree, square);
console.log(processNumber(5)); // ((5 * 2) + 3) ** 2 = 121
🚩Использование в RxJS
В контексте RxJS
pipe используется для работы с потоками данных, где через него можно передавать операторы, такие как map, filter, mergeMap и другие.import { of } from 'rxjs';
import { map, filter } from 'rxjs/operators';
// Создаем поток данных
const numbers$ = of(1, 2, 3, 4, 5);
// Используем pipe для применения операторов
numbers$
.pipe(
filter((num) => num % 2 === 0), // Оставляем только четные
map((num) => num * 10) // Умножаем их на 10
)
.subscribe((result) => console.log(result));
// Вывод: 20, 40Ставь 👍 и забирай 📚 Базу знаний
👍8🔥1💊1
🤔 Как настраивать собственную кастомизацию форм?
Можно использовать стили для стандартных элементов формы, применять псевдоэлементы, использовать кастомные компоненты на основе div и JavaScript. Также часто подключают библиотеки или UI-фреймворки.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Можно использовать стили для стандартных элементов формы, применять псевдоэлементы, использовать кастомные компоненты на основе div и JavaScript. Также часто подключают библиотеки или UI-фреймворки.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥3👍2💊1
🤔 Когда используются теги div и span?
🚩Примеры использования `<div>`
Разметка секций страницы
Группировка элементов
🚩Когда использовать `<span>`?
🚩Примеры использования `<span>`
Выделение части текста
Иконки, кнопки и маленькие элементы
Ставь 👍 и забирай 📚 Базу знаний
<div> и <span> — это самые универсальные HTML-теги, но у них разные роли: <div> — блочный контейнер (для структуры). <span> — строчный контейнер (для оформления текста). 🚩Примеры использования `<div>`
Разметка секций страницы
<div class="header">Навигация</div>
<div class="content">Основной контент</div>
<div class="footer">Подвал</div>
Группировка элементов
<div class="card">
<h2>Заголовок</h2>
<p>Текст внутри карточки</p>
</div>
🚩Когда использовать `<span>`?
<span> используется для выделения части текста или небольших элементов. Это строчный элемент, который не переносится на новую строку. 🚩Примеры использования `<span>`
Выделение части текста
<p>Сегодня <span class="highlight">солнечная погода</span>.</p>
Иконки, кнопки и маленькие элементы
<button>
<span class="icon">🔍</span> Поиск
</button>
Ставь 👍 и забирай 📚 Базу знаний
👍5💊1
🤔 Как делим контракт из 4 методов?
Контракт — это API-интерфейс. Делим по действиям:
- /price — GET, POST, PATCH, DELETE. Или разбиваем на:
- /price/get, /price/set, /price/subscribe, /price/history.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Контракт — это API-интерфейс. Делим по действиям:
- /price — GET, POST, PATCH, DELETE. Или разбиваем на:
- /price/get, /price/set, /price/subscribe, /price/history.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥7👍2💊1