LINUX.ORG.RU

angular2 нескромный вопрос

 


0

1

Немного о себе: обожаю coffeescript (livescript ещё больше) и люблю сам писать весь код, без фреймворков, без jquery и либ, имею в виду нечто напоминающее фреймворк, когда вся структура написана собой для себя - очень уютно выходит. Таким образом, пишу на не-модном, вне всяких реактов-емберов и прочих. То есть не судите строго за вопрос, я действительно не понимаю, просто не могу понять, привык видимо к другому, выпал из современности. Как бы многие местечки в интернете охвачены благоговением перед ангуляром, чуть ли не в ранга божества, наверняка большинство право и это нечто, что все изменит. Вот открываю quickstart, прохожу быстренько, получается ПАПКА ВЕСОМ 90МБ ЧТОБЫ ПОКАЗАТЬ ХЕЛЛО ВОРЛД, это, наверно, можно понять, хотя я этого не понимаю. То что поразило - сам хелло ворлд. Ангуляру требуется ~1.5 секунды, чтобы вывести надпись на экран. Занавес, я в шоке, серьезно, сейчас я в шоке, вовсе не холивора ради пишу. Вот live пример: http://plnkr.co/edit/?p=preview, грузится так же. Почему нигде не написано, что он настолько медленный? Или это development режим, а в production будет моментально? Столько всего написано, про дом теней, про то, как клёво писать типы, исчезающие при трансляции, для себя, да и гугл компания весьма известная в кругах определенных, а сейчас я чувствую себя разочарованным и жестоко обманутым. Kill it before it lays eggs, так сказать. Это просто демо, сейчас попробую какой-нибудь проект дернуть-посмотреть, точно должен быть секрет.



Последнее исправление: Romaboy (всего исправлений: 1)

И ещё одна сущая мелочь, но все таки: автоматическое обновление в браузере. Зачем его сделали и встроили по умолчанию, если вручную нажать F5 гораздо быстрее, чем ждать, пока их глючная поделка это сделает?

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

Зачем его сделали и встроили по умолчанию, если вручную нажать F5 гораздо быстрее, чем ждать, пока их глючная поделка это сделает?

Ты будешь ждать момента, когда весь ангуляр скомпилится, чтобы нажать F5? Ну, ок.

x3al ★★★★★
()

ПАПКА ВЕСОМ 90МБ ЧТОБЫ ПОКАЗАТЬ ХЕЛЛО ВОРЛД

Ты хэллоуворлдщик, штоле? Она будет одинаково весить как в хеллоуворде твоем, так и в нормальных проектах. Библиотеке же где-то надо находиться, как ты думаешь? Или ты распространяешь исходники проектами вместе с либами?

Ангуляру требуется ~1.5 секунды, чтобы вывести надпись на экран.

Ангуляр, внезапно, не для того, чтобы выводить надписи на экран.

Unicode4all ★★★★★
()
Ответ на: комментарий от x3al

Но он не компилится! Это js, js не компилится. Он интерпретируется. В браузер попадает код js, не байт код. Например, ruby тоже не компилится, rails - очень тяжелый фреймворк и в development должен реагировать на изменение каждый раз, но делает это нормально, не БЕСИТ такой перезагрузкой. Ещё пример lua с luajit, сам по себе lua не компилится и делает это быстро, а luajit компилируется во время исполнения и делает это ЧЕРТОВСКИ быстро. Что lua, что luajit, по большей части писали люди в одиночку, а над ангуляром и нодой последние лет 5 трудятся все кому не лень. И делают все, чтобы этим было невозможно пользоваться. Да, бомбануло, я надеялся открыть для себя грааль веб-разработки.

Ты будешь ждать момента, когда весь ангуляр скомпилится, чтобы нажать F5? Ну, ок.

Ну неужели настолько сложно сделать сколько-нибудь модульную архитектуру, если для хелловорда и правда надо 90мб библиотек, так пусть оно все хоть не обрабатывается сразу, стоит только строку написать. Да откуда взялась проблема такая? Только нода единая, больше нигде о такой проблеме не слышали.

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

Ну неужели настолько сложно сделать сколько-нибудь модульную архитектуру

HTTP2 ещё не везде и он всё ещё менее эффективен, чем бандлеры вроде webpack или rollup.

Только нода единая

Нода тут ни при чём

x3al ★★★★★
()
Последнее исправление: x3al (всего исправлений: 1)
Ответ на: комментарий от Unicode4all

Лол, а для чего? А мне уж было показалось, что на всех сайтах надписи выводятся. Может браузер это только побочный продукт ангуляра? Так вроде и на других платформах тоже надписи выводятся.

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

В целом, перед luajit не стоит задача «максимально эффективно передать клиенту код», поэтому толсто.

Или ты даже не минифицируешь код? Мне казалось, что в продакшне никто так не делает с нулевых.

x3al ★★★★★
()
Последнее исправление: x3al (всего исправлений: 1)
Ответ на: комментарий от Unicode4all

Представим себе 50мб файлов, все они на ts. Они «скомпилировались», что другие сахарки делают вполне шустро, и теперь у нас 50мб ts + 40мб js, ибо кода меньше. Теперь я меняю строку в своем хеловорде. И все эти 50мб опять компиляться? Или это только один файл компилиться так долго?

Romaboy
() автор топика
Ответ на: комментарий от x3al

luajit привел только потому что очень хороший, может и правда не к месту.

Мне казалось, что в продакшне никто так не делает с нулевых.

Как можно этого монстра пускать в продакшн, если в девелопменте показатели антирекордные? Топик про хеловорд, если есть секрет как сделать загрузку ангуляра приемлимой скорости, тогда, конечно, интересно продолжить.

Или ты даже не минифицируешь код?

До сих пор не знал, что его надо минифицировать при разработке. Обычно в development файлы локальные грузятся вполне быстро.

Romaboy
() автор топика

наверняка большинство право и это нечто, что все изменит

миллионы веб-макак не могут ошибаться!

foror ★★★★★
()

А как ты хотел?
Погугли про server-side рендер

mystery ★★
()
Ответ на: комментарий от Romaboy

Дурак штоле? JIT комплириует JS в байт-код V8, и уже байт-код интерпретируется
Если вырезать все комментарии, console.log, сократить переменные и т.д., то получится от 500кб бандл, который после gzip или brotli сжатия будет намного меньше

mystery ★★
()
Ответ на: комментарий от Romaboy

Ой дурак
Почитай про HMR что-ли
Хотя тебе это не поможет
Лучше вали на jQuery

mystery ★★
()

Думал уже сделать сервер-сайд рендеринг со сжатием из gzip в brotli и чтобы компилировалось из тайпскрипта прямо в v8 браузера, чтобы нормально грузился хеловорлд, но заметил Aurelia, которая, внезапно, очень понравилась. Впервые вижу, но советую.

Romaboy
() автор топика

Ангуляр 1.2 выводит хелло мгновенно на любом боаузере, но мне никто не верит.
На ангуляре удобно делать большую Информационную Систему на базе RDBMS с кучей полей и контролов.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)

ПАПКА ВЕСОМ 90МБ ЧТОБЫ ПОКАЗАТЬ ХЕЛЛО ВОРЛД

В этой папке находятся все библиотеки для разработки, а также система сборки, компилятор и упаковщики-оптимизаторы. Конечному пользователю нужен будет только единственный app.js, в который всё это превратится.

если вручную нажать F5 гораздо быстрее, чем ждать, пока их глючная поделка это сделает?

F5 сбросит всё состояние приложения и придётся снова проходить по менюшкам и визардам до нужного шага в приложении, а hot reloading перезагрузит всё незаметно.

static_lab ★★★★★
()
Ответ на: комментарий от static_lab

Если ангуляр при перезагрузке сохраняет все состояние - тогда да, фича очень крутая. Но обычно проверяю открытую страницу, а не открытые менюшки. Про медленность я имел в виду следующее: на странице появляется надпись из body «loading...», после этого проходит полторы секунды, и только потом hello world, объяснил это непонятно, так что все советы про сжатия и размеры не про это, вот этот момент считаю крайне оскорбительным для разработчика и конечного пользователя, а сколько весит папка - это не важно. Прочитал несколько статеек и понял, в чем был неправ. Если уважать пользователей с прокси-браузером (opera mini, uc), да и поисковики, то рендеринг на сервере необходим, если этого не делать - можно считать себя халтурщиком. И в таком случае этого loading... вообще видно не будет. Значит, angular 2 в результате должен грузиться столько же, как и любой другой.

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

opera mini, uc

да ну, зачем тебе это говно? и вообще, в современном вебе, чтобы сложить два числа, одного mvc фреймворка уже маловато будет, надо раздвигать булки и знакомиться со всем стеком прекрасных современных технологий.

tcler
()

Крч парень, не паникуй. Ангуляр2 вообще нужный, ибо умеет TypeScript нативно (ну если так можно выразится). Он не быстрый да, но он не для рисования «Привет миров», а для сложных SPA приложений. И у тебя явные там проблемы какие то, ты что то не так делаешь, мой проект на первом ангуляре полгода назад весил несколько килобайт ибо я его собрал, если ты понимаешь о чем я.

chuppa
()
Ответ на: комментарий от Romaboy

Насчет торможения эвента, мне кажется твоя аппликуха просто тратит время на загрузку ресурса или скрипта?

chuppa
()
Ответ на: комментарий от tcler

в современном вебе, чтобы сложить два числа, одного mvc фреймворка уже маловато будет, надо раздвигать булки и знакомиться со всем стеком прекрасных современных технологий.

Шикарный ответ, в точку, думаю так же. Но от этого чувство, что либо ты делаешь все не так, либо весь мир сошел с ума.

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

Если уважать пользователей с прокси-браузером (opera mini, uc), да и поисковики, то рендеринг на сервере необходим

ангулар это не для шопиков и бложиков, где важен seo. ангулар для SPA. ты ваще ощущаешь разницу?

Про медленность я имел в виду следующее: на странице появляется надпись из body «loading...», после этого проходит полторы секунды, и только потом hello world

в SPA на это можно насрать. они не для хелловорд создаются.

anonymous
()
Ответ на: комментарий от Romaboy

Ну вот ты думаешь, что не собрав скрипты в один файл ты ускорил время их загрузки? Ведь понятно же, что сначала рендерится статика и показыватся «Загрузка...», а скрипты еще тянутся из какой то, простите, внешней жопы и вероятно делают это не быстро. Собираешь все в один файл, пропускаешь через минификатор (конвеер там у тебя какой я хз, но ты понел я надеюсь), вылаживаешь там на цдн(клоудфларе например), ну и всё будет супер быстро.

chuppa
()
Ответ на: комментарий от Romaboy

На самом деле, в современном фронтэнде всё просто выросло и времена мамкиных фрилансеров с сайтами по 5 тыщ уходят, люди хотят качества, а если кто то не осиливает настроить пару тулз, чтобы делать вещи качественно, то он с рынка уходит - ничего личного, просто бизнес.

chuppa
()
Ответ на: комментарий от anonymous

А шопик или бложик не может быть SPA или работа с данными и их вывод в CRM в корне отличается от шопиков и бложиков? Типо сколькими страницами ты реализуешь определяет контент?

Romaboy
() автор топика
Ответ на: комментарий от anonymous

в SPA на это можно насрать. они не для хелловорд создаются.

А да кстати, на википедии посмотрел, дают gmail как пример SPA. И правда насрать! Gmail грузится уйму времени, насрать в смысле кому? Заказчикам, исполнителям? А пользователям тоже должно быть насрать сколько грузится это говно?

Romaboy
() автор топика
Ответ на: комментарий от mystery

который после gzip или brotli сжатия будет намного меньше

У тебя код в сжатом виде исполняется? Лол.

anonymous
()
Ответ на: комментарий от Romaboy

https://beta.goodgame.ru/

вот тебе пример тяжелого сайта на ангуляре, медленно? а можешь быстрее сделать? А трудозатраты будут сопоставимы? А кто нибудь кроме тебя сможет вносить правки? Ты явно выпал из мира фронтенда на пару-тройку лет. Как там в 2012 ом? доллар всё еще 30?

Noob_Linux ★★★★
()

а сейчас я чувствую себя разочарованным и жестоко обманутым

И не просто так. Angular уже давно не круто, React - вот что сейчас рулит.

th3m3 ★★★★★
()
Ответ на: комментарий от Noob_Linux

Сайт быстрый несмотря на angular! Это круто! Отдает не голый body, сервер рендерит, наверно, молодцы, лишь бы сервер мощный был. Контрпример - вк, выглядит современно, работает быстро, доказывает одну очень приятную для меня вещь: можно делать сложные проекты быстрыми, не реагируя на чихи моды. С одной стороны можно писать js и развивать свои способности к построению архитектуры, с другой: напрягать сервер рендерингом, прекомпилить html шаблоны в функции (это ускоряет, значит нужно), и сотни других танцев, о которых я, как человек из 2012-ого, могу только догадываться. Сайт сделан хорошо, но ничего не доказывает. Ладно, тред ни о чем.

Romaboy
() автор топика
Ответ на: комментарий от anonymous

Дурак штоле?
Ты софт из исходников запускаешь?
Браузер смотрит на хедеры, а там компрессия, и он давай расжимать, а потом только исполнять

mystery ★★
()
Ответ на: комментарий от mystery

Кофе мертвый потому что его автор на него давным-давно забил. Каким бы клевым кофе не был. Он не дает использовать да почти все новые фичи. Зато он породил сотни кофейных диалектов, некоторые из которых совмещают и удобство, и возможность новых фич, некоторые ещё и с типами, которые сейчас так востребованы. Я лично пока ни одну нормальную замену не нашел, слишком уж хаос. Вот список, скорее списище https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile...

Romaboy
() автор топика
Ответ на: комментарий от Romaboy

Я написал веб морду последнего своего проекта на голом es7, и могу сказать, что ничего толкового в нём нет, если не использовать react и прочие фреймверки, которые заточены под него. Всё также требуется пост-компиляция, веб пак собирает три года, от него я отказался, и больше к нему не вернусь. А все эти await и стрелочные функции - вообще, собаке пятая нога, ничего не упрощают. Сейчас вспоминаю написание своих предыдущих проектов на коффескрипт с умилением: во-первых, простота написания, во-вторых, скорость написания. Коффе, реально ускорял процесс раза в 2, и сахарок из es6/7 вообще не дотягивает до скорости разработки на коффе. Поэтому сейчас смотрю в сторону интеграции coffee в vue.js/riot.js компоненты, но придётся, скорее всего, интегрировать слоупочные бабель плагины...для сборки всего этого винегрета. Также могу сказать, что оно того не стоит и раньше разработка была в разы быстрее.

menangen ★★★★★
()

Столько всего написано, про дом теней, про то, как клёво писать типы, исчезающие при трансляции

Расслабься. Фронтендщики просто верстают странички, но хотят выглядеть как крутые дядьки с серверсайда. От того и переусложнение инструментария и переход на ругань когда подозреваешь их в yak shaving или критикуешь их hipe_product_name

Типичный пример полемики в каментах к любой хабрастатье про react/redux, когда заходит несогласный

ЗЫ: пишу из 2005-го. На ES5, без трансляций и склеек. MVC и rivets для рендеринга

makoven ★★★★★
()
Последнее исправление: makoven (всего исправлений: 4)
Ответ на: комментарий от menangen

А все эти await и стрелочные функции - вообще, собаке пятая нога, ничего не упрощают.

Найс аутотренинг. На es5 обычно такая содомия множественными с асинхронными операциями, а в том же ts/es7 все можно написать кучеряво.

public async ReadAsync() : Promise<Entity> {
    var someData = await Utils.RequestAsync("uri1");
.   var someData2 = await Utils.RequestAsync("uri2");
.   //do something 
}

ritsufag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.