Мы на работе пишем много часто меняющейся бизнес-логики на JS (стартап же). Даже слишком много. И всё это хочется по старой привычке тестировать, но как-нибудь побыстрее, чтобы тесты особо не мешали говнокодить, когда это нужно, и не подгонять под тесты особенно сильно структуру модулей. В какой-то момент пришла мысль, что можно это еще и автоматизировать как-то с помощью простенького babel-плагина, чтобы он для начала все приватные переменные и методы выворачивал в тестовой среде, а в продакшене не трогал. Это оказалось довольно просто и увлекательно. Так появился Introscope, которым мы теперь тестируем всё более-менее сложное.
Рубрика «babel» - 2
Introscope: ну очень ленивое unit-тестирование
2019-01-22 в 13:06, admin, рубрики: babel, functional programming, javascript, jest, snapshotsПереносим 30 000 строк кода с Flow на TypeScript
2019-01-17 в 20:11, admin, рубрики: babel, DefinitelyTyped, flow, flow-typed, javascript, MemSQL, MemSQL Studio, tcomb, TypeScript, динамическая типизация, статическая типизацияНедавно мы перенесли 30 тысяч строк кода JavaScript нашей системы MemSQL Studio с Flow на TypeScript. В этой статье я расскажу, почему мы портировали кодовую базу, как это происходило и что получилось.
Дисклеймер: моя цель — вовсе не критика Flow. Я восхищаюсь проектом и думаю, что в сообществе JavaScript достаточно места для обоих вариантов проверки типов. В итоге каждый выберет то, что ему лучше подходит. Искренне надеюсь, что статья поможет в этом выборе.
Сначала введу вас в курс дела. Мы в MemSQL большие фанаты статической и строгой типизации JavaScript, чтобы избежать типичных проблем с динамической и слабой типизаций.
Читать полностью »
Приключения оператора pipeline в babel@7
2018-07-25 в 10:50, admin, рубрики: babel, ECMAScript, IT-стандарты, javascript, pipeline operator, tc39, Блог компании Mail.Ru Group
В релизе babel@7.0.0-beta52 появился новый обязательный флаг конфига для плагина @babel/plugin-proposal-pipeline-operator, что ломает обратную совместимость для предыдущих версий плагина. Из этой статьи вы узнаете, что такое оператор pipeline и зачем ему нужна конфигурация.
Классическое наследование в JavaScript. Разбор реализации в Babel, BackboneJS и Ember
2018-04-18 в 15:08, admin, рубрики: babel, backbone, ember, javascript, наследование, оопВ этой статье мы поговорим о классическом наследовании в JavaScript, распространённых шаблонах его использования, особенностях и частых ошибках применения. Рассмотрим примеры наследования в Babel, Backbone JS и Ember JS и попытаемся вывести из них ключевые принципы объектно-ориентированного наследования для создания собственной реализации в EcmaScript 5.
Статья для тех, кто знаком с наследованием в других языках и сталкивался с попытками эмулировать подобное поведение в JavaScript, а также для тех, кому интересно заглядывать «под капот» различных библиотек и фреймворков, сравнивая их реализацию. Оказывается, простую функцию extend можно реализовать очень по-разному. Нередко при этом допускаются ошибки (см. пункт «Самая распространённая ошибка» ниже).
Читать полностью »
Секреты React и Redux при разработке веб-приложений
2017-12-01 в 14:36, admin, рубрики: babel, javascript, React, ReactJS, redux, TypeScript, web-разработка, Блог компании Издательский дом «Питер», высокая производительность, ПрограммированиеЗдравствуйте, уважаемые читатели! Совсем скоро у нас выйдет новая книга о технологиях React и Redux, оригинал — O'Reilly, май 2017

Чтобы обрисовать масштабы бедствия круг проблем, которые могут возникать при создании веб-приложений с использованием таких технологий, предлагаем сокращенный перевод статьи Сэмюэла Менденхолла (от 15 ноября), где рассмотрены тонкости работы с React, Redux, Typescript и рассказано, как устранить и упредить проблемы с производительностью в таких приложениях.
Читать полностью »
Оптимизация фронтенда. Часть 2. Чиним tree-shaking в проекте на webpack
2017-11-23 в 10:05, admin, рубрики: babel, flow, Google Closure Compiler, javascript, tree-shaking, TypeScript, webpack, webpack 2, Блог компании Wrike, Клиентская оптимизация, Разработка веб-сайтов
Итак, если специально не чинить, tree-shaking в webpack не работает. Кто не верит, читайте мою предыдущую статью. Если починить очень хочется, то добро пожаловать под кат. Тут есть несколько вариантов, которые я смог подсмотреть, найти придумать. Читать полностью »
Глупый JS. Делаем фильтры «по красоте»
2017-11-22 в 8:00, admin, рубрики: AngularJS, babel, chrome, ES6, filters, javascript, javascript framework, Meteor, React, vuejs, визуализация данныхПривет. Мне 17 лет и я JS-разработчик. Возможно это приговор, а может быть это классическое приветствие в «Клубе анонимных JS-никовпрограммистов» — мне этого не узнать. Сейчас во многом моя работа заключается в работе с данными, их обработкой, фильтрами, сортировкой и так далее. Естественно, что я использую не нативный JS в проектах. Сегодня будем делать фильтры на чистом js-е. Увидим насколько это круто и быстро. Узнаем возможности es6 и сделаем рефакторинг кода. Заинтересованных прошу под кат.
Читать полностью »
Нативные EcmaScript модули: новые возможности и отличия от webpack
2017-06-07 в 7:06, admin, рубрики: babel, javascript, webpack, Блог компании Туту.ру, браузеры, будущее, Программирование, Разработка веб-сайтов, стандарты
В предыдущей статье Нативные ECMAScript модули — первый обзор я рассказал историю JavaScript модулей и текущее состояние дел реализации нативных EcmaScript модулей.
Сейчас доступны две реализации, которые мы попробуем сравнить с бандлерами модулей.
Пишем плагин для Babel
2017-06-01 в 16:30, admin, рубрики: babel, compiler, javascript, transpilationМодульность прочно обосновалась в мире javascript. Однако, при всех плюсах, писать в каждом файле одни и те же импорты — утомляет. А что, если убрать подключение часто используемых модулей в сборщик, а в коде использовать их как глобальные переменные? Выглядит, как задача для babel-плагина. Что же, давайте вместе напишем такой плагин, попутно разбираясь, как работает babel.

Нативные ECMAScript модули — первый обзор
2017-04-19 в 7:45, admin, рубрики: babel, javascript, webpack, Блог компании Туту.ру, браузеры, будущее, Программирование, Разработка веб-сайтов, стандартыВ этой статье хочу поделиться переводом статьи о нативных ECMAScript модулях, которые все больше и больше обсуждаются среди фронтендеров. Javascript ранее никогда не поддерживал нативно работу с модулями, и нам, фронтендерам, всегда приходилось использовать дополнительные инструменты для работы с модулями. Но вы только представьте, что в скором времени не нужно будет использовать Webpack для создания бандлов модулей. Представьте мир, в котором браузер будет собирать все за вас. Подробнее об этих перспективах я и хочу рассказать.
Читать полностью »

