Open dark0ghost opened 2 years ago
А почему всем так мавен глаза мозолит? В чем его недостатки по сравнению с градлом?
А почему всем так мавен глаза мозолит? В чем его отличие от градом?
Как я уже писал в комментариях, я нахожу Gradle лучшим выборов за счёт того его легче читать, меньше писать
собственно разве этих оснований для выбора системы сборки не являются важными?
А зачем котлин в конфиге градла?
А зачем котлин в конфиге градла?
https://github.com/dark0ghost/DonationExecutor/tree/master/src/main/kotlin
В оверхед какой-то уходите с внедрением котлина. Давайте тогда плюсы еще прокинем, чо)
В оверхед какой-то уходите с внедрением котлина. Давайте тогда плюсы еще прокинем, чо)
Оверхед? чем же? он же компилируется в Java, так что на производительность тут никак не сыграеть наличие котлина. а вот плюсы гараздо сложнее прокидывать тк как Kotlin обратно совместим с java, а вот чтобы достичь такого эффекта и то не в полной мере нужно замориться с настройками в gradle + gradle для плюсов и си по моему опыту как то плохо работает ( вплане настройки, не user frandly). Поэтому не понимаю в чём тут overhead и причём тут c/c++
Может лучше оставить плагин таким, чтобы Игорь потом смог поддерживать его без твоей помощи, и не надо было учить ещё один язык? А строчки из Text.kt вполне можно вынести в текстовый конфиг.
Игорь смог сохранить его без твоей помощи, и не надо было учить ещё один язык? А строчки из Text.kt вполне можно вынести в текстовый конфиг.
disconectListener = new Listener() {
@Override
public void call(Object... arg0) {
logToConsole("Соединение разорвано!");
}
};
.on(Socket.EVENT_DISCONNECT, disconectListener)
kotlin:
```kotlin
.on(Socket.EVENT_DISCONNECT){
logToConsole("Соединение разорвано!")
}
разве не повод ради такого выучить Kotlin?
А почему всем так мавен глаза мозолит? В чем его недостатки по сравнению с градлом?
Имхо вкусовщина, у меня в вузе чаще Мавен юзают, на работе тоже, поэтому мне он привычнее, но кто-то может с градом привык больше работать.
Может лучше оставить плагин таким, чтобы Игорь потом смог поддерживать его без твоей помощи, и не надо было учить ещё один язык? А строчки из Text.kt вполне можно вынести в текстовый конфиг.
Предлагаю писать проект сразу на 3-х языках минимум: Java, Kotlin и Scala
И ещё Spring Boot-ом обмазаться
А почему всем так мавен глаза мозолит? В чем его недостатки по сравнению с градлом?
Имхо вкусовщина, у меня в вузе чаще Мавен юзают, на работе тоже, поэтому мне он привычнее, но кто-то может с градом привык больше работать.
Вот статейка от OTUS которая немного посвятит об этих системах сборок в краце https://habr.com/ru/company/otus/blog/593903/
Игорь смог сохранить его без твоей помощи, и не надо было учить ещё один язык? А строчки из Text.kt вполне можно вынести в текстовый конфиг.
ну здесь всего 3 файла файла только на котлине и то 2 из них это аннотации и 1 singltone и то со static field
я бы все же настаивал бы на изучение Kotlin за счёт того что на нём про писать (null safe и тд), и то что я видёл в изначальной код базе, могу сказать, что стоит лучше выучить kotlin/jvm и не совершать тех ошибок которые были изначально допущены в оригинале, а так же котлин намного кароче, как пример:
java:
disconectListener = new Listener() { @Override public void call(Object... arg0) { logToConsole("Соединение разорвано!"); } }; .on(Socket.EVENT_DISCONNECT, disconectListener)
kotlin:
.on(Socket.EVENT_DISCONNECT){ logToConsole("Соединение разорвано!") }
разве не повод ради такого выучить Kotlin?
- на счёт конфигов: я согласен с тем, что более корректным было бы использовать config.xml/json, но учитвая, что нам здесь не нужна переносимость конфигов межде разными языками и тем более проектами, то я предпочёл использовать такую структуру + const val даёт оптимизацию (compile time constant - https://kotlinlang.org/docs/properties.html#compile-time-constants) так что лично я считаю допустимым в данном случае использовать такую структуру, но это моё мнение
Человек только начал изучать язык, я боюсь что он толком то не понимает про jvm то. У Java комьюнити больше, примеров в сети больше, используется в ентерпрайзе он намного чаще. Выучить Котлин, зная джаву это 1-2 недели. Меня правильно упрекнули за ломбок. Действительно лучше сначала пострадать и пописать код руками (в том числе и проверки на null). Поэтому лучше учиться на Java
Может лучше оставить плагин таким, чтобы Игорь потом смог поддерживать его без твоей помощи, и не надо было учить ещё один язык? А строчки из Text.kt вполне можно вынести в текстовый конфиг.
Предлагаю писать проект сразу на 3-х языках минимум: Java, Kotlin и Scala
И ещё Spring Boot-ом обмазаться
Spring boot? Ktor.io для чего придумали? И вообще, Kotlin в отличие от 2ух названных языков умеет в MP)
Может лучше оставить плагин таким, чтобы Игорь потом смог поддерживать его без твоей помощи, и не надо было учить ещё один язык? А строчки из Text.kt вполне можно вынести в текстовый конфиг.
Предлагаю писать проект сразу на 3-х языках минимум: Java, Kotlin и Scala
И ещё Spring Boot-ом обмазаться
Spring boot? Ktor.io для чего придумали? И вообще, Kotlin в отличие от 2ух названных языков умеет в MP)
Так Спринг же не только для веба, и у него не веб приложение вроде (могу ошибаться, я в логику не всматривался, только в синтаксис)
Игорь смог сохранить его без твоей помощи, и не надо было учить ещё один язык? А строчки из Text.kt вполне можно вынести в текстовый конфиг.
ну здесь всего 3 файла файла только на котлине и то 2 из них это аннотации и 1 singltone и то со static field
я бы все же настаивал бы на изучение Kotlin за счёт того что на нём про писать (null safe и тд), и то что я видёл в изначальной код базе, могу сказать, что стоит лучше выучить kotlin/jvm и не совершать тех ошибок которые были изначально допущены в оригинале, а так же котлин намного кароче, как пример:
java:
disconectListener = new Listener() { @Override public void call(Object... arg0) { logToConsole("Соединение разорвано!"); } }; .on(Socket.EVENT_DISCONNECT, disconectListener)
kotlin:
.on(Socket.EVENT_DISCONNECT){ logToConsole("Соединение разорвано!") }
разве не повод ради такого выучить Kotlin?
- на счёт конфигов: я согласен с тем, что более корректным было бы использовать config.xml/json, но учитвая, что нам здесь не нужна переносимость конфигов межде разными языками и тем более проектами, то я предпочёл использовать такую структуру + const val даёт оптимизацию (compile time constant - https://kotlinlang.org/docs/properties.html#compile-time-constants) так что лично я считаю допустимым в данном случае использовать такую структуру, но это моё мнение
Человек только начал изучать язык, я боюсь что он толком то не понимает про jvm то. У Java комьюнити больше, примеров в сети больше, используется в ентерпрайзе он намного чаще. Выучить Котлин, зная джаву это 1-2 недели. Меня правильно упрекнули за ломбок. Действительно лучше сначала пострадать и пописать код руками (в том числе и проверки на null). Поэтому лучше учиться на Java
Я сначала начинал с Kotlin/jvm, потоп уже тыкал java, плюс в telegram куча чатов: https://t.me/kotlin_lang, https://t.me/javastart - как основные. И опять же зачем страдать с этими null, если можно писать нормально в kotlin и трогать null когда это необходимо. Java тем более сейчас вытесняется во многих компаниях, google как главный пример, не говоря уже про другие компании. На счет getter/setter - в данном проекте их особо не потыкать поэтому я бы настаивал использовать kotlin, который их бы автоматом генерел бы, я считаю, что в данном проекте, раз его используют другие люди, лучше будет сделать как надо, а поиграться всегда можно успеть (сделать ветку с названием test условно и там поиграться)
Игорь смог сохранить его без твоей помощи, и не надо было учить ещё один язык? А строчки из Text.kt вполне можно вынести в текстовый конфиг.
Предлагаю писать проект сразу на 3-х минимумах: Java, Kotlin и Scala И ещё Spring Boot-ом обмазаться
Весенний ботинок? Ktor.io для чего придумали? И вообще, Kotlin в отличие от 2ух названных языков умеет в MP)
Так Спринг же не только для веба, и у него не веб вроде приложение (могу ошибаться, я в логику не всматривался, только в синтаксис)
он ходит гулять в интернет вот класс DonationAlerts. как я выше писал тут можно было бы использовать сокеты на корутинах у того же ktor, но это уже пусть он сам решает, потому что async в kotlin хоть и не так сложен как в других языка, но все же требует достаточно времени, чем здесь и сейчас
А почему всем так мавен глаза мозолит? В чем его недостатки по сравнению с градлом?
Не читал тред, но градл мусорка.
Для 99% случаев не нужно иметь ИМПЕРАТИВНЫЙ полный по тьюрингу язык чтобы оперировать зависимостями и плагинами. Мавен хоть и выглядит не очень привлекательно (чем бесит хипстеров), но зато декларативный и не позволяте делать одинаковые вещи тремя разными путями.
1) перевёл проект на gradle 2) прошёлся с ide по коду убрал лишнее( вообщем от тех 3 не особо отличается) 3) убрал ненужные инструкции if-else где это не нужно было и заменил на if-return 4) вынес закомментированныйкод в отдельную функцию пометив как эксперементальный api https://github.com/link1107/DonationExecutor/compare/master...dark0ghost:master#diff-cf1f41473991b2ecd88405ff82c0a5c686a2c400219df4937481bf47d0bb96d7R23 5) добавил CI что бы контролировать проект 6) добавил singltone в котором собрал весь текст, что бы в будущем было легче его редактировать https://github.com/link1107/DonationExecutor/compare/master...dark0ghost:master?short_path=2511803#diff-c153ab6b9052f55b4d2803c70794a61e84f3afcd192c0de9c597a58d6ec848d6R3 7) Пометил аннотациями неиспользуемые переменные (стоит обратить тебе внимания)
ну и ещё что то по мелочи. А так же хотел бы напомнить,что стоит научиться работать с git и с ветками, так будет легче потом
Так же стоило бы перевести проект на Kotlin связи с тем, что на java код слишком плохим получается. Так же стоило бы перевести с java socket на ktor socket