Size: a a a

Scala User Group

2021 March 22

λ

λoλegΥch in Scala User Group
штош
источник

λ

λoλegΥch in Scala User Group
а как в ютраке заквотить F[_] ?
источник

λ

λoλegΥch in Scala User Group
а 'F[_]'
источник

AD

Apache DOG™ in Scala User Group
implicitly[Sugak[F]]
источник
2021 March 23

IP

Ilya Petrov in Scala User Group
Ещё такой странный вопрос появился. Я помню что в c++ есть препроцессор/макросы. Директивами ifdef можно было управлять какие куски кода/фичи включать в результирующую сборку, а какие нет, задавая некоторые константы компилятору/билд тулу. Для java я нагуглил manifold есть. Быть может у кого-то есть опыт использования подобных вещей или есть что-то лучше именно для scala
источник

IP

Ilya Petrov in Scala User Group
Так manifold получается не для java а для Idea...
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
можно такое на макросах сделать в теории
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
зависит от задачи
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Ilya Petrov
Ещё такой странный вопрос появился. Я помню что в c++ есть препроцессор/макросы. Директивами ifdef можно было управлять какие куски кода/фичи включать в результирующую сборку, а какие нет, задавая некоторые константы компилятору/билд тулу. Для java я нагуглил manifold есть. Быть может у кого-то есть опыт использования подобных вещей или есть что-то лучше именно для scala
Плагины компилятора могут читать флаги компилятора специальные
источник

EK

Evgenii Kuznetcov in Scala User Group
Ilya Petrov
Ещё такой странный вопрос появился. Я помню что в c++ есть препроцессор/макросы. Директивами ifdef можно было управлять какие куски кода/фичи включать в результирующую сборку, а какие нет, задавая некоторые константы компилятору/билд тулу. Для java я нагуглил manifold есть. Быть может у кого-то есть опыт использования подобных вещей или есть что-то лучше именно для scala
Опенсорс авторы сталкиваются с этой проблемой, когда нужно поддерживать проект для разных версий скалы и скалы-жс.
Это решается созданием отдельных build directories и трюками с наследованием: MyService extends MyServiceVersionSpecific.
Можно попробовать делать так же. В билд конфигурации нужно будет задать нужные build directories для конкретного типа релиза.
источник

EK

Evgenii Kuznetcov in Scala User Group
Но лучше, наверное, не делать так для бизнес логики, а просто попробовать правильно структурировать модули
источник

IP

Ilya Petrov in Scala User Group
Есть более простой выход, попробовать закрыть определённые роуты feature флагами. Это может не совсем решить проблему исключения неиспользуемого кода из результирующего билда, но уже что-то. И тут два выхода - на уровне какого-то файла с object со всеми флагами играться и менять в этом файле в зависимости от того что надо или более правильный - это выностить на уровень билд тула. Но на уровне билд тула вопрос (возможно глупый): есть ли в sbt возможность пробрасывать какие-то вещи в код, т.е. в зависимости от конфига формировать тело того самого object со всеми feature флагами?
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Ilya Petrov
Есть более простой выход, попробовать закрыть определённые роуты feature флагами. Это может не совсем решить проблему исключения неиспользуемого кода из результирующего билда, но уже что-то. И тут два выхода - на уровне какого-то файла с object со всеми флагами играться и менять в этом файле в зависимости от того что надо или более правильный - это выностить на уровень билд тула. Но на уровне билд тула вопрос (возможно глупый): есть ли в sbt возможность пробрасывать какие-то вещи в код, т.е. в зависимости от конфига формировать тело того самого object со всеми feature флагами?
sbt-buildinfo плагин умеет
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
но он заточен под конкретную инфу, не расширяется
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
с другой стороны можно скопировать код из него
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
хотя там вроде можно произвольную мапку закинуть, например с фича-флагами
источник

IP

Ilya Petrov in Scala User Group
Λнтон Войцишевский
с другой стороны можно скопировать код из него
Ну да, спасибо за наводку
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну sbt-buildinfo это просто кодогенерация
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
хотя опять же, проще сделать конфиг где-то в условном vault со всеми флагами и подтягивать его потом из приложения
источник

Oℕ

Oleg ℕizhnik in Scala User Group
кодогенерацию, конечно можно сделать любую
источник