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

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

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

5 типичных ошибок при создании React компонентов (с хуками) в 2020 году

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

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


Оригинальный материал был написан немецким разработчиком Лоренцом Вайсом для личного блога, а позже собрал много позитивных отзывов на dev.to. Переведено командой Quarkly специально для комьюнити на Хабре.


Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 38

Научите меня проводить собеседования

Время на прочтение 4 мин
Количество просмотров 41K
Так получилось, что за многолетнюю карьеру в IT я провел более 200 собеседований, нанял и вырастил большое количество профессионалов от инженеров по тестированию до архитекторов и менеджеров. Мне часто приходится давать советы по проведению собеседований своим сотрудникам, поэтому я решил обобщить свой опыт и заметки. В результате родилась статья, которую вы читаете.

В ней нет золотого грааля, как нужно нанимать лучших сотрудников, только здравый подход к проведению собеседований. Скорее всего статья будет полезна тем, кто только начинает собеседовать людей. Однако, принесет пользу и остальным, чтобы посмотреть со стороны на свой подход к проведению собеседований.
Читать дальше →
Всего голосов 60: ↑57 и ↓3 +54
Комментарии 263

Архитектурный паттерн Dependency Injection в React-приложении

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

Расшифровка доклада Сергея Нестерова с конференции FrontendLive 2020.

Привет! Меня зовут Сергей, уже больше двух лет я работаю в группе компаний Тинькофф. Моя команда занимается разработкой системы для анализа качества обслуживания клиентов в Тинькофф, и, как вы, наверное, догадались, мы используем React в своем приложении. Не так давно мы внедрили в свой проект архитектурный паттерн Dependency Injection совместно с IoC-контейнерами. Сделали мы это не просто так: это позволило нам решить ряд проблем, которые тормозили разработку нового функционала.

Читать далее
Всего голосов 34: ↑33 и ↓1 +32
Комментарии 48

Ржавеем дальше. Как появился Rust и можно ли на нём WEB?

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

Моя предыдущая статья про rust вызвала положительную реакцию и большое количество обсуждений о том что да как с rust. Мне исключительно приятно видеть что вам понравился этот материал.

В комментариях я встретил много вопросов типа «А можно ли использовать rust для WEB?» Лаконичный ответ таков: «Можно». Можно и brainfuck использовать, если хочется. Нужно ли? Скажем так, brainfuck для WEB использовать категорически не стоит. А вот rust – тут надо понимать что именно делает rust и каковы его цели. Для того чтобы это понять мы должны погрузиться в компилятор и разобраться в устройстве процессоров. Под катом вы найдёте глубокий заныр в историю того как появился rust и поймёте что это такое и когда его нужно использовать а когда можно и на «ноде запилить».

Ржавеем дальше и глубже...
Всего голосов 39: ↑34 и ↓5 +29
Комментарии 88

Разработка эффективного гибридного приложения

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

А помните ли вы свой первый мобильный телефон? Для меня это была Nokia 3310, неубиваемая «трубка», неустанно радовавшая меня скудным набором развлечений в виде игры в змейку, WAP и чудесных монофонических рингтонов. За последние тридцать лет индустрия шагнула далеко вперед. И это ещё мягко сказано: мобильные чипы приближаются по производительности к современным компьютерам, а две самые популярные на текущий момент системы — Android и iOS — предоставляют практически безграничные возможности для создания приложений на любой вкус.

Оплата по NFC, заказ такси буквально за пару свайпов, и даже тот же Instagram настолько плотно вошли в нашу жизнь, что необходимость создания мобильного клиента для своего бизнеса теперь уже не вызывает вопросов. Стандартом разработки в этом случае принято считать нативные приложения. Они работают плавно, имеют привычный пользователям UI и UX, а также доступ к разнообразным аппаратным возможностям смартфона и его операционной системы. Из основных недостатков этого подхода можно отметить необходимость иметь в штате выделенных iOS- и Android-разработчиков, возникновение сложностей в организации тестирования, и более длительный, по сравнению с web, релизный цикл. Нельзя забывать и про сегментацию: часть пользователей предпочитает оставаться на старых версиях приложения, старых версиях iOS и Android, обожают свои старые телефоны. Поэтому ненайденный в релизе баг, просочившись в сторы, напоминает землетрясение с долгим афтершоком.

Если у вас уже есть команда опытных мобильных разработчиков и налажен CI, то кажется, что выбор очевиден. Но зачастую бывают ситуации, когда время запуска функциональности в прод играет решающую роль, а постоянные обновления не идут на пользу репутации приложения. Хотя бы раз в жизни, каждый из нас брал кредит, или, по крайней мере, всерьез задумывался об этом. Обычно этот процесс включает в себя заполнение анкеты. Представим, что такая анкета есть у вас на сайте и в мобильном приложении. И вот банк решил освободить зарплатных клиентов от половины полей — это, безусловно, прекрасно, но влечет за собой изменения на сайте, а также в iOS- и Android-приложениях. Учитывая нашу асинхронность релизных циклов, а также возможность появления багов при обновлении, возникает риск получить три разные анкеты на неопределенный срок. А если подобные изменения нужно вносить часто?

Читать далее
Всего голосов 30: ↑26 и ↓4 +22
Комментарии 3

9 репозиториев, о которых должен знать каждый веб-разработчик

Время на прочтение 4 мин
Количество просмотров 21K
В наши дни GitHub — это универсальное хранилище всего, что связано с веб-разработкой. Фреймворки, демоверсии, всевозможные коллекции — вероятно, нет ничего такого, что вы не могли бы найти на GitHub. Однако в этом огромном количестве и заключается проблема. Есть классные вещи, о которых вы, вероятно, никогда не услышите просто потому, что репозиториев много. Сегодня, специально к старту нового потока курса по веб-разработке мы делимся подбокой некоторых из самых популярных репозиториев GitHub, о которых вы должны знать, каждый из которых имеет по крайней мере ~30 000 звёзд.

Приятного чтения
Всего голосов 50: ↑28 и ↓22 +6
Комментарии 5

Черная дыра прокрастинации: о чем не пишут в других статьях, и что на самом деле важнее всего

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


На волне последних прокрастинационных статей на Хабре у меня сложился пазл и я понял, что именно надо делать, чтобы выкарабкаться. Я обсудил это с двумя такими же, как и я, чемпионами по прокрастинации, одним предпринимателем, спортсменом и, кажется, нашел общий знаменатель.


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


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

Читать дальше →
Всего голосов 30: ↑28 и ↓2 +26
Комментарии 50

Производительность TypeScript

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

Есть лёгкие способы конфигурирования TypeScript для ускорения компиляции и редактирования. И чем раньше их внедрить, тем лучше. Также есть ещё некоторые популярные подходы к изучению причин медленной компиляции и редактирования, некоторые исправления и распространенные способы помочь TypeScript-команде в расследовании проблем.
Читать дальше →
Всего голосов 37: ↑37 и ↓0 +37
Комментарии 4

Проверка дочерних элементов передаваемых в мок React компонента

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

В преддверии старта курса «Автоматизация тестирования на JavaScript» продолжаем публиковать перевод серии полезных статей.

Это третья часть из серии о тестировании с React. В прошлой части мы рассмотрели базовый формат моков React компонентов.

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

Читать далее
Всего голосов 10: ↑6 и ↓4 +2
Комментарии 0

Я провёл более 600 технических интервью — и вот пять проблемных мест, которые я заметил у кандидатов

Время на прочтение 9 мин
Количество просмотров 49K
Недавно я провёл 600-е собеседование на interviewing.io (IIO). Хотелось бы поделиться опытом, рассказать, как я подхожу к интервью, и пролить свет на типичные проблемы у кандидатов. Каждый интервьюер на IIO индивидуален, поэтому ваши результаты могут отличаться. У нас на платформе сформировалось замечательное сообщество, где каждый работает над улучшением своих знаний, навыков и результатов интервью.

Пробное интервью на interviewing.io


Мы оцениваем людей по трём четырёхбалльным шкалам. Оценка «один» означает плохой результат, а «четыре» — очень хороший. Я обычно вначале даю кандидату три балла, а затем прибавляю/отнимаю очки по мере интервью.

Каждый интервьюер отдаёт предпочтение какому-то одному аспекту. Лично я проявляю некоторую предвзятость в сторону скиллов «общение» («коммуникация») и «решение проблем», которые мы обсудим ниже.
Читать дальше →
Всего голосов 62: ↑57 и ↓5 +52
Комментарии 47

Представьте — вам дали гору денег, но забрали программирование навсегда. Обрадуетесь? Что будете делать?

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

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

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

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

Теперь мне кажется — что это я на самом деле несчастен.

Читать далее
Всего голосов 184: ↑162 и ↓22 +140
Комментарии 462

Почему мы выбрали MobX, а не Redux, и как его использовать эффективнее

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

Меня зовут Назим Гафаров, я разработчик интерфейсов в Mail.ru Cloud Solutions. На дворе 2020 год, а мы продолжаем обсуждать «нововведения» ES6-синтаксиса и преимущества MobX над Redux. Существует много причин использовать Redux в своем проекте, но так как я не знаю ни одной, расскажу о том, почему мы выбрали MobX.

Почему?
Всего голосов 79: ↑75 и ↓4 +71
Комментарии 242

Оптимизация производительности фронтенда. Часть 2. Event loop, layout, paint, composite

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

Ночь. Стук в дверь. Открыть. Стоят двое. "Верите ли вы в Event loop, нашу главную браузерную цепочку?" Вздохнуть. Закрыть дверь. Лечь досыпать. До начала рабочего дня еще 4 часа. А там уже ивент лупы, лейауты и прочая радость…


В первой части мы говорили о первой загрузке и работе с ресурсами. Сегодня я расскажу о второй части оптимизации производительности фронтенда. О том, что происходит с нашей страницей, когда она загружена, на что уходит процессорное время и что с этим делать. Ключевые слова: event loop, paint \ repaint, layout \ reflow, composite.


Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 5

Перфоманс фронтенда как современное искусство: графики, код, кулстори

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

Всем привет. В предыдущих статьях мы говорили о базовых вещах оптимизации: раз и два. Сегодня я предлагаю с разбега окунуться в одну часть из тех задач, которыми занимается команда архитектуры фронтенда в hh.ru.


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


  • Перфоманс приложения
  • Инфраструктура: сборка, тесты, пайплайны, раскатка на продакшене, инструменты для разработчика (например бабель-плагины, кастомные eslint правила)
  • Дизайн-система (UIKit)
  • Переезд на новые технологии

Если покопаться, можно найти много интересного.


Поэтому, давайте поговорим о перфомансе. Команда фронтенд архитектуры ответственна как за клиентскую часть, так и серверную (SSR).


Я предлагаю посмотреть на метрики и разобраться, как мы реагируем на различные триггеры. Статья будет разбита на 2 составляющие. Серверную и клиентскую. Графики, код и кулстори прилагаются.


Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 6

Бесплатные онлайн-мероприятия по разработке (15 сентября – 23 сентября)

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

Нажимайте на интересующую вас тему и откроется подробная информация о мероприятии.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Да хватит уже делать плохие митапы

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

К сожалению, как и до карантина, на 70% этот водоворот состоит из кала.

Побывав на очередном time-waste мероприятии и в очередной раз поразившись, как организаторам удаётся так самоотверженно игнорировать все принципы модерации и здравого смысла, я понял, что не могу молчать.

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

Вот они.
Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Комментарии 9

Медленный код — вообще не проблема, если ты знаешь как его ускорить. Главное красиво

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


Я много раз слышал, как программисты смеются над тиммейтами, которые написали медленный код. Резкие, самодовольные фразы в стиле "этот болван четыре раза пробежался по коллекции, хотя можно было один", и тому подобное. Когда слышишь такое, сразу думаешь — ну тут все по делу, зачем делать лишние итерации? Почему нельзя изучить пару элементарных вещей, вроде принципов работы LINQ выражений в C#, и писать нормальный код? Ты смеешься над некомпетентными тупицами до тех пор, пока смеяться не начнут над тобой. И можете мне поверить — никакие знания в программировании не спасут вас от ситуации, когда вы по незнанию зафигачили квадратичный алгоритм вместо линейного.

Читать дальше →
Всего голосов 117: ↑91 и ↓26 +65
Комментарии 189

Геймдев и кризис

Время на прочтение 6 мин
Количество просмотров 3.9K
Наверное многие уже успели заметить эту тревожную тенденцию… падение прибыли, потеря платящих игроков, уменьшение покупок и среднего чека. А обратив внимание начали читать метрики на предмет — «Что же мы сделали не так? Почему игроки уходят? Может логика стала кривой или кнопка перехода не нажимается, может мы чем-то обидели игроков?». После разбора полётов картина не становится яснее, 10 лет небольшие колебания но стабильные цифры и тут вдруг… бац и крутое пике!
Читать дальше →
Всего голосов 7: ↑3 и ↓4 -1
Комментарии 4

Советы руководителю от руководителя

Время на прочтение 11 мин
Количество просмотров 112K
Привет, Хабр! Я управляю командами разработки уже 10 лет.

Недавно меня попросили поделиться на внутренней конференции «секретами управления» с другими руководителями. Поводом стала низкая текучка в моём подразделении и здоровый дух внутри команды — так было на всех моих работах. Я отказался, сославшись на то, что не делаю для этого ничего особенного. Сработала внутренняя установка «не будь выскочкой».

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

Поэтому выключаю тумблер «не будь выскочкой» и делюсь «секретами».



Тут не будет стандартных «делегируй», «налаживай процесс», «стой в правильной позе на стендапе» — об этом написано уже достаточно. Будет о другом.
Читать дальше →
Всего голосов 155: ↑152 и ↓3 +149
Комментарии 201

На смену Data Science. HASH: бесплатная онлайн-платформа для моделирования мира (от создателя StackOverflow)

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

Джоел Спольски


Иногда, когда вы пытаетесь понять, как устроен мир, базовой математики достаточно. Если мы увеличим поток горячей воды на x, температура смеси повысится на y.

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

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

Вот что такое hash.ai. Прочитайте пост о запуске в блоге Дэвида, а затем попробуйте создать свои собственные симуляции!
Всего голосов 17: ↑10 и ↓7 +3
Комментарии 4

Информация

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