Pull to refresh

Comments 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.

UFO just landed and posted this here
И в ней прокси очень неоптимизированы

Да всё что угодно будет быстрее, того кода выше, который делает обёртку для каждого метода на всякий случай. В моих проектах вопрос старых 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

может все-таки асинхронного программирования?
Sign up to leave a comment.