Весёлые (сосисочные) рефакторинги

в 14:29, , рубрики: java, Программирование, рефакторинг, Совершенный код, метки:

Весёлые (сосисочные) рефакторинги

Привет, %habrausername%. Я хочу сыграть с тобой в игру.

Ты устроился на новую работу. И в первый же день, сразу после подписания NDA, тебе показывают то, что осталось от предыдущего разработчика. Тебе хочется кричать, хочется бежать из этого проклятого места, но трудовой договор сковывает тебя по рукам и ногам. Поэтому ты лишь еле слышно материшься.

От предыдущего разработчика осталась кучка кода и домашние тапочки. Ты осторожно кладёшь тапочки в мусорную корзину и начинаешь рефакторинг.

Этот код ужасен. Во-первых, нет никого, кто мог бы сказать, зачем этот код писался. Во-вторых, нет никакой документации. Нет даже комментариев, не говоря уже о юнит-тестах. В-третьих, код не структурирован, а имена классов и методов ни о чём не говорят. И, наконец, работать это должно начать не сегодня, и даже не вчера, а внезапно.
Ну как, %habrausername%, пробежал холодок по спине?

В такой ситуации каждый программист считает, что сейчас-то он сделает лучше, чем было. Но так ли это? Объективно ли код становится лучше после рефакторинга? Если да, то в чём критерий улучшения кода? А может быть рефакторинг служит удовлетворению амбиций разработчика?

Я предлагаю вашему вниманию TB MMOG под названием «Весёлые рефакторинги».

Суть в следующем. Имеется некий код, ведущий и N участников. Ведущий высылает на почту первому участнику исходный код. Участник проводит рефакторинг и отправляет результат обратно ведущему. Затем ведущий отправляет результат второму участнику и так далее, пока участники не закончатся. Передача кода происходит анонимно, то есть ни один из участников не знает, чей код он рефакторит.

Цель — получение представления о «совершенном коде» и методах, которые используют разные разработчики для его достижения. Ну и конечно же, это будет весело. По итогам Весёлых рефакторингов будет написана статья с анализом сделанных изменений, а все исходные коды будут выложены в общий доступ.

Если вы хотите принять участие в Весёлых рефакторингах, оставьте заявку в комментарии к этому посту, либо мне в личку, либо на почту recrowding@gmail.com. В заявке укажите свой емейл (будет использоваться исключительно для отправки вам исходного кода) и пару слов о себе (будут опубликованы в итоговом отчёте, сюда могут включать контакты, ссылка на сайт и тп).

Чтобы не настал хаос, вводится несколько правил:

  1. Не задерживайте у себя код слишком долго. Если от вас не будет ответа более двух суток, вы будете исключены из игры.
  2. Не стоит писать в коде какие-то личные данные, дабы не искушать следующего участника обратиться к вам за помощью. Емейлы, имена, явки и тп из исходного кода будут безбожно вырезаться.
  3. Нельзя менять язык программирования. В остальном участнику представляется полная свобода действий в рамках понятия «рефакторинг». Да, откровенный треш будет исключаться.
  4. Общее ревью будет опубликовано на Хабре, а работы всех участников конкурса будут выложены в общедоступный репозиторий вместе с парой слов себе, указанной в заявке.

Для этих Рефакторингов выбран язык Java (потому что рефакторить программу на Яве можно бесконечно). Заявки принимаются до 18 марта.

UPD Раз уж зашла речь, скажу, что исходная кучка кода собрана в одном файле и имеет длину не более 200 строк.

Автор: ilichme

Источник


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js