DotNet 형식으로 C# 코드를 예쁘게

3604 단어
이번 주에는 Static Analysis Tool에 대해 알아보고 제 Shinny-SSG 애플리케이션에 적용하는 연습을 했습니다. 내가 사용한 두 가지 도구는 Dotnet FormatStyleCopAnalyzers 입니다. 널리 사용되고 있고 둘 다 .editorconfig 파일을 기반으로 소스 코드를 분석하고 있기 때문에 선택했습니다.

설치



EditorConfig



첫 번째 단계에서 내 프로젝트에 대한 .editorconfig 파일을 생성했습니다. 이Editorconfig 파일은 Visual Studio에서 들여쓰기 및 간격 또는 래핑 기본 설정과 같은 코딩 스타일을 정의하는 위치입니다.

DotnetFormat



두 번째 단계는 다음 명령을 사용하여 내 로컬 컴퓨터에 DotnetFormat 도구를 설치하는 것입니다.
dotnet tool install -g dotnet-format
이 도구는 .editorconfig 파일의 스타일 기본 설정에 따라 내 코드의 서식을 지정합니다.

StyleCop.Analyzers



세 번째 단계는 StyleCop Analyzer를 설치하는 것입니다. 설명서에 지정된 대로 NuGet 패키지 StyleCop.Analyzers를 추가하는 것이 바람직한 방법을 따랐습니다. 나는 또한 이것이 도움이 된다는 것을 알았고 저자가 권장하는 단계를 따라했습니다. 프로젝트 파일 확장에서 빌드 시 StyleCop을 트리거할 수 있도록 다음 줄을 프로젝트에 추가했습니다.

<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" Condition="$(MSBuildProjectExtension)=='.csproj'">
    <PrivateAssets>all</PrivateAssets>
    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>


마지막 단계는 내 .editorconfig 파일을 편집하여 다음과 같이 내 프로젝트에 원하지 않는 규칙을 비활성화하는 것입니다. using 지시문은 네임스페이스 선언 내에 나타나야 합니다.

dotnet_diagnostic.SA1200.severity = None


그러나 내 프로젝트를 빌드할 때 여전히 이 규칙에 대한 경고가 표시되었으므로 이에 대해 더 조사해야 할 것 같습니다.

빌드 이벤트



내 프로젝트에 대한 StyleCop의 경고를 자동으로 수정하는 방법을 찾는 데 어려움을 겪었습니다. 360개의 경고가 있었는데 수동으로 수정하려면 시간이 많이 걸립니다. 운 좋게도 같은 반 친구인 김민수 씨의 글을 읽었는데 그는 닷넷 형식을 타사 분석기와 함께 사용할 수 있다고 언급했습니다. 훌륭한 발견이며 이 명령을 사용하여 style-cop의 모든 경고를 수정할 수 있습니다.
dotnet-format -a warn ./shinny-ssg.sln
이 명령을 사용하면 빌드 시 StyleCop.Analyzers를 트리거하기 위해 프로젝트 파일 확장명을 수정할 필요가 없으며 모든 작업을 dotnet 형식으로 유지할 수 있습니다.

Microsoft Visual Studio에는 프로젝트용build events configuration이 있으며 프로젝트 빌드 시 자동 서식 코드 작업을 트리거하는 데 사용했습니다. 다음과 같이 프로젝트를 설정했습니다.

내 프로젝트에서 dotnet 빌드를 실행한 후 두 개의 dotnet 형식 명령으로 6개의 서식 오류와 360개의 경고가 수정되었습니다.

편집기/IDE 통합



Visual Studio는 vsssetings 파일을 통해 개발 환경을 복제하는 훌륭한 방법을 제공합니다. 내 프로젝트의 새로운 기여자는 프로젝트 리포지토리에서 사용할 수 있는 ShinnySSG-2021-11-06.vssettings를 가져와서 나와 동일한 개발 환경을 가질 수 있습니다.

결론



코드 서식 지정은 코드 품질을 개선하는 첫 번째 방법이며 검토자가 버그를 발견하고 제안을 제공하기가 더 쉬워집니다. 이 작업을 훨씬 더 쉽게 만들어주는 훌륭한 도구를 발견하게 되어 기쁩니다.

좋은 웹페이지 즐겨찾기