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

Но начнем с простого — что же это за слово такое странно — «мемоизация».
Читать полностью »
Рубрика «javascript» - 230
Как я написал самую быструю функцию мемоизации
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 и с точки зрения поисковой машины выглядит вот так:
Кому достаточно документации может на этом закончить чтение. А для себя я сделаю несколько заметок под катом.
Читать полностью »
Как работает JS: веб push-уведомления
2018-03-05 в 11:02, admin, рубрики: javascript, push-уведомления, Блог компании RUVDS.com, разработка, Разработка веб-сайтовСегодня публикуем перевод девятой части серии статей, посвящённых применению веб-технологий и JavaScript. В этом материале мы исследуем веб push-уведомления. А именно, поговорим о механизмах, лежащих в их основе, и о том, как осуществляется подписка на уведомления, как устроены процессы их отправки и получения.
Сложилось так, что push-уведомления, весьма распространённые в мире мобильных приложений, довольно поздно добрались до веба, хотя они являются одной из тех возможностей, которыми хотели бы пользоваться многие разработчики.
Читать полностью »
Разработка Rich Text Editor: проблемы и решения
2018-03-05 в 10:26, admin, рубрики: css, frontendconf, javascript, rich text edit, Блог компании Конференции Олега Бунина (Онтико), Клиентская оптимизация, ПрограммированиеТекстовые редакторы, как тип программного обеспечения, появились чуть позже чем динозавры, и вероятнее всего это был вообще первый софт, с которым вы столкнулись в своей жизни, возможно кто-то даже застал MS-DOS Editor.
Однако с переходом большой части ПО в браузеры актуальны и соответствующие визуальные редакторы Rich Text Editors, и проблемных мест в их разработке масса. Если вы по какой-то причине решили сделать свой собственный редактор, то подумайте еще раз — есть мнение, что делать этого не нужно.

Чтобы вы могли принять более взвешенное решение, Егор Яковишен обобщил весь свой опыт, полученный в процессе создания Setka Editor, и рассказал про проблемы, с которыми придется столкнуться, и что можно предпринять для их решения.
Disclaimer: статья написана на основании доклада Егора на конференции Frontend Conf 2017 в июне 2017 года. Ситуация с поддержкой браузерами определенных API с тех пор уже могла измениться.
RegExp Unicode Property Escapes в JavaScript: штрихи к портрету
2018-03-05 в 4:03, admin, рубрики: Google Chrome, javascript, JS, node.js, regular expressions, Unicode, V8, браузеры, Регулярные выражения, ЮникодRegExp Unicode Property Escapes перешли на 4-ю ступень и будут включены в ES2018.
В V8 они доступны без флага начиная с v6.4, так что готовы к использованию во всех текущих каналах Google Chrome от стабильного до Canary.
В Node.js они будут доступны без флага уже в v10 (выходит в апреле). В других версиях требуется флаг --harmony_regexp_property (Node.js v6–v9) или --harmony (Node.js v8-v9). Сейчас без флага их можно испробовать или в ночных сборках, или в ветке v8-canary.
При этом нужно иметь в виду, что сборки Node.js, скомпилированные без поддержки ICU, будут лишены возможности использовать этот класс регулярных выражений (подробнее см. Internationalization Support).
Подробнее о поддержке в других движках и средах см. в известной таблице (после перехода проскрольте чуть выше).
Я не буду повторять описания этой долгожданной возможности, лишь сошлюсь на несколько статей от известных специалистов: Читать полностью »
Дайджест свежих материалов из мира фронтенда за последнюю неделю №304 (26 февраля — 4 марта 2018)
2018-03-04 в 21:49, admin, рубрики: angular, css, ES6, html, html5, javascript, JS, React, vue, Блог компании Zfort Group, браузеры, дайджест, подкасты, Разработка веб-сайтов, ссылки, фронтендПредлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

Делаем приём платежей криптовалютой своими руками
2018-03-04 в 18:11, admin, рубрики: api, bch, bitcoin, Dash, javascript, json, ltc, onion, python, RPC, ruby, steep, прием платежей, Программирование, серверыПривет!
Время от времени замечаю вопросы о том, как принимать платежи Bitcoin на своём сайте без использования сторонних сервисов. Это достаточно просто, но надо учитывать, что есть подводные камни.
В этой статье я постараюсь максимально подробно, без акцента на каком-либо языке программирования, описать, как сделать приём платежей Bitcoin (а также, при желании — Litecoin, Dash, Bitcoin Cash, Steep, ONION и т.п.), начиная с разворачивания полной ноды и заканчивания проверкой поступления платежа.
Webpack 4 и code splitting
2018-03-03 в 1:57, admin, рубрики: es2017, javascript, node.js, webpack, webpack 4, веб-дизайн, системы сборки25 февраля 2018 года вышел релиз webpack 4.0.0 (и на сегодняшний день 4.0.1). Одна из полезных и сравнительно новых фич webpack — code splitting, перенесена в новой версии из плагинов в основную конфигурацию. При практически полном отсутствии документации, как теперь нужно конфигурировать code splitting в версии 4 — я немного испытал шок, но все же попытался собрать информацию, чтобы по минимуму начать работать с новой версией. Я надеюсь, что через некоторое время появятся и обстоятельные tutorials, и статьи. Пока же спешу сделать заметки по найденной информации, чтобы не потерять ее на просторах интернета.
Читать полностью »
Revolver: микро библиотека для frontend на Java Script
2018-02-21 в 17:26, admin, рубрики: javascriptСам проект был начат достаточно давно и развивался под другим именем и с другими более амбициозными целями, но времени вечно не хватает и мотивации было недостаточно, чтобы доработать полноценный framework. Поэтому было решено отбросить мечты о том, что когда-нибудь маленькое творение станет полноценной системой, выпилить из проекта все компоненты и части, которые идеологически прокладывали мосты к большей системе и попутно переработать большую часть кода.
Собственно, Revolver — микробиблиотека для frontend (всего чуть более 1500 строк несжатого кода), которая включает в себя API (можете назвать это синтаксический сахар, если вам угодно) для работы с элементами DOM, поддерживающая ряд модулей для создания анимаций и асинхронных запросов.
Читать полностью »
Рассказ о том, как я ворую номера кредиток и пароли у посетителей ваших сайтов
2018-01-11 в 11:03, admin, рубрики: javascript, node.js, npm, безопасность, Блог компании RUVDS.com, информационная безопасность, разработка, Разработка веб-сайтовПредставляем вам перевод статьи человека, который несколько лет воровал имена пользователей, пароли и номера кредитных карт с различных сайтов.

То, о чём я хочу рассказать, было на самом деле. Или, может быть, моя история лишь основана на реальных событиях. А возможно всё это — выдумка.
Выдалась однажды такая неделя — безумное время, когда всех вокруг тревожила безопасность. Ощущение было такое, что новые уязвимости появляются ежедневно. Мне было не так уж и просто делать вид, будто я понимаю, что происходит, когда меня об этом спрашивали близкие люди. Их беспокоила перспектива того, что их взломают, что их данные утекут неизвестно куда. Всё это заставило меня на многое взглянуть по-новому.
В результате, скрепя сердце, я решил выложить всё начистоту и рассказать всему миру о том, как я в последние несколько лет воровал имена пользователей, пароли и номера кредитных карт с самых разных сайтов. Возможно, вы — администратор или разработчик одного из них.
Читать полностью »


