추상 위키백과/업데이트/2024-01-25
◀ | 추상 위키백과 업데이트 |
코드에서 디버그 정보 얻기
위키함수의 기여자는 기존 함수를 구성하거나 자바스크립트 또는 파이썬으로 코드를 제공하는 두 가지 방법으로 구현을 제공할 수 있습니다. 그리고 프로그래밍 코드를 만들어본 사람이라면 누구나 확인하듯이, 자신이 작성한 코드에는 실수나 소위 말하는 버그가 있다는 것은 피할 수 없는 일입니다.
매우 널리 사용되는 디버깅 방법은 코드에 print 문을 추가한 다음, 버그를 파악하고 수정한 후 다시 제거하는 것입니다. print 문은 명령문의 인수를 콘솔에 표시하거나 이를 로그 파일에 추가합니다. 이는 일반적으로 print 문이 추가된 코드 지점에서 변수의 상태를 검사하기 위해 수행됩니다. 별 다섯 개가 있는 문자열을 생성하는 것을 목표로 다음 자바스크립트 코드가 작성되었다고 가정해 보겠습니다.
let result = ""
for (let i=0; i=5; i++) {
result += "★"
}
어떤 사람들은 오류를 즉시 인식할 수도 있지만 다른 사람들에게는 모호할 수도 있습니다. 왜 컴퓨터가 해당 코드에서 반환되지 않습니까?
한 가지 방법은 코드에 print 문을 추가하는 것입니다. 자바스크립트에 print 문을 추가하는 한 가지 방법은 console.log에 쓰는 것입니다.
let result = ""
for (let i=0; i=5; i++) {
console.log(i)
result += "★"
}
그리고 콘솔에서 예상되는 0, 1, 2, 3, 4 대신 5가 포함된 수많은 라인을 볼 수 있습니다. 이는 루프의 조건이 i=5
이 되어서는 안 된다는 것, 즉 i가 값 5로 설정되어 있지만 i!=5
가 되어야 한다는 것을 의미하는 주어진 코드의 문제를 나타낼 수 있습니다. 여기서 i를 5와 비교합니다(심지어 조금 더 강력하다면 i<5
가 되어야 합니다).
이 방법은 일반적으로 print 디버깅 또는 추적이라고 하며 일부 사람들에게는 평판이 좋지 않지만 코드에서 문제를 찾고 코드를 이해하는 데 자주 널리 사용되는 효과적인 방법입니다. 이제 위키함수에서도 사용할 수 있습니다! 문자열 인수와 함께 Wikifunctions.Debug 명령을 한 번 이상 사용할 수 있으며 구현을 실행한 후 디버그 문자열이 함수 결과 출력의 세부 정보 보기에 표시됩니다. Wikifunctions.Debug를 사용하는 두 가지 예는 베타 사이트에서 자바스크립트 및 파이썬에 대해 찾을 수 있습니다.
구현이 적극적으로 디버깅되지 않는 한 Wikifunctions.Debug에 대한 호출이 없는 코드를 유지하는 것이 좋습니다. 이는 코드를 통해 한 함수에서 다른 함수를 호출하는 함수를 허용할 때 특히 유용합니다. 그렇지 않으면 읽을 수 없는 로그 파일이 매우 빨리 생성될 수 있습니다. 우리는 위키함수 커뮤니티가 이를 게시되고 연결된 함수에 대한 스타일 가이드에 추가하는 것을 고려해야 한다고 제안합니다.
이 함수를 아이디어부터 배포까지 이끌어주신 코리에게 축하를 드립니다! 데이비드는 디버깅 문자열을 보기 좋게 표시하기 위해 세부 정보 보기를 업데이트하는 데 도움을 주었습니다.
금주의 함수: 줄 바꿈
줄 바꿈은 두 개의 문자열, 즉 "줄 바꿈할 문자열"과 "래퍼"를 사용하여 두 문자열 사이에 래핑된 전자를 반환합니다. 첫 번째 함수 테스트에서와 같이 직선 따옴표로 일부 내용을 인용하는 데 사용할 수 있습니다. 또는 "l'art pour l’art"를 만드는 등 예술적 효과를 위해 사용될 수도 있습니다. 또는 레이블과 같이 문자별로 회문 문자를 장난스럽게 만들 수도 있습니다.
여기에 링크된 다른 두 테스트는 이 게시물을 준비하기 위해 작성되었습니다. 함수에는 단일 테스트가 있었지만 이제는 3개가 있습니다. 지난번과 마찬가지로 구현이 더 많은 가능한 입력으로 작동하는지 확인하기 위해 더 많은 테스트를 수행하는 것이 좋습니다. 함수가 다른 스크립트와 잘 작동합니까? 중국어인가 아랍어인가? 이모티콘과 호환되나요? 숫자는 어떻습니까? 빈 문자열에서도 작동하나요? 일반적으로 시스템과 구현에 대한 신뢰도를 높이기 위해 함수에 대해 더 많은 테스트를 수행하도록 노력해야 합니다.
우리가 가지고 있는 세 가지 구현은 매우 간단합니다. 자바스크립트와 파이썬 모두 +
연산자를 사용하여 세 문자열을 연결하고 시작과 끝에서 래퍼를 두 번 참조합니다. 구성에서는 join strings을 두 번 사용합니다. 먼저 래핑할 문자열 끝에 래퍼를 추가한 다음 첫 번째 호출 결과 앞에 래핑할 문자열을 추가하기 위해 한 번 더 사용합니다.
소프트웨어의 최근 변경 사항
이번 주는 팀이 향후 작업 계획에 집중했기 때문에 새로운 코드 배포 측면에서 대부분 조용했습니다. 가장 큰 변화는 올해 백엔드 서비스의 첫 번째 제품 출시였습니다. 포함된 커밋 중 어느 것도 사용자가 볼 수 있는 변경 사항을 가져오려는 의도가 없습니다(조금 더 안전하고 더 엄격한 것 이상). 또한 이전에 시스템이 호출을 유효한 객체로 인식하지 못했던 특정 유형의 사용과 관련된 버그를 수정하고 코드를 시작하는 사람들을 위한 코드 문서를 개선했습니다. 또한 미디어위키가 지원하는 네 가지 새로운 언어인 루툴어 (Z1915), 남동콜람어 (Z1916), 투로어 (Z1917) 및 누페어어 (Z1919)를 추가했습니다.