Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #101 (permalink)  
Старый 30.04.2015, 20:55
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

x-yuri

Каждый день пользуюсь параллельными операциями, видимо у тебя просто не было задач, вот сёня например писал скрипт накатки данных из одной БД в другую: сначала параллельно чистится все коллекции, а потом параллельно заполняются.

async.series([
  (cb) => async.each(['users', 'places', 'links'], clear, cb),
  (cb) => async.each(['users', 'places', 'links'], update, cb)
], cb);


ЗЫ: пример на моей любимой либе Async

***

x-yuri, про остальное не вижу смысла спорить, т.к. у нас очевидно совсем разный опыт работы с JS и нодой (без обид), поэтому ты не принимаешь моих доводов. К тому же критиковать язык и платформу нужно, в первую очередь для её развития. Если кто помнит, то на этом форуме я был первым пропагандистом ES6 (уже больше 2-х лет прошло) и меня тут считали хипстером, который почему то плюётся от ES5, а теперь думаю мало кто захочет вернуться на то Г. Классные вещи ожидаются в ES7, возможно это будет действительно качественное развитие языка, т.к. ES6 - это по большей части сахар.

Я всегда расписываю свои претензии и привожу примеры из других языков и доводы, но блин, я уже задолбался постоянно писать одно и тоже)
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 30.04.2015 в 21:02.
Ответить с цитированием
  #102 (permalink)  
Старый 30.04.2015, 21:41
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от kobezzza
меня тут считали хипстером, который почему то плюётся от ES5
Имхо, я не перешел на питон потому, что читал то, что ты пишешь про ES6. Был уже на грани. Про хипстера не в курсе

Сообщение от kobezzza
ES6 - это по большей части
то, что нужно было сделать перед тем как запустить js в продакшн.

Сообщение от kobezzza
любимой либе Async
Жаль нет времени сейчас освоить, но обязательно выделю.

Сообщение от kobezzza
задолбался постоянно писать одно и тоже
Я например не всегда понимаю, что мне отвечают, т.к. иногда нужные знания отсутствуют. Запиминаю и прокручиваю в голове при подходящем случае. Очень часто доходит потом
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #103 (permalink)  
Старый 30.04.2015, 21:53
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

kobezzza,
Цитата:
Если кто помнит, то на этом форуме я был первым пропагандистом ES6 (уже больше 2-х лет прошло)
Эх, я в это время как раз временно ушёл с форума. А ведь мог бы первым быть!(

Цитата:
Я всегда расписываю свои претензии и привожу примеры из других языков и доводы, но блин, я уже задолбался постоянно писать одно и тоже)
Зачем писать? Зачем страдать? Ведь можно просто ссылку на тему дать!
Ответить с цитированием
  #104 (permalink)  
Старый 01.05.2015, 07:52
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
а почему костыль обоснуешь? и как это связано с generator expressions?
Потому что с помощью генераторов можно добиться нормального привычного синтаксиса отлоав ошибок через try-catch:
app.post("/api/articles", co(function*(req, res, next){
    let article = new Article();
    
    try {
        yield article.save();
    } catch (err) {
        return next(err);
    }
}));

В ES7 добавится пущий сахар для этого - async/await.
Ответить с цитированием
  #105 (permalink)  
Старый 03.05.2015, 13:52
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

kobezzza, хорошо, давай немного по-другому поставим вопрос, Promise.all используется в типичных задачах при генерации html-страниц? В качестве серверного языка я в основном использовал php или ruby и для меня не очевидно, где можно применить параллельное выполнение операций. Можно больше примеров типичных задач, касающихся работы сайтов?

По поводу опыта. У тебя больше опыта работы с nodejs? Не сомневаюсь. Я не знаю es6, es7? Не спорю. По поводу опыта работы с js, я думаю ты меня недооцениваешь. Но какая разница? Мы же здесь не для того чтобы "кармой" мерятся, правда? И аргумент "у тебя мало опыта, чтобы меня понять" считаю поцоватым. Я такого себе не позволяю. Объясни свою точку зрения. Если с тобой не согласны, тут два варианта. В обоих случаях спорить не надо.

По поводу неприятия доводов, это не совсем так. Если я пишу "Так чего же вам не хватает, м?", это не значит, что я уверен, что проблема отсутствует. Я погуглил, нашел ряд решений вопроса, и пытаюсь у вас выяснить, что не так. Возможно, не самым лучшим способом Да и по остальным вопросам, я не против чтобы меня переубедили

По поводу стандартной библиотеки действительно не принимаю, пока что. Я не думаю, что в nodejs все идеально. Но ведь проблема выбора существует не только в ноде. Есть плагины jquery, пакеты linux, ruby gems и много всего другого. И как-то люди с этим живут, без патронажа корпораций-монстров. Выбор может осуществляться методом "что первое в google", ruby-toolbox.com... Чем нода кардинально отличается?

По поводу async/await, плохого ничего сказать не могу, но это не выглядит как критичный недостаток nodejs. В данном случае у нас подход разный. У тебя как в анекдоте: "В аптеке: — Дайте мне таблеток от жадности, и побольше" У меня скорее минималистичный. Важных вещей мало. Программистам свойственен перфекционизм, в результате они тратят время на то, что не важно. Помни о смерти

Еще наверное тон спровоцировал, скромнее нужно быть, скромнее

Сообщение от kobezzza
Я всегда расписываю свои претензии и привожу примеры из других языков и доводы, но блин, я уже задолбался постоянно писать одно и тоже)
Так появляются faq'и

Сообщение от Erolast
Потому что с помощью генераторов можно добиться нормального привычного синтаксиса отлоав ошибок через try-catch:
Т.е. все же речь о generators (generator functions), а не generator expressions.

И твой код это аналог для этого?

app.post("/api/articles", function(req, res, next) {
    var article = new Article();
    domain.create().on('error', function(err) {
        next(err);
    }).run(function() {
        article.save();
    })
});
Ответить с цитированием
  #106 (permalink)  
Старый 03.05.2015, 18:28
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Т.е. все же речь о generators (generator functions), а не generator expressions.
Тьфу, да, описался.

Цитата:
И твой код это аналог для этого?
Ну, если не учитывать кучу граблей работы с доменами - да, примерно так.
Ответить с цитированием
  #107 (permalink)  
Старый 05.05.2015, 09:31
Аспирант
Отправить личное сообщение для madgals Посмотреть профиль Найти все сообщения от madgals
 
Регистрация: 27.12.2008
Сообщений: 53

Тут версию 2 уже слепили. https://github.com/iojs/io.js/blob/master/CHANGELOG.md
Мне кажется или разрабы бегут впереди паровоза? Изменений, тянущих на 2.0 что то я не заметил. Или у них версионирование как у хрома и через год мы увидим io.js v20.0?
Ответить с цитированием
  #108 (permalink)  
Старый 05.05.2015, 09:50
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от madgals Посмотреть сообщение
Тут версию 2 уже слепили. https://github.com/iojs/io.js/blob/master/CHANGELOG.md
Мне кажется или разрабы бегут впереди паровоза? Изменений, тянущих на 2.0 что то я не заметил. Или у них версионирование как у хрома и через год мы увидим io.js v20.0?
У них semver. Обновление мажорной цифры просто означает о внесении ломающих изменений по сравнению с прошлыми версиями и не более того.

https://github.com/iojs/io.js/blob/m...eaking-changes
__________________
kobezzza
code monkey
Ответить с цитированием
  #109 (permalink)  
Старый 05.05.2015, 10:15
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Годный релиз. Осталось воркеры добавить)
Ответить с цитированием
  #110 (permalink)  
Старый 14.05.2015, 09:41
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Erolast, что-то это похоже разные вещи:

var domain = require('domain');
domain.create().on('error', function(err) {
    console.log('caught');
}).run(function() {
    throw new Error;   // это ловим
    setTimeout(function() {
        throw new Error;   // и это ловим
    });
})


require('babel/register');
var co = require('co');

co(function* () {
    try {
        var result = yield new Promise((resolve, reject) => {
            throw new Error;   // это ловим
            setTimeout(() => {
                throw new Error;   // это нет
            });
        });
        return result;
    } catch(e) {
        console.log('caught');
    }
});


Домены предназначены для того, чтобы ловить исключения в асинхронных вызовах, для ошибок, не учтенных разработчиком. co + геренаторы, чтобы преобразовывать reject'ы в исключения и только на текущем уровне. Кроме того, использовать генераторы, чтобы ловить исключения... очередной костыль, не?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Реализация функции JavaScript, меняющей содержимое ячеек таблицы по событию onchange BOJIKOJIAK Events/DOM/Window 1 24.05.2010 05:50