@scala_ru

Страница 1277 из 1499
Daniel
12.02.2018
06:17:51
как будто потребители продуктов это слушают что на слуху, то и используют в основном

Nick
12.02.2018
06:20:24
Я о нем раньше, чем о Королёве узнал

Daniel
12.02.2018
06:22:14
у них разница месяцев 5

Google
Nick
12.02.2018
06:23:08
Может быть, но удаш ж раньше появился )

И 5 месяцев это гигантский срок. В js может выйти три ангуляра)))

Aleksey
12.02.2018
07:16:47
как будто потребители продуктов это слушают что на слуху, то и используют в основном
вот королев в отличии от всего что есть как раз таки заботится в первую очередь о потребителя. с одной стороны о конечных пользователях (программы на королеве просто по своему устройству грузятся мгновенно, и работают даже на самых слабых машинах), с другой стороны о программистов, так как не надо городить клиент-серверную прослойку.

Aleksey
12.02.2018
07:37:58
сделай пост на HN =) неделя scala.js
королев это не scala.js!

sherzod
12.02.2018
07:39:57
+ надо всё же модульность. четкое разграничение серверного и клиентского кода но думаю в этом направлении идёт работа

Aleksey
12.02.2018
07:40:03
А есть планы затащить в королёв возможность какие то действия делать на клиенте, не дожидаясь обновления состояния на серваке? Типо изменение атрибутов у нод
Это всегда можно. Есть стандарт - вебкомпоненты. пишешь на JS компонент с нужным тебе UX, и работаешь с ним через аттрибуты, узлы и события, как с любым другим DOM-элементом.

В Королеве джаваскрипт возвращается в свою изначальную область применения — кастомизация поведения UI.

И этой области применения джаваскрипт прекрасно походит.

Nick
12.02.2018
07:42:35
королев это не scala.js!
Мало на митапах про него говоришь

Google
Р
12.02.2018
07:44:19
А в чём там соль? Типа события события все на сервере обрабатываются клиентские?

Nick
12.02.2018
07:46:08
@fomkin пора рассказывать про Королёв снова )

Aleksei
12.02.2018
07:46:51
или писать гайд =)

Aleksey
12.02.2018
07:47:43
А в чём там соль? Типа события события все на сервере обрабатываются клиентские?
Представь себе реакт который выполняется на сервере не только для статического рендеринга, но и для динамического. События улетают на сервер, там генерируется DOM, из него выводится что-то измкнилось с последнего рендера, минимальный набор команд отправляется на клиент. Со стороны клиента есть маленький скриптик, который умент управлять соединением и выполнять комнды — 6кб. Страницы грузятся мгновенно, количество вычислений на клиенте минимально.

Alexey
12.02.2018
07:47:50
Это всегда можно. Есть стандарт - вебкомпоненты. пишешь на JS компонент с нужным тебе UX, и работаешь с ним через аттрибуты, узлы и события, как с любым другим DOM-элементом.
Ну я имею ввиду, что атрибуты зависят от общего состояния приложения, но типо результат предсказуем и можно не дожидаться ответа

Aleksey
12.02.2018
07:47:50
или писать гайд =)
Есть документация же.

sherzod
12.02.2018
07:50:25
Alexey
12.02.2018
07:51:15
изменения в дом не совместимы с такой моделью, затрутся при следующем обновлении
Ну это норм, просто в ситуации, когда сеть моргает, не хочется терять отзывчиость ui

Aleksey
12.02.2018
07:51:18
Ну я имею ввиду, что атрибуты зависят от общего состояния приложения, но типо результат предсказуем и можно не дожидаться ответа
Веб-компоненты нужны только когда у нас «синхронные» операции, которые нельзя сделать никак по-другому. Типа там preventDefault на условии. Это нужно когда ты хочешь реализовать сложный UX типа управления с клавиатуры. Когда у тебя просто «атрибуты зависят от общего состояния приложения» то нужно в первую очередь задаться вопросом — почему тебе вдруг заходелось делать это на клиенте?

Aleksey
12.02.2018
07:55:00
Ну это норм, просто в ситуации, когда сеть моргает, не хочется терять отзывчиость ui
Если сеть сильно моргает и предполагается что у клиента интернет с высокими задержками, то лучше не использовать Королев. В 2018 году нереалистичный сценарий. Когда мой телефон показывает буквочку «E», то интернет тупо не работает ни с какой скоростью. А когда он показывает «3G» и «LTE» то никакого моргания там нет. То же касаетсяприложений которые должны работать в оффлайне. Королев них не подходит. В посление несколько лет было много разговоров про offline-first подход, но оказалось, что это очень дорого и на деле никаких offline-приложений в вебе ни кто не делает.

Alexey
12.02.2018
07:55:44
Не, offline first это точно лажа

Aleksey
12.02.2018
07:55:45
То есть прежде чем делать выбор, нужно понять — действительно ли у пользователей плохая сеть, или ты просто так считаешь.

На каждый чих запрос кидать?
А в чем проблема? Королев полностью асинхронный, в айдл-состоянии может держать столько соединений сколько внод поддерживает операционная система. Diff-движок очень оптимизирован и умеет делать 10000 сравнений деревьев в секунду на консумерсокм железе без дополнителных аллокаций памяти (читай без нагрузки на GC).

Nikita
12.02.2018
08:00:36
Наконец-то привезли записи с Ekb Scala Meetup https://www.youtube.com/watch?v=uvHmi6A5hk4&list=PL9SJrES3EGUQ1GwQGPHlSBSP-IurfbBsE

Р
12.02.2018
08:02:12
Дело не в сети, а в том что пользователи автоматически масштабируются. Всё что выполняется на сервере стоит денег. Всё что на клиенте - бесплатно или почти бесплатно. Пихать логику рендеринга на сервер когда дешёвый телефон на JS 3D игры рендерит - это очень нишевое решение. Если там приложение много табов каким-то хитрым способом хочет использовать или вроде того.

Alexey
12.02.2018
08:02:53
Тебе же его и не рекламируют как серебрянную пулю

Если у приложения не шибко много одновременных клиентов - то королёв вполне ок и не дорог по железу

Google
Aleksey
12.02.2018
08:03:46
Вообще после того как я написал Королев я заметил то что раньше не замечал. Программисты принимают решения на основе «ощущений». Одно из таких ощущений говорит им что сгенерить джейсон плей-джейсоном это дешевле чем отрендерить страничку на Королеве. Так вот ощущения врут. Левша (темплейт и changes inferring движок Королева) работает во много раз быстрее всех JSON-библиотек работающих через AST.

Alexey
12.02.2018
08:04:31
> работает во много раз быстрее всех JSON-библиотек работающих через AST.

Nick
12.02.2018
08:05:09
ну вы же понимаеме зачем там ast)

Andrey
12.02.2018
08:05:23
подскажите, щас в сбт parallelExecution in Test := true не достаточно уже что б тесты в параллель запускались?

Alexey
12.02.2018
08:05:26
Я вообще не понимаю наличия ast в scala либах при наличии ADT

Andrey
12.02.2018
08:05:27
раньше вроде работало

Aleksey
12.02.2018
08:05:41
Если у приложения не шибко много одновременных клиентов - то королёв вполне ок и не дорог по железу
500 конкурентных пользователей по атакой и тысячи пользователей по нормальной нагрузкой на консумерсокой железе это это «не шибко много»?

Nick
12.02.2018
08:05:46
по факту то это адт

Gleb
12.02.2018
08:06:03
На самом деле если померить, то скорее всего будет что на рендеринг миллиардов запросов уходят десятки - сотни vCPU часов, что делает рендеринг на сервере дешевым, и вообще не сторит париться в большинстве случаев

Р
12.02.2018
08:07:03
подскажите, щас в сбт parallelExecution in Test := true не достаточно уже что б тесты в параллель запускались?
Зависит от состояния fork, по-моему. Если fork true, то не будет работать пока не опишите стратегию для форка.

Nick
12.02.2018
08:07:45
Gleb
12.02.2018
08:08:22
По-моему это вообще на спичках экономить. Учитывая, что у большинства нет и миллиона активных пользователей.

Alexey
12.02.2018
08:08:43
что значит еще один?
Ну смотри, у тебя уже все данные разложенны в твои доменные классы, то есть в adt твоего приложение, а потом это всё зачем то перегоняется в adt конкретной либы

а потом уже в строку

Р
12.02.2018
08:10:04
Andrey
12.02.2018
08:10:50
Я пока на 0.13.х сижу

Google
Andrey
12.02.2018
08:11:08
Ладно, буду копаться, спасибо

Р
12.02.2018
08:11:19
Об этом я и говорю. Всем почему-то кажется что JSON генерить это бесплатно.
А существующие JS библиотеки и фреймворки оно поддерживает?

Я пока на 0.13.х сижу
Это фича там с 0.12.x

Andrey
12.02.2018
08:12:23
Это фича там с 0.12.x
Да я в курсе, раньше все работало, а щас в другом проекте тоже самое все по настройкам, а выполняются последовательно.

Andrey
12.02.2018
08:13:10
С ним и без одинаково. Да фиг с ним, разберусь) спасибо за наводки

Aleksey
12.02.2018
08:13:58
А существующие JS библиотеки и фреймворки оно поддерживает?
А что тебе нужно? Вот на пример если у тебя есть JS-либа которая делает на клиенте цифровые подписи на элиптических кривых и эта либа просто вызввается как JS-код то поддерживает. Делаешь evalJs и все работает. Веб-компоненты готовые тоже должны работать (если написаны в соотвествии со стандартом, что бывает редко).

CSS-фреймворки тожен работают очевидно.

CSS-фреймворки тожен работают очевидно.
Вот этот рекомендую https://bulma.io

Aleksey
12.02.2018
08:15:32
Alexey
12.02.2018
08:16:02
Ну чтобы велосипед не изобретать. Уж очень всего много есть для react и angular.
Наверное сначала всё таки стоит посмотреть что это такое?

Aleksey
12.02.2018
08:16:02
Но все совместимы в веб-компонентами. И королев с ними совместим.

Р
12.02.2018
08:16:20
Они между собой не совместимы если что.
Они вполне себе совместимы. Но, да, обычно или то, или другое используют.

S
12.02.2018
08:17:32
А можно сравнивать Korolev с JSF, Tapestry, Wicket? Подход вроде тот же самый - компоненты, клиентское состояние на сервере.

Aleksey
12.02.2018
08:18:10
Они вполне себе совместимы. Но, да, обычно или то, или другое используют.
Интересно. Мне всегда казалось, что там совершенно разные подходы используются. В реакте это виртуальный дом, в ангуляре это динамические шаблоны. Буду благодарен за ссылку.

Aleksey
12.02.2018
08:20:05
Сейчас и там и там виртуальный дом вроде как
Даже если так, то это разный виртуальный DOM, разные алгоритмы вывода изменений. Не представляю как это интегрировать кроме как через CustomElement-изоляцию.

Google
sherzod
12.02.2018
08:20:14
они абсолютно не совместимы
в рамках одного дом узла

Р
12.02.2018
08:20:38
Интересно. Мне всегда казалось, что там совершенно разные подходы используются. В реакте это виртуальный дом, в ангуляре это динамические шаблоны. Буду благодарен за ссылку.
Если мои знания не устарели, то это разного уровня библиотеки. Реакт только про рендеринг, а Ангуляр целый фреймворк. Никто не мешает рендерить Ангуляр реактом.

Ivan
12.02.2018
08:20:57
Можно ли в sbt протестить отдельный пакет?

Alexey
12.02.2018
08:22:38
sbt subproject/test
пакет != модуль

Р
12.02.2018
08:23:32
Ivan
12.02.2018
08:24:20
Тогда testOnly package*
А если для отдельного пакета отдельного модуля?

Ivan
12.02.2018
08:25:42
subproject/testOnly package*
Благодарю!

Aleksey
12.02.2018
08:25:43
А можно сравнивать Korolev с JSF, Tapestry, Wicket? Подход вроде тот же самый - компоненты, клиентское состояние на сервере.
Нет. На сколько я помню во всех этих штуках есть условно «сессия» в которой хранится стейт. Пользователь переходит по ссылкам, там ему генерят новый HTML исходя из состояния БД и сессии. В Королеве нет перезагрузки страницы, HTML не приходит каждый раз весь. Приходит только то что изменилось. На пример если изменился атрибут то придет команда «измени аттрибут class у такого-то узла на такое-то значение».

Aleksey
12.02.2018
08:30:05
А можно сравнивать Korolev с JSF, Tapestry, Wicket? Подход вроде тот же самый - компоненты, клиентское состояние на сервере.
Другое важное отличие, что в Королеве ты строишь DOM из стейта и только из него, подобно тому как это сделается в Elm/Redux. Стейт можно обогатить при обработке клиентского события или по событию «из среды»: на пример через кафковский консумер.

Мне его очень не хватало.

Kirill
12.02.2018
08:31:17
Такой вопрос. Допустим, есть такая клюква: некоторая функция по заданному классу генерит анонимный класс по простому правилу. Можно ли каким-то образом научить Идею понимать это и давать подсказки? Конкретизирую. Есть кейс-классы, и есть функция, которая генерит анонимный класс, у которого внутри поля называются так же, как параметры кейс-класса. Может Идея такое скушать?

Страница 1277 из 1499