Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Зачем нужен шаблон Render props в React?

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2K

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

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

Читать далее

Docker Compose: Фичи, которые ускорят вашу разработку

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров17K

Привет, Хабр! Меня зовут Александр, Системный администратор в компании Барс Груп Сегодня хочу поделиться своим опытом использования новых возможностей Docker Compose, которые значительно упростили мне работу. Эти изменения касаются автоматического обновления контейнеров, работы с профилями, использования GPU, а также улучшенного управления сборкой и секретами. На практике заметил, что эти фичи мало используются, и надеюсь, что после прочтения статьи, вы будете чаще использовать эти фичи в своей повседневной работе. Давайте разбираться!

Читать далее

Академический минимум js-разработчика: базовые концепции

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров12K

Приветствую всех! Меня зовут Рома, я разработчик в компании АйТи-Баланс. Хочу поделиться с вами своими знаниями и помочь разобраться в базовых концепциях, которые необходимы каждому новичку в мире JavaScript.

Идея этой статьи возникла из популярного репозитория на GitHub. Я немного адаптировал материал, дополнил его и выделил ключевые аспекты, чтобы сделать информацию максимально доступной и полезной.

Читать далее

Сколько памяти ест ваша вкладка

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров11K

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

Меня зовут Антон Непша. Я работаю в Сбере, разрабатываю сайт СберБанк Онлайн и веду Telegram-канал Антон Непша.js. Недавно я выступил на HolyJS с докладом о том, сколько ресурсов потребляют наши сайты, как эти ресурсы распределяются, где хранятся, и как связать информацию о них из снимка памяти с конкретным местом в своём коде.

Если смотреть видео вам удобнее, то доклад есть на YouTube и ВК Видео. В статье вас ждёт текстовый вариант и ссылки на используемые материалы:

Читать далее

Неизвестно полезный CSS. Часть 7

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6K


Привет, Хабр. Я продолжаю рассказывать про неизвестные широкому кругу разработчиков CSS фишки. Я отбираю их так, чтобы они были полезны в разного рода проектах. Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React приложение. Они поддерживаются большинством браузеров. Отдельно отмечу, что я не считаю IE11 современным браузером. По этой причине я не учитывал его.


Сегодня мы рассмотрим:

  • что вы можете не знать про псевдо-класс :not();
  • примеры работы псевдо-класса :has(), работающие по логике операторов ИЛИ и И;
  • как неожиданно может повыситься специфичность правила при использовании псевдо-класса :has();
  • чем полезно свойство user-select, кроме отмены выделения текста.

Больше не буду затягивать. Давайте посмотрим, что я вам подготовил.

Читать дальше →

Мемоизация в React: я почитал документацию вместо вас

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров26K

В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.  

Так как мы будем рассматривать не самые базовые вещи, касающиеся React, то я не буду останавливаться на таких основах как хуки, состояние, свойства, чистые функции и чистые компоненты, ожидая, что вы ознакомитесь с ними за пределами статьи. А также все рассмотренное ниже относится в первую очередь к React 18. 

Читать далее

90% разработчиков не понимают принцип инверсии зависимостей из SOLID. DIP — это не про абстракции

Время на прочтение4 мин
Количество просмотров57K

Зачастую, когда речь заходит про принцип инверсии зависимостей, можно услышать, что инверсия зависимостей (далее DIP) — это что-то там про зависимость от абстракций, и приводятся примеры, где в качестве «плохого» случая, используются конкретные классы, а в исправленном случае, используются абстрактные классы или интерфейсы. Но такая трактовка принципа в корне неверна.

Почему такая трактовка неверна и в чем же суть принципа — об этом и пойдет речь далее.

Читать далее

Почему джуны путаются в асинхронном коде (и как научиться с ним работать)

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров40K

Асинхронный код часто становится камнем преткновения для начинающих разработчиков. Почему функции выполняются не в том порядке, зачем нужны промисы, и что делает async/await? В статье я простыми словами объясняю:

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

Если асинхронность вызывает больше вопросов, чем ответов, загляните в статью - там всё по шагам. 🙂

Читать далее

Как я быстро превратил кладбище ссылок из сохраненок в садик полезностей

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров13K

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

Я прошел длинный путь от all-in-one инбокса в Evernote через plain-text систему в Obsidian c навешенными плагинами и сейчас использую простое решение с использованием ИИ которое кроме того что экономит массу времени так еще и позволило быстро разобрать старые завалы.

Но обо всем по порядку

Создание простой CRM на Next.js и Prisma для B2B

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров4.5K

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

На рынке представлено не так много распространённых CRM-систем для управления продажами, и в большинстве компаний мне приходилось работать именно с ними. В некоторых случаях я сталкивался с кастомными решениями, которые значительно упрощали жизнь пользователю благодаря удобному интерфейсу и гибкости. Поэтому на собеседованиях я часто задавал вопрос о CRM-системе компании. Разочарование наступало, когда выяснялось, что в компании используют "шаблонные" решения, которые не всегда соответствовали требованиям пользователей.

Ещё до того, как я начал заниматься разработкой, мне пришла идея поучаствовать в создании собственной CRM-системы и глубже погрузиться в процесс её разработки. Спустя несколько лет я начал заниматься веб-разработкой, и в какой-то момент понял, что даже небольшому бизнесу, где я работал, нужна CRM. Я пробовал использовать таблицы в Google Docs, тестировал триальные версии популярных CRM, но они были перегружены ненужной информацией и казались неудобными. Так что я решил создать что-то простое, что будет удобно мне и, возможно, другим.

В своей CRM я использую Next.js. Эта система не претендует на то, чтобы обслуживать тысячи пользователей, но она точно может решить задачи 1-2 небольших отделов продаж. У меня есть репозиторий на GitHub, и если кому-то это решение покажется интересным, его можно взять и доработать под свои задачи. В этой статье я постараюсь кратко описать текущий функционал, с какими трудностями я столкнулся и что удалось внедрить в качестве новых гипотез.

Читать далее

CI/CD для начинающих: деплой React-приложения без боли

Время на прочтение5 мин
Количество просмотров11K

Следующий шаг после разработки веб-приложения — размещение его на сервере. Независимо от сложности проекта или используемой инфраструктуры, общий процесс остается одинаковым: нужно «упаковать» код в CI/CD-конвейер и отправить на сервер. В тексте рассмотрим, как это происходит на примере простого приложения to-do list на React. Подробности под катом!
Читать дальше →

Next.js + Playwright. Как мы начали писать автотесты и что из этого вышло

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров5.6K

Привет! Меня зовут Данила, я фронтенд-тимлид в KTS.

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

Читать далее

Как из безголовой CMS сделать полноценную систему управления сайтом

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров6.8K

Всем привет! Я Леша Кузьмин, руководитель направления Frontend в AGIMA. В этой статье мы подробно рассмотрим безголовые CMS: какие тут есть подводные камни, как быть с архитектурой проектов, интеграциями и динамическими страницами. Посмотрим на управление сайтом не только со стороны разработчиков, но и контент-менеджеров. Бонусом пройдемся по SEO-производительности и настройке серверов.

Будет полезно разработчикам с опытом в Koa, Express, Strapi и частично React. Еще статья пригодится тем, кто любит копаться в документации — я покажу примеры, которые помогут с ней разобраться.

Читать далее

Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров67K

Проектирование REST API - это процесс создания дизайна методов обмена данными. Дизайн - это субъективное. У одних "так", у других "сяк". А кто прав? Иногда все, а иногда нет.

Можно ли сделать в проекте все методы POST? Как правильно именовать эндпоинты - ед. число или мн. число (/user или /users)? Можно ли использовать метод POST для получения данных? ...

Холиварные вопросы! Вкусовщина! Давайте разбираться!

Читать далее

File upload на React.js шаг за шагом

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров24K

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

Индикатор загрузки

Прерывание отправки

Drag and drop

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

Читать далее

Деплой приложения с nginx как по нодам

Время на прочтение10 мин
Количество просмотров23K

Привет, Хабр! В этом материале мы разберем деплой приложения на React, арендуем облачный сервер и настроим nginx. Здесь будет необходимый минимум для фронтенд-разработчика:

  • Заливка проекта на GitHub.
  • Аренда и настройка облачного сервера по SSH.
  • Настройка nginx для раздачи статических файлов.
  • Сжатие бандла.
  • Подключение домена.
  • Настройка HTTPS.
  • Настройка Docker.

Для этого материала также доступна видеоверсия.
Читать дальше →

Все что необходимо знать про key в React и даже больше

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров10K

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

Читать далее

useCallback в цикле? Мемоизация коллбеков для компонентов в массиве

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров3.8K

Приветствую, коллега! В нашей практике порой возникают ситуации, когда нужно создать список инпутов. Например, создаем инпут для фильтра по строкам. Должна быть возможность добавлять инпут, удалять существующие. Классические оптимизации тут не сработают, даже если будем использовать memo и useCallback, все равно все инпуты будут обновляться при каждом обновлении родителя. В этой статье разберем, как оптимизировать списки инптов, разберем 2 способа мемоизации колбеков, благодаря которым будет изменяться единственный инпут в массиве, а не все. Будем использование кеширование и паттерн event switch. Поехали!

Читать далее

Лучшая фантастика последних трех лет по версии Goodreads

Время на прочтение5 мин
Количество просмотров159K

GoodrGoodreads — пожалуй, главный книжный сайт англоязычного интернета. Недавно он составил список самых популярных фантастических книг за 2020-2023 годы, опираясь на мнение пользователей. К сожалению, на русский язык переведено далеко не все, однако даже те книги, которые уже можно прочитать в переводе, составляют внушительный список. Вот он.

Читать далее

Библиотека Frontend-разработчика, часть 2: Интернет-ресурсы

Время на прочтение4 мин
Количество просмотров11K

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

Ну, удиви

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность