На самом деле я писал возможно самую медленную функцию мемоизации, да получилась быстрая. Моей вины тут нет. Все дело в балансе.
В балансе между тем насколько долго будет исполнятся мемоизируемая функция, сколько дополнительного времени потребует сахар мемоизации, и (про это все забывают) сколько програмистов потребуется, чтобы эту мемоизацию правильно прикрутить.
Но начнем с простого — что же это за слово такое странно — «мемоизация».
Читать полностью »
Рубрика «ReactJS» - 36
Как я написал самую быструю функцию мемоизации
2018-03-06 в 0:35, admin, рубрики: javascript, memoization, optimization, ReactJS, redux, Клиентская оптимизация, ненормальное программированиеМодульное тестирование react компонетнов withRouter (jest, enzyme)
2018-03-05 в 13:51, admin, рубрики: airbnb, enzyme, javascript, jest, node.js, nodejs, ReactJS, веб-дизайн, Разработка веб-сайтовПри разработке модульных тестов для react компонента, обернутого в вызов withRouter(Component) столкнулся с сообщением об ошибке, что такой компонент может существовать только в контексте роутера. Решение этой проблемы очень простое и не должно по идее вызывать вопрсов. Хотя почему-то ссылки на документацию https://reacttraining.com/react-router/web/guides/testing Google упорно отказывался выдавать. Меня это совсем не удивляет, т.к. документация написано как чистое SPA-приложение без всякого там SSR и с точки зрения поисковой машины выглядит вот так:

Кому достаточно документации может на этом закончить чтение. А для себя я сделаю несколько заметок под катом.
Читать полностью »
Тестирование компонентов React
2017-12-21 в 12:39, admin, рубрики: Cosmos, React, ReactJS, Блог компании RUVDS.com, Разработка веб-сайтов, тестирование, Тестирование веб-сервисовОвидиу Черешес, автор статьи, перевод которой мы сегодня публикуем, написал тысячи тестов пользовательских интерфейсов. Он говорит, что тестирование должно вселять в разработчика уверенность в том, что его программы работают именно так, как он ожидает, и, в том, что они продолжат делать своё дело и после того, как их модифицируют и расширяют. Однако, тестирование пользовательских интерфейсов редко даёт уверенность. Вместо этого оно часто ведёт к разочарованиям и к мыслям о непродуктивности программистского труда.

Он говорит, что поднимает вопрос тестирования интерфейсов, написанных на React, так как сталкивался с характерными для этого процесса проблемами за годы до широкого распространения этого фреймворка, и потратил на их решение уйму времени. Он думает, что ему удалось подобрать инструменты и методы работы, которые позволяют сделать тестирование компонентов React столь же простым, как и их создание.
Он начнёт рассказ с двух базовых принципов, понимание которых важно для нахождения правильного подхода к тестированию, далее будут даны примеры и представлен один полезный инструмент, способный значительно облегчить жизнь тем, кому приходится тестировать React-приложения.
Читать полностью »
Топ-10 библиотек для React на GitHub
2017-12-19 в 11:51, admin, рубрики: javascript, React, ReactJS, библиотеки, Блог компании RUVDS.com, Веб-разработка, Разработка веб-сайтовКак искать хорошие инструменты для разработки веб-проектов? Один из способов поиска заключается в анализе статистики проектов из интересующей вас сферы на GitHub. Если, например, некая библиотека пользуется популярностью, то это, по меньшей мере, говорит о том, что на неё стоит взглянуть. Вполне возможно, что одна из таких библиотек окажется именно тем, что вам нужно.
Библиотека React, созданная Facebook, представляет собой мощный JavaScript-фреймворк, упрощающий работу программистов, занимающихся веб-разработкой. Однако, если вы работали какое-то время с React JS, вы согласитесь с тем, что для того, чтобы в полной мере раскрыть возможности этого фреймворка, не помешает ещё несколько дополнительных библиотек.
Автор материала, перевод которого мы сегодня публикуем, говорит о том, что из опыта знает о важности опенсорсных проектов в деле веб-разработки. Однако, из-за того, что на GitHub присутствует очень много библиотек для React, программисты оказываются избалованы выбором. Поэтому было бы неплохо сузить рассматриваемые варианты до буквально нескольких проектов. Перед вами — обзор первой десятки самых популярных библиотек для React с GitHub, ранжированных по количеству присвоенных им звёзд.
Читать полностью »
Решение проблемы конфликтов имен CSS классов в приложении на React с помощью webpack лоадера
2017-12-18 в 12:50, admin, рубрики: css, javascript, loaders, ReactJS, webpackПриветствую вас, друзья!
Началось всё с того, что я замыслил разработать кое-что так сказать для души. React приложение должно было рендериться поверх чего-то другого, например какого-то сайтика, встал вопрос того, что возможны конфликты CSS классов моего приложения с уже существующей инфраструктурой, ну я конечно же пришел к выводу, что нужно внедрить префиксы для каждого даже самого захудалого класса, ну или оборачивать все определения в класс моего главного контейнера, я все же выбрал префиксы. Но вскоре я устал от них, их получалось так много, что все это казалось мне пустой копипастой, и тогда я задумался над созданием своего лоадера для вебпака. В результате работа над ним переросла из мухи в слона, идеи переполняли меня и в итоге мой ум и руки сотворили монстра, который чуть было не вышел из под моего контроля.
Признаюсь за эти полторы недели его написания я дико устал думать, кодить и документировать сначала на английском, потом переводить с моего корявого английского на чуть менее корявый родной язык, скорее бы уже это закончилось. Зато теперь я знатный программист markdown и пользователь регулярок.
Ошибка на сайте… Что делать?
2017-12-14 в 12:12, admin, рубрики: javascript, React, ReactJS, Блог компании RUVDS.com, обработка ошибок, отладка, разработка, Разработка веб-сайтовКогда код попадает в продакшн, программист выпускает во внешний мир, вместе с полезным функционалом, ещё и ошибки. Вполне возможно, что они, например, на некоем сайте, будут иногда приводить к мелким сбоям, которые спишут на самые разные причины, так и не докопавшись до сути. Знающему своё дело разработчику хорошо бы предусмотреть какой-то механизм, благодаря которому он сможет встретиться со своими ошибками, выслушать их рассказ о тех приключениях, которые им пришлось пережить, и, в результате, их исправить.
Сегодня мы хотим поделиться с вами переводом статьи программиста Дэвида Гилбертсона, в которой он рассказывает о разработанной им экспериментальной системе, позволяющей отслеживать и воспроизводить ошибки в веб-проектах, написанных на React. Полагаем, подобный подход можно перенести и в другие среды, но обо всём по порядку.
Читать полностью »
Опубликованы результаты опроса по использованию javascript-технологий «The state of JavaScript 2017»
2017-12-13 в 9:52, admin, рубрики: css, javascript, ReactJS, опросы, Разработка веб-сайтов
Всем нам время от времени становится интересно, не устарела ли та или иная технология, и что сейчас в тренде. Особенно это актуально в мире frontend.
Сегодня у нас появились ответы на некоторые из этих вопросов. Сегодня на сайте https://stateofjs.com опубликован новый отчет с результатами опроса двадцати тысяч разработчиков. Лучше всего сразу смотреть оригинал, но если времени мало, то в этой статье будут освещены ключевые моменты.
React, Drag&Drop и performance
2017-12-11 в 3:28, admin, рубрики: Drag&Drop, javascript, JS, React, ReactJS, Блог компании Macte, интерфейсыВ данной статье мы расскажем про свой опыт реализации интерфейса редактирования расписания занятий. Расскажем о проблемах, с которыми мы столкнулись и о возможных путях решения.
Читать полностью »
Недельный спринт, анкета кандидата и картонный мужик
2017-12-08 в 14:57, admin, рубрики: agile, alfabank, alfalab, development, employee, javascript, ReactJS, scrum, team, welcomeaboard, Блог компании «Альфа-Банк», Управление продуктомПривет! Меня зовут Стас, я Product Owner команды «Welcome Aboard». Мы делаем удобный продукт для соискателей, желающих устроиться работать в Альфа-Банк.
Зачем нужен этот продукт? Чтобы сделать процесс общения кандидатов с банком приятнее и эффективнее на каждом шаге. Кроме того, это неслабо экономит время нашим рекрутерам, а довольный рекрутер – это всегда хорошо.
Сейчас мы сосредоточились на электронной анкете соискателя. В ней более 50-ти полей, она разделена на 6 шагов и работает на любом устройстве.
Под катом я расскажу о составе команды, используемых нами решениях и о том, зачем нам в команде картонный мужик.
Читать полностью »
firebase.js ПРОСТО ОГРОМНЫЙ (и что мы можем с этим сделать)
2017-12-08 в 14:05, admin, рубрики: ES6, javascript, ReactJS, webpack, Клиентская оптимизация, оптимизация сайта, Разработка веб-сайтовОн действительно огромный — просто посмотрите на него:
Эта штука весит 103кб (в сжатом виде). Больше чем код приложения — интернет-магазин -(58kb) и сравнима со всем остальным кодом в vendor бандле (156kb) — включающем react
, react-dom
, react-router
, moment.js
, lodash
и кучу других библиотек. Что еще хуже — firebase
нужен не на всех страницах, и очень часто не нужен к моменту загрузку сайта.