Тогда уж... почему бы и бек не писать на TS... (пл...
# russian
l
Тогда уж... почему бы и бек не писать на TS... (плачет) Правда тут ни спринга, ничего.
a
Немного заныриваю в бэк на JS (nodejs). Нафиг нафиг- лучше 2 языка.
1
l
TS так себе, да? После котлина.
a
У меня даже TS нет.
l
TS конечно дает типы... но не так как котлин
a
Ну вот я день багу искал- передавал mododb драйверу id- строку вместо id- объекта из одной строки. “Объект не найден” и всё. И стектрейс больше и страшнее спрингового 🙂 В общем- JS это свой мир, мне там страшно 🙂
l
Я даже в ts передавал вместо строкового id объект (забыл вытащить свойство их него). Почему ts это пустил - не знаю. Искал полдня.
Но, у котлина тулинга на фронте 0. Сторонние библиотеки подключать - только ручками.
Взяли JB этот... реакт зачем то... такая сложная и не понятная штука. Взяли бы лучше vue.
a
под vue же вроде кто-то напилил байндинги. Нет?
Я кстати пришел к выводу, что все это фигня, написал на чистом K-JS, работает на ура. У меня правда все очень простенькое в смысле GUI
l
@altavir Не нашел я байндингов
a
Точно где-то в фиде было...
Вот сходу в гугле нашел две: https://github.com/nosix/vue-kotlin https://github.com/SorenV/kotlin-vue
Последнее довольно новенькое
l
https://github.com/nosix/vue-kotlin Я списывался с ним, он забросил
a
Заметно. Но второе новенькое
a
И чего? Я не знаю куда смотреть. Я же говорю, сам от фреймворков отказался
l
Не, это не то. По сравнению с тулингом для однофайловых компоненотов тут пусто. Классы не прокликиваются, доступен только css. padding и прочее набирают ручками. Emmet нету. Такое себе.
a
А кто кстати мешает делать смесь. Пишешь себе весь гуй на vue, а общение с серваком на Kotlin-JS. Все же стыкуется хорошо
l
Там тоже свои минусы. "База" то будет в vuex state. И для работы котлина придется к ней обращаться или передавать ее объекты. И чего... каждый раз конвертить в дата классы?
Все листы и мапы из котлина так же надо будет конвертить для vue, просто так их не передашь
Наверно, таки надо глянуть реакт. Может таких проблем нет (хотя наверняка есть другие). И потом посмотреть как jb работает с реактом
a
Ну конвертить тебе не надо. Достаточно правильно интерпретировать или вовсе сделать expecr/actual
l
ну тогда я не получу все эти copy
a
почему? Тебе надо клоны на фронте или на беке?
l
copy, я опечатался
a
ну я понял
l
Ну, вообще можно и без этого. Но как то не привычно будет. А когда мне надо будет что то поменять - пилить копи ручками?
a
Надо API посмотреть, что берет твой вуй. Может там вообще ничего заменять не надо.
l
все что в store попадет - обмазывается set get для реактивности. Все внутренности мап и листов будут облеплены этим
a
Ну так тогда он сам в любом случае конвертит, без этого не обойтись
l
Память сильно растет и сам сайт тормозит. Приходится совать массивы и {} вместо мап
a
Надо посмотреть, как именно он это делает. Если бы у тебя не было котлина, как бы ты это делал?
l
просто совал бы [] и {}
a
то есть вместо мапы был бы js-ный объект. А кто мешает его и генерить при десериализации?
l
никто. Но если я хочу котлин на фронте - мне что, сериализовывать-десериализовывать при передаче в state?)
a
Нет. Откуда ты мапу получаешь?
l
Из логики в котлине на фронте. Там удобно Map и List
a
а. Тут куча вариантов. Во-первых можно обвязать dynamic такими расширениями, чтобы он вел себя как мапа снаружи. Можно даже сделать инлайн с динамиком внутри, который будет реализовывать интерфейс мапы (если это уже не сделано).
Я делал такую обвязку для своих древесных структур, тоже для перформанса. Но для мапы еще проще
Если хочешь, можем с тобой по быстрому замутить либу со всякими DynamicMap, DynamicList