True Frontender
1.01K subscribers
143 photos
7 videos
89 links
Сборная солянка про фронтенд.

JavaScript, React, TypeScript, HTML, CSS — здесь обсуждаем всё, что связано с веб-разработкой!

Связь: @pmowq
Download Telegram
Channel created
Фронтенд-разработка - всего лишь одно из многочисленных окон в мире информационных технологий. Это место, где технологии и креативность сливаются вместе, чтобы создать интерфейсы, которые захватывают внимание и приковывают нас к экранам. Однако, ступив в эту область, мы погружаемся в космос возможностей, где фронтенд лишь начало.
IT-сфера не только про код и дизайн. Здесь важны навыки аналитики, коммуникаций, а ещё - способность работать в команде, управлять проектами и постоянно учиться чему-то новому.
В этом канале мы будем рассматривать не только технические аспекты фронтенд-разработки, но и всё что поможет в карьере
1
Ключевые аспекты для качественного кода

Программирование, как искусство, требует не только умения написать работающий код, но и создать его таким образом, чтобы другие разработчики могли легко понять, модифицировать и поддерживать. Один из ключевых аспектов, влияющих на читаемость и поддерживаемость кода, - это использование правильного код-стиля и грамотное именование переменных.

Почему это важно?
Правильный код-стиль и именование переменных не только делают код более приятным для чтения, но и упрощают его поддержку и развитие в долгосрочной перспективе. Когда проект становится большим и в нем работает команда разработчиков, соблюдение стандартов код-стиля становится необходимостью, чтобы обеспечить единообразие и понятность внутри проекта.

Основные рекомендации:
Соблюдение соглашений:
Каждый проект имеет свою уникальность, и установка общепринятых правил по стилю кода - важный шаг для обеспечения единообразия и удобства для всей команды разработчиков. В случае отсутствия установленных соглашений, внедрение их становится необходимостью для создания структурированного и понятного кода. Следование этим правилам значительно улучшает читаемость и понимание кода всеми участниками проекта.

Отступы и форматирование: Правильное использование отступов, пробелов и переносов строк - это ключевой аспект создания чистого и легко читаемого кода. Группировка кода по семантическим блокам с помощью отступов улучшает его структурированность, делая его более наглядным для всех членов команды. Добавление пустых строк между логическими блоками кода способствует его визуальной организации, что улучшает восприятие кода.

Именование переменных: Информативные и понятные названия переменных являются важной составляющей понимания кода без необходимости излишних комментариев. Понятные имена переменных помогают описать их предназначение и контекст использования, что значительно облегчает понимание кода всем членам команды разработчиков. Имена переменных должны быть осмысленными и точно передавать информацию о хранящихся данных или их назначении.

Общие соглашения, чистое форматирование и понятные имена переменных являются фундаментальными принципами написания чистого и понятного кода. Их соблюдение способствует эффективной командной работе и облегчает поддержку кода в будущем.

#codestyle
1👍1
Условный рендеринг в React

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

Первый способ - это применение тернарного оператора внутри JSX для условного вывода:

const ExampleComponent = ({ isLoggedIn }) => {
return (
<div>
{isLoggedIn ? <LogoutButton /> : <LoginButton />}
</div>
);
};

Этот метод прост в использовании, особенно для простых условий рендеринга.

Второй способ - использование функций рендеринга для условного вывода контента:

const ExampleComponent = ({ isLoggedIn }) => {
const renderButton = () => {
if (isLoggedIn) {
return <LogoutButton />;
} else {
return <LoginButton />;
}
};

return (
<div>
{renderButton()}
</div>
);
};

Этот подход удобен для более сложной логики рендеринга или в случае необходимости работы с множеством условий. Он также применим для рендера с использованием конструкции switch-case.

Использование функций рендеринга может быть предпочтительным при сложной логике или обработке множества условий. В отличие от тернарных операторов, функции рендеринга выделяют логику в отдельные блоки, делая код более читаемым и структурированным. Этот подход также способствует повторному использованию кода и улучшает модульность.

#codestyle #react
3
Поговорим о деструктуризации пропсов в React!

Использование деструктуризации пропсов - это не только средство для улучшения кода, но и практика, которая способствует созданию более чистого и эффективного React-приложения.

Преимущества деструктуризации пропсов:
1) Используя деструктуризацию, вы уменьшаете количество повторяющегося кода и делаете компоненты более компактными и понятными.
2) Путешествие через пропсы становится короче и понятнее. Вместо
props.someValue
мы сразу используем
someValue
, делая код более читаемым.
3) Деструктуризация пропсов позволяет лучше понимать, какие именно данные используются в компоненте, что упрощает чтение кода разработчикам

#codestyle #react #javascript
3
Краткость – сестра таланта!

Короткий код - это как искусство: он красив, эффективен и легок для восприятия. Однако, за стремлением сделать код более компактным иногда теряется его читаемость и понимаемость. В программировании особенно важно находить баланс между краткостью и понятностью.
Применение сокращенных форматов может существенно уменьшить объем кода. Однако, краткий код не всегда ясен.

Возвращаясь к коду через какое-то время, может быть сложно вспомнить, что именно этот код делал, если он был излишне укорочен и не содержал понятных имен переменных и функций. Однако, хорошо структурированный код с информативными именами помогает легче восстановить его цель и функционал после некоторого времени.

Таким образом, важно стремиться к созданию кода, который не только компактен, но и понятен для всех, кто будет взаимодействовать с ним в будущем. Это поможет облегчить его поддержку и расширение в долгосрочной перспективе

В первую очередь, мы пишем код для людей.

#codestyle
3
Принцип единой ответственности в программировании

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

Функция должна выполнять конкретную задачу и не предпринимать никаких дополнительных действий, не связанных с её первоначальным назначением. Разделение функционала на более мелкие функции с узкоспециализированными задачами делает код более читаемым, поддерживаемым и легко тестируемым.

Соблюдение принципа единой ответственности является важной практикой в разработке. Разделяя функционал на отдельные функции, каждая из которых отвечает за одну задачу, разработчики создают более чистый, понятный и легко управляемый код. Это способствует повышению качества программного продукта и облегчает его развитие в будущем

#patterns
41
Фишки JavaScript, которые определенно стоит использовать

JavaScript обладает особенностями, которые могут улучшить ваш код и сделать его более читаемым и компактным. В этой статье мы рассмотрим три особенности, которые могут значительно облегчить жизнь разработчика.

1. Дефолтное значение при деструктуризации
JavaScript позволяет устанавливать значения по умолчанию при деструктуризации объектов или массивов, что делает код более гибким.

2. Оператор нулевого слияния
Оператор нулевого слияния (??) помогает удобнее работать с null или undefined, возвращая первое значение, которое не является ни null, ни undefined.

3. Оператор нулевого присваивания
Оператор нулевого присваивания (??=) предоставляет удобный способ присваивания значения переменной только в том случае, если переменная имеет значение null или undefined.

Эти фишки помогают сделать код более лаконичным, чистым и менее подверженным ошибкам.

#javascript
3🔥2
О качественном Code Review

Разработка не обходится без код-ревью, однако достижение идеальности MR становится спорным вопросом среди разработчиков. В этой статье разберем, что хороший MR не обязательно должен быть идеальным. Также узнаем ключевые аспекты, на которые стоит обращать внимание в процессе ревью.

-> Читать полную статью

#codereview
3👍1🔥1
Мы часто слышим о функциях высшего порядка, но не всегда осознаем их суть, и многие даже не подозревают, что работают с ними каждый день.

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

Например, функции map, filter и reduce в JavaScript являются функциями высшего порядка. Их использование значительно повышает читаемость и модульность кода, делая его более поддерживаемым и понятным.

Простыми словами, функции высшего порядка — это инструмент, позволяющий обрабатывать функции так же, как и любые другие данные в JavaScript. Они открывают новые возможности для создания гибких и мощных программ, позволяя работать с функциями как с обычными элементами данных.

На прикрепленном изображении с кодом repeatOperation — это функция высшего порядка, которая принимает функцию operation в качестве аргумента и использует ее для выполнения действий определенное количество раз (numTimes).

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

#javascript
🔥31
В этой статье мы рассмотрим несколько ключевых вопросов, с которыми часто сталкиваются кандидаты на позицию frontend-разработчика.

Мы рассмотрим:
- Разницу между var, let и const
- Добавлением методов в прототип
- Базово про Event Loop
- Что такое каррирование с примером
- Что такое this и как он работает
- Бонусом вопрос для React разработчиков про возможность передать async функцию в useEffect

-> Читать полную статью

#interview #javascript
4👍3
Семантика в HTML

Семантика часто недооценивается, но имеет огромное значение для структурирования контента и улучшения восприятия страницами поисковыми системами и устройствами.

Что такое семантика в HTML?
Семантика в HTML – это использование элементов и тегов для правильного описания структуры информации на веб-странице. Это помогает браузерам, поисковым системам и адаптивным устройствам понимать, как связан контент страницы.

Основные семантические элементы HTML:
<header>: Заголовок страницы или раздела
<footer>: Нижняя часть страницы, часто содержит контактную информацию или ссылки на социальные сети
<nav>: Навигационные ссылки
<main>: Основное содержимое страницы
<article>: Независимый контент, такой как пост в блоге или новость
<section>: Группировка связанных контентных элементов
<aside>: Боковая панель, часто содержит дополнительную информацию
<p>: Параграф текста
<h1> - <h6>: Заголовки различного уровня
<strong>: Выделение важного текста семантически важным образом
<em>: Курсивное выделение текста для придания эмоциональной или ударной ноты
<blockquote>: Цитаты
<q>: Короткие цитаты

Преимущества использования семантической разметки:
Улучшение доступности: Правильная семантика помогает людям с ограниченными возможностями лучше понимать содержимое страницы
SEO-оптимизация: Поисковые системы предпочитают страницы с правильной семантикой, что может улучшить их рейтинг
Поддержка в будущем: Правильная структура облегчает дальнейшую поддержку и модификацию страницы

Лучшие практики:
- Используйте семантику по назначению
- Избегайте излишнего вложенного уровня
- Тестируйте доступность вашего контента

Семантика в HTML – это ключевой элемент в создании доступных, оптимизированных и легко поддерживаемых веб-страниц. Помните о ее значимости при разработке каждого проекта!

#html
6👍2👎1
Чистые функции в JavaScript: Путь к предсказуемому коду

В JavaScript функции играют важную роль. Одной из ключевых концепций, которые помогают создавать более надежный и понятный код, являются чистые функции.

Чистая функция в JavaScript - это функция, которая при вызове возвращает результат и не имеет побочных эффектов на внешние переменные или состояние программы. Она зависит только от переданных аргументов и не изменяет внешние переменные или состояние программы.

Основные характеристики чистых функций:
Предсказуемость
: Чистые функции всегда возвращают одинаковый результат для одних и тех же аргументов, что делает код более предсказуемым и легче тестируемым.
Отсутствие побочных эффектов: Они не изменяют состояние программы или внешние переменные, что способствует избеганию неожиданных проблем.
Иммутабельность: Чистые функции обычно используются с неизменяемыми данными, что упрощает отладку и обеспечивает более безопасное программирование.

Преимущества использования чистых функций:
Тестируемость
: Чистые функции легче тестировать, поскольку результат их работы зависит только от входных данных.
Предсказуемость кода: Благодаря отсутствию побочных эффектов код становится более предсказуемым и легче поддерживаемым.
Более простое масштабирование: Использование чистых функций упрощает масштабирование кодовой базы и снижает вероятность ошибок при изменениях.


Чистые функции являются важной концепцией функционального программирования, которая способствует созданию надежных и предсказуемых программ на JavaScript. Использование чистых функций помогает улучшить читаемость кода, его тестируемость и обеспечить более безопасное программирование.

#javascript
👍53🔥2
Вы знали про метод at() в JavaScript?

Когда дело доходит до работы с массивами в JavaScript, один из методов, который может оказаться весьма удобным, - это at()

Что это за метод?
at() - это метод, который получает элементы массива по их индексам. Он позволяет не только обращаться к элементам массива по положительным индексам, но и извлекать элементы с конца массива, используя отрицательные индексы.

Что если элемент не найден?
Если метод at() обратится к индексу за пределами массива или с отрицательным значением, которое выходит за его длину, он вернет undefined. Это удобно, так как избавляет от возможных ошибок и обрабатывает ситуации, когда элемент не существует по указанному индексу.

Почему это полезно?
Использование метода at() улучшает читаемость кода, предоставляет явный способ извлечения элементов массива, что облегчает понимание кода.
Также, возможность работы с отрицательными индексами позволяет легко извлекать элементы с конца массива без необходимости вычисления длины массива.

Когда следующий раз будете работать с массивами, обратите внимание на метод at()

#javascript
🔥63👀2
Часто ли вы прибегаете к использованию useMemo? В этой статье мы рассмотрим, когда и как правильно применять хук useMemo.

-> Читать статью

#react
👍32👏1
Вспомним про Lodash

Lodash — это библиотека, разработанная для облегчения работы с данными в JavaScript, предоставляющая множество полезных методов для обработки массивов, объектов, строк и других типов данных. В этой статье мы рассмотрим ключевые причины, почему использование Lodash может оказаться удобным и выгодным решением для вашего проекта.

Вот несколько ключевых причин, почему его использование может быть выгодным:

Кросс-браузерная совместимость и производительность: Одним из главных преимуществ Lodash является его способность обеспечивать стабильную работу кода на различных браузерах и платформах. Библиотека оптимизирована для повышения производительности и эффективной обработки данных, что позволяет избежать различных проблем совместимости и улучшить пользовательский опыт.

Удобство и чистота кода: Использование методов Lodash позволяет писать более чистый и читаемый код. Многие функции библиотеки сокращают количество строк кода, необходимых для выполнения определенных операций, что делает код более понятным и легким для поддержки.

Безопасность и надежность: Lodash предоставляет методы для обработки данных, минимизируя риски ошибок и предотвращая проблемы с типами данных.

Расширенные возможности: Возможности Lodash включают в себя не только базовые операции, но и продвинутые функции для работы с коллекциями, мемоизации, работой с функциями и многое другое.

Эта библиотека является мощным инструментом, способным значительно упростить и улучшить ваш код, однако решение об его использовании остается за вами.
3👍2🔥1
В некоторых проектах я встречал, что разработчики привыкли оборачивать любые функции в useCallback. Но имеет ли это смысл? Давайте разберемся, когда такая практика оправдана.

-> Читать статью

#react
👍5👀31
Игры для изучения CSS: Интерактивные инструменты для освоения Flexbox, Grid и CSS-селекторов

- Flexbox Defense - это игра, в которой вы используете свойства Flexbox для защиты башни от врагов. Это не только полезно, но и интересно.

- Flexbox Froggy - в этой интерактивной игре игроки решают задачи, перемещая элементы так, чтобы они соответствовали определенным ячейкам. Отличный способ погрузиться в мир Flexbox с помощью визуального представления и интерактивной практики.

- Grid Garden - аналогичная "Flexbox Froggy" игра, но ориентированная на освоение принципов работы с сеткой Grid в CSS. Отличный способ узнать о возможностях Grid и посмотреть его на практике.

- CSS Diner - интерактивная игра, в которой вы "пообедаете" селекторами CSS, выбирая правильные элементы на странице. Это отличный способ улучшить понимание различных CSS-селекторов и их применения.

Эти игры не только делают процесс изучения CSS увлекательным, но и позволяют применить знания на практике. Они предлагают интерактивный подход к обучению, что делает усвоение информации более запоминающимся и эффективным. Использование таких игр как инструментов обучения может существенно ускорить процесс освоения CSS.

#css
🔥52👍2
В современной веб-разработке хранение данных в браузере играет огромную роль. На клиенте мы храним: токены авторизации, данные связанные с действиями пользователя и многое другое. Давайте вспомним/рассмотрим основные варианты для хранения данных в браузере.

-> Читать статью

Интересный опыт из моей практики: однажды я случайно очищал сессию каждого пользователя, заходившего на определенную страницу. Это произошло из-за перепутанных методов clear и removeItem 😅

#javascript
👍42🔥2