@DeNissss4444

Существует ли какая- та тула, плагин или просто сервис который бы помогал улучшить код.?

У меня возник такой вот интересный вопрос. Существует ли какая- та тула, плагин или просто сервис который бы помогал улучшить код? Грубо говоря ты ему показываешь пример говно кода а он предлагает различные варианты как этот же код можно написать по другому.
  • Вопрос задан
  • 288 просмотров
Пригласить эксперта
Ответы на вопрос 7
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Как только такая появится, вы станете не нужны.
Ответ написан
Комментировать
xez
@xez Куратор тега Java
TL Junior Roo
На sonar qube надейся, а сам «чистый код» и effective Java читай.
Ответ написан
Комментировать
На небольших масштабах с этим справляются различные инструменты статического анализа (типа sonar или pvs) а также твоя IDE (например в intellij idea ultimate достаточно много разных анализов и рефакторингов).

Для более радикальных и неочевидных вещей, в теории, с этим может справиться github copilot. (но если ты сам плохо понимаешь, то он никакой пользы тебе в принципе принести не сможет)
Ответ написан
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Я полностью поддерживаю использование УЛУЧШАТОРОВ типа SonarQube, PMD и прочие которые просто позволяют указать мне на явные ошибки типа potenrial null pointer de-referencing.

Но вот в части - написать по другому - я-бы сказал что это открытый вопрос. Ставить ТЗ нельзя так чтобы "сделать на выходе хоть что-нибудь". При таких критериях мы получим просто рандомный шум который тем не менее компилируется. Типа "бей посуду - я плачу". Но автору такое не надо.

Тогда давайте зададим вопрос. А что собсно надо автору? Приведу пример который я часто использую. Решения задач на codewars. Они разные. Но обычно в топе висят 2-3 штуки которые поражают своей краткостью и различностью парадигм. Например в топе висит одно решение с хвостовой рекурсией а другое с циклом. И я не могу решить которое мне больше нравится. Нравятся оба. Но скорее всего при разработке code beautifier я-бы не стал вообще копать 2 направления. Достаточно было-бы просто поставить задачу сделать код меньше. Я думаю что все согласятся что меньше строк - меньше надо будет скроллить вниз. Особенно эти дело любят Джависты. Как накидают своих бинов с геттерами-сеттерами ойойой. 80% кода - нечитаемый шлак. Ну да ладно. А насколько меньше? Есть обфускация. Это сознательне выпиливание смыслов из всех идентификаторов. Вобщем переменные можно называть $1,$2 e.t.c. и это тоже работает. Но ... согласитесь это путь в никуда.

Поэтому. Чтобы улучшать мы должны САМИ задать вектор улучшения. Парадигмы например. Мы хотим код тяготеющий к функциям или к объектам с методами? Мы хотим код с детальным дебагом (каждый оператор в своей строчке) или нам пойдет исходник как у Джона Кармака. Весь С++ исходник в 1 длинную строку. Мы хотим код на конечных автоматах? Или на комбинаторах? Мы хотим больше перформанс но хуже читаемость (вспоминаем знаменитую Кривую Шипилёва) или наоборот?

Вобщем думайте над вектором улучшения.
Ответ написан
Комментировать
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Лучший способ сходу начать писать код лучше - правильно именовать члены классов. С многими очевидными и не очень проблемами помогают статические анализаторы и такие программы как PVS. Но сам рефакторинг больше завязан на вашу интуицию разработчика. Для её наработки нужна практика на задачах, с которыми вы ещё не работали или закомы лишь поверхностно.
Ответ написан
Комментировать
Sputterspark
@Sputterspark
IntelliJ IDEA
Ответ написан
Комментировать
samizdam
@samizdam
Мозг называется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы