Size: a a a

2020 June 13

N

Nick in pro.jvm
давайте внесу ясность, имелось ввиду как сейчас IDEA подсвечивает дубпликаты, то также делать но в глобальном масштабе
источник

AM

Andrey Martynov in pro.jvm
идея подсвечивает дубликаты кода один в один
источник

AM

Andrey Martynov in pro.jvm
в других библиотеках такого быть не может
источник

N

Nick in pro.jvm
то что вы хотите определить что алгоритм делает тоже самое - это конечно тоже бы хотелось, но это уже некст дженерашн)
источник

AM

Andrey Martynov in pro.jvm
чтобы код у тебя повторялся один в один
источник

AM

Andrey Martynov in pro.jvm
В библиотеке может использоваться цикл while, а у тебя for например
источник

AM

Andrey Martynov in pro.jvm
и прочие мелкие вещи
источник

N

Nick in pro.jvm
зачем такие сложные случаи брать? сначала бы с полными дубликатами разобраться, чтобы переиспользовать код из либ
источник

ch

central hardware in pro.jvm
если человек скопипастил из либы он наверно об этом и сам знает
источник

N

Nick in pro.jvm
для например среди тех которые уже подключены к проекты, например тащишь спринг с кучей кода, и тебе подсвечивает что вон в той либе-зависимости спринга есть то что тебе надо и ты удаляешь свой код и пользуешь из либы
источник

ch

central hardware in pro.jvm
central hardware
если человек скопипастил из либы он наверно об этом и сам знает
но не раз слышал"если вам нужен небольшой метод, куда лучше просто скопировать/написать свое вместо того, чтобы тащить всю либу"
источник

N

Nick in pro.jvm
central hardware
но не раз слышал"если вам нужен небольшой метод, куда лучше просто скопировать/написать свое вместо того, чтобы тащить всю либу"
верно, но если у вас либа итак в зависимостях? или вы не хотите покрывать его тестами?
источник

C

Constantine in pro.jvm
Nick
для например среди тех которые уже подключены к проекты, например тащишь спринг с кучей кода, и тебе подсвечивает что вон в той либе-зависимости спринга есть то что тебе надо и ты удаляешь свой код и пользуешь из либы
Твой плагинчик будет уметь говорить, что это:
for (int i = 0; i < 9; i++){
System.out.println("hmm");
}
и это
int lool=0;
while(lool<9){
System.out.println("hmm");
lool++;
}
одно и тоже 🤔
источник

N

Nick in pro.jvm
Constantine
Твой плагинчик будет уметь говорить, что это:
for (int i = 0; i < 9; i++){
System.out.println("hmm");
}
и это
int lool=0;
while(lool<9){
System.out.println("hmm");
lool++;
}
одно и тоже 🤔
не вижу проблемы и такое распознавать. Идея както же предлагает итераторы заменять на форичи и их потом на обычные форы с индексами
источник

N

Nick in pro.jvm
конкретно этот пример с for-while очень простой, т.к. они отличаются только форматом записи, в виде блоксхемы они абсолютно одинаковы
источник

C

Constantine in pro.jvm
Да, над чот посложнее придумать
источник

ch

central hardware in pro.jvm
Nick
не вижу проблемы и такое распознавать. Идея както же предлагает итераторы заменять на форичи и их потом на обычные форы с индексами
большинство программистов сходу напишут код который хуже того, что в нормальной либо и в данном случае тебе уже ничего кроме человека на ручной проверке не поможет
источник

N

Nick in pro.jvm
central hardware
большинство программистов сходу напишут код который хуже того, что в нормальной либо и в данном случае тебе уже ничего кроме человека на ручной проверке не поможет
замечание про верификацию принято
источник

N

Nick in pro.jvm
понять бы надо ли оно кому
источник

C

Constantine in pro.jvm
Nick
понять бы надо ли оно кому
А если вот допустим есть код который работает на stream, а в спринге допустим точно такая же работа кода, но всё на for -loop

Он скажет, что это идентичный код, просто по разному реализован🤔
источник