Как стать автором
Обновить
27
0
Павел @Paveldpv

Семоучка

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

Zustand в React

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

Управление состоянием в React — один из самых важных моментов при разработке приложений. Многие начинают с useState и useReducer, но со временем понимают, что для глобального состояния нужно что-то более мощное. Здесь хорошо подойдут Redux, MobX, Recoil и, конечно, Zustand.

Zustand (читается «цуштанд», в переводе с немецкого — «состояние») — это простая и мощная библиотека для управления состоянием в React, которая решает проблемы существующих решений.

Читать далее

Пять нужных кастом-хуков для React

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

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

Трудно представить код современного React-приложения без таких функций как useState, useEffect, useRef и так далее.

Однако, в повседневной жизни мы часто решаем рутинные задачи, многие из которых могут быть автоматизированы.

Создание кастом-хуков это прекрасная возможность выделить часто переиспользуемый код в отдельные сущности.

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

Ниже мы рассмотрим примеры некоторых из них.  

Читать далее

Самая важная компания китайского автопрома (и это не BYD)

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

Когда речь заходит про китайский автопром, обыватели вспоминают Geely, Chery, Haval, GAC, Zeekr, Li Xiang и другие чайнамарки, популярные на наших дорогах. Кто шарит чуть лучше - вспомнит про NIO, XPeng, Aito а также классическую китайскую "Большую четверку" (Dongfeng, FAW, SAIC и Changan). Совсем эксперты расскажут про Denza, Wuling, Deepal, YangWang и Leopard. Но про реального "серого кардинала" китайского автопрома не вспомнит почти никто. Хотя без него не было бы никакого китайского автомобильного чуда.

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

Читать далее

Проводим идеальное собеседование разработчика. Советы от практика с тысячей собеседований за спиной

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

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

Тестовое задание

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

Собеседование

Сколько человек должно проводить собеседование? Оптимально 3-5. Один интервьюер может что-то упустить, а вот группа сможет задать вопросы с разных точек зрения.

Читать далее

Одна React-задача, демонстрирующая ключевые навыки на собеседовании

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

Как всего одна небольшая React-задача помогает глубже понять уровень кандидата на собеседовании? Разбираем нюансы работы с хуками, асинхронностью, состоянием гонки и сайд-эффектами. На первый взгляд задача кажется простой - всего лишь компонент, загружающий данные по username. Но в процессе решения выявляются ключевые моменты: правильно ли кандидат управляет состоянием, учитывает ли смену пропсов, обрабатывает ошибки и предотвращает race conditions. Этот вопрос помогает не просто проверить знания, а увидеть, как кандидат рассуждает и принимает технические решения.

Читать далее

React Context

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

Всем привет! Меня зовут Андрей, я Frontend разработчик. На данный момент работаю на фрилансе. Имею достаточно хороший опыт работы с React.

Хочу рассказать, что такое React Context и как это можно использовать в проектах.
Попробую всё рассказать как можно проще.

Читать далее

Как организовать библиотеку книг в Obsidian

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

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

Читать далее

Рецепты TypeScript: простое тестирование типов

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

Привет, это снова Костя из Cloud.ru! В своих последних статьях я делился рецептами довольно сложных типов. Например, рассказывал, как преобразовывать ключи объектов из snake_case в camelCase. Давайте представим, что вы воспользовались одним из таких рецептов. Как его поддерживать? И что скажет ревьюер, увидев такой код?

Сегодня в меню не блюдо, а ложка — покажу, как можно надежно тестировать типы и не бояться их менять, если это нужно.

Взять ложку

Прототипы в JS и малоизвестные факты

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

Лирическое вступление 


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


Оказалось, что есть много неочевидных вещей из старых времён ES5 и даже ES6, о которых я не слышал. А еще оказалось, что вывод консоли браузера может не соответствовать действительности.

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

Рецепты TypeScript: перевод ключей объекта в camelCase

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

Всем привет! С вами снова Костя Логиновских — ведущий разработчик из Cloud.ru. Я уже делился TypeScript-рецептами в предыдущих статьях — вот первая и вторая — и теперь хочу рассказать про еще один. Наши рецепты — это готовый код, который можно применить в конкретных ситуациях, а в некоторых случаях и подогнать ситуацию под код.

Сегодня в меню — функция на обычном TypeScript, которая преобразует тип объекта так, чтобы все ключи внутри него из snake_case стали camelCase. Жду всех под катом!

Смотреть рецепт

Типизация свойства объекта в виде строки

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

Все так или иначе сталкивались с функцией или методом, который принимает объект и свойства в виде строки с которым нужно что-то сделать. Пример:

updateDate(user, "date");

И когда изменяется свойства объекта (user.dateuser.birthday), компилятор его нормально скомпилирует и мы лишаемся возможности отловить баг на стадий разработки.

Решить проблему

Книга: «Рецепты TypeScript»

Время на прочтение6 мин
Количество просмотров5.5K
image Привет, Хаброжители!

«Рецепты TypeScript» Стефана Баумгартнера – книга из серии «книг рецептов» O’Reilly. Такое название серии объясняется структурой этих книг: вместо бесконечных теоретических выкладок, сквозь которые продираться не то что нелегко, а попросту скучно, авторы предлагают погружаться в материал через «рецепты» – примеры реальных задач, которые сопровождаются лаконичными и понятными решениями и их подробным обсуждением – того, как автор к ним пришёл и почему они являются действенными. В этот ряд «поваренных книг» вписывается и та, о которой мы поговорим сегодня.
Читать дальше →

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

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


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

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

Как найти хорошую работу в IT? Лучшие каналы и практики поиска в 2024 году

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

Последнее время всё чаще, когда речь заходит о карьере, говорят о том как правильно составить CV, презентовать себя, написать сопроводительное. Это безусловно база, без этого никак. 

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

Посмотрим глазами нанимающего, как это работает.

Читать далее

Разворачиваем приложение Next.js с базой данных PostgreSQL и задачей Cron на облачном сервере Ubuntu Linux

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


Привет, друзья!


Предположим, что у нас есть приложение Next.js, данные которого хранятся в Postgres, и мы хотим запустить его в продакшн, но не хотим использовать готовую инфраструктуру Vercel. Что делать? Создать собственную инфраструктуру. К счастью, сделать это не так уж и сложно.


Основные элементы нашей системы:


  • приложение, демонстрирующее несколько мощных возможностей Next.js 15
  • база данных Postgres для хранения списка задач, создаваемых/удаляемых в приложении
  • задача Cron для удаления из БД всех задач каждые 10 мин
  • приложение, БД и задача Cron функционируют в контейнерах Docker
  • контейнеры запускаются с помощью Docker Compose на облачном сервере Ubuntu
  • сервер Nginx для перенаправления запросов HTTP (обратного проксирования)
  • домен, привязанный к серверу
  • Certbot для получения сертификата SSL из Let's Encrypt и его установки для домена

Демо приложения.


Интересно? Тогда прошу под кат.

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

В чем польза мок-собеседований?

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

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

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

Читать далее

Разбираемся с FSD — самой надёжной архитектурой для фронтенда

Время на прочтение7 мин
Количество просмотров79K
image

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

Вот почему в этой статье мы хотим рассказать вам об архитектуре FSD (Feature-Sliced Design, дословно «послойное проектирование фич»), одной из самых современных, надёжных и спроектированной специально для фронтенд-проектов. Она подходит почти для любых бизнес-условий, позволяет решать повседневные проблемы и интуитивно понятна разработчикам-новичкам.

В данной статье мы разберём основы этого подхода и сообщим вам необходимый минимум знаний, позволяющий с ней работать. Конечно же, в конце статьи мы добавим ссылку на оригинальную документацию. Довольно слов, начнём!
Читать дальше →

8 инструментов для разработчиков, которые стоит попробовать

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

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

Читать далее

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

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

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

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

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

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

Читать далее

Экспорт данных из базы данных в Excel на C#: 5 проверенных методов

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

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

В этой статье я расскажу о пяти уникальных подходах к экспорту данных из базы данных MySQL в файл Excel, используя различные библиотеки C# Excel. Я также приведу краткое сравнение этих библиотек, подчеркнув их особенности, производительность, цену и другие важные моменты.

Читать далее

Информация

В рейтинге
7 217-й
Откуда
Сасово, Рязанская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Фронтенд разработчик, Фулстек разработчик
JavaScript
React
TypeScript
Redux
CSS
Адаптивная верстка
БЭМ
SCSS
Sass
Express