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

[в закладки] Инструменты JS-разработчика, на которые стоит обратить внимание

Время на прочтение10 мин
Количество просмотров22K
Всего голосов 32: ↑28 и ↓4+24
Комментарии12

Комментарии 12

Спасибо за Prettier, тоже пользуюсь Standard JS

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

Как-то мало, рассчитывал что тут инструментов 50 будет. Надеюсь, будет статья про хотя бы 20 фреймворков и библиотек

Спасибо! Почерпнул пару хороших, новых для меня, инструментов.
Пакет pify представляет собой средство для преобразования функций, применяющих коллбэки, к промисам.

Посмотрел примеры в документации понравилось. Полез в код — не понравилось. Я думал там proxy. А там:


for (const key in obj) { // eslint-disable-line guard-for-in
    const x = obj[key];
    ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x;
}

Т.е. писать как написано в документации (pify(fs).readFile('package.json', 'utf8').then) не стоит. Она каждый запуск будет делать много лишней работы.


Впрочем точно такой же, но невесомый, API можно сделать при помощи Proxy.

НЛО прилетело и опубликовало эту надпись здесь
И в ней прокси очень неоптимизированы

Да всё что угодно будет быстрее, того кода выше, который делает обёртку для каждого метода на всякий случай. В моих проектах вопрос старых nodejs не стоит, и я пожалуй напишу себе обёртку на proxy. Удобно, аккуратно. Да и касательно производительности, мне кажется, что там, где вы будете применять все эти promisify примитивы, пенальти на proxy будут столь несущественным, что нет смысла о нём даже упоминать ;)


И зачем на каждый вызов оборачивать объект, если его можно закешировать.

Ну чаще всего это просто неудобно. И в ряде случаев просто невозможно (для тех объектов, что получены динамически). А если вопрос удобства отпадает — то зачем вообще эта библиотека нужна? Ведь есть же utils.promisify. Весь "вкус" именно в том, что ты просто пишешь где надо, без лишних require, import, кешей и пр. мути. Впрочем, я не навязываю своё мнение.

Во-первых, есть pull-request https://github.com/sindresorhus/pify/pull/32, но не особо активный.


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


const pify = require('pify');
const fs = pify(require('fs'));

fs.readFile();
fs.writeFile();
раз тут говорят про now.sh, может кому-нибудь будет интересен мой проект Exoframe — self-hosted альтернатива now.sh с открытым кодом и MIT лицензией
async/await начал становиться стандартом де-факто в области параллельного программирования на JavaScript

может все-таки асинхронного программирования?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий