AI로 생성된 이미지
저는 초기화 함수를 사용하는 Go 패키지를 볼 때마다 경계합니다. Init 함수는 특정 상황에서 도움이 될 수 있지만 대부분의 사람들은 이를 오용합니다.
Go에서는 변수가 초기화되고 값이 설정된 직후 패키지 초기화의 일부로 init() 함수가 실행됩니다.
이 프로세스는 패키지 내에서 사용된 항목에 관계없이 패키지를 가져오는 경우 발생합니다.
init 함수 내에서 있어서는 안 되는 논리를 자주 봅니다.
구조체 인스턴스 생성
구조체 내에 데이터 채우기
기타 종속성 초기화
문제는 테스트입니다.
행복한 경로를 테스트하는 것은 충분히 쉬울 수 있지만 오류 시나리오는 어떻습니까?
다른 조건에서 다르게 동작할 수 있는 논리를 init 함수 내에 추가하면 이러한 시나리오를 복제하기가 어려워집니다.
신뢰할 수 있는 소프트웨어를 구축하는 핵심은 다양한 입력으로 동일한 기능을 반복적으로 실행하여 다양한 결과를 검증하는 테스트를 작성하는 것입니다. init 함수로는 그렇게 하기가 쉽지 않기 때문에 사람들은 그런 테스트를 작성하지 않습니다.
init 함수를 과도하게 사용하면 궁극적으로 코드를 테스트하고 유지 관리하기가 더 어렵고 신뢰할 수 없게 됩니다.
저는 init 기능을 완전히 사용하지 않는 것을 권장합니다. 일반적으로 New() 함수와 같은 생성자를 사용하는 것이 좋습니다.
위 내용은 Go 초기화 기능을 피하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!