Size: a a a

Kotlin Community

2020 September 10

RU

Roman Ushakov in Kotlin Community
Есть те кто плотно работал с ktor'ом?
Как вы при большом количестве ендпоинтов их описываете?
Объединяете их по назначению в модули?
В общем суть вопроса, как вы справляетесь с постоянно растущим кодом?

Если разносить по модулям то каждый приходится описывать в конфигурационном файле, что боль, так как package довольно длинный и модулей тогда прямо слишком много.
Конфиг из-за этого на страницу уже не помещается.
источник

QH

Quantum Harmonizer in Kotlin Community
Roman Ushakov
Есть те кто плотно работал с ktor'ом?
Как вы при большом количестве ендпоинтов их описываете?
Объединяете их по назначению в модули?
В общем суть вопроса, как вы справляетесь с постоянно растущим кодом?

Если разносить по модулям то каждый приходится описывать в конфигурационном файле, что боль, так как package довольно длинный и модулей тогда прямо слишком много.
Конфиг из-за этого на страницу уже не помещается.
у меня, например, вся админка сайта описана отдельным файлом
источник

АО

Алексей Овсянников... in Kotlin Community
Denis Aleksandrov
Всем привет! Подскажите, не появилось ли еще в channels имплементации такого решения - чтобы можно было отправить несколько значений, и каждое из них сколлектилось ровно по одному разу?
Для канала каждый ресив получает только одно значение и никто другой это значение не получит
источник

АО

Алексей Овсянников... in Kotlin Community
Roman Ushakov
Есть те кто плотно работал с ktor'ом?
Как вы при большом количестве ендпоинтов их описываете?
Объединяете их по назначению в модули?
В общем суть вопроса, как вы справляетесь с постоянно растущим кодом?

Если разносить по модулям то каждый приходится описывать в конфигурационном файле, что боль, так как package довольно длинный и модулей тогда прямо слишком много.
Конфиг из-за этого на страницу уже не помещается.
Я разделяю по модулям (градловским) на каждую фичу и делаю экстеншены для роутингов (Route) для конфигурации частей путей. От разрастания не упасает, зато всё по полочкам
источник

RU

Roman Ushakov in Kotlin Community
Гредловские модули это жёстко
источник

RU

Roman Ushakov in Kotlin Community
У меня их штук 20 минимум будет
источник

RU

Roman Ushakov in Kotlin Community
То есть сейчас нормального решения например:
* Указать package с модулями
* Указать главный модуль, в котором просто перечислить модули
* Пометить аннотацией
Это очень больно.
Что-то не хочется вместо того, чтобы писать код проекта заниматься каждый раз настройкой каждого конкретного модуля, проверять, есть ли в списке модулей нужный мне модуль и так далее по списку.
источник

RU

Roman Ushakov in Kotlin Community
Чисто имхо: как-то недальновидно написан ктор
источник

с#

саша сок #KotlinGang... in Kotlin Community
Roman Ushakov
Есть те кто плотно работал с ktor'ом?
Как вы при большом количестве ендпоинтов их описываете?
Объединяете их по назначению в модули?
В общем суть вопроса, как вы справляетесь с постоянно растущим кодом?

Если разносить по модулям то каждый приходится описывать в конфигурационном файле, что боль, так как package довольно длинный и модулей тогда прямо слишком много.
Конфиг из-за этого на страницу уже не помещается.
о, я с этим столкнулся, сейчас покажу что придумал
источник

QH

Quantum Harmonizer in Kotlin Community
А в чём проблема составить список модулей, описав каждый функцией типа Routing.() -> Unit, пробежать форичем и добавить их? Что от Ктора-то здесь нужно? Autodiscovery модулей?)
источник

RU

Roman Ushakov in Kotlin Community
Именно
источник

RU

Roman Ushakov in Kotlin Community
Меня смущает, что это должен делать я
источник

RU

Roman Ushakov in Kotlin Community
Представь на каждый проект велосипед писать?
источник

RU

Roman Ushakov in Kotlin Community
Модули кстати, как я понял не могут иметь аргументов?
Чтобы они корректно могли работать через стандартные механизмы ктора?
источник

QH

Quantum Harmonizer in Kotlin Community
Roman Ushakov
Представь на каждый проект велосипед писать?
Про autodiscovery? Уже есть ServiceLoader
источник

QH

Quantum Harmonizer in Kotlin Community
Roman Ushakov
Модули кстати, как я понял не могут иметь аргументов?
Чтобы они корректно могли работать через стандартные механизмы ктора?
а какое дело кейтору до гредловых модулей? В рантайме их нет
источник

RU

Roman Ushakov in Kotlin Community
Я про ктор
источник

RU

Roman Ushakov in Kotlin Community
Модули ктора
источник

QH

Quantum Harmonizer in Kotlin Community
а, ё, я и не знал про таковые
источник

с#

саша сок #KotlinGang... in Kotlin Community
Roman Ushakov
Есть те кто плотно работал с ktor'ом?
Как вы при большом количестве ендпоинтов их описываете?
Объединяете их по назначению в модули?
В общем суть вопроса, как вы справляетесь с постоянно растущим кодом?

Если разносить по модулям то каждый приходится описывать в конфигурационном файле, что боль, так как package довольно длинный и модулей тогда прямо слишком много.
Конфиг из-за этого на страницу уже не помещается.
сейчас не в пк и это единственное, что нашёл, тут мало ендпоинтов, но эту систему расширять можно очень долго и выглядеть будет круто

есть папка routes, в которой лежат все эндпоинты, в каждой папке соответственно лежит один файлик, который подключает все функции этого роута (это делает легким ориентацию в методах, когда их много)

помимо этого файлика папка содержит другую папку с запросами, 1 запрос в каждом файле тоже для удобства, это правда не чистый ктор, а ещё поверх прикрученное OpenApi, но суть не поменяется
источник