JavaScript
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
JavaScript
В юмор рука не поднялась, уж очень тема серьезная
http://cube-drone.com/comics/c/relentless-persistence" onclick="window.open(this.href);return false;
http://cube-drone.com/comics/c/relentless-persistence" onclick="window.open(this.href);return false;
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 4195
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: JavaScript
sencha extjs вполне самодостаточная библиотека.
sencha CMD, очень handy тулза, все это сжимает под prod, компилит sass, запускает ...
рекомендую тем кто не хочет мудохаться с зоопарком.
sencha CMD, очень handy тулза, все это сжимает под prod, компилит sass, запускает ...
рекомендую тем кто не хочет мудохаться с зоопарком.
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: JavaScript
Именно уродство помогло JS выжить. Когда MS был на коне с IE и двигал свои ActiveX, убивая все конкурирующие технологии, он не мог и помыслить, что такое уродство может делать хоть что-то серьёзное.
-
- Уже с Приветом
- Posts: 9195
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: JavaScript
Есть такое расширение фреймворка Qt: QML, в нём JavaScript используется для работы с UI на базе QML. Всё просто летает, там свой Qt Script Engine. И нет проблем поговорить между C++ и JavaScript. Поскольку архитектура открытая, и изначально всё взаимодействие было продумано. Ну и, собсно JavaScript есть дополнение к деклративному языку QML, события отрабатывать, и т.п.
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: JavaScript
Ох и прикол у нас был сегодня . Молодая одаренная молодежь переписала data poller с Джавы на node ( JavaScript) , задизайнили там всякие хитрости с SQS . Один процесс опрашивает remote endpoint и пишет мессадж в кью, другой из кью вычитывает и пишет в базу.
Я чем дольше на это дело смотрю, тем больше не понимаю зачем там этот лес-огород. Я только за something fancy and scalable, но только если и правда есть необходимость. А тут данных кот наплакал, надо послать порядка пары тысяч post requests и записать данные из риспонса в базу. Частота запуска - каждые 10 минут.
Спрашиваю зачем мол переписывали, в чем была проблема со старым кодом? А вот де перестали успевать укладываться в 10 минут и вообще не scalable solution. Теперь все занимает от силы пять минут и если не успеем у нас есть queue.
Я таки не выдержала и написала код на Джаве который эти же данные обрабатывает , только не из базы вычитывает параметры для реквестов, а из файла . Один класс с четырьмя методами. Запускаю с thread count =100, за все про все занимает 8 секунд !
Переписали называется на новомодный Джаваскрипт
Я чем дольше на это дело смотрю, тем больше не понимаю зачем там этот лес-огород. Я только за something fancy and scalable, но только если и правда есть необходимость. А тут данных кот наплакал, надо послать порядка пары тысяч post requests и записать данные из риспонса в базу. Частота запуска - каждые 10 минут.
Спрашиваю зачем мол переписывали, в чем была проблема со старым кодом? А вот де перестали успевать укладываться в 10 минут и вообще не scalable solution. Теперь все занимает от силы пять минут и если не успеем у нас есть queue.
Я таки не выдержала и написала код на Джаве который эти же данные обрабатывает , только не из базы вычитывает параметры для реквестов, а из файла . Один класс с четырьмя методами. Запускаю с thread count =100, за все про все занимает 8 секунд !
Переписали называется на новомодный Джаваскрипт
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 9195
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: JavaScript
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: JavaScript
Никого мой РОС не заинтересовалMedium-rare wrote:
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: JavaScript
Был сегодня 1-он-1 с новым начальником, он стал распрашивать как мне нравится на новой работе, я возьми и ляпни что незаслуженно они совсем уж забили на Джаву и перешли полностью на Node .
Завтра будет финал разговора, где мне надо будет продемонстрировать на рабочем коде что то что сейчас делается на Ноде за 5+ минут можно делать на Джаве за 30 секунд.
Предлагаю заинтересованным лицам угадать засчет чего Джава быстрее? Могу даже с призом главному угадавшему
Завтра будет финал разговора, где мне надо будет продемонстрировать на рабочем коде что то что сейчас делается на Ноде за 5+ минут можно делать на Джаве за 30 секунд.
Предлагаю заинтересованным лицам угадать засчет чего Джава быстрее? Могу даже с призом главному угадавшему
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 6019
- Joined: 11 Mar 2011 05:36
Re: JavaScript
если работали толковые ребята, а еще и система большая и сложная, то замучаешься выигрывать по скорости написания ...
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: JavaScript
Так Вы же и есть главная угадавшая - выше написали про одну нитку против каната.Сабина wrote:Предлагаю заинтересованным лицам угадать засчет чего Джава быстрее?
-
- Уже с Приветом
- Posts: 5424
- Joined: 19 Jan 2004 23:12
- Location: Florida
Re: JavaScript
Там еще упоминалось чтение из файла вместо БД.helg wrote:Так Вы же и есть главная угадавшая - выше написали про одну нитку против каната.Сабина wrote:Предлагаю заинтересованным лицам угадать засчет чего Джава быстрее?
-
- Уже с Приветом
- Posts: 4207
- Joined: 10 Jan 2004 01:22
- Location: n-sk -> MD -> VA
Re: JavaScript
Похоже на борьбу за рабочие места. Грязные трюки идут в ход.
-
- Уже с Приветом
- Posts: 4195
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: JavaScript
так они перепишут логику на ноде, как на яве и будут те же 30 sec.Сабина wrote:
Предлагаю заинтересованным лицам угадать засчет чего Джава быстрее? Могу даже с призом главному угадавшему
затык я так понял не в технологии, а в дизайне.
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: JavaScript
И запускать 100 node-процессов впараллель?valchkou wrote:так они перепишут логику на ноде, как на яве и будут те же 30 sec.
-
- Уже с Приветом
- Posts: 4195
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: JavaScript
я в ноде не спец, а там что нельзя запустить несколько потоков, в пределах процесса?helg wrote:И запускать 100 node-процессов впараллель?valchkou wrote:так они перепишут логику на ноде, как на яве и будут те же 30 sec.
я недавно руби скрипт с похожими проблеммами на яву перегнал.
-
- Уже с Приветом
- Posts: 4827
- Joined: 15 May 2001 09:01
Re: JavaScript
Либо нахарлать костылей сторонних библиотек, либо переписать всё "in JavaScript way": типа пустить 100 функций по таймеру, чтобы пока одни ждут тормозного сервера, базы или чего ещё, другие пытаются таки что-то сделать. Но последний подход для операций сложнее "приветмир" - это коллбэковая нечитаемая лапша стиля Windows 1.0.valchkou wrote:я в ноде не спец, а там что нельзя запустить несколько потоков, в пределах процесса?
я недавно руби скрипт с похожими проблеммами на яву перегнал.
-
- Уже с Приветом
- Posts: 4207
- Joined: 10 Jan 2004 01:22
- Location: n-sk -> MD -> VA
Re: JavaScript
Я думаю стандартное решение это запустить сто node.JS instances хоть в контейнерах или даже на одном ноде параллельно. Aka horizontal scalability
-
- Уже с Приветом
- Posts: 4195
- Joined: 27 Apr 2011 03:43
- Location: Сергели ->Chicago
Re: JavaScript
теперь мне понятно почему nodejs не станет mainstream, а так и останется в своей узкой нише.
как раз недавно обсуждали почему ноде такой замечательный и что вот вот он всех поборет
viewtopic.php?f=2&t=193854&p=6122185#p6122185" onclick="window.open(this.href);return false;
тема многопоточности была затронута, но не раскрыта.
как раз недавно обсуждали почему ноде такой замечательный и что вот вот он всех поборет
viewtopic.php?f=2&t=193854&p=6122185#p6122185" onclick="window.open(this.href);return false;
тема многопоточности была затронута, но не раскрыта.
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: JavaScript
Почему то на ноде у парня не получается делать больше 30 запросов на remote endpoint одновременно. Говорит валится VPN причем с его стороны. У меня через executor service pool хоть двести тредов запускай - все работает.valchkou wrote: так они перепишут логику на ноде, как на яве и будут те же 30 sec.
затык я так понял не в технологии, а в дизайне.
Второй момент - я не знаю как он делает inserts в базу, у меня batch-ем тоже все моментально выходит.
Дизайн - да, конечно отличается - но там эта queue совсем не нужна.
Last edited by Сабина on 30 Jul 2015 02:42, edited 1 time in total.
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: JavaScript
Вот именно ! Не в queue посылать все мессаджи для дальнейшего засовывания в одну и ту же базу, а сделать несколько региональных микросервисов, которые буду поставлять только timeseries данные для regional customersfruit6 wrote:Я думаю стандартное решение это запустить сто node.JS instances хоть в контейнерах или даже на одном ноде параллельно. Aka horizontal scalability
Сто нодов не надо, можно пятком обойтись, по одному на микросервис.
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: JavaScript
valchkou wrote:теперь мне понятно почему nodejs не станет mainstream, а так и останется в своей узкой нише.
как раз недавно обсуждали почему ноде такой замечательный и что вот вот он всех поборет
viewtopic.php?f=2&t=193854&p=6122185#p6122185" onclick="window.open(this.href);return false;
тема многопоточности была затронута, но не раскрыта.
Как минимум для интенсивных backend batch jobs лучше Джава. Рест веб сервис я по прежнему на ноде буду писать
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: JavaScript
Геморрой номер два с нодом - скачка большого файла с сервера.
Там на лету пишется PDF doc в writable stream локальной файловой системы. И как только в документе страниц 50+ тормозит все что ох и ах. Причем только по сети, если все стоит локально - то терпимая скорость.
Стала копаться - оказывается нод, как good citizen, который ничего не блокирует и бережет все возможные ресурсы сам регулирует как этот стрим передавать через pipe.
делаем мы это PDFmake-ом, как тут описано и как бы вариантов никаких
https://github.com/bpampuch/pdfmake/issues/19" onclick="window.open(this.href);return false;
Нашла только каую то опцию буфер попробовать увеличить, но и то похоже на хак и непонятно что оно потом повлечет за собой
http://stackoverflow.com/questions/2400 ... -very-slow" onclick="window.open(this.href);return false;
На Play мы подобное делали через параллельный upload of file chunks through websockets, а с нодом непонятно что еще можно попробовать. Там и библиотек то на так много надежных которые работают с PDF
Там на лету пишется PDF doc в writable stream локальной файловой системы. И как только в документе страниц 50+ тормозит все что ох и ах. Причем только по сети, если все стоит локально - то терпимая скорость.
Стала копаться - оказывается нод, как good citizen, который ничего не блокирует и бережет все возможные ресурсы сам регулирует как этот стрим передавать через pipe.
делаем мы это PDFmake-ом, как тут описано и как бы вариантов никаких
https://github.com/bpampuch/pdfmake/issues/19" onclick="window.open(this.href);return false;
Code: Select all
// pdfDoc is a stream so you can pipe it to the file system
var fs = require('fs');
pdfDoc.pipe(fs.createWriteStream('pdfs/basics.pdf'));
pdfDoc.end();
http://stackoverflow.com/questions/2400 ... -very-slow" onclick="window.open(this.href);return false;
Code: Select all
var fs = require('fs');
var path = require('path');
var from = path.normalize(process.argv[2]);
var to = path.normalize(process.argv[3]);
var readOpts = {highWaterMark: Math.pow(2,16)};
var writeOpts = {highWaterMark: Math.pow(2,16)};
var source = fs.createReadStream(from, readOpts);
var destiny = fs.createWriteStream(to, writeOpts)
source.pipe(destiny);
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: JavaScript
Я как в воду глядела как мне "повезет". Молодое дарование после провала релиза свалило в стартап и это "нодовое" счастье передали мне для поддержки. Слов нет одни маты
https://www.youtube.com/watch?v=wOwblaKmyVw