유용한 Visutal Studio 확장 기능을 소개해 드리고자 합니다.
1. SonarLint
1. 정적 분석을 통해 잠재적인 코드 상의 오류 사항 표시 및 개선 코드를 제시해 줍니다.
2. 개선 코드 제시
위 제안대로 바꾸면 같은 동작을 하는 좀더 간단한 코드로 바꿀 수 있습니다.
SonarLint를 설치해 보시면 코드의 취약점 및 개선 사항이 많다는 것을 보고 놀라실 겁니다.
2. Warn About TODOs
1. 코드 상에 TODO로 기입한 내용들을 Warning List로 보여줘 TODO 리스트를 쉽게 관리할 수 있도록 해줍니다.
2. TODO 이외에도 여러가지 키워드를 지원합니다.
1. STARTS
2. CONTAINS
3. DOESNOTCONTAIN
4. MATCHESREGEX
위에서 소개한 2가지 확장 기능 외에도 여러가지 유용한 것들이 있지만 SonarLint는 꼭 사용해 보시길 추천드립니다.
1. SonarLint
1. 정적 분석을 통해 잠재적인 코드 상의 오류 사항 표시 및 개선 코드를 제시해 줍니다.
2. 개선 코드 제시
var blk = ViewModelControl.Blocks.Where(param => param.Name.Equals((node.DataBoundItem as Wbs).UID)).FirstOrDefault();
if (blk != null)
{
ViewModelControl.Blocks[(node.DataBoundItem as Wbs).UID].Entities.SelectAll();
}
var blk = ViewModelControl.Blocks.Where(param => param.Name.Equals((node.DataBoundItem as Wbs).UID)).FirstOrDefault();
if (blk != null)
{
ViewModelControl.Blocks[(node.DataBoundItem as Wbs).UID].Entities.SelectAll();
}
위 코드에 대해서 아래와 같은 개선 코드를 제시해 줍니다.(Where 대신에 FirstOrDefault를 사용하라고 함)위 제안대로 바꾸면 같은 동작을 하는 좀더 간단한 코드로 바꿀 수 있습니다.
var blk = ViewModelControl.Blocks.FirstOrDefault(param => param.Name.Equals((node.DataBoundItem as Wbs).UID));
if (blk != null)
{
ViewModelControl.Blocks[(node.DataBoundItem as Wbs).UID].Entities.SelectAll();
}
다른 예
if (points.Count() > 0)
{
_rotationCenter = new Point3D(points.Average(x => x.X), points.Average(x => x.Y), points.Average(x => x.Z));
}
/// Count() > 0 대신 Any() 사용
if (points.Any())
{
_rotationCenter = new Point3D(points.Average(x => x.X), points.Average(x => x.Y), points.Average(x => x.Z));
}
b. 사용하지 않는 변수 제거SonarLint를 설치해 보시면 코드의 취약점 및 개선 사항이 많다는 것을 보고 놀라실 겁니다.
2. Warn About TODOs
1. 코드 상에 TODO로 기입한 내용들을 Warning List로 보여줘 TODO 리스트를 쉽게 관리할 수 있도록 해줍니다.
2. TODO 이외에도 여러가지 키워드를 지원합니다.
1. STARTS
2. CONTAINS
3. DOESNOTCONTAIN
4. MATCHESREGEX
위에서 소개한 2가지 확장 기능 외에도 여러가지 유용한 것들이 있지만 SonarLint는 꼭 사용해 보시길 추천드립니다.
댓글
댓글 쓰기