All streams
Search
Write a publication
Pull to refresh
62
0
Сева Родионов @Jabher

Джаваскрипт-шалун

Send message
пусть Proxy введут и честные WeakSets (нынешние полифиллы все же не очень честные), остальное можно дотянуть чем-нибудь вроде Traceur.
А, ну еще — дебаггер для мобильного ie был бы очень крут.
Вообще мне нравится куда развитие осла идет)
за webM / webP яростно поплюсовал бы. Дело даже не в том, что он свободный, а в том, что webP совершенно люто сжимает изображения — заблюренный фон на 900кб в jpeg или 2мб в png он может не сильно потеряв в качестве ужать до 20-30кб, что по-моему очень круто
А у меня тут вопрос к хабраюзерам: у меня в черновиках лежит недописанная статья об аналогичном проекте. Проект живой, активно развивается внутри одной команды, но без меня уже. Ни разу не рекламная — продукта-то все-таки нет в открытом доступе, скорее о том какие шишки набиваются при разработке такого продукта и какие есть хитрые трюки с ним же. Дописывать?)

Если что — заключение в ней очень простое: такие фреймворки по сути не нужны, если уже есть рендер на серверсайде, нужно вытягивать страницы и заменять их диффом, а клиентская логика должна навешиваться через вебкомпоненты или аналогичный механизм. Если нет рендера на сервере — это браузерное приложение и оно должно работать само по себе жсоном.
эмгх, sourcemaps же.
эмм. ну я же не весь код показывал все-таки.
Вы серьезно считаете, что ошибка авторизации по токену никак бы не обрабатывалась?
Не вижу сильной разницы между моим и вашим кодом, вы просто заменили reject на throw, а resolve на return. Catch относительно дорогая операция, так что лучше ее избегать.

В реальном коде было четыре(!) уровня вложенности, и от них реально было никуда не деться. Я писал пример по памяти, так что…
ну, так может не стоит просто смотреть в результат?) главное, что работает
а БД, которые отвечают поверх REST api типа монги — это не бэкэнд тогда?)
Не появятся, я выше не написал — это просто сахар. Можно не волноваться, будет адов стыд и глюкало :)
на самом деле есть один перевод — frontender.info/a-guide-to-flexbox/
я к нему всегда как к референсу обращаюсь
в traceur тоже есть вроде как, экспериментальная. но мне что-то Co+генераторы удобнее будет
Эх, если уж так хотите es6 — берите co+генераторы, они куда лучше. Откуда эта истерия про то что промисы — панацея?

Да, промисы помогают решать мелкие полезные задачи, но общий workflow на них проектировать — себе дороже.
Я это понял в один момент, когда реализовывал на них авторизацию на отзываемых токенах со сроком действия.
Было как-то так

getTokenInfoFor(token).then(function(tokenInfo){
    getUserInfo(tokenInfo.email).then(function(userInfo){
       if (userInfo.tokenRevokeTime > tokenInfo.issueTime) 
           return Q.resolve(userInfo);
       else 
           return Q.reject(errors.tokenRevoked);
    }); 
});


Только кода еще больше было нагромождено. Промисы хороши там, где идет цепочечная обработка данных, не более. Если сложная логика — всегда будет куча замыканий даже с промисами.

на генераторах же будет как-то так
co(function*(){
    var tokenInfo = yield getTokenInfoFor(token);
    var userInfo = yield getUserInfo(tokenInfo.email);
    if (userInfo.tokenRevokeTime > tokenInfo.issueTime)
        throw e;
    return userInfo;
})(function(err, res){
    ...
});


(я, правда, не пользовался ни разу возвращаемым значением, сделал код так более понятным, как мне кажется).

И как вы понятную и человекочитаемую рекурсию на промисах сделаете?
У меня регулярно бывают задачи по выборке из базы данных с рекурсивными условиями (сейчас, например — взять первые n элементов, отсортированных по приоритету, с условием, что берутся все элементы с заданным приоритетом, и общая выборка не меньше определенного числа), их на промисах охренеешь делать.

В общем промисы — да, это удобно. Но перегрето. Полгода-год назад вообще какая-то истерия про них была, непонятная для меня.
можно подумать, что это наследование — не просто сахар поверх.

Доказательство(пишу по памяти, могу где-то немного накосячить):

class Horse{
constructor(){this._speed = 5;}
get speed(){return this._speed}
}
class HorseWithTransmission extends Horse{
set speed(val){this._speed = val}
}

new HorseWithTransmission().speed //=> undefined

Неожиданно, правда? А все потому что это обертка поверх Object.create
Dart или TypeScript.
А вообще без строгой типизации нормально как-то живется, если честно. С числами — js автоматически подбирает тип, представляйте это себе как абстрактный тип Number.

IntelliSense есть, да еще какой. Несколько решений есть, которые по сути выполняют код и подсказывают «живые» методы, один — забыл уже как называется, коммерческий, активно пиарился на хабре. Другой сейчас встроен в webStorm.
ну фактически access_token у кучи апей можно сравнить с полноценным аккаунтом в базу, правда с специфическим языком запросов
А с образование пузырьков разве не наносит каких-то повреждений процессорам? Извиняюсь за глупый, возможно, вопрос, но я был подумал, что пар расширяется -> возникает легкая ударная волна
а вообще если есть желание поизвращаться — можно посмотреть на то, как на js4k оптимизируют загрузку скриптов, загружая их как png-картинку. Я не применял на практике, но с виду эффективно, но гемморойно (+определенная задержка на клиенте)
Я, кажется, немножко тупой. Объясните: я не смогу сделать простое приложение поверх REST, которое работает с экселевскими файлами в моем oneDrive? Тут все, как я понял, утыкается в Office 365 корпоративный.
ну что вы как маленький. Заведите дебетку с нулем на счету и ничего не бойтесь %)
а почему у меня тогда все работает О_о

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity