Так с промисами работа получается с точки зрения кода почти синхронной:
var posts = yield odm.findAllAsync(); // findAllAsync return Promise
var posts2 = odm.findAllSync();
Вот что я имел ввиду, мы работаем не с колбеками, или ветками .then(), а из асинхронной функции получаем результат, как бы синхронно с точки зрения скрипта.
Как только я стал писать на koa через функции-геренаторы, то отношение к программированию на nodejs улучшилось в разы. Код пишется так, как-будто все функции работают синхронно. А с учетом того, что на многие пакеты есть promise обертки, которые позволяют работать с кодом также как с синхронным (в koa это сопрограммы кажется называется, но могу ошибаться), программировать на nodejs теперь намного проще.
Для своих классов можно использовать паттерн модуля и паттерн открытия модуля, когда функция конструктор возвращает явно объект. Который является по сути маппингом на методы и свойства замыкания, чтобы сделать из публичными.
Вариант декодера стороннего пока тоже рассматриваю. Работая с сервисом, который передает несколько петабайт изображений в месяц, прирост даже в 10% может быть ощутим.
Js декодер на стороне сайта/приложения, не должен принести проблем пользователю, это же не плагин какой-то ему ставить самому в систему или браузер.
Сравнивал webp с bpg с пол года назад, в большинстве случаев bpg картинка занимала меньше места, чем webp c таким же качеством на глаз :)
Хочется верить, что формат получить широкое распространение и браузеры в будущем будут его поддерживать.
>>«Поскольку функция конструктор возвращает простой объект, не работает instanceof;»
Никто не мешает создаваемому объекту указать явно прототип Animal, вместо Object (создаем через Object.create, а не литерал). Тогда и instanceof будет работать корректно через цепочку прототипов и конструктор будет определяться верно у объекта.
Из названия статьи думал, что кеширование будет без php отдавать кеш. Рассмастривали ли вы такой вариант? На какие бы хуки бы вы зацепились, чтобы стартовать вывод в буфер в начале и считать буфер в конце?
На socket io делал простенький чат, и там как раз использовать notification api браузера. Звук воспроизводился не во всех браузерах, да и сами окна нотификации достаточно разные были. В итоге отказался от нотификаций и через Ion.Sound сделал одинаковое звуковое оповещение.
Вот что я имел ввиду, мы работаем не с колбеками, или ветками .then(), а из асинхронной функции получаем результат, как бы синхронно с точки зрения скрипта.
Скорее всего есть orm/odm пакеты с промисами.
Может кто-то подсказать где найти обсуждение или rfc сейчас этой фичи?
moikrug.ru/nikolaev29
Js декодер на стороне сайта/приложения, не должен принести проблем пользователю, это же не плагин какой-то ему ставить самому в систему или браузер.
Хочется верить, что формат получить широкое распространение и браузеры в будущем будут его поддерживать.
Никто не мешает создаваемому объекту указать явно прототип Animal, вместо Object (создаем через Object.create, а не литерал). Тогда и instanceof будет работать корректно через цепочку прототипов и конструктор будет определяться верно у объекта.
$response->headers->get('Content-Type', 'text/html') так не лучше?