@kotlin_lang

Страница 44 из 982
Boris
13.02.2017
20:00:32
Так-то он испытал сильное влияние.
Да, с такой тенденцией через какое-то время пхп станет джавой и в уютный мирок жвм хлвнут... хотя хочется думать о чем-то хорошем

Sergey
13.02.2017
20:01:34
уже были попытки завернуть пхп на жвм. фейсбук даже свою виртуальную машину писал(hackvm и hacklang)

Google
Slava
13.02.2017
20:04:05
Зачем холи вар о языках в котлин группе?

Sergey
13.02.2017
20:04:12
Что же у них в итоге не вышло интересно?
в итоге выпустили новый движок(пхп7 ака phpng) и он работает шустрее чем поделки фейсбука

да, давайте завязывать)

Sergey
13.02.2017
20:05:16
У них же был конвертер в Си?
https://docs.hhvm.com/hhvm/FAQ/faq

Boris
13.02.2017
20:05:39
Вот по этому мне нравится слак, создал там канал и общайся никому не мешает

Quantum Harmonizer
13.02.2017
20:05:59
#holywars

Руслан
13.02.2017
21:44:53
Развели тут pro.jvm

Михаил
14.02.2017
05:15:07
Стоит разрабатывать бэкенд с сложной бизнес логикой на котлине. Есть у кого опыт?

Может есть затыки в сравнении с джавой

Руслан
14.02.2017
05:30:22
Ну как раз для бизнес логики Котлин упрощает написание и чтение

Boris
14.02.2017
05:34:11
Может есть затыки в сравнении с джавой
К котлину только приноровиться надо, он заставляет немного по другому смотреть на решаемые проблемы, из за этого джававэй временами смотрится инородно, но затыков как раз меньше чем с джавой, больше способов решить сложные проблемы просто

Михаил
14.02.2017
05:42:03
А если про фреймворкам смотреть?

Google
Михаил
14.02.2017
05:42:26
Есть известные траблы?

Речь о спринге например

Или спарке

Руслан
14.02.2017
05:49:51
со спрингом все хорошо, а теперь можно даже добавить плагин для системы сборки, и с ним еще лучше

спарке это который апачи, или джава?

если джава, то я на нем писал еще до релиза, тоже без проблем

Михаил
14.02.2017
05:51:58
Джава спарк

pplcf
14.02.2017
06:33:24
мы с релиза сидим на котлин + спарк

каких-то специфичных проблем не замечали

Руслан
14.02.2017
06:56:45
http://talkingkotlin.com/spring-boot-with-sebastian-delueze/

Boris
14.02.2017
07:00:14
Вообще специфичные проблемы конечно бывают, вроде спринговых, но они обычно или не критичные или решаются

Наиль
14.02.2017
07:35:06
Ребят, подскажите как подружить autowired и котлиновский object http://telegra.ph/object-autowired-02-14

Sergey
14.02.2017
07:35:24
никак, это ж статический класс

Наиль
14.02.2017
07:51:45
Да, все вроде бы логичо :) Я только начинаю осваивать spring, поэтому для меня не все прозрачно пока, поэтому надо перепроверять. Я не знаком еще с bean'ами и di которые тут в ходу. Моя основная специальность это android(java,kotlin) и ios(objectice-c, swift). Раньше desktop (С# wpf). А вот с backend миром только сейчас знакомлюсь, чтобы себе же писать нормальную API. Поэтому позвольте еще вопрос, как тогда завести @Autowired в классе, который не @RestController class Holder { @Autowired lateinit var objProjsRep: ProjsRep } Предполагаю нужна какая-то аннотация.

Руслан
14.02.2017
07:53:39
Spring 4.3+?

Наиль
14.02.2017
07:53:49
даже 5+

Руслан
14.02.2017
07:53:54
@Component class Holder(val objProjsRep: ProjsRep)

Тогда вот так лучше)

Наиль
14.02.2017
07:56:07
Блин, так не прокатит, так как я хотел вот так его заюзать object MyObj { fun projs(): List<Project> { val h = Holder() return h.objProjsRep.findAll() } }

Руслан
14.02.2017
07:57:24
object со спрингом не дружит (afaik)

Google
Руслан
14.02.2017
07:57:47
т.е. ты Holder в контекст положишь, а object - нет

Наиль
14.02.2017
07:58:48
Окей, а как лучше тогда сделать. Этот MyObj, должен быть синглтоном на весь сервер. Как в спринге вы это делаете?

Руслан
14.02.2017
07:59:03
@Service/@Component

Они синглтоны

Спринг менеджит для тебя это

Наиль
14.02.2017
07:59:58
Окей, пойду целенаправленно почитаю тогда сначала про них, чтобы не задавать слишком простых вопросов

Boris
14.02.2017
08:26:12
в спринге есть только один синглтон — это контекст приложения, всё остальное варится как бы внутри, даже само приложение работает как часть контекста, поэтому для доступа к определенным системам или сервисам используется di, т.е. обычно если одному объекту для жизни нужен другой, то он его просто принимает в конструктор, а подставить его при создании в конструктор ты доверяешь спрингу

это как конструктор, насоздавал элеметов и попросил спринг их раздать друг другу где надо

Наиль
14.02.2017
08:29:05
Ага, эту идею я уже уловил. Спасибо. Сейчас осталось освоить технические моменты.

Sergey
14.02.2017
08:41:13
в книге написано что можно делать такую структуру файлов для пакетов com: - package1.kt - package2.kt но идея возмущается на этот счет и требует переименовать пакет. приходится лепить что-то в духе com.package1.Package.kt com.package2.Package.kt

на сколько ок выключить испекцию в идее и делать как в первом варианте? или есть какие-то другие варианты?

Boris
14.02.2017
08:42:13
файлы превратятся в классы, а не в пакеты

не совсем понимаю про пакеты

Sergey
14.02.2017
08:44:56
я хочу сделать файл, в котором будут функции для пакета

Руслан
14.02.2017
08:44:57
tree покажи

Sergey
14.02.2017
08:46:10




Руслан
14.02.2017
08:46:29
а зачем package1

просто com.example

Sergey
14.02.2017
08:46:59
тогда если я в package2 сделаю функцию test - будет коллизия

Google
Boris
14.02.2017
08:47:44
я хочу сделать файл, в котором будут функции для пакета
обычно в пакет (директорию, точно как в джаве) кладутся файлики, которые содержат функции верхнего уровня, вот про такие трюки с именами файлов, которые должны пакеты означать я вот лично ничего нигде не видел

Boris
14.02.2017
08:48:57
а если и есть такая штука, думаю, лучше воздержаться от её использования, дабы не сбивать с толку тех, кто будет это потом смотреть

Sergey
14.02.2017
09:08:23


Aliaksei
14.02.2017
09:34:50
плохой совет какой то))

Глеб
14.02.2017
09:50:33
А может, в таком случае, можно просто отключить предупреждение?

Sergey
14.02.2017
09:52:34
А может, в таком случае, можно просто отключить предупреждение?
можно важное что-то прошляпить. типа очечаток

Igor
14.02.2017
09:55:11
можно важное что-то прошляпить. типа очечаток
А ты вообще планируешь использовать оба метода в одном файле? (Конфликт сигнатур все равно будет, если потом оба заимпортишь.)

Quantum Harmonizer
14.02.2017
09:55:48
import onePackage.something as oneSomething import anotherPackage.something as anotherSomething

Igor
14.02.2017
09:56:11
Это хорошо, а если конфликтов большое (плюс имена новые придумывать)? Замучаешся ведь каждый раз так делать.

Sergey
14.02.2017
09:56:35
А ты вообще планируешь использовать оба метода в одном файле? (Конфликт сигнатур все равно будет, если потом оба заимпортишь.)
ну скажем у меня могут быть example.requests example.responses и там будут лежать одинаковые классы Credentials если без пакетов сделать, тогда будут конфликты

Quantum Harmonizer
14.02.2017
09:57:07
почему бы не использовать один класс Credentials?

Igor
14.02.2017
09:58:16
ну скажем у меня могут быть example.requests example.responses и там будут лежать одинаковые классы Credentials если без пакетов сделать, тогда будут конфликты
Если у тебя еще и классы там лежат, то мне кажется ты быстро пройдешь лимит в 100/200 строк кода на файл и все равно придется раскидывать.

Igor
14.02.2017
10:00:00
Те у тебя там только функции и data классы без логики (ФП пробуешь на Kotlin)?

Quantum Harmonizer
14.02.2017
10:00:40
дата классы с логикой могут приносить проблемы)

я образно. например в responses credentials идет без пароля
Надо с сериализатором правильно договариваться, а не классы плодить, ящитаю.

Boris
14.02.2017
10:01:57
вспоминается анекдот: - Доктор, когда я вот вот так вот делаю у меня болит - А вы вот вот так вот не делайте

Google
Sergey
14.02.2017
10:02:18
Надо с сериализатором правильно договариваться, а не классы плодить, ящитаю.
у меня на проекте один обьект на запрос и ответ пришли к плачевному состоянию. хрен поди разбери где нужно поле для запроса, а где для ответа

и коллеги успешно раздули его до 50 полей

Quantum Harmonizer
14.02.2017
10:03:25
Короче, большие классы — всегда плохо)

Boris
14.02.2017
10:03:34
дело-то не в том как сделать, а в возножностях и бест-практис. Если мне нужно два класса, я делаю два класса, а если язык мне этого сделать не позволяет, то значит что-то с ним не так

Sergey
14.02.2017
10:03:38
ну и плюс request/response это для api, сваггер хорошо его подхватывает и всегда наглядно какой нужен запрос и какой ответ

Boris
14.02.2017
10:04:24
котлин позволяет, да ?

это я про предложение сделать один класс вместо двух

Sergey
14.02.2017
10:05:27
вот я и хочу сделать dto.request{Credentials} dto.response{Credentials} при этом не плодить отдельные классы)

пока разделил все дата классы по отдельным

потому что вариант dto.request.Requests вообще не очень выглядит

Sergey
14.02.2017
10:06:50
не очень понял
хочу файл-пакет, в котором сложу уютно дата классы

Boris
14.02.2017
10:07:17
а кто мешает их положить просто в отдельные папки?

зачем обязательно в файл-пакет-то?

Sergey
14.02.2017
10:07:46
удобно ведь

Boris
14.02.2017
10:08:25
ну как, сделать один класс, возможно немного удобнее, зато если будут еще появляться, то уже как-то не очень удобно

Evgeny
14.02.2017
14:48:18
Кто-нибудь пробовал использовать jack с kotlin1.1 beta?

Страница 44 из 982