Проект без устаревшего кода так же гипотетичен, как и существование разработчика, который не кодирует.
Вы можете написать чистый код сегодня, а через некоторое время он станет устаревшим кодом, поэтому мы не можем избавиться от устаревшего кода в нашей области.
Теперь давайте начнем с сути, у нас есть проект, начатый в 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”