CodeRoll | Frontend
4.03K subscribers
1.79K photos
75 videos
1 file
1.12K links
OZ — Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги
— Веб-разработка на JS, HTML, CSS, React, Vue,Angular

Купить рекламу: https://telega.in/c/coderoll

Чат: https://t.me/coderoll_chat

По всем вопросам пишите сюда - @yankovsky_ads
Download Telegram
Что выведет этот код?
👩‍💻👩‍💻 Как выглядит алгоритм гномьей сортировки на JavaScript?

Алгоритм находит первое место, где два соседних элемента стоят в неправильном порядке и меняет их местами



const gnomeSort = (arr: number[]): number[] => {
if (arr.length <= 1) {
return arr
}

let i: number = 1

while (i < arr.length) {
if (arr[i - 1] <= arr[i]) {
i++ //increment index if sub-array[0:i] already sorted
} else {
;[arr[i], arr[i - 1]] = [arr[i - 1], arr[i]] //swapping two numbers
i = Math.max(1, i - 1) //go back to the previous index to check the swapped number
}
}
return arr
}

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет этот код?
👩‍💻 Используем принципы “Чистого кода” в контексте JavaScript

Функции


✏ Избегайте условных конструкций - один из самых странных принципов 🥺

Вы спросите: "Как так? Как я могу писать код без использования условий?"

➕ Сделать это можно, если вы разделите условную конструкцию на отдельные функциональности. И вместо вычисления вы просто будете запускать нужное. Это перекликается и с другими принципами, которые мы уже с вами разбирали. Например то, что функция/метод должны делать что-то одно

Это работает как в комплексных функциях, так и в классах за счет полиморфизма (см. примеры кода)

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет этот код?
👩‍💻 Используем принципы “Чистого кода” в контексте JavaScript

Функции


Функции должны делать что-то одно


❗️ Это самое важное правило в программной инженерии

Когда функции делают больше, чем одно, их сложнее составлять, тестировать и рассуждать о них

Когда вы можете изолировать функцию только для одного действия, ее можно легко рефакторить (переписывать, исправлять), и ваш код будет читаться намного чище

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Используем принципы “Чистого кода” в контексте JavaScript

Функции


Функции должны иметь только один уровень абстракции

❗️ Проблема: Функция processOrder содержит код как высокого уровня абстракции (логика обработки заказа), так и низкого уровня (расчет суммы и проверка на складе). Это делает функцию сложной для понимания и поддержки

➕Чистый код: В исправленном примере processOrder остается на одном уровне абстракции и вызывает вспомогательные функции (calculateTotalAmount и checkStockAvailability), которые решают низкоуровневые задачи

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет этот код?
❓Что такое “event delegation”?

Делегация событий — это техника, при которой событие обрабатывается на родительском элементе, а не на каждом дочернем. Это позволяет оптимизировать обработку событий.

document.getElementById('parent').addEventListener('click', function(event) { if (
event.target && event.target.matches('button')) { console.log('Button clicked'); } });

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
Что выведет этот код?
😁4🤯3
❓Как работают дебаунсинг и троттлинг?

Ответ:
Это техники для управления количеством вызовов функции в определенный промежуток времени.
Дебаунсинг задерживает выполнение функции до тех пор, пока не прекратится серия вызовов.
Троттлинг ограничивает количество вызовов функции в заданный промежуток времени.


Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
Что выведет этот код?
❓Какие способы клонирования объектов существуют в JavaScript?

Ответ:
Клонирование объектов можно сделать несколькими способами:
Использование Object.assign()
Использование оператора spread (...)
Использование JSON.parse() и JSON.stringify() (для глубокого клонирования, но с ограничениями).


Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
❤2
👩‍💻 Используем принципы “Чистого кода” в контексте JavaScript

Функции


✏ Создавайте отдельные объекты, а не модифицируйте их напрямую

⚠️ Так же это одно из правил иммутабельности, которое важно соблюдать при работе с продвинутыми инструментами

Если у вас есть необходимость изменить объект, то почти всегда надежнее будет создать его копию, и уже в ней проводить мутации

➕ Сейчас это можно делать за счет object spread operator (...obj) или по старинке через Object.assign()

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет этот код?