CodeSOD: In the Know 노트

CodeSOD: In the Know

딜라이라는 직장에서 발견한 파이썬 스크립트를 비평합니다. 이 스크립트는 YAML 데이터를 병합하여 오래된 구성을 새 구성으로 효과적으로 업데이트하려고 시도합니다. 주요 문제는 key_exists 함수인데, 이는 파이썬의 내장 in 연산자를 불필요하게 다시 만듭니다. 이 함수는 간단한 key in dictionary 관용구에 비해 서투른 접근 방식인 try-except 블록을 사용합니다. 스크립트 작성자는 동일한 코드 내에서 올바른 in 연산자와 결함이 있는 key_exists 함수를 일관성 없이 사용합니다. 코드의 전반적인 구조는 지저분하며, 잘못 작성된 쉘 스크립트와 유사합니다. 스크립트는 yaml.load를 사용하여 YAML 파일을 읽고 로드한 다음 데이터를 병합합니다. 데이터베이스 태그 업데이트를 처리하기 위한 revert_db_tags 함수가 포함되어 있습니다. 핵심 로직은 오래된 YAML 데이터와 새 YAML 데이터 간의 키와 값을 비교하는 것을 포함합니다. 비교는 새 데이터에 대한 병합 또는 특정 태그 조정을 트리거합니다. 마지막으로, 수정된 데이터는 yaml.dump를 사용하여 새 YAML 파일에 다시 작성됩니다. 작성자는 스크립트가 잘못 작성되었으며 파이썬의 내장 기능의 불필요한 복잡성을 보여준다고 결론짓습니다.