CodeSOD: 매개변수 배열 노트

CodeSOD: 매개변수 배열

제공된 코드 조각은 ArrayList를 사용하여 여러 매개변수를 메서드로 전달하는 문제가 있는 코딩 관행을 보여줍니다. 이 메서드는 ArrayList에 특정 데이터 유형과 미리 정해진 순서의 값이 포함될 것으로 예상합니다. 이 접근 방식은 잠재적인 런타임 오류를 위해 컴파일 타임 유형 검사를 희생합니다. 이 설계에 대한 근거는 메서드 서명을 변경하지 않고도 기본 데이터베이스의 잠재적인 향후 변경 사항을 수용하기 위한 것이었습니다. 그러나 이는 더 안전하고 유지 관리 가능한 솔루션을 제공했을 선택적 인과 같은 표준 언어 기능을 우회합니다. 개발자는 이러한 방식으로 ArrayList를 전달하면 코드가 더 유연해진다고 잘못 믿었습니다. 매개변수 가방으로 ArrayList를 사용하는 이러한 패턴은 코드베이스 전체에 널리 퍼져 있습니다. 선택적 매개변수의 대안은 컴파일 타임 안전성과 더 명확한 의도를 제공했을 것입니다. 현재 구현은 데이터 순서 및 유형에 대한 암묵적인 가정에 의존하여 취약한 코드로 이어집니다. 이러한 관행은 소프트웨어 개발에서 안티 패턴으로 간주됩니다.