2016-06-13 3 views
5

C# 개발자로서 저는 Microsoft의 코드 분석의 혜택을 보았습니다. 그러나 F #에서는 코드 분석이 개발주기의 통합 된 부분으로 보이지 않습니다. F # 프로젝트에서 CA를 사용하려면 시간이 좀 걸렸지 만,이 blog helped. 이제 CA를 사용할 수있게되었으므로 "잘못된"경고가 표시됩니다. 예를 들어, 레코드 유형을F #의 코드 분석

type Account = {Number : string} 

으로 선언했는데 기본적으로 구조적 동일성이 기대됩니다. This blog은 숫자가 동일한 Acccount 유형의 두 인스턴스가 동일해야 함을 보여줍니다. 그러면 코드 분석에서 다음과 같이 설명합니다. 'Account'는 IComparable을 구현하므로 연산자 '! ='를 정의해야합니까? 확실하게, 이것이 C# 클래스 였으면 모든 농구를 뛰어 넘어야했지만 F #에서는 자동으로 발생해야합니다.

"Microsoft 모든 규칙"규칙 집합을 적용하고 있습니다. 이것들은 F #에는 적용되지 않습니까? 그렇다면 사용해야하는 룰셋이 있습니까?

+1

그 규칙은 C#을 목표로하고 있습니다. 그들은 단지 당신이 C#을 사용하고 있다고 가정하고 그에 맞는 경고를줍니다. 정말로 그 규칙이 필요합니까? F #에 대한 제 경험을 통해 언어 자체가 올바른 방향으로 나를 안내한다는 것을 알았습니다. 저는 그것을 위해 외부 도구가 필요하지 않습니다. –

+0

참조한 첫 번째 블로그 게시물을 보면 코드 분석을 실행하기 전에'Targets' 파일이 명시 적으로 언어를 확인한다는 것을 알 수 있습니다. 그 이유가 있다고 생각하지 않니? –

+1

@FyodorSoikin 물론 나는 CA를 얻기 위해 '시스템 전체'파일을 수정해야한다는 것이 이상하다는 것을 알았지 만 일부 규칙은 F # 프로젝트와 관련성이있을 것으로 기대됩니다. 나는 또한이 질문을 읽는 누군가가 F # ruleset을 다운로드 할 수 있기를 바라고있다. – SimonAx

답변