Делаем код-ревью правильно
Если вы не проводите код-ревью, или делаете их «для галочки», то обрекаете себя на боль, пусть не сразу, но в конечном итоге однозначно. Это можно сравнить с возведением дома на фундаменте из песка. Какое-то время он, может, и простоит, но явно недолго. А в мире стартапов второго шанса у вас может уже не быть.
В этой статье автор привел свое виденье на то, как должен выглядеть процесс код-ревью. Он предлагает предлагаю вам прочесть статью, принять в ней то, с чем вы согласны, и проигнорировать остальное.
👉 @seniorFront
Если вы не проводите код-ревью, или делаете их «для галочки», то обрекаете себя на боль, пусть не сразу, но в конечном итоге однозначно. Это можно сравнить с возведением дома на фундаменте из песка. Какое-то время он, может, и простоит, но явно недолго. А в мире стартапов второго шанса у вас может уже не быть.
В этой статье автор привел свое виденье на то, как должен выглядеть процесс код-ревью. Он предлагает предлагаю вам прочесть статью, принять в ней то, с чем вы согласны, и проигнорировать остальное.
👉 @seniorFront
👍6❤1👎1
Что такое Tree shaking?
Когда приложение на Javascript достигает определенного размера, его обычно разделяют на модули. Однако, через какое то время, становиться сложно отслеживать все что импортируется и как это используется. В итоге при сборке пакетов, мы можем получить большое количество импортированный кода, который фактически не используется.
Tree shaking (Встряхивание дерева) – это метод оптимизации библиотек путем удаления любого кода из окончательного файла, который фактически не используется.
Допустим, у нас есть файл утилит с некоторыми математическими операциями, которые мы можем использовать в нашем основном скрипте.
В нашем основном скрипте импортируем и используем только функцию add().
Воспользуемся для сборки webpack. После сборки мы увидим, что все функции из файла mathUtils.js включены в финальный пакет, хотя мы только импортировали и использовали функцию add().
Если воспользуемся tree shaking, тогда только то, что мы импортировали и фактически использовали попадет в окончательную сборку.
Tree shaking, как правило, является функции сборщиков пакетов. Например, если вы используете webpack, вы можете просто установить mode в production в своем файле конфигурации webpack.config.js. Это, помимо других опций, так же запускает tree shaking.
👉 @seniorFront
Когда приложение на Javascript достигает определенного размера, его обычно разделяют на модули. Однако, через какое то время, становиться сложно отслеживать все что импортируется и как это используется. В итоге при сборке пакетов, мы можем получить большое количество импортированный кода, который фактически не используется.
Tree shaking (Встряхивание дерева) – это метод оптимизации библиотек путем удаления любого кода из окончательного файла, который фактически не используется.
Допустим, у нас есть файл утилит с некоторыми математическими операциями, которые мы можем использовать в нашем основном скрипте.
export function add(a, b) {
console.log("add");
return a + b;
}
export function minus(a, b) {
console.log("minus");
return a - b;
}
export function multiply(a, b) {
console.log("multiply");
return a * b;
}
export function divide(a, b) {
console.log("divide");
return a / b;
}В нашем основном скрипте импортируем и используем только функцию add().
import { add } from "./mathUtils";
add(1, 2);Воспользуемся для сборки webpack. После сборки мы увидим, что все функции из файла mathUtils.js включены в финальный пакет, хотя мы только импортировали и использовали функцию add().
Если воспользуемся tree shaking, тогда только то, что мы импортировали и фактически использовали попадет в окончательную сборку.
Tree shaking, как правило, является функции сборщиков пакетов. Например, если вы используете webpack, вы можете просто установить mode в production в своем файле конфигурации webpack.config.js. Это, помимо других опций, так же запускает tree shaking.
module.exports = {
...,
mode: "production",
...,
} ;👉 @seniorFront
👍23❤1👎1
ИТ-специалисты, ваш выход
Выбирайте вакансию по душе, а Тинькофф обеспечит комфортные условия для работы и возможность экспериментировать в команде единомышленников. Откликнуться в команду Тинькофф
АО «Тинькофф Банк», ИНН 7710140679
Выбирайте вакансию по душе, а Тинькофф обеспечит комфортные условия для работы и возможность экспериментировать в команде единомышленников. Откликнуться в команду Тинькофф
АО «Тинькофф Банк», ИНН 7710140679
👎7👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Tailwind - form
Реализовано на HTML и стилизовано при помощи Tailwind. Анимации созданы в CSS.
👉 @seniorFront
Реализовано на HTML и стилизовано при помощи Tailwind. Анимации созданы в CSS.
👉 @seniorFront
👍19👎2❤1🔥1
Senior Frontend - javascript, html, css
16 апреля в Айтилогии стартует 7-дневный бесплатный интенсив по frontend-разработке, на котором ты с нуля без знаний создашь фронтенд-проект на Angular 🔥 На интенсиве ты: – Сверстаешь лендинг на HTML + CSS – Реализуешь функционал на JavaScript – Используешь…
Завтра идём на фронтенд-практику. Кто не успел записаться, присоединяйтесь 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Maria Zavarskaya
Открытое собеседование на Frontend разработчика
Привет! Это Эйч Навыки — команда разработчиков из бигтеха. Мы помогаем фронтенд-разработчикам апнуть грейд, сменить компанию или перейти с другого стека.
17 апреля в 19:30 по мск приходи онлайн на Открытое собеседование от Эйч Навыков. Это классная возможность узнать, чего ждут от кандидатов на middle-позиции и как подготовиться к собесу, чтобы получить оффер 👀
Как это будет:
1. Дима Дорофеев, тимлид в канадском стартапе Truv Inc, ex-VK и ментор Навыков, задаст реальные вопросы разработчику-добровольцу
2. Потом Дима даст подробную обратную связь: объяснит, зачем задавал тот или иной вопрос, как лучше на него ответить или решить задачу
3. В конце можно будет задать Диме любой вопрос о трудоустройстве, менторстве или фронтенде
Что узнаешь на Открытом собеседовании:
- Чего ждут от кандидатов на мидл-позиции во фронтенде
- Какие вопросы задают на интервью и зачем
- Как подготовиться к собесу, чтобы получить заветный оффер
Это бесплатно?
Бесплатно
Просто зарегистрируйся на открытое собеседование в нашем боте: @skills_mentee_bot
Реклама: ООО “Эйч Карьера” erid: LjN8KT9Fd
Привет! Это Эйч Навыки — команда разработчиков из бигтеха. Мы помогаем фронтенд-разработчикам апнуть грейд, сменить компанию или перейти с другого стека.
17 апреля в 19:30 по мск приходи онлайн на Открытое собеседование от Эйч Навыков. Это классная возможность узнать, чего ждут от кандидатов на middle-позиции и как подготовиться к собесу, чтобы получить оффер 👀
Как это будет:
1. Дима Дорофеев, тимлид в канадском стартапе Truv Inc, ex-VK и ментор Навыков, задаст реальные вопросы разработчику-добровольцу
2. Потом Дима даст подробную обратную связь: объяснит, зачем задавал тот или иной вопрос, как лучше на него ответить или решить задачу
3. В конце можно будет задать Диме любой вопрос о трудоустройстве, менторстве или фронтенде
Что узнаешь на Открытом собеседовании:
- Чего ждут от кандидатов на мидл-позиции во фронтенде
- Какие вопросы задают на интервью и зачем
- Как подготовиться к собесу, чтобы получить заветный оффер
Это бесплатно?
Бесплатно
Просто зарегистрируйся на открытое собеседование в нашем боте: @skills_mentee_bot
Реклама: ООО “Эйч Карьера” erid: LjN8KT9Fd
❤1
Самые полезные библиотеки JS для красивых анимаций
Интересное в исполнении приложение всегда сможет привлечь внимание, поскольку мы любим, когда красиво. Но что стоит за этим "красиво"? И начинка, и внешний вид. Сегодня поговорим о внешнем виде, ведь встречают по одежке. А конкретно - про анимации.
Three.js
Это высокоуровневая JavaScript-библиотека, специализирующаяся на создании 3D-графики и анимаций для веб-приложений. Используя Three.js, мы можем легко конструировать различные трехмерные сцены, от игр и впечатляющих визуализаций до сред виртуальной реальности. Библиотека облегчает процесс добавления объектов, наложения материалов и текстур, создания анимаций, а также интеграции 3D-моделей, созданных в Blender или других инструментах 3D-моделирования. За счет построения на базе WebGL, Three.js предоставляет интуитивно понятный API, позволяя разработчикам сконцентрироваться на дизайне трехмерных сцен без необходимости погружения в технические детали WebGL.
Mo.js
Представляет собой превосходный фреймворк, выделяющийся своей простотой использования и выразительным синтаксисом. Этот фреймворк значительно облегчает нашу работу в области создания анимаций, позволяя нам легко реализовывать всё, от базовых вращений до сложных, многоуровневых анимаций.
AniJS
редставляет собой элегантную JavaScript-библиотеку, предназначенную для упрощения взаимодействия с элементами пользовательского интерфейса без необходимости глубоких знаний в программировании. Эта библиотека разработана с учетом потребностей дизайнеров, и поэтому её синтаксис использует ясный и понятный английский язык, делая её доступной для понимания широкому кругу пользователей.
Ещё больше библиотек, а также примеры анимаций в статье.
👉 @seniorFront
Интересное в исполнении приложение всегда сможет привлечь внимание, поскольку мы любим, когда красиво. Но что стоит за этим "красиво"? И начинка, и внешний вид. Сегодня поговорим о внешнем виде, ведь встречают по одежке. А конкретно - про анимации.
Three.js
Это высокоуровневая JavaScript-библиотека, специализирующаяся на создании 3D-графики и анимаций для веб-приложений. Используя Three.js, мы можем легко конструировать различные трехмерные сцены, от игр и впечатляющих визуализаций до сред виртуальной реальности. Библиотека облегчает процесс добавления объектов, наложения материалов и текстур, создания анимаций, а также интеграции 3D-моделей, созданных в Blender или других инструментах 3D-моделирования. За счет построения на базе WebGL, Three.js предоставляет интуитивно понятный API, позволяя разработчикам сконцентрироваться на дизайне трехмерных сцен без необходимости погружения в технические детали WebGL.
Mo.js
Представляет собой превосходный фреймворк, выделяющийся своей простотой использования и выразительным синтаксисом. Этот фреймворк значительно облегчает нашу работу в области создания анимаций, позволяя нам легко реализовывать всё, от базовых вращений до сложных, многоуровневых анимаций.
AniJS
редставляет собой элегантную JavaScript-библиотеку, предназначенную для упрощения взаимодействия с элементами пользовательского интерфейса без необходимости глубоких знаний в программировании. Эта библиотека разработана с учетом потребностей дизайнеров, и поэтому её синтаксис использует ясный и понятный английский язык, делая её доступной для понимания широкому кругу пользователей.
Ещё больше библиотек, а также примеры анимаций в статье.
👉 @seniorFront
threejs.org
Three.js – JavaScript 3D library
👍11
От задачи к результату: как сформулировать требования правильно
В этой статье рассматривается работа с требованиями с точки зрения системного аналитика аналитика, а также даются советы по тому, как лучше взаимодействовать с разработчиками.
Правильная постановка задач - залог успешного проекта. Системный аналитик играет важную роль в этом процессе, и его работа должна быть максимально четкой, подробной и структурированной. Эффективная коммуникация, учет безопасности и производительности, а также разделение задач между специалистами помогут достичь желаемого результата.
👉 @seniorFront
В этой статье рассматривается работа с требованиями с точки зрения системного аналитика аналитика, а также даются советы по тому, как лучше взаимодействовать с разработчиками.
Правильная постановка задач - залог успешного проекта. Системный аналитик играет важную роль в этом процессе, и его работа должна быть максимально четкой, подробной и структурированной. Эффективная коммуникация, учет безопасности и производительности, а также разделение задач между специалистами помогут достичь желаемого результата.
👉 @seniorFront
Media is too big
VIEW IN TELEGRAM
How to make Animated Click Effect
В JS создан обработчик события-клика, по которому генерируется частица, стилизованная и анимированная в CSS.
👉 @seniorFront
В JS создан обработчик события-клика, по которому генерируется частица, стилизованная и анимированная в CSS.
👉 @seniorFront
Проблема айтишников старше джуна №1: плохая самопрезентация на собеседованиях
Большинство реально сильных специалистов теряют ~20-50% от зарплаты только из-за слабой переговорной позиции.
Проект «Выше вилки» фиксит этот баг.
Экс-программисты Яндекса и Касперского делятся полезными фишками в переговорах, тактиками общения с рекрутёром и способами объективно оценить свои скиллы в денежном эквиваленте.
На канале @above_the_range проходят как бесплатные тренинги, так и анонсы на поток «Выше вилки», где вы научитесь правильно отвечать на скользкие и неочевидные вопросы.
Всё это — на примере реальных кейсов трудоустройства и без «душноты».
Никакого заговора на «успешный успех». Подписывайтесь и тренируйте переговорные техники.
реклама. рекламодатель ИП Шишков Илья Иванович ИНН: 575206903941
Большинство реально сильных специалистов теряют ~20-50% от зарплаты только из-за слабой переговорной позиции.
Проект «Выше вилки» фиксит этот баг.
Экс-программисты Яндекса и Касперского делятся полезными фишками в переговорах, тактиками общения с рекрутёром и способами объективно оценить свои скиллы в денежном эквиваленте.
На канале @above_the_range проходят как бесплатные тренинги, так и анонсы на поток «Выше вилки», где вы научитесь правильно отвечать на скользкие и неочевидные вопросы.
Всё это — на примере реальных кейсов трудоустройства и без «душноты».
Никакого заговора на «успешный успех». Подписывайтесь и тренируйте переговорные техники.
реклама. рекламодатель ИП Шишков Илья Иванович ИНН: 575206903941
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Shimmer wave text animation
В JS текст разделяется на отдельные буквы - span элементы, которые затем анимируются в CSS.
👉 @seniorFront
В JS текст разделяется на отдельные буквы - span элементы, которые затем анимируются в CSS.
👉 @seniorFront
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Pure CSS rotating carousel of suno.ai homepage
Стилизовано и анимировано в HTML и SCSS.
👉 @seniorFront
Стилизовано и анимировано в HTML и SCSS.
👉 @seniorFront
🔥6👍2
Чем отличается метод toSorted() от метода sort() при сортировке массивов в JavaScript?
Anonymous Quiz
26%
toSorted() мутирует исходный массив, а sort() возвращает новый отсортированный массив.
60%
toSorted() возвращает новый отсортированный массив, не изменяя исходный, а sort() мутирует исходный
14%
toSorted() корректно сортирует массив чисел без дополнительных аргументов, в отличие от sort()
Media is too big
VIEW IN TELEGRAM
Magic Button Effect
В этом видео создается кнопка с эффектом. При нажатии генерируются частицы в JS, которые затем анимируются в CSS.
👉 @seniorFront
В этом видео создается кнопка с эффектом. При нажатии генерируются частицы в JS, которые затем анимируются в CSS.
👉 @seniorFront
👍6❤2
Array Helpers
Расширьте встроенный класс Array следующими методами: square(), cube(), average(), sum(), even() и odd().
square() - должен возвращать копию массива, содержащую все значения, возведенные в квадрат.
cube() - должен возвращать копию массива, содержащую все значения, возведенные в куб.
average() - должен возвращать среднее значение всех значений массива; для пустого массива должно возвращать NaN
sum() - должен возвращать сумму всех значений массива
even() - должен возвращать массив всех четных чисел
odd() - должна возвращать массив всех нечетных чисел
Пример:
👉 @seniorFront
Расширьте встроенный класс Array следующими методами: square(), cube(), average(), sum(), even() и odd().
square() - должен возвращать копию массива, содержащую все значения, возведенные в квадрат.
cube() - должен возвращать копию массива, содержащую все значения, возведенные в куб.
average() - должен возвращать среднее значение всех значений массива; для пустого массива должно возвращать NaN
sum() - должен возвращать сумму всех значений массива
even() - должен возвращать массив всех четных чисел
odd() - должна возвращать массив всех нечетных чисел
Пример:
var numbers = [1, 2, 3, 4, 5];
numbers.square(); // must return [1, 4, 9, 16, 25]
numbers.cube(); // must return [1, 8, 27, 64, 125]
numbers.average(); // must return 3
numbers.sum(); // must return 15
numbers.even(); // must return [2, 4]
numbers.odd(); // must return [1, 3, 5]👉 @seniorFront
👍13❤2👎1
Чему могут научить пул реквесты в чужие проекты
В этой статье автор объясняет, как вам может помочь вклад в чужие проекты, так как это мощный способ совершенствоваться, помогать в этом другим. Умение писать грамотный и понятный код, знать тонкости игрового движка и языка программирования, налаживать общение в процессе работы – вот чему можно научиться в процессе. Главное – получайте удовольствие от проделанной работы!
👉 @seniorFront
В этой статье автор объясняет, как вам может помочь вклад в чужие проекты, так как это мощный способ совершенствоваться, помогать в этом другим. Умение писать грамотный и понятный код, знать тонкости игрового движка и языка программирования, налаживать общение в процессе работы – вот чему можно научиться в процессе. Главное – получайте удовольствие от проделанной работы!
👉 @seniorFront
👍2
Асинхронность в JS
Понятие асинхронности и синхронности
Синхронный код - это код, который выполняется последовательно, один за другим. Ничего сложного, просто пошаговое выполнение. Для примера, вот как может выглядеть синхронный код:
Асинхронный код в JavaScript выполняется в одном потоке, но не синхронно с основным потоком выполнения. Вместо того, чтобы блокировать выполнение основного кода, асинхронные операции обрабатываются в фоновом режиме. Это позволяет приложению продолжать свою работу без задержек, даже когда выполняются длительные операции, такие как запросы к серверу или обработка файлов. Таким образом, JavaScript обеспечивает отзывчивость приложений, не используя многопоточность, а полагаясь на механизмы асинхронного выполнения. Вот пример асинхронного кода:
Микрозадачи
Микрозадачи в JavaScript обычно связаны с асинхронными операциями, такими как промисы. Они добавляются в очередь микрозадач и выполняются после завершения текущего стека вызовов и перед следующим событием цикла событий или рендерингом браузера. Вот несколько примеров операций, создающих микрозадачи:
1. Разрешение или отклонение промиса с помощью методов .then(), .catch() и .finally().
2. Использование async/await в асинхронных функциях.
Давайте рассмотрим пример с использованием промисов:
Этот код создает две микрозадачи с помощью методов .then(). Заметьте, что они выполняются после основной задачи, несмотря на то, что они добавляются в очередь раньше.
Макрозадачи
Макрозадачи обычно связаны с более крупными операциями или событиями в JavaScript, такими как выполнение скриптов, обработка событий DOM или выполнение кода в таймауте. Вот несколько примеров операций, создающих макрозадачи:
1. Выполнение скрипта.
2. Обработка событий DOM.
3. Выполнение кода в таймауте с помощью setTimeout() или setInterval().
Рассмотрим пример с использованием setTimeout():
Этот код создает макрозадачу с помощью функции setTimeout(). Заметьте, что она добавляется в очередь после основной задачи и даже после микрозадач.
👉 @seniorFront
Понятие асинхронности и синхронности
Синхронный код - это код, который выполняется последовательно, один за другим. Ничего сложного, просто пошаговое выполнение. Для примера, вот как может выглядеть синхронный код:
console.log('Шаг 1');
console.log('Шаг 2');
console.log('Шаг 3');
Асинхронный код в JavaScript выполняется в одном потоке, но не синхронно с основным потоком выполнения. Вместо того, чтобы блокировать выполнение основного кода, асинхронные операции обрабатываются в фоновом режиме. Это позволяет приложению продолжать свою работу без задержек, даже когда выполняются длительные операции, такие как запросы к серверу или обработка файлов. Таким образом, JavaScript обеспечивает отзывчивость приложений, не используя многопоточность, а полагаясь на механизмы асинхронного выполнения. Вот пример асинхронного кода:
console.log('Шаг 1');
setTimeout(function() {
console.log('Шаг 2');
}, 2000);
console.log('Шаг 3');Микрозадачи
Микрозадачи в JavaScript обычно связаны с асинхронными операциями, такими как промисы. Они добавляются в очередь микрозадач и выполняются после завершения текущего стека вызовов и перед следующим событием цикла событий или рендерингом браузера. Вот несколько примеров операций, создающих микрозадачи:
1. Разрешение или отклонение промиса с помощью методов .then(), .catch() и .finally().
2. Использование async/await в асинхронных функциях.
Давайте рассмотрим пример с использованием промисов:
console.log('Начало');
Promise.resolve()
.then(() => console.log('Это микрозадача'))
.then(() => console.log('Это еще одна микрозадача'));
console.log('Конец');Этот код создает две микрозадачи с помощью методов .then(). Заметьте, что они выполняются после основной задачи, несмотря на то, что они добавляются в очередь раньше.
Макрозадачи
Макрозадачи обычно связаны с более крупными операциями или событиями в JavaScript, такими как выполнение скриптов, обработка событий DOM или выполнение кода в таймауте. Вот несколько примеров операций, создающих макрозадачи:
1. Выполнение скрипта.
2. Обработка событий DOM.
3. Выполнение кода в таймауте с помощью setTimeout() или setInterval().
Рассмотрим пример с использованием setTimeout():
console.log('Начало');
setTimeout(() => {
console.log('Это макрозадача');
}, 0);
console.log('Конец');Этот код создает макрозадачу с помощью функции setTimeout(). Заметьте, что она добавляется в очередь после основной задачи и даже после микрозадач.
👉 @seniorFront
👍14👎3🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Responsive Blog Card Slider
Вёрстка реализована на HTML и SCSS, а функционал слайдера при помощи библиотеки Swiper.
👉 @seniorFront
Вёрстка реализована на HTML и SCSS, а функционал слайдера при помощи библиотеки Swiper.
👉 @seniorFront
👍12❤4