Вы знаете...Node популярна(я это и в той ветке написал)… Что её коэффициент Эффективность/Простота=Очень высок...java тоже эффективна, но не простая.(с Другими языками не знаком).
Есть вещи которые бы не рискнул разрабатывать на node(Это связанно с ООП и с глубоким наследованием)…
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.connectToServer(CustomClientEndpoint.class, new URI("ws://localhost:8080/path"));
непонятная… не буду Вас переубеждать…
А ещё Вам сказу… помните песню Бутусова,
-«Тут составы смяли чтобы сделать колонны»…
Так вот это об этом Вашем решении… Вставить в зависимость такого монстра как spring
org.springframework.boot
И ради этого маленького решения потянуть зависимости org.springframework.boot
.я понимаю Вы хотели показать краткость… и она из-за спринговых аннтотаций.(Но всё равно неизящно, интутивно непонятно).
Я сколько пищу на яве… и надо мне передать по сокету.(скопировать файл)… я ищу свои прежние решения, чтобы скопипастить подобную хрень.
ByteBuffer byteBuffer = ByteBuffer.allocate(1000);
try (FileInputStream file = new FileInputStream("/path/to/file")) {
byteBuffer.put(IOUtils.toByteArray(file));
А в ноде не ищу… мысль сама ложится.
Мысль: Так надо забрать из сокета(не ws)
socket.on('data',(data)=>{Работаю с данными...причём не Важно бинарные,или текстовые })
Мысль на русском эквивалентна количеству кода.
А Автору топика скажу(И больше уже не буду спорить..), что Node и завоевал
популярность ибо его коэффициент Эффективность/Простота =Очень Высок.
java тоже эффективна… но не проста.(И есть моменты, которые бы я делал только на java)
Да??? Прям так… Пробую скомпилить и запустить… ах блин… мне же надо либо мавен либо gradle файл сделать… так… почитаем как его делать… Ой что-то я с синтаксисом мавена не разобрался/накосячмл… сейчас погуглю.
А в node(для линукса)
yum install node(Вот даже ноду установлю для Вас)
mkdir myhttp
npm install express
node mydir/bin/www
Можете сами попробовать
Я теперь soap клиент сделайте...websocket сделайте… файл по сокету передайте…
И сделайте это там и там… как я в соё время сделал… и офигеете как всё просто…
А древние говорили…
Упрощать сложно… а вот усложнять легко.
Я писал выше, что пишу глубоко на ноде и ява… и есть с чем сравнить… а Вы видимо только на яве.Ноде лаконичнее… легче читается… не задумываешься об всяческих лексемах.
А вот Вы знаете не согласен… что программирование это работа, а не исскуство…
Есть выражение, работай так, как будто тебе не нужны деньги.
И Кто в моей конторе(я сам предприниматель) так работает… у того качественней код(и кстати те и больше всех получают и теми кадрами я поистине дорожу)… а те кто за бабули… типа выполнил ТЗ и там трава не расти… и сразу давай мне оплату… я ж тут не зря (-|-) рвал… у тех и код приходится переделывать и всегда им подсознательно подыскиваю замену.
Вы сказали
>>Справедливости ради нужно сказать что мой главный промышленный язык это Erlang, с 2013 года Elixir.
Вот я не знаю… что тут добавить… чего тогда анализируете java против node… Вот я пишу глубоко на том и на том… и могу позволить себе небольшой анализ.(Там вверху я написал где node рвёт java как тузик грелку… но у меня есть и случаи где java пользовать предпочтительнее… просто недостатки языка это продолжение достоинст)
А Автор Топика например делал soap клиент на java?(Про сервер-soap я вообще молчу)
Пусть попробует… а в node
var soap = require('soap');
var url = 'http://localhost/wsdl?wsdl';
var args = {name: 'Имя'};
soap.createClient(url, function(err, client) {
client.SayHello(args, function(err, result) {
console.log(result);
});
});
Причём пусть изменит метод сервера… и потом помучается с java… а тут просто client.SayHellonew надо поменять.
А сокеты… передать файл по сокету… попробуйте кодом на java и на node…
В ява…
пока есть данные читаем поток сокета пишем в выходной поток.
в ноде
socket.on('data',(data)=>{console.log(data)});
А http client? а http сервер… Я Вам за 18 секунд подниму http сервер на node.
На node код в 40 раз короче…
И при этом(в моём опыте даже быстрее) не медленее.(Как они этого добиваются в одном потоке вообще непонятная магия)
Я сам пишу на java и на node… и есть с чем сравнивать ,-ноде это простота кода и ёмкость… сосредотачиваюсь просто на решении., а не на обрастании синтаксических лексем.
Мне тоже иногда (особенно когда офисная… Там МФУ шка или сканер документов не становится) хочется Centos на что-то другое… Но есть зависимость… СУБД Oracle на нём(Centos) «ходит» лучше всего… поэтому пока с ним… И в целом обычные компы без проблем… вот только ноуты капризничают.
Тоже хочу сменить ноут(Сейчас SLES 11 но HP) установлен.Но на Centos 7.
И часто на ноутах проблема с drivers.в Centos (Клиентам ставил 6) Если бы знать, что у Вас на Centos 7 завёлся… пошёл бы покупать :-)
Мне кажется это просто того, что Управленческий учёт управляет бухгалтерским.(и управленческий доминирует над бухгалтерским)… Никто дотошно дни и не считает раз Вы работу выполняете.Просто управлению так удобно… уменьшается административный ресурс(Типа следить за Вами(и др.сотрудниками)… вести табель учёта рабочего времени)…
Хочу прокомментировать «Зарплаты считаются в Exel»…
-Вы знаете,- это потому, что налоговая система очень простая… стабильная… и неизменная.В этой же России… мечтали бы только об этом.(А про заполнение электронных деклараций… и тут хватает косяков)
В принципе, Вы удовлетворили моё техническое любопытство. :-)
Раз у Вас есть востребованность на практике… наверное оно и вправду надо.
Наверное мы находимся в разных измерениях в автоматизации учёта.(которые не пересекаются)
У меня(http://cis-pos.com/) фирмы мелкий и средний бизнес,- автоматизирую «хорька» HoReCa(Hotel Restoran,Cafe,Shop).
У меня тоже конструктор-компоновщик.(но база данных хардкодная
Типа у всех есть documenttitles и documentscontents,firms и т.д… отраслевой атрибутикой отличаются)… а вот логика представления CRUID это легко конфигурируемое.(Но порог вхождения выше)(Ну и свой генератор отчётов естественно, но для специалиста)
И вот востребованность конструктора отчёта в моей сфере попадает в формат
для:
«Благородного Атоса, это слишком много, а для графа ДеЛяФер слишком мало»…
Т.е простые отчёты покрываются существующим репозиторием отчётов… а сложные «вынос мозга»(у меня есть все те перечисленные случаи и плюс интерактивность)… надо делать специалисту.
Ну я например и вправду не осознавал, что всё так наворочено(и был ли смысл идти по пути одинэф… хотя это уже оффтоп)… и тогда и вправду Вы не имеете общего репозитория отчётов… или же их переброска затруднительна… тогда и вправду отпадают отчёты с поворотами, rollup и т.д… Тогда и вправду надо получить просто «сырые» данные и их уже загружать в другой отчётный инструментарий(Вот сомнительно для громкого имени ERP… такой «костылёчек»..)…
Благодарю интересная статья…
И оченб интересный опыт.
Тем более моя ИС(http://cis-pos.com) тоже opensource(Правда оформлена ввиде VM образа, очень много зависимостей).
Про ЕГАИС это конечно отдельный головняк.
Я до версии 2.03 cпокойно запускал на Centos 6.5 x64…
Но потом криворукие прекратили поддержку x64… и на Ubunte x64 как-то можно доставить 32 библиотеки, чтоб завелось.
НО на Centose я не поднял… поставили win-виртуалку пробросил jacartу пронатил порты.
Вообще АД для программистов обязательно должен содержать поддержку ЕГАИС. :-)
Например они обязали перейти на вторую версию их документа… при этом изменения было в трёх названиях тэгов.
Технически не было смысла никакого.Но всех нагнули.
Обязательно посмотрю драйвера для ФР… я после закона онлайн касс отказался от штриха и атола ибо они протокол поменяли.
Я читал статью и помню про встраивание pl/sql, просто как только это произошло Ваш конструктор потерял формат «генератор отчётов для неИТшника».
Ну и вдогонку… не знаю какие у Вас отчёты просили менеджеры -аналитики… У меня… и со знаниеми sql просто «вынос мозга»… это и lag,lead это rollup,cube order dense rank… И конечно же «поворот» pivot(Причём надо ещё решить pivot делать на уровне СУБД(в частности oracle) позволяет или в генераторе отчётов… а ещё (есть поддержка js) сделать его интерактивным… по нажатию… что там раскрывалось…
К чему это всё я… просто отчёты, а особенно аналитические должны делать специально обученные люди.А «генератор отчётов для неИТшника»… это просто маркетинговый концепт.
Вот я не знаю, работа вроде проведена большая… но исключительно по-моему мнению
ошиблись вектором.
Постоянно бродит по ИТ сообществу «призрак конструктора отчёта для неИТшника».
-А может не будем давать возможность водителю делать автомобиль, пусть просто рулит.
-Или пилоту конструировать самолёт.(Помимо знаний аэродинамики и механики, много ещё чего надо)
Так же как и нам… индексы план разбора… оптимизация sql.
Закончится тем, что Вы будите постоянно усложнять Ваш конструктор отчётов… увеличивая сложность вхождения в него.
Запаритесь консультировать «криворуких менеджеров».Сетуя на то, что быстрее сами бы сделали)
Потом добавите в свой конструктор sql(Ибо иначе не справится со всеми требованиями)… И будет это уже Ваш внутренний инструмент.
Тем более, что в каждой отрасти так или иначе существует отчётное насыщение.Вы просто будите подключать по требованию нужный отчёт из вашего отчётного репозитория кода.
Почти не поменялся не считается… аппарат должен сразу заработать(Атол и Штрих не заработал)… По сути для нас разработчиков поменялось только одно… перед закрытием чека если есть требование,- послать атрибут офд(email/phone) и всё.
И если бы только наступление с этого фронта… а есть ещё ЕГАИС… ФМС для отелей… просто отбиваться не успеваю… когда не меняется спецификация это очень важно.(во всяком случае для мелкого ИТ бизнеса)
А насчёт протокола… у Piritа очень простой(СПС-402 простой)… А если Вы видели Украинскую Мария МТМ… там вообще сказка...(Он например сам определяет скорость передачи rs-232)… и дальше тоже очень дружественно.
Ещё добавлю…
Про финансово этическую сторону я уже говорил… что надо менять-покупать ФН(тут говорили, что его можно на 36 месяцев купить,-я ни у кого не видел такой) и вообще зачем его менять… все чеки находятся в датацентре ОФД… с технической точки зрения нет никакого смысла его менять.(это ведь ещё и административный ресурс,---останавливать кассу надо)
Поговорим о технической…
Мы разрабатываем собственные кроссплатформенные драйвера по низкоуровневому протоколу производителя.
Так вот некоторые(Атол, Штрих) себе позволили этот протокол поменять(не дополнить функционалом, а именно поменять)… мне надо типа открыть смену в фискальном накопители, закрыть… следить за его статусом…
Я от них отказался в пользу тех кто не поменял… и для меня их аппарат выглядел после прошивки так же.
и сразу печатал чек...«Пусть хоть небольшая денюжка, но более инновационным капнет»
Вы не представляете насколько у Атола недружественный низкоуровневый интерфейс обмена…
и не представляеете, как сложно под него сделать драйвер… но даже это не проблема… надо смотреть их толмуты документации и исследовать, но даже и это не самое страшное, а то, что в неактивном накопители аппарат не работает… я его так не могу исследовать… надо брать какой-то эмулятор ФН(покупать за свой счёт)
Неужели так сложно внутри своей коробочки атолу или штриху сделать алгоритмическое ветвление(как сделал например Pirit) если смена в ФН не открыта,- то открыть)… нет не барское видимо это дело…
Переписали свой заводской драйвер… сказали всем заменить… компенсировали недостатки микропроцессорного программирования своим драйвером… Видимо они и представить не могли, что кто-то по их протоколу пишет и не под винду.
А автор статьи хоть немного предприниматель?(Хотя бы на 0.1%)?
Растолкую… в аппарата используется Фискальный накопитель, который надо менять раз в год и не потому,
что он заполнился, а потому, что «так надо»… даже если Вы пробили за год всего один чек.(А ФН не очень дешёвый)
Вы платите ещё одной пиявке к бизнесу ОФД...(У налоговой видимо корона упадёт если она напрямки получит электронный чек от бизнеса)
Таким образом скрытых налогов около 1000руб на кассовое место.
Есть вещи которые бы не рискнул разрабатывать на node(Это связанно с ООП и с глубоким наследованием)…
Если Вам эта длиннотень нравится
непонятная… не буду Вас переубеждать…
А ещё Вам сказу… помните песню Бутусова,
-«Тут составы смяли чтобы сделать колонны»…
Так вот это об этом Вашем решении… Вставить в зависимость такого монстра как spring
org.springframework.boot
И ради этого маленького решения потянуть зависимости org.springframework.boot
.я понимаю Вы хотели показать краткость… и она из-за спринговых аннтотаций.(Но всё равно неизящно, интутивно непонятно).
Я сколько пищу на яве… и надо мне передать по сокету.(скопировать файл)… я ищу свои прежние решения, чтобы скопипастить подобную хрень.
ByteBuffer byteBuffer = ByteBuffer.allocate(1000);
try (FileInputStream file = new FileInputStream("/path/to/file")) {
byteBuffer.put(IOUtils.toByteArray(file));
А в ноде не ищу… мысль сама ложится.
Мысль: Так надо забрать из сокета(не ws)
Мысль на русском эквивалентна количеству кода.
А Автору топика скажу(И больше уже не буду спорить..), что Node и завоевал
популярность ибо его коэффициент Эффективность/Простота =Очень Высок.
java тоже эффективна… но не проста.(И есть моменты, которые бы я делал только на java)
А в node(для линукса)
Можете сами попробовать
Я теперь soap клиент сделайте...websocket сделайте… файл по сокету передайте…
И сделайте это там и там… как я в соё время сделал… и офигеете как всё просто…
А древние говорили…
Упрощать сложно… а вот усложнять легко.
Я писал выше, что пишу глубоко на ноде и ява… и есть с чем сравнить… а Вы видимо только на яве.Ноде лаконичнее… легче читается… не задумываешься об всяческих лексемах.
Есть выражение, работай так, как будто тебе не нужны деньги.
И Кто в моей конторе(я сам предприниматель) так работает… у того качественней код(и кстати те и больше всех получают и теми кадрами я поистине дорожу)… а те кто за бабули… типа выполнил ТЗ и там трава не расти… и сразу давай мне оплату… я ж тут не зря (-|-) рвал… у тех и код приходится переделывать и всегда им подсознательно подыскиваю замену.
>>Справедливости ради нужно сказать что мой главный промышленный язык это Erlang, с 2013 года Elixir.
Вот я не знаю… что тут добавить… чего тогда анализируете java против node… Вот я пишу глубоко на том и на том… и могу позволить себе небольшой анализ.(Там вверху я написал где node рвёт java как тузик грелку… но у меня есть и случаи где java пользовать предпочтительнее… просто недостатки языка это продолжение достоинст)
Пусть попробует… а в node
Причём пусть изменит метод сервера… и потом помучается с java… а тут просто client.SayHellonew надо поменять.
А сокеты… передать файл по сокету… попробуйте кодом на java и на node…
В ява…
пока есть данные читаем поток сокета пишем в выходной поток.
в ноде
А http client? а http сервер… Я Вам за 18 секунд подниму http сервер на node.
На node код в 40 раз короче…
И при этом(в моём опыте даже быстрее) не медленее.(Как они этого добиваются в одном потоке вообще непонятная магия)
Я сам пишу на java и на node… и есть с чем сравнивать ,-ноде это простота кода и ёмкость… сосредотачиваюсь просто на решении., а не на обрастании синтаксических лексем.
И часто на ноутах проблема с drivers.в Centos (Клиентам ставил 6) Если бы знать, что у Вас на Centos 7 завёлся… пошёл бы покупать :-)
-Вы знаете,- это потому, что налоговая система очень простая… стабильная… и неизменная.В этой же России… мечтали бы только об этом.(А про заполнение электронных деклараций… и тут хватает косяков)
Раз у Вас есть востребованность на практике… наверное оно и вправду надо.
Наверное мы находимся в разных измерениях в автоматизации учёта.(которые не пересекаются)
У меня(http://cis-pos.com/) фирмы мелкий и средний бизнес,- автоматизирую «хорька» HoReCa(Hotel Restoran,Cafe,Shop).
У меня тоже конструктор-компоновщик.(но база данных хардкодная
Типа у всех есть documenttitles и documentscontents,firms и т.д… отраслевой атрибутикой отличаются)… а вот логика представления CRUID это легко конфигурируемое.(Но порог вхождения выше)(Ну и свой генератор отчётов естественно, но для специалиста)
И вот востребованность конструктора отчёта в моей сфере попадает в формат
для:
«Благородного Атоса, это слишком много, а для графа ДеЛяФер слишком мало»…
Т.е простые отчёты покрываются существующим репозиторием отчётов… а сложные «вынос мозга»(у меня есть все те перечисленные случаи и плюс интерактивность)… надо делать специалисту.
И оченб интересный опыт.
Тем более моя ИС(http://cis-pos.com) тоже opensource(Правда оформлена ввиде VM образа, очень много зависимостей).
Про ЕГАИС это конечно отдельный головняк.
Я до версии 2.03 cпокойно запускал на Centos 6.5 x64…
Но потом криворукие прекратили поддержку x64… и на Ubunte x64 как-то можно доставить 32 библиотеки, чтоб завелось.
НО на Centose я не поднял… поставили win-виртуалку пробросил jacartу пронатил порты.
Вообще АД для программистов обязательно должен содержать поддержку ЕГАИС. :-)
Например они обязали перейти на вторую версию их документа… при этом изменения было в трёх названиях тэгов.
Технически не было смысла никакого.Но всех нагнули.
Обязательно посмотрю драйвера для ФР… я после закона онлайн касс отказался от штриха и атола ибо они протокол поменяли.
Ну и вдогонку… не знаю какие у Вас отчёты просили менеджеры -аналитики… У меня… и со знаниеми sql просто «вынос мозга»… это и lag,lead это rollup,cube order dense rank… И конечно же «поворот» pivot(Причём надо ещё решить pivot делать на уровне СУБД(в частности oracle) позволяет или в генераторе отчётов… а ещё (есть поддержка js) сделать его интерактивным… по нажатию… что там раскрывалось…
К чему это всё я… просто отчёты, а особенно аналитические должны делать специально обученные люди.А «генератор отчётов для неИТшника»… это просто маркетинговый концепт.
ошиблись вектором.
Постоянно бродит по ИТ сообществу «призрак конструктора отчёта для неИТшника».
-А может не будем давать возможность водителю делать автомобиль, пусть просто рулит.
-Или пилоту конструировать самолёт.(Помимо знаний аэродинамики и механики, много ещё чего надо)
Так же как и нам… индексы план разбора… оптимизация sql.
Закончится тем, что Вы будите постоянно усложнять Ваш конструктор отчётов… увеличивая сложность вхождения в него.
Запаритесь консультировать «криворуких менеджеров».Сетуя на то, что быстрее сами бы сделали)
Потом добавите в свой конструктор sql(Ибо иначе не справится со всеми требованиями)… И будет это уже Ваш внутренний инструмент.
Тем более, что в каждой отрасти так или иначе существует отчётное насыщение.Вы просто будите подключать по требованию нужный отчёт из вашего отчётного репозитория кода.
И если бы только наступление с этого фронта… а есть ещё ЕГАИС… ФМС для отелей… просто отбиваться не успеваю… когда не меняется спецификация это очень важно.(во всяком случае для мелкого ИТ бизнеса)
А насчёт протокола… у Piritа очень простой(СПС-402 простой)… А если Вы видели Украинскую Мария МТМ… там вообще сказка...(Он например сам определяет скорость передачи rs-232)… и дальше тоже очень дружественно.
Про финансово этическую сторону я уже говорил… что надо менять-покупать ФН(тут говорили, что его можно на 36 месяцев купить,-я ни у кого не видел такой) и вообще зачем его менять… все чеки находятся в датацентре ОФД… с технической точки зрения нет никакого смысла его менять.(это ведь ещё и административный ресурс,---останавливать кассу надо)
Поговорим о технической…
Мы разрабатываем собственные кроссплатформенные драйвера по низкоуровневому протоколу производителя.
Так вот некоторые(Атол, Штрих) себе позволили этот протокол поменять(не дополнить функционалом, а именно поменять)… мне надо типа открыть смену в фискальном накопители, закрыть… следить за его статусом…
Я от них отказался в пользу тех кто не поменял… и для меня их аппарат выглядел после прошивки так же.
и сразу печатал чек...«Пусть хоть небольшая денюжка, но более инновационным капнет»
Вы не представляете насколько у Атола недружественный низкоуровневый интерфейс обмена…
и не представляеете, как сложно под него сделать драйвер… но даже это не проблема… надо смотреть их толмуты документации и исследовать, но даже и это не самое страшное, а то, что в неактивном накопители аппарат не работает… я его так не могу исследовать… надо брать какой-то эмулятор ФН(покупать за свой счёт)
Неужели так сложно внутри своей коробочки атолу или штриху сделать алгоритмическое ветвление(как сделал например Pirit) если смена в ФН не открыта,- то открыть)… нет не барское видимо это дело…
Переписали свой заводской драйвер… сказали всем заменить… компенсировали недостатки микропроцессорного программирования своим драйвером… Видимо они и представить не могли, что кто-то по их протоколу пишет и не под винду.
Растолкую… в аппарата используется Фискальный накопитель, который надо менять раз в год и не потому,
что он заполнился, а потому, что «так надо»… даже если Вы пробили за год всего один чек.(А ФН не очень дешёвый)
Вы платите ещё одной пиявке к бизнесу ОФД...(У налоговой видимо корона упадёт если она напрямки получит электронный чек от бизнеса)
Таким образом скрытых налогов около 1000руб на кассовое место.