Модные темы в веб фронтенде

User avatar
geek7
Уже с Приветом
Posts: 20297
Joined: 01 Dec 2003 23:16
Location: Russia->USA

Re: Модные темы в веб фронтенде

Post by geek7 »

OtherSide wrote: Что значит сразу асихронно. Все равно оно там в треды развернется, и не факт что оптимально
это аргумент из серии - ну и что менеджмент памяти, все равно освобождать ее приходится только не программисту а гарбадж коллектору, и не факт что оптимально. Чтобы с тредами нормально работать уровень требуется выше среднего, поэтому или пишут для екзотики или пользуются контейнерами. Для веба - второе. контейнеры в Жабе это сервлеты - до 3-й спецификации работало только как я описал. Для старого веба - где отрендерил страничку и следующая через секунды-минуты когда ползователь на сабмит нажмет это отлично работало... потом пошли вебсокеты, ожидание от веба респонса как от толстого клиента итд .. клиентский скрипт подтянулся, но пока вышел 3-й спек, пока фреймворки его подхватят.. дофига проектов с новыми требованиями от фронтэнда и бекендом сделаным по старому.
Сейчас в 3.1 и асинхронность, вебсокеты, нон-блокинт IO.. но представление жабе как тормозной по сравнению с нодой уже есть... ну это как с EJB - 3-й сделали нормально - уже катит как хороший ORM с опциональными наворотами для энтерпрайз.. но мне известны конторы которые попробовали 1.х и внесли в полиси - "никаких EJB"
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
User avatar
geek7
Уже с Приветом
Posts: 20297
Joined: 01 Dec 2003 23:16
Location: Russia->USA

Re: Модные темы в веб фронтенде

Post by geek7 »

Palych wrote:"Проверка на сервере" вообще-то дело хорошее. В итоге поможет осмыслить что есть опасно, а что нет.
Но геморройное. Мы долго с этим кувыркались, но нашему приложению лет 100 уже, так что есть время на созерцание и размышления.
ну что "клиенту доверять нельзя" это как бы хрестоматийное. так что геморройное или нет а не опшен
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Модные темы в веб фронтенде

Post by iDesperado »

geek7 wrote: ну что "клиенту доверять нельзя" это как бы хрестоматийное. так что геморройное или нет а не опшен
вот по этому я не пойму в чем прикол возиться с писаниной бизнес логики не на самом продвинутом языке/фреймворке angular, что бы потом всю ее дублировать на сервере. или я чего то кардинально не понял ?
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Модные темы в веб фронтенде

Post by OtherSide »

geek7 wrote:
OtherSide wrote: Что значит сразу асихронно. Все равно оно там в треды развернется, и не факт что оптимально
это аргумент из серии - ну и что менеджмент памяти, все равно освобождать ее приходится только не программисту а гарбадж коллектору, и не факт что оптимально.
Ну так и есть. Но память же легко масштабируется и ее на сервере с избытком, а процессора уже часто не хватает, так что выходит нод работает только для узкого круга задач, где производительность не важна.. Так обычно она очень важна
User avatar
stenking
Уже с Приветом
Posts: 14455
Joined: 26 May 2006 02:39

Re: Модные темы в веб фронтенде

Post by stenking »

iDesperado wrote:
stenking wrote:[делать API такой что бы с ангуляром работать отлично, авторизация немного по другому, единые файлы локализации которые галпом собираются и т.д. и т.д....и конечный результат будет сильно другой.

Например эппы где фронтэнд написан на ЧИСТОМ ангуляре изначально используют REST архитектуру. А эпп где например страница генерируется бекендом а ангуляр просто там формочки сабмитит - это совсем другое.
я как раз начал смотреть этот ангулар и не въезжаю в саму идею. они, что предлагают бизнес логику не просто писать на javascript так еще и всю ее дублировать на стороне сервера ? к примеру я пишу тулзу для workflow (связанный график отрисовываю), так что мне сначала всю логику какой степ после какого может быть пихать в ангулар, а потом всю эту же логику перепроверять на стороне сервера ? или они предлагают верить тому, что идет от жаваскрипт без каких-либо проверок ?
Ээ, я не знаю что именно вы делаете конечно но графики рисовать обычно нужно на клиенте получая дату через API. Зачем что-то дублировать? А если вы хотите эти графики сохранять то зачем проверять дату?
Бога нет.
User avatar
stenking
Уже с Приветом
Posts: 14455
Joined: 26 May 2006 02:39

Re: Модные темы в веб фронтенде

Post by stenking »

OtherSide wrote: На практике фулстек программистов на рынке больше чем нод программистов, и они дешевле. Плюс инфраструктура разработанная годами, десятилетиями. А на твой Ангуляр плюется куча людей, да и тоже вещь однодневная, вот второй вышел, который все старое перечеркнул.
А гонять JSON можно прекрасно и на шарпе, причем шарп и asp.net mvc очень предсказуемый, а в ноде поди куча багов

Если нод станет стандартом - не вопрос, перейдем, сейчас не вижу причины туда лезть.
Вы не правильни поняли то что я хотел сказать. Вот смотрите - вы сможете сделать такой эпп - https://rocket.chat" onclick="window.open(this.href);return false; или нет.

Этот так называемые simple page apps - no refresh. Одна кодбейс на клиент и на мобильные эппы, сложный UI во всякими еффектами. Без относительно нравится именно этот эпп или нет - чтобы делать такие вещи нужно менять подход к разработке.

Т.е. тут вопрос архитектуры в первую очередь. Вам нужен FDA ( frontend driven app ) или BDA ( backend driven app )

P.S. гонять и раскладывать JSON собирая из 20 таблиц может и не получится. Будет у вас API call 2 сек проходить и пошла ж**а с очередями. И т.д. и т.д.
Бога нет.
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Модные темы в веб фронтенде

Post by iDesperado »

stenking wrote:
Ээ, я не знаю что именно вы делаете конечно но графики рисовать обычно нужно на клиенте получая дату через API. Зачем что-то дублировать? А если вы хотите эти графики сохранять то зачем проверять дату?
сори, я граф имел ввиду
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Модные темы в веб фронтенде

Post by OtherSide »

stenking wrote:
OtherSide wrote: На практике фулстек программистов на рынке больше чем нод программистов, и они дешевле. Плюс инфраструктура разработанная годами, десятилетиями. А на твой Ангуляр плюется куча людей, да и тоже вещь однодневная, вот второй вышел, который все старое перечеркнул.
А гонять JSON можно прекрасно и на шарпе, причем шарп и asp.net mvc очень предсказуемый, а в ноде поди куча багов

Если нод станет стандартом - не вопрос, перейдем, сейчас не вижу причины туда лезть.
Вы не правильни поняли то что я хотел сказать. Вот смотрите - вы сможете сделать такой эпп - https://rocket.chat" onclick="window.open(this.href);return false; или нет.

Этот так называемые simple page apps - no refresh. Одна кодбейс на клиент и на мобильные эппы, сложный UI во всякими еффектами. Без относительно нравится именно этот эпп или нет - чтобы делать такие вещи нужно менять подход к разработке.

Т.е. тут вопрос архитектуры в первую очередь. Вам нужен FDA ( frontend driven app ) или BDA ( backend driven app )

P.S. гонять и раскладывать JSON собирая из 20 таблиц может и не получится. Будет у вас API call 2 сек проходить и пошла ж**а с очередями. И т.д. и т.д.
А почему это нельзя на C# сделать. И если данные надо собирать из нескольких таблиц - так их везде, на любом языке и фреймворке надо собирать.
User avatar
stenking
Уже с Приветом
Posts: 14455
Joined: 26 May 2006 02:39

Re: Модные темы в веб фронтенде

Post by stenking »

OtherSide wrote:
stenking wrote:
OtherSide wrote: На практике фулстек программистов на рынке больше чем нод программистов, и они дешевле. Плюс инфраструктура разработанная годами, десятилетиями. А на твой Ангуляр плюется куча людей, да и тоже вещь однодневная, вот второй вышел, который все старое перечеркнул.
А гонять JSON можно прекрасно и на шарпе, причем шарп и asp.net mvc очень предсказуемый, а в ноде поди куча багов

Если нод станет стандартом - не вопрос, перейдем, сейчас не вижу причины туда лезть.
Вы не правильни поняли то что я хотел сказать. Вот смотрите - вы сможете сделать такой эпп - https://rocket.chat" onclick="window.open(this.href);return false; или нет.

Этот так называемые simple page apps - no refresh. Одна кодбейс на клиент и на мобильные эппы, сложный UI во всякими еффектами. Без относительно нравится именно этот эпп или нет - чтобы делать такие вещи нужно менять подход к разработке.

Т.е. тут вопрос архитектуры в первую очередь. Вам нужен FDA ( frontend driven app ) или BDA ( backend driven app )

P.S. гонять и раскладывать JSON собирая из 20 таблиц может и не получится. Будет у вас API call 2 сек проходить и пошла ж**а с очередями. И т.д. и т.д.
А почему это нельзя на C# сделать. И если данные надо собирать из нескольких таблиц - так их везде, на любом языке и фреймворке надо собирать.
А попробуйте 500 рекордов вытащить как ORM объекты потом собрать в json , передать через API а потом разобрать обратно в объекты. И сравните с аналогичной операцией когда с монги json нативно аналогично скармливается expres или angular

И померяйте время.
Бога нет.
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Модные темы в веб фронтенде

Post by OtherSide »

stenking wrote: А попробуйте 500 рекордов вытащить как ORM объекты потом собрать в json , передать через API а потом разобрать обратно в объекты. И сравните с аналогичной операцией когда с монги json нативно аналогично скармливается expres или angular
А какое это имеет отношение к ноду?
Я во первых ORM юзать и не буду, напишу нормальные запросы, они быстро отработают. Потом 2 строчки кода переведут результат в JSON.
У меня на моем биржевом сайте сечас активно 50 человек сидят, и не какой-то там чат гоняют, а биржевые данные, т.к. миллионы записей. Ничего, все работает.
Самое главное, если что я понимаю где тонкие места. А нод и монго черный ящик.

Вы же понимаете, что ничего бесплатно не бывает. Если что то хорошо работает из коробки, значит добиливать под малейших отход придется долго
AlexS_JET
Posts: 3
Joined: 15 Jan 2016 07:05

Re: Модные темы в веб фронтенде

Post by AlexS_JET »

OtherSide wrote:Сейчас пытаюсь определить тренды во фронтенде веба (джава скрипте) и вижу что сейчас идет сильная утряска отрасли.
Куча всяких фрейморков. Вроде модная тема Ангуляр. Пробовал копать, отзывы, да и мое впечатление не оч. хорошее. Ну что то простое сделать легко, но боюсь в сложных проектах боюсь задолбаешься с отладкой из-за декларативного стиля.
Новая мода ангуляр2. Там вообще свой препроцессор. Вот тут я вообще не понял. А как тогда другие фреймворки юзать. Или предполагается что все на typescript перейдут?
В общем что сейчас модное, что изучать в первую очередь надо?
Смотрите лучше в сторону react, а не angular. т.к. это совершенно другой подход с использованием виртуального DOM, да еще и сможете писать с помощью него нативные приложения.

Typescript не сложный и он очень помогает с отладкой. Angular 2 я бы не трогал пока не выйдет из беты.
Palych
Уже с Приветом
Posts: 13683
Joined: 16 Jan 2001 10:01

Re: Модные темы в веб фронтенде

Post by Palych »

stenking wrote:с монги json нативно аналогично скармливается expres или angular
А в каком виде этот json доступен внутри нода? Как строка, или как дерево?
OtherSide
Уже с Приветом
Posts: 15770
Joined: 01 Mar 2008 15:14

Re: Модные темы в веб фронтенде

Post by OtherSide »

Palych wrote:
stenking wrote:с монги json нативно аналогично скармливается expres или angular
А в каком виде этот json доступен внутри нода? Как строка, или как дерево?
Ну исходя из того, что нод это джаваскрипт, то выводы очевидны ) в виде дажваскрипт структуры
User avatar
stenking
Уже с Приветом
Posts: 14455
Joined: 26 May 2006 02:39

Re: Модные темы в веб фронтенде

Post by stenking »

OtherSide wrote:.
Самое главное, если что я понимаю где тонкие места. А нод и монго черный ящик.
Вот вот. Так и случается деградация. Человек привыкает к одной технологии и не способен уже оценить ничего нового. Старую он же знает хорошо , там всё приятно и понятно а что-то новое это сложный и непонятный блек бокс. Но прогресс не стоит на одном месте и новые вещи появляются не потому что это дань моде ( не один человек который хорошо знает например Ангуляр не вернётся на jquery а те кто пишут на jquery не уходят на ванилу ) а как естественная эволюция отрасли. А вы даже ORM не освоили ещё и живёте на виндовских серверах которые в веб деве считаются фу-фу-фу.
Last edited by stenking on 19 Jan 2016 17:23, edited 1 time in total.
Бога нет.
User avatar
stenking
Уже с Приветом
Posts: 14455
Joined: 26 May 2006 02:39

Re: Модные темы в веб фронтенде

Post by stenking »

OtherSide wrote: А какое это имеет отношение к ноду?
Я во первых ORM юзать и не буду, напишу нормальные запросы, они быстро отработают. Потом 2 строчки кода переведут результат в JSON.
Проблема не в запросе, а как я говорил - кодирование/раскодирование json может занять значительное время. Но это так, просто пример был.
Бога нет.
Palych
Уже с Приветом
Posts: 13683
Joined: 16 Jan 2001 10:01

Re: Модные темы в веб фронтенде

Post by Palych »

stenking wrote: Проблема не в запросе, а как я говорил - кодирование/раскодирование json может занять значительное время.
В смысле - превращение в объекты генерированных классов с getXXX()/setXXX() ?
Если nodejs позволяет избавиться от этого мракобесия - я наверное остаток жизни посвящу его освоению и популяризации...
User avatar
stenking
Уже с Приветом
Posts: 14455
Joined: 26 May 2006 02:39

Re: Модные темы в веб фронтенде

Post by stenking »

Palych wrote:
stenking wrote: Проблема не в запросе, а как я говорил - кодирование/раскодирование json может занять значительное время.
В смысле - превращение в объекты генерированных классов с getXXX()/setXXX() ?
Если nodejs позволяет избавиться от этого мракобесия - я наверное остаток жизни посвящу его освоению и популяризации...
Ну сама монга держит дату в json внутри себя и отдаёт её так же. Браузеры тоже умеют кодировать/раскодировать JSON если нужно а ORM тоже используют json.

Code: Select all

    
    var user = new User ({
      name: { first: 'Ivan', last: 'Palych' },
      age: 25
    });
 
Бога нет.
User avatar
geek7
Уже с Приветом
Posts: 20297
Joined: 01 Dec 2003 23:16
Location: Russia->USA

Re: Модные темы в веб фронтенде

Post by geek7 »

stenking wrote:
Palych wrote:
stenking wrote: Проблема не в запросе, а как я говорил - кодирование/раскодирование json может занять значительное время.
В смысле - превращение в объекты генерированных классов с getXXX()/setXXX() ?
Если nodejs позволяет избавиться от этого мракобесия - я наверное остаток жизни посвящу его освоению и популяризации...
Ну сама монга держит дату в json внутри себя и отдаёт её так же. Браузеры тоже умеют кодировать/раскодировать JSON если нужно а ORM тоже используют json.
Так сервер-сайдный нод берет из монги строку(в которой json) и передает браузеру как строку а тот уже парсит в объекты или таки из монги ->в объекты nodejs -> в строку-> в объекты браузера?
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
User avatar
stenking
Уже с Приветом
Posts: 14455
Joined: 26 May 2006 02:39

Re: Модные темы в веб фронтенде

Post by stenking »

geek7 wrote: Так сервер-сайдный нод берет из монги строку(в которой json) и передает браузеру как строку а тот уже парсит в объекты или таки из монги ->в объекты nodejs -> в строку-> в объекты браузера?
Можно и так и так. вот мне нужно получить юзеров на фронтенде.

Code: Select all

(function () {
    angular.module('xxx.models').factory('User', User);

    User.$inject = ['$modelFactory'];

    function User($modelFactory) {
        return $modelFactory('/api/users', {
            actions: {
                base: {
                    afterRequest: function (response) {
                        if (!response.data) {
                            return response;
                        }
                        var transform = response.data;
                        transform.pagination = response.pagination;
                        transform.meta = response.meta;
                        return transform;
                    }
                },
                query: {
                    afterRequest: function (response) {
                        var transform = response.data;
                        transform.pagination = response.pagination;
                        transform.meta = response.meta;
                        return transform;
                    }
                }
            }
        });
    }
})();
А вот я их через ORM вытаскиваю в ноде с монги.

Code: Select all

let list = yield User
        .find(query)
        .limit(perPage)
        .skip((page - 1) * perPage)
        .select({name: true, avatar: true, location: true});

    this.body = {
        params: {},
        pagination: {
            page: page,
            per_page: perPage,
            total: count
        },
        data: list
    };
Бога нет.
User avatar
geek7
Уже с Приветом
Posts: 20297
Joined: 01 Dec 2003 23:16
Location: Russia->USA

Re: Модные темы в веб фронтенде

Post by geek7 »

stenking wrote:
geek7 wrote: Так сервер-сайдный нод берет из монги строку(в которой json) и передает браузеру как строку а тот уже парсит в объекты или таки из монги ->в объекты nodejs -> в строку-> в объекты браузера?
Можно и так и так. вот мне нужно получить юзеров на фронтенде.
Так и в Java можно и так и так... так в чем будет преимущество nodejs .. у него парсер JSON лучше? потому как в 1-м варианте потенциальной разницы воообще не вижу
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
User avatar
stenking
Уже с Приветом
Posts: 14455
Joined: 26 May 2006 02:39

Re: Модные темы в веб фронтенде

Post by stenking »

geek7 wrote:
stenking wrote:
geek7 wrote: Так сервер-сайдный нод берет из монги строку(в которой json) и передает браузеру как строку а тот уже парсит в объекты или таки из монги ->в объекты nodejs -> в строку-> в объекты браузера?
Можно и так и так. вот мне нужно получить юзеров на фронтенде.
Так и в Java можно и так и так... так в чем будет преимущество nodejs .. у него парсер JSON лучше? потому как в 1-м варианте потенциальной разницы воообще не вижу
А где тут парсеры? Я как раз и показал пример где нет ни одной конвертации а операции с чистым JSON и даже через ORM.

Смотрите, .select({name: true, avatar: true, location: true})...т.е. что тут происходит? Монга обрезает что нужно от своего внутреннего json и отдаёт его наружу ноду. Этот кусочек ( json масив юзеров ) передаётся Ангулярy который например может инициализировать модель пользователей, притом никаких модификаций json не нужно если эта модель не отличается от модели на бекенде ( а может и просто работать с деревом ).
Бога нет.
User avatar
geek7
Уже с Приветом
Posts: 20297
Joined: 01 Dec 2003 23:16
Location: Russia->USA

Re: Модные темы в веб фронтенде

Post by geek7 »

stenking wrote:
geek7 wrote:
stenking wrote:
geek7 wrote: Так сервер-сайдный нод берет из монги строку(в которой json) и передает браузеру как строку а тот уже парсит в объекты или таки из монги ->в объекты nodejs -> в строку-> в объекты браузера?
Можно и так и так. вот мне нужно получить юзеров на фронтенде.
Так и в Java можно и так и так... так в чем будет преимущество nodejs .. у него парсер JSON лучше? потому как в 1-м варианте потенциальной разницы воообще не вижу
А где тут парсеры? Я как раз и показал пример где нет ни одной конвертации а операции с чистым JSON и даже через ORM.
:D если Вы не вызываете .parse(String) это еще не значит что парсеров нет.
Вы хотите сказать, что монга ноду отдает уже найтив объекты ноды? нет? тогда нода парсит. и уж точно браузер получая строку от ноды парсит ее в JS объекты...
что, по Вашему, есть грязный JSON?
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
User avatar
stenking
Уже с Приветом
Posts: 14455
Joined: 26 May 2006 02:39

Re: Модные темы в веб фронтенде

Post by stenking »

geek7 wrote: Вы хотите сказать, что монга ноду отдает уже найтив объекты ноды? нет? тогда нода парсит. и уж точно браузер получая строку от ноды парсит ее в JS объекты...
А вы почитайте что такое JSON.

"JSON is a subset of the object literal notation of JavaScript.... Since JSON is a subset of JavaScript, it can be used in the language with no muss or fuss."

T.e. создание JS objects с json масива это НЕ парсинг. А во всех других языках это не так :) Понятнее теперь? ) JSON как дата в монге => JSON как часть нативного JS обьекта, JSON как текст для передачи через сокеты браузеру=> JSON как JS обьект => JSON как часть ORM.

И нигде в этой цепочке парсинга не было
Бога нет.
User avatar
ie
Уже с Приветом
Posts: 11019
Joined: 15 May 2002 02:09
Location: Boston, MA

Re: Модные темы в веб фронтенде

Post by ie »

stenking wrote:
geek7 wrote: Вы хотите сказать, что монга ноду отдает уже найтив объекты ноды? нет? тогда нода парсит. и уж точно браузер получая строку от ноды парсит ее в JS объекты...
А вы почитайте что такое JSON.

"JSON is a subset of the object literal notation of JavaScript.... Since JSON is a subset of JavaScript, it can be used in the language with no muss or fuss."

T.e. создание JS objects с json масива это НЕ парсинг. А во всех других языках это не так :) Понятнее теперь? ) JSON как дата в монге => JSON как часть нативного JS обьекта, JSON как текст для передачи через сокеты браузеру=> JSON как JS обьект => JSON как часть ORM.

И нигде в этой цепочке парсинга не было
как сложные данные переданные браузеру как текст используются этим браузером без парсинга? :roll:
User avatar
fruit6
Уже с Приветом
Posts: 4207
Joined: 10 Jan 2004 01:22
Location: n-sk -> MD -> VA

Re: Модные темы в веб фронтенде

Post by fruit6 »

Mongodb protocol is binary encoded bson over TCP/IP.

Return to “Вопросы и новости IT”