2022년 20주차 - 이번 주에 배운 팁

미래의 나를 위한 알림: ts의 "this"를 잊지 마세요.



다시 한 번, this가 정의되지 않았기 때문에 this가 JavaScript/TypeScript에서 컨텍스트를 잃어 예외가 발생할 수 있다는 사실을 잊고 있었습니다. 이것은 대부분의 개발자들에게는 당연한 일이지만 이것은 내가 자주 접하는 경우가 아니므로 다음 번에 참고할 수 있도록 적어 두는 것이 좋습니다.

예를 들어 보겠습니다.

class AudioBook {
    private isStarted = false;

    constructor(public title: string) {
    }

    play() {
        this.isStarted = true;
    }

    stop() {
        this.isStarted = false;
    }
}



이것은 AudioBookisStarted 두 메서드에 의해 수정된 전용 부울 필드play가 있는 클래스stop입니다.
AudioBook의 인스턴스를 만들고 play 함수를 변수에 할당하려는 경우 함수가 실행될 때 this가 정의되지 않기 때문에 예외가 발생합니다.

const audioBook = new AudioBook("The Unicorn Project");
const listenDevOpsBook = audioBook.play;
listenDevOpsBook();





이를 방지하는 솔루션은 bind 함수를 사용하여 this 로 사용할 개체를 지정하는 것입니다.

const audioBook = new AudioBook("The Unicorn Project");
const listenDevOpsBook = audioBook.play.bind(audioBook);
listenDevOpsBook();


play 또는 stop 메서드가 사용되는 모든 곳에서 바인딩을 사용하지 않으려면 bind 클래스의 생성자에서 직접 AudioBook 작업을 수행할 수 있습니다.

class AudioBook {
    private isStarted = false;

    constructor(public title: string) {
        this.play = this.play.bind(this);
        this.stop = this.stop.bind(this);
    }

    play() {
        this.isStarted = true;
    }

    stop() {
        this.isStarted = false;
    }
}

const audioBook = new AudioBook("The Unicorn Project");
const listenDevOpsBook = audioBook.play;
listenDevOpsBook();



금주의 도구: Durable Functions Monitor ⚡



Azure 개발자라면 Azure에서 서버리스를 수행하는 솔루션 중 하나인 Azure Functions에 이미 익숙할 것입니다. 또한 Durable Functions를 사용하여 서버리스 워크플로를 구축했을 수도 있습니다. 인용문Microsoft documentation: "Durable Functions는 서버리스 컴퓨팅 환경에서 상태 저장 함수를 작성할 수 있는 Azure Functions의 확장입니다."구체적으로 말하면 여러 Azure Functions를 개발 중이고 상태를 유지하면서 실행을 오케스트레이션하려는 경우 Durable Functions가 필요합니다. 나는 이 기술을 많이 좋아한다 ❤️. 올바른 목적으로 올바르게 사용하면 워크플로를 수동으로 구현하는 데 직면할 수 있는 많은 문제를 해결할 수 있습니다. 이야기는 그만하고 금주의 도구로 돌아가 봅시다!



Durable Functions Monitor은 Azure Durable Functions를 모니터링, 관리 및 디버그할 수 있는 UI 도구입니다. Azure Portal의 도구는 Durable Functions에 매우 적합하지 않기 때문에 이는 매우 가치 있는 것입니다. 또한 워크플로는 오랜 시간 동안 지속될 수 있고 많은 Azure Functions로 구성되는 경우가 많기 때문에 워크플로가 어느 단계에 있고 어떤 기능이 이미 실행되었는지 이해하기가 상당히 어려울 수 있습니다🤔. Durable Functions는 이를 도와줄 수 있으며 다른 많은 흥미로운 기능(함수 그래프, 시퀀스 다이어그램...)을 제공합니다. 얼마 전에 얘기를 들었는데 최근까지 시간을 내서 해보지 않았고 솔직히 Azure Durable Functions 🚀를 사용하려면 꼭 필요한 기능이라 너무 아쉽습니다!

🗨 It's worth noting that Durable Functions Monitor can be used as a vscode extension, as a Standalone service, or directly in your Function App.



금주의 Git 팁: 강제 푸시 커밋을 위한 별칭



나는 종종 git 브랜치에 푸시 변경을 강제합니다. 실제로 동료가 내 풀 리퀘스트를 더 쉽게 검토하고 내 변경 사항을 스쿼시하는 대신 리베이스 병합 전략을 사용할 수 있도록 interactive rebase command을 사용하여 내 브랜치의 기록을 깨끗하고 읽기 쉽게 유지하려고 합니다. 완료 할 때 큰 커밋.

이전에는 git push --force 명령을 사용했지만 주제에 대한 몇 가지 기사를 읽고 동료가 내 브랜치에서 수행할 수 있는 커밋을 분쇄하는 것을 피하기 위해 대신 git push --force-with-lease 명령을 사용해야 한다고 확신했습니다. 브랜치에서 혼자 작업할 때 이미 푸시된 변경 사항의 기록만 다시 작성합니다.) git documentation 에서 --force-with-lease 에 대한 자세한 내용을 읽을 수 있습니다. 이 명령의 유일한 문제는 작성하기가 약간 길기 때문에 .gitconfig에 추가할 별칭입니다.

[alias]
    pf = push origin --force-with-lease



이번 주는 여기까지입니다. 즐거운 학습 되세요!

좋은 웹페이지 즐겨찾기