Рубрики
Без рубрики

Приведение формата кода к устаревшему.

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

Проект без устаревшего кода так же гипотетичен, как и существование разработчика, который не кодирует.

Вы можете написать чистый код сегодня, а через некоторое время он станет устаревшим кодом, поэтому мы не можем избавиться от устаревшего кода в нашей области.

Теперь давайте начнем с сути, у нас есть проект, начатый в 2011 году, и некоторые коды даже не изменены до настоящего времени, поэтому мне было поручено отформатировать всю кодовую базу в google style Я попробовал следующую функцию bash, чтобы узнать дату последнего обновления каждого файла.

function ghlbt {
         git ls-tree -r --name-only HEAD |
        while read filename  ;
        do
            if
                [[ $filename == *.$1 ]] ; then echo " $filename ," $(git log -1 --format="%ad, %an" -- $filename);
            fi  ;
        done >> $1_$2.csv
}

пожалуйста, замените $1 расширением, а $2 – именем каталога или любым другим суффиксом тебе нужно

мы получили CSV-файл и порядок по обновленной дате. "%ad, % an" вы также можете изменить это, вы можете найти в Google другие шаблоны.

сначала мы подумали о том, чтобы очистить старый файл, но после создания CSV я понял, что у нас более 1200 файлов java, и форматировать их все не очень хорошая идея, поэтому мы подумали об использовании нашего Jenkins для этого и автоматизации процесса.

мы используем Gradle для создания проектов. к счастью, для Gradle есть средство форматирования.

buildscript {
  repositories {
    mavenCentral()
    jcenter {
    }
  }

dependencies {
    classpath "gradle.plugin.com.github.sherter.google-java-format:google-java-format-gradle-plugin:0.8"
  }
}

добавьте следующее в плагин применить плагин: "com.github.sherter.google-java-format"

итак, работа в Gradle теперь завершена.

в jenkins мы используем обычные команды git после получения крючка фиксации в производственную ветвь, а оттуда создаем промежуточную ветвь, чтобы отформатировать код и зафиксировать его в главном после форматирования.

Часть 2 будет посвящена кодам конвейера Дженкинса.

Оригинал: “https://dev.to/saifali40/bringing-the-code-format-to-legacy-3cen”