Pull to refresh
6
0
Дмитрий @kruft

Пользователь

Send message
Эх, если уж так хотите 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 элементов, отсортированных по приоритету, с условием, что берутся все элементы с заданным приоритетом, и общая выборка не меньше определенного числа), их на промисах охренеешь делать.

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

virsh qemu-monitor-command resized-virtual-machine --hmp "block_resize $DRIVENAME $NEWSIZE"
А вот ещё одна крайне полезная утилита из того же разряда — YUMI. Изначально разработана под винду, но сейчас автор переписывает её под упомянутые дебиан и убунту.

Information

Rating
Does not participate
Location
Свердловская обл., Россия
Date of birth
Registered
Activity