
Mixer
03.08.2018
11:23:29
Так а щас наблюдается четкое разделение на фронт и бек. Фронты своим занимаются, беки своим. Я вообще думаю что фуллстеки вымрут скоро.

Alexander
03.08.2018
11:23:56
Тогда вообще все плохо, вместо одного разработчика вам нужно два

Andrew
03.08.2018
11:24:29

Mixer
03.08.2018
11:24:35
Это не плохо - это прекрасно. Приложения усложняются же сильно. И разделение ответственности это хорошо

Google

Alexandr
03.08.2018
11:24:36
нифига. как раз фулстек интереснее работодателю, когда он и бэк напишет, и фронт навояет. причем у таких людей обычно уровень и кругозор выше

Alexander
03.08.2018
11:24:50

Alexandr
03.08.2018
11:24:55

Mixer
03.08.2018
11:24:57
Да, но тренд идёт на разделение.
Node.js на беке - отстой - +
Фронт очень усложняется. Там типизация уже есть, правда не в рантайме. Интерфейсы, потоки и все такое.

Alexander
03.08.2018
11:25:44
Кстати именно котлин + ктор эту проблему решает довольно хорошо, и для фронта и для бэка один и тот же язык, причем не node
Я вот сейчас сел в свободное время (которого нет) писать на кторе рисовалку графиков https://github.com/altavir/kplot

Alexandr
03.08.2018
11:28:12
а есть еще angular
там вообще туши свет

Quantum Harmonizer
03.08.2018
11:28:45
JB же и сами пишут на реакте

Google

Alexander
03.08.2018
11:29:14
К счастью, мне до лампочки ?, я на этом деньги не зарабатываю, пишу на том, на чем приятно

Mixer
03.08.2018
11:29:34
Так а там и не надо дружить. Надо уметь по API JSON гонять. В хедеры уметь, с базой работать и все такое.

Alexandr
03.08.2018
11:29:37
реакт почти единственный с кем хорошо удалось скрестить котлин

Slava
03.08.2018
11:30:39

Mixer
03.08.2018
11:30:42
Если мы не про SPA, там это имеет значение. В SPA ничего дружить не надо. Условно фронт на одном сервере, общается по CORS с беком на другом. Они никак не связаны

Andrew
03.08.2018
11:30:56

Slava
03.08.2018
11:31:01
аа

Alexandr
03.08.2018
11:31:18

Mixer
03.08.2018
11:32:14
Бэк сидит на другом сервере. Фронт его просто дергает за ручку с другого сервера
И все. Не пойму какая там ещё дружба нужна

Alexandr
03.08.2018
11:32:28
SPA вообще не на сервере крутится, а в браузере

Slava
03.08.2018
11:32:36
не с другого сервера, а из браузера

Mixer
03.08.2018
11:32:57
Я не спорю) но кто то хтмльки же спашные отдал вам)

Alexandr
03.08.2018
11:33:12

Slava
03.08.2018
11:33:15
nginx
статика чистая, собранная npm'ом (webpack'ом)

Mixer
03.08.2018
11:34:46
Вооот. Итак Nginx отдаёт статику спашную. С одного хоста. На другом хосте, в другой стране, галактике висит бэк. Фронт его дергает по CORS. И меняются они json ну или графами. Это классическая штука же.

Alexandr
03.08.2018
11:35:03
Я не спорю) но кто то хтмльки же спашные отдал вам)
хоть кто, хоть тот же бэк из рессурсов. факт в том что это html с допустим ангуляровским шаблоном, ему нужен клиентский код с запущенным ангуляром, который с kotlin не дружит, тут либо es6, либо typescript

Google

Alexandr
03.08.2018
11:35:51

Slava
03.08.2018
11:36:46

Mixer
03.08.2018
11:36:53
Если Котлин дружит с http и умеет заворачивать объекты в JSON - то я честно не понимаю что ещё нужно там подружить. Я связи не вижу никакой просто. В котел приходит json в реквесте - он делает что то отдаёт такой же респонс - не?
Да я именно про API

Alexandr
03.08.2018
11:37:41

Mixer
03.08.2018
11:39:07
Аа. Эм... ну я котел не рассматриваю для генерации хтмлек - и клиентского кода. Про то что меня бомбануло - от tr{} - это не относится к делу, про которое я думаю и для чего хочу котлин
Если Котлин умеет в API + ORM ну и весь красивый - это ок. Генерить хтмльки им - лично для меня не ок.

dimiii
03.08.2018
11:43:30

Mixer
03.08.2018
11:44:35
Вот. Придётся генерить хтмльки - но это всего лишь письма. Там логика не нужна особенная. Тут указали что есть шаблонизаторы для этого.

Alexandr
03.08.2018
11:46:13

dimiii
03.08.2018
11:46:24
Так что не надо бомбить )

Mikhail
03.08.2018
11:47:15
ну вот, я пропустил срач про спринг =(

Quantum Harmonizer
03.08.2018
11:49:15
Это было просто бросание какашек. Будет пресекаться.

Mikhail
03.08.2018
11:49:27
я тут обновился до 2.1.0.M1, думая что мою проблему с вебсокетами пофиксили, а нет, нифига, она в другом месте вылезла =(

dimiii
03.08.2018
11:51:46
Могу еще пример за генерацию html на сервере предложить - допустим cервер генерирует какой-то отчет и сразу пишет в хранилище/в файл.
А потом хайлоад и -тысячи- мильоны пользователей дергают этот отчет.

Quantum Harmonizer
03.08.2018
11:52:35
а ещё изоморф, чтобы не втыкать, пока чудо-жабаскрипт загрузится и выполнится

Mixer
03.08.2018
11:52:38
Да. Но это частные случаи. Я уже говорил - тут уже зависит от задачи.

Alexandr
03.08.2018
11:53:21

Mixer
03.08.2018
11:53:39
Если у вас страховые формы со 100500 полями и логикой и дерганьем внешних сервисов - то это приложенька и лучше на клиенте ее делать.

Google

Alexandr
03.08.2018
11:53:42

dimiii
03.08.2018
11:54:57

Admin
ERROR: S client not available

Тимур
03.08.2018
15:21:43
проапгрейдился до kotlin 1.2.60
стала ломаться сборка из idea:
Error:Kotlin: [Internal Error] java.lang.IllegalStateException: The provided plugin org.jetbrains.kotlin.kapt3.Kapt3ComponentRegistrar is not compatible with this version of compiler
Кто нибудь с таким сталкивался, есть рецепты?

Badya
03.08.2018
16:33:58

Тимур
03.08.2018
16:40:24
делал, не помогает

Alexei
03.08.2018
18:55:08
да у меня та же фигня была пришось откативатся до 1.2.51
и у меня тоже последняя идея и плагин

Alexander
03.08.2018
18:56:17
У меня все работает. Судя по ошибке конфликт в каптовском плагине, а не в котлиновском

Mikhail
03.08.2018
19:24:05

Тимур
03.08.2018
19:25:29

Mikhail
03.08.2018
19:26:08

Тимур
03.08.2018
19:26:40
аааа, так это они его так ускорили...
но раз у кого-то работает, значит можно как-то поколдовать и запустить

Beholder
04.08.2018
12:13:38


Anton
04.08.2018
15:31:23
Всем привет. Использую ктор и столкнулся с одной проблемой сейчас. Для сериализации/десериализации объектов я использую GSON. Конкретно при десериализации использую метод call.receiveOrNull<Class>. До этого при десерилизации JSON'а, в котором переданы не все поля класса, этот метод возвращал null. Сейчас я заметил, что при десериализации таких JSON'ов теперь возвращается объект с дефолтными значениями, если они отстутствуют в JSON'е (null для string, 0 для int, если не указаны другие значения). Какое из этих двух поведений правильное? Могу ли я как то настроить, чтобы выполнялось первое вместо второго? Также в чем может быть причина изменения поведения? Недавно я обновил kotlin в idea, может ли быть в этом причина? В конфигах я точно ничего не менял.

Maxim
04.08.2018
15:34:19


Anton
04.08.2018
15:40:20
Так примитивные типы вроде ж не могут быть null
Те типы, которые не могут быть null и получают свое дефолтное значение (0 для Int, например). В моих дата классах, в которые происходит десериализация все типы не имеют "?" в конце (то есть я не использую String?). Однако в процессе десериализации туда все равно попадает null.
В данном случае больше даже интересует поведение метода recieveOrNull, который теперь вообще null никогда не возвращает. В худшем случае объект с пустыми полями.

Maxim
04.08.2018
15:41:49

Google

Anton
04.08.2018
15:42:11

Boris
04.08.2018
15:53:10
Кусок кода скажет больше тысячи слов

Anton
04.08.2018
15:58:46
Кусок кода скажет больше тысячи слов
https://pastebin.com/3UC1AsC1
Вот такое например. Когда начинал проект (на 99% уверен) метод receiveOrNull возвращал null в случае, если в json'е приходил только логин, к примеру. Сейчас этот метод возвращает объект с полем passwordHash = null.

Bogdan
04.08.2018
17:02:08

Quantum Harmonizer
04.08.2018
17:03:20

Anton
04.08.2018
17:06:16

Quantum Harmonizer
04.08.2018
17:06:50
Можно как-нибудь спрятать internal-классы от Java-кода?

Bogdan
04.08.2018
17:15:37
вроде как не нашлось способа

Quantum Harmonizer
04.08.2018
17:17:23
а надежда с тех пор так и не угасла :)

Alexander
05.08.2018
06:36:37
Люди, кто-нибудь использует гугловый AutoService, а то я чего-то его попробовал, а не работает.