Size: a a a

Kotlin Community

2020 May 17

IO

Iaroslav Orlov in Kotlin Community
Bogdan Panchenko
когда тебе не нужно разбирать конструкции, типа: вот индекс этот индекс идет по размеру масива, к элементу масива с индексом мы применяем такое действие.
я понимаю разницу, но просто на уровне компиляции билдскрипта это никак не различить
источник

IO

Iaroslav Orlov in Kotlin Community
предлагается же искуственно запретить императивный код в build.gradle?
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
предлагается же искуственно запретить императивный код в build.gradle?
не надо ничего запрещать. Просто почистить
источник

BP

Bogdan Panchenko in Kotlin Community
Iaroslav Orlov
я понимаю разницу, но просто на уровне компиляции билдскрипта это никак не различить
да по факту нет, мы же в jvm мире
источник

IO

Iaroslav Orlov in Kotlin Community
Alexander Nozik
не надо ничего запрещать. Просто почистить
и так везде рекомендуют убирать императив
источник

IO

Iaroslav Orlov in Kotlin Community
но в реальных проектах уходит некоторое время на вынос всего такого в buildSrc
источник

IO

Iaroslav Orlov in Kotlin Community
кстати, тут панаму упоминали. тоже слюнки текут из-за нормальной работы с off-heap'ом
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
и так везде рекомендуют убирать императив
Ну тут скорее даже не про императив речь, а про какую-то логику с состояниями, которую сложно читать и воспринимать
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
кстати, тут панаму упоминали. тоже слюнки текут из-за нормальной работы с off-heap'ом
off-heap завезли в 14. Я пока не тыкал правда. Опять же висит issue в kmath
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
но в реальных проектах уходит некоторое время на вынос всего такого в buildSrc
да, но оно того стоит. Я вообще в плагины вынес
источник

AN

Alexander Nozik in Kotlin Community
Alexander Nozik
off-heap завезли в 14. Я пока не тыкал правда. Опять же висит issue в kmath
источник

IO

Iaroslav Orlov in Kotlin Community
Alexander Nozik
Ну тут скорее даже не про императив речь, а про какую-то логику с состояниями, которую сложно читать и воспринимать
ну прям стейт довольно редко встречается
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
ну прям стейт довольно редко встречается
Проблема с градлом в том, что у него очень сложная (и императивная!) внутренняя модель и порядок инициализации. Поэтому любые вставки билд логики начинают выглядеть крайней громоздко, при том, что билд файл должен читаться максимально просто и быстро
источник

AN

Alexander Nozik in Kotlin Community
Просто добавление таски с небольшим императивным кодом - ОК, но вот изменение настроек конфигураций помимо того, что доступно простыми конфигурациями - это уже тяжело
источник

AM

Andrew Mikhaylov in Kotlin Community
Iaroslav Orlov
ну а как определить, императив это или не императив?
Никак, конечно, пока билдконфиг пишется на грувях или котлине.
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Никак, конечно, пока билдконфиг пишется на грувях или котлине.
Полностью декларативно - это только в maven и там от этого гибкость сильно страдает
источник

АО

Алексей Овсянников... in Kotlin Community
Ну как... Там не билдскрипт, а билдконфиг, этим всё сказано, впринципе
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Nozik
Полностью декларативно - это только в maven и там от этого гибкость сильно страдает
В мавене, если я правильно понял, не так легко кастомную логику в билд написать, как в гредле с buildSrc. Ну и это тоже не предел мечтаний. Но оформленных мыслей, как это могло бы выглядеть, нет.
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
В мавене, если я правильно понял, не так легко кастомную логику в билд написать, как в гредле с buildSrc. Ну и это тоже не предел мечтаний. Но оформленных мыслей, как это могло бы выглядеть, нет.
В мавене для того, чтобы что-то вставить в билд надо деплоить плагин. И это большая проблема. Градл в принципе более или менее держит баланс между юзабельностью и декларативностью, но да, у него серьезная проблема с кривизной модели. Проблема, понятно, историческая. Им надо держать обратную совместимость.
источник

BV

Boris Vanin in Kotlin Community
У мавена кстати есть скриптовый конфиг
источник