제1부분: 사운드 클라우드에서의 코드 품질 개념


공사팀/팀에서 우리는 항상 자신이 양난에 빠져 적합하고 효율적인 코드 분석 도구를 선택할 수 없다는 것을 발견한다.이것은 우리가 가장 좋은 디자인 실천 분석 코드 라이브러리를 사용하는 데 필요한 모든 기본 특성과 지표를 제공할 수 있는 도구이다.팀은 코드 냄새, 버그, 빈틈을 더 빨리 검출함으로써 코드 문제의 합병을 방지하기를 바란다.그 밖에 그들은 각자의pull 요청과 저장소의 코드 통합에서 피드백을 신속하고 정확하게 보기를 희망한다.
소프트웨어 품질 공학의 주요 목표는 다음과 같다.
  • 프로세스 제어 및 감독
  • 구현 기준 및 지표
  • 데이터 수집 및 분석
  • 테스트 개발
  • 문제 및 솔루션 인식
  • 시정 조치 보장
  • 개술


    여러 해 동안 저는 많은 코드 분석 도구와 협력하여 서로 다른 팀의 개발자, 예를 들어Codacy, code Climate, DeepScan과 Sonar Cloud를 도왔습니다.많은 시간을 들여 수나운 프로젝트를 시험하고 설치한 후에 나는 그것이 사람들 속에서 뛰어나다는 것을 깨달았다.그것은 상술한 모든 소프트웨어 품질 공사 목표를 포함하는 기능을 제공하는 전면적인 분석 엔진을 가지고 있다.나와 나의 팀을 매혹시키는 몇 가지 특징은 다음과 같다.
  • 요청 장식기
  • 보고서 노트를 통한 온라인 의견
  • 인출 요청 소부품: 인출 요청
  • 의 전체 코드 품질 운행 상황 제공
  • Repository widgets: 프로젝트
  • 의 전체 코드 품질 상태 제공
  • 이전 코드와 새 코드 검색
  • 코드 커버율
  • 코드 중복
  • 서비스 수준
  • 정의된 항목별 맞춤형 품질 검사
  • 항목별 새 코드 정의
  • 이러한 일부 기능(품질 게이트, 구성 파일, 새 코드 정의)은 실제로 Sonar Cloud에서 구성해야 하는 설정입니다.음향 나운의 장점을 충분히 이용할 수 없기 때문에 이 설정을 설정하는 데 주의해야 합니다.
    우리는 음향 나운 생태계와 그의 모든 핵심 기능이 어떻게 결합되는지 탐색하여 귀하께 전면적인 코드 분석 체험을 제공할 것입니다.

    소나운 생태계


    항목


    Sonar Cloud에서 단일 저장소는 단일 항목에 해당합니다.이것이 바로 그들이 당신이 가지고 있는 모든 메모리 라이브러리에 독특한 코드 품질 데이터와 도량 기준을 어떻게 유지하는가입니다.

    Monorepo 지원


    사운드 클라우드는 확실히 monorepo 프로젝트를 지원합니다.여러 개의 항목을 만들 수 있습니다. 항목마다 하나의 단독monorepo 항목에 대응하고, 이 항목들은 같은 저장소에 귀속됩니다.이를 통해 다음을 수행할 수 있습니다.
  • 프로젝트당 품질 게이트
  • 구성
  • 여러 개의 품질 문을 수신한 결과
  • SonarCloud에서 메시지로 표시된 항목 읽기
  • 모든 Monorepo 프로젝트는 Sonar Cloud에 유일한 프로젝트 키가 있어야 합니다. 이 키는 CI 도구를 사용하여 프로젝트를 표시하는 데 사용됩니다.
    표준 접근 방식: {organisationName-project-monorepoName}
    Project 1: sampleorg-domain-frontend
    Project 2: sampleorg-domain-backend
    
    만약에 조직이 서로 다른 공사팀에서 대량의monorepo 프로젝트를 유지한다면 수나 클라우드에서 이 프로젝트들을 쉽게 식별할 수 있다는 점은 매우 유용합니다.그러나, 너는 네가 너에게 적합하다고 생각하는 모든 명명 관례를 따를 수 있다.

    새 코드 정의


    소나 클라우드는 Clean As You Code의 개념을 따른다.핵심 사상은 새로운 코드에 주의력과 정력을 집중하는 것이다.기능을 개발하고 개선할 때 SonarCloud은 제출할 때마다 코드를 분석하고 코드의 품질 문제와 빈틈을 알려 줍니다.이것은 즉시 문제를 해결하고 프로젝트에 추가된 모든 새 코드가 항상 깨끗한지 확인합니다.자세한 내용은 해당 문서를 참조하십시오.
    이에 따라 새로운 코드 정의가 나왔다.프로젝트에 대한 정확한 새 코드 정의를 설정하는 것은 Sonar Cloud를 충분히 이용하는 데 매우 중요합니다. 어떤 코드 변경이 최신으로 여겨지는지 확인하고, 코드의 문제를 해결할 때 '코드를 작성할 때 깨끗하게 유지하는' 방법을 사용할 수 있습니다.새 코드 정의를 구성할 때 고려해야 할 몇 가지 옵션이 있습니다.

  • 초기 버전: 프로젝트
  • 의 최신 버전 증가 이후 발생한 코드 문제

  • 특정 버전: 프로젝트
  • 의 특정 버전에서 발생한 문제

  • 일수: 지정된 일수(숫자)
  • 이후 코드에 발생한 문제

  • 특정 날짜: 지정된 날짜
  • 이후 코드에 문제가 발생했습니다.

    초기 코드 분석을 실행할 때 '새 코드' 분석을 제공하지 않습니다.반대로 전체 프로젝트를 스캔하여 전체 코드의 품질 건강 상태를 제공합니다.새로운 제출을 계속 분석할 때, Sonar Cloud는 당신에게 전면적이고 새로운 코드 품질 건강 분석을 제공할 것입니다. (위의 그림과 같습니다.)
    프로젝트 단계나 조직 단계에서 새로운 코드 정의를 설정할 수 있습니다. 후자는 이미 만든 새로운 프로젝트에 정의를 자동으로 적용하는 방법을 제공합니다.

    품질 게이트


    기술적으로 말하자면, 품질 게이트는 일종의 도량 표준으로, 코드가 프로젝트에 필요한 최저 품질 등급을 충족시키는지 알려줄 것이다.이것은 매번 분석 결과에 적용되는 조건 그룹을 포함한다.결과가 품질 게이트 조건을 충족시키거나 초과하면 통과 또는 실패 상태 중 하나가 표시됩니다.새 코드와 전체 코드의 조건을 정의할 수 있습니다.이러한 상황의 몇 가지 예는 다음과 같다.
  • 의 커버율이 80.0%보다 낮음
  • 반복 행이 3.0% 이상
  • 보다 서비스 수준이 낮음
  • 의 신뢰성 등급은
  • 보다 낮다
  • 은 100% 미만의 보안 핫스팟을 검토했습니다.
  • 기본 분기(기본값은 master), 기타 분기 및 Pull 요청에서 품질 게이트를 분석하고 계산합니다.프로젝트에 대해 임의의 수량의 품질 문을 만들고, 모든 프로젝트에 사용하거나, 생성된 모든 프로젝트에 적용되는 기본 품질 문을 만들 수 있습니다.
    품질 관문 사용자정의 예는 다음과 같습니다.

    품질 개요


    품질 개요 파일은 코드 분석 기간에 적용되는 프로그래밍 언어 규칙임을 알 수 있습니다.기본적으로 Sonar Cloud에서 지원하는 프로그래밍 언어에는'Sonar 방식'이라는 내장 프로필이 있는데 현재 시장의 표준 모범 사례를 사용합니다.대부분의 프로젝트에 음향 수신 방식이 가장 적합하지만, 어떤 경우, 엔지니어링 팀은 그들의 요구에 가장 적합한 프로필을 맞춤형으로 설정하기를 원한다.

    나뭇가지


    수나운에는 단명분지와 장수명분지 두 가지 유형의 분지 분석이 있다.

    단명 분지


    말하자면, 이 지점들은 임시로 그것들에 대한 분석을 수행하는 데 사용되며, 통상적으로pull 요청을 통해 사용된다.단기 지점은 30일 후에 자동으로 삭제되며 분석할 필요가 없다.

    장수의 갈래


    부락이 민첩한 방법을 따를 때 이 지점들은 매우 유용하다. 그들은 Git류 기술을 이용하여 상류 지점 (sprint,release) 을 유지한다.이 지점들은 삭제될 때까지 사운드 클라우드 프로젝트 기록에 보존될 것입니다.일부 기업은 오랜 기간 상위 지점을 유지해 왔기 때문에 이 옵션은 주 지점(master) 옆에서 이러한 지점에 대한 코드 분석에 유용합니다.

    장수 분기 정의


    장수 지점은 프로젝트 단계에서 정의된다.프로젝트 설정 > 관리 > 분기 및 끌어오기 요청으로 이동하기만 하면 됩니다.장수 분지는 정규 표현식 모델을 따른다.

    기본값은 (branch|release)-.*입니다.이는 지점의 이름이 branch- 또는 release-으로 시작할 때 장수 지점으로 간주된다는 뜻이다.

    프로젝트 설정


    이러한 모든 개념과 용어는 사실상 프로젝트와 조직 설정(질량문, 질량개요, 장수지분, 새로운 코드 정의, Monorepo 지원)이다.코드 덮어쓰기 배제, 테스트 파일 포함과 배제, 복사 포함, 원본 파일 배제와 포함 등 일반적인 설정과 수반된다.documentation을 참조하여 설치할 수 있습니다.

    요약


    나는 이 제1부분의 문장이 당신에게 음향 나운의 어떻게 운행하는지와 그것이 가져오는 소프트웨어 공학의 질에 대한 견해를 제공하기를 바랍니다.본고의 두 번째 부분은 GitHub 메모리 라이브러리로 Sonar 클라우드 프로젝트를 설정하고 GitHub 조작으로 코드 분석을 수행하는 방법을 소개할 것입니다.
    사진 출처: https://alexandrebrisebois.files.wordpress.com/2014/05/2011-09-18_code_reviews.png

    좋은 웹페이지 즐겨찾기