Betterer v1.0.0

v1.0.0Betterer! 을 발표하게 되어 기쁩니다.
나는 뉴질랜드에서 한동안 갇혔다. 나는 그 동안 내가 매우 사람들의 주목을 끄는 v1 버전의 도구라고 생각했던 것을 깨뜨렸다. 나는 정말 흥분했다.

뭐가 더 좋아요?


Betterer는 테스트 실행 프로그램으로 코드에 대한 증량 개선에 도움이 됩니다!그것은 Jest's snapshot testing에 기초를 두고 있지만 비뚤어진다...
나는 우리들 중 많은 사람들이 이런 상황을 만났다고 믿는다. 우리는 중대한 변화를 원하거나 격려하는 새로운 기준이나 설계 결정을 원하지만, 우리는 할 시간이 없을 뿐이다.
일반적으로 다음과 같은 두 가지 상황 중 하나가 발생합니다.
  • 장기적으로 존재하는 지점을 시작했습니다. 이 지점은 유지하기 어렵고 합병할 수 없습니다.그것은 결국 시간 수신기가 되었다⏱
  • 귀하와 귀하의 팀은 시간의 추이에 따라 개선하기로 협의했습니다.그것은 잊혀졌다. 그것보다 더 좋은 것은 없다. (사실, 그것은 통상적으로 더 나빠진다.)😕
  • 나는 이런 상황을 한 번 또 한 번 보았다.때때로 코드 라이브러리에 새로운 스타일 규칙을 도입할 수도 있다.다른 경우, 그것은 더욱 엄격한 컴파일을 지원하거나, 접근 가능한 고장 수량을 줄일 수 있습니다!
    Betterer는 두 단계로 나뉘어 작동합니다.테스트를 처음 실행할 때 현재 상태의 스냅샷을 촬영합니다.그때부터 언제든지 실행되면 스냅샷과 비교됩니다.테스트를 더 나쁘게 하면❌), 또는 스냅샷 업데이트(테스트가 더 좋아지면✅). 얼마 안 남았어요. 그렇죠!

    그것은 어떻게 일합니까?


    시작하려면 프로젝트의 루트 디렉토리에서 다음을 실행할 수 있습니다.
    npx @betterer/cli init
    
    다음과 같은 새로운 .betterer.ts 구성 파일을 제공합니다.
    // .betterer.ts
    
    export default {
      // Add tests here ☀️
    };
    
    여기서부터 테스트를 추가할 수 있습니다!
    사용 중인 코드 라이브러리 Moment.js 를 사용하고 있다고 가정하십시오.성능 때문에 이전하기를 원합니다.
    // src/subtract.js
    import * as moment from 'moment';
    
    const now = moment();
    
    console.log(now.subtract(4, 'years'));
    
    또한 이 코드 라이브러리에서 ESLint를 사용한다고 가정합니다.모멘트를 없애는 방법js는 the no-restricted-imports ESLint rule를 사용할 수 있습니다. 모든 곳에 eslint-disable-next-line 댓글을 추가하고 더 이상 추가하지 않기를 기도합니다...🤔
    Betterer는 우리에게 더 좋은 선택을 제공했습니다!우리는 이 특정 규칙에 대한 테스트를 만들 수 있습니다.
    // .betterer.ts
    import { eslintBetterer } from '@betterer/eslint';
    
    export default {
      'no import from moment': eslintBetterer('./src/**/*.js', [
        'no-restricted-imports',
        [
          'error',
          {
            name: 'moment',
            message: 'Please use "date-fns" instead.'
          }
        ]
      ])
    };
    
    우리가 처음 Betterer로 테스트를 실행했을 때, 그것은 이렇게 보였다.

    Betterer는 현재 상태의 스냅샷을 생성하여 기본적으로 .betterer.results 파일에 저장합니다.
    // BETTERER RESULTS V1.
    exports[`no import from moment`] = {
      timestamp: 1589459511808,
      value: `{
        "src/subtract.js:566118541": [
          [0, 0, 33, "\'moment\' import is restricted from being used. Please use \\"date-fns\\" instead.", "4035178381"]
        ]
      }`
    };
    
    스냅샷에는 코드의 현재 문제에 대한 정보가 포함되어 있습니다.
    다음에 테스트를 실행할 때 다음과 같습니다.

    현재 팀의 다른 사람들이 나타났지만 새로운 규칙을 모르고 모멘트를 사용하는 새 파일을 추가했습니다.js:
    // src/add.js
    import * as moment from 'moment';
    
    const now = moment();
    
    console.log(now.add(4, 'years'));
    
    Betterer가 코드를 실행하면 다음과 같은 큰 오류가 발생합니다.

    새 버전이 도입되었음에도 불구하고 .betterer.results 파일은 변경되지 않았습니다!
    우리 팀원들은 ESLint에서 유용한 오류 메시지를 읽었습니다. 코드를 업데이트하여date fns를 사용합니다...
    // src/add.js
    import { addYears } from 'date-fns';
    
    console.log(addYears(Date.now(), 4));
    
    ... Betterer는 결과는 똑같다고 다시 한 번 그들에게 말했다.

    우리 팀원들은 수중에 약간의 시간이 있기 때문에 이 시간에 대한 우리의 사용을 조정하기로 결정했다.js도!🎉
    이번에는 그들이 더 잘 달릴 때 모든 것이 좋았다.

    현재 문제가 남아 있지 않기 때문에 이 테스트는 이미 목표에 도달했다.기존 문제가 해결되었으므로 .betterer.results 파일의 스냅샷에서 제거합니다.이것은 우리가 규칙을 Betterer에서 정상적인 ESLint 설정으로 옮길 수 있다는 것을 의미한다. 그러면 우리는 다시는 이런 문제를 도입하지 않을 것이다.
    깔끔하네!이것은 내장@betterer/eslint 테스트의 예이지만 otherbuilt-intests도 있다.물론, 너도 스스로 테스트를 작성할 수 있다!보기documentation for more details(여전히 제품🚧)!

    v1.0.0에는 무엇이 있습니까?


    지금까지 내가 언급한 모든 것이 이미 한동안 작용했다!지난 몇 달 동안 나는 확실히 실현을 공고히 했다(솔직히 말하면 기본적으로 완전한 재작성이다!)
  • 더 나은 오류 처리 및 오류 메시지
  • 더 좋은 문제 비교.이제 파일의 이름을 바꾸고 같은 파일에 발표하는 것을 이해할 수 있습니다
  • JS API를 통해 단일 파일에서 테스트를 실행할 수 있음betterer.single
  • 또 한 무더기의 테스트!
  • 하지만 나도 1.0.0 버전에서 사용할 만한 관건적인 특성을 추가했다!🔥🔥🔥

    강제 업데이트 (!)


    우선 --update 로고를 사용하면 스냅샷이 더 나빠져도 스냅샷을 업데이트할 수 있습니다!배송이 필요한 경우 일시적으로 상황이 악화되더라도 편리합니다.
    betterer --update
    
    이것은 파렴치하게 Jest에서 훔쳐온 것이기 때문에 너도 사용할 수 있다-u.

    보기 모드(!!!)


    이거 너무 커!내가 한 모든 변화는 이 점을 실현하기 위해서였다.이제 보기 모드에서 Betterer를 실행하고 문제를 해결할 때 피드백을 받을 수 있습니다.

    여기도 같은 규칙이 적용됩니다. 테스트가 더 좋아지면 스냅샷이 업데이트됩니다!
    시계 모드에서 다른 멋진 일들이 많이 일어날 수 있다(게임은 얼마나 녹았나?),그래서 흥분했어요. 일하고 있어요!🤩

    VS 코드 확장 (!!!)


    래드를 매장하는 방식!이게 제일 멋있을 수도 있어!우리는 이것이 축적이라고 말할 수 있다.
    Betterer는 완전히 자신의 세계에서 실행되기 때문에 일반적인 ESLint 또는 TypeScript 확장은 문제를 보고할 수 없습니다.하지만 누구나 코드 편집기에서 빨간색 곡선을 보는 것을 좋아하기 때문에 Betterer는 이제 생겼다its very own VS Code Extension🤯!

    새 항목에서 초기화


    프로젝트에서 betterer.init 명령을 실행할 수 있습니다!구성 파일을 생성하고 스크립트와 의존 항목을 사용하여 업데이트합니다package.json.

    파일의 모든 문제 보기


    테스트를 설정하면 파일에 존재하는 모든 문제점과 언제 처음 만들어졌는지 보여 줍니다.이것은 당신이 만든 모든 새로운 문제를 보여 줍니다.

    나는 이것이 매우 달콤하다고 생각한다.

    그럼 다음은 뭐예요?


    그래, 한번 해봐Betterer, 질문을 많이 열어봐, 더 잘해줘(으)!공헌하고 싶다면...
  • 복구해야 할 구멍이 있음
  • 테스트 범위는 상당히 좋지만 VS 코드 확장을 위한 E2E 테스트는 없습니다
  • 로그 및 보고 구현에 필요한 작업
  • 작성해야 할 문서가 너무 많음
  • 얼마나 잘 사는가!🤓
    만약 네가 말하지 못한다면, 나는 이것에 대해 매우 흥분을 느낀다. 나는 이것이 대형 유류 코드 라이브러리를 처리하는 데 도움이 될 것이라고 정말 생각한다.댓글에 있는 당신의 생각을 알려주거나 클릭하세요!

    좋은 웹페이지 즐겨찾기