추상 위키백과/업데이트/2021-08-13
◀ | 추상 위키백과 업데이트 | ▶ |
- 테스터 및 위키마니아
팀은 위키함수를 위한 기능을 개발하고 인터페이스를 설계하느라 바빴고 개발의 현재 단계를 마무리하는 방향으로 나아가고 있습니다. 이제 데이터 모델에서 별칭을 사용할 수 있고, 테스터를 위한 데이터 모델이 업데이트되었으며, 오류 개체가 상당히 재작업되었으며, 평가 모델은 이제 재귀 호출 및 지연 평가 등을 처리할 수 있습니다. 조각들이 모여있는 것을 보는 것은 흥미롭습니다.
오늘의 주간에서는 테스터와 테스터의 현재 구현을 살펴보고자 합니다. 린제이는 여러분이 볼 수 있는 스크린캐스트를 만들었으며(소리 없이), 여기에서 우리는 동영상에서 무슨 일이 일어나고 있는지 설명할 것입니다.
단일 문자열을 입력으로 받아 문자열을 반환하는 새로운 함수 정의 "역 문자열"을 만드는 것으로 시작합니다. 저장 시(0:19) 함수가 생성되고 Z10000
이 할당됩니다. 이제 새로 생성된 함수를 편집하고 첫 번째 테스터를 인라인으로 생성합니다. 이름을 "test -> tset"로 지정하고 인수를 "test
"로 설정한 다음 "문자열 동등성" 함수를 사용하여 예상한 값과 비교합니다. 결과는 "tset
"(0:45)입니다.
“문자열 동등성”은 두 개의 문자열을 인수로 사용하여 같으면 참(True)을 반환하고 그렇지 않으면 거짓(False)을 반환하는 내장 함수(새 위키람다 설치의 Z866
)입니다.
테스터를 인라인으로 생성했지만 백그라운드에서 테스트를 보유하는 새 페이지가 생성되었습니다(완전히 뒤에서 ZID Z10001
이 할당됨).
다음으로, 동일한 내장 함수(1:00)를 사용하여 회문인 "racecar
" 입력에 대한 테스트와 "banana
역전 테스트를 생성합니다. >" 및 "wrong
"(잘못된 테스트의 예) 출력을 얻습니다(1:19).
다음으로 자바스크립트에서 "역 문자열"에 대한 구현을 만듭니다. 페이지 맨 아래에는 이미 3명의 테스터가 작동하는 것을 볼 수 있으며 처음에는 모두 실패했음을 보여줍니다(1:30). 이제 우리는 기능 구현을 시작하고 "return Z10000K1
"을 입력합니다. 그리고 저장도 하지 않고 테스터는 우리의 구현에 대해 실행되고 "racecar
" 테스트 통과! (회문이기 때문에 통과하고 입력을 변경하지 않고 반환하면 회문에 대한 올바른 구현이 발생합니다). 그러나 다른 두 테스트는 계속 실패합니다(1:41).
입력을 받아 문자열 배열로 분할하고 해당 배열을 뒤집은 다음 배열의 문자열을 다시 단일 문자열로 결합하여 구현을 완료합니다. 이제 첫 번째 테스트인 "test -> tset"도 통과하지만 "banana" 테스트(실제로 잘못된 테스트이기 때문에)는 계속 실패합니다(1:54).
구현을 저장하고 함수 페이지로 이동한 다음 구현을 함수에 추가합니다. 기능 페이지에서 구현 페이지와 마찬가지로 구현에 대한 모든 테스터의 상태를 볼 수 있습니다.
다음으로 이번에는 파이썬에서 두 번째 구현을 만듭니다. 다시 말하지만, 단순히 입력을 반환하는 구현으로 시작하고 다시 "racecar
"를 전달합니다. 함수 페이지로 돌아가서 새로운 파이썬 구현을 함수와 연결합니다. 페이지 하단의 표에서 모든 테스터에 대한 구현과 개별 테스터가 각 구현에 대한 통과 또는 실패 여부를 확인합니다(2:28).
다시 인라인으로 "another -> rehtona" 및 "final test -> tset lanif"라는 두 가지 테스트를 추가로 생성합니다. 테스트는 생성 즉시 표시됩니다. 함수 페이지와의 연결을 저장하려면 전체 페이지를 저장해야 합니다. 두 테스트가 자바스크립트 구현에 대해 어떻게 통과하고 파이썬 구현에 대해 실패하는지 확인할 수 있습니다(3:43).
파이썬 구현을 수정하러 가시죠.구현 페이지로 이동하여 문자열에 "[::-1]
"를 추가하여 편집합니다. 이것이 파이썬의 마법입니다. 이 구문을 설명하는 이 단락은 건너뛰어도 됩니다. 파이썬에는 다른 많은 언어에서 함수나 더 복잡한 구문이 필요한 특정 작업에 대한 몇 가지 매우 편리한 단축 구문이 있습니다. 여기서 일어나는 일은 문자열 변수에 대괄호를 추가하여 문자열을 암시적으로 목록으로 취급한다는 것입니다. 대괄호 안에는 콜론(:)으로 구분된 세 개의 인수가 있습니다. 첫 번째 인수는 시작할 요소, 두 번째 인수는 중지할 요소, 세 번째 인수는 단계 크기를 나타냅니다(예를 들어, 목록의 모든 두 번째 요소만 원할 경우 단계 크기를 2로 명시). 여기에서 단계는 -1이며, 이는 목록을 뒤로 이동하려는 것을 의미합니다. 그리고 첫 번째와 두 번째 인수가 생략되었으므로 기본값이 사용되며 음수 단계 크기의 기본값은 끝에서 시작까지입니다. 간단히 말해서, "문자열을 처음부터 끝까지 하나씩 역순으로 살펴보고 새로운 결과 문자열을 반환합니다"로 읽을 수 있습니다. 스택오버플로에서 파이썬의 슬라이스 표기법에 대한 자세한 설명을 찾을 수 있습니다.
파이썬 코드를 수정한 후(4:07) 테스트 중 하나를 제외한 모든 테스트가 만족스럽게 녹색으로 전환되었습니다. 새롭게 개선된 버전을 자신있게 저장합니다. "역 문자열"의 함수 페이지로 이동하면 이제 자바스크립트와 파이썬 구현이 모두 일관되게 동작하는 것을 볼 수 있습니다. 바나나 테스터를 고칠 시간입니다!
바나나 테스터 페이지로 이동하여 예상 값을 "wrong
"에서 "ananab
"로 변경합니다. 다시 말하지만, 저장하기 전에 테스터는 두 구현 모두에 대해 다시 실행되고 메시징 실패에서 통과했음을 알리는 것으로 전환됩니다(4:26). 함수 페이지로 돌아가서 이제 모든 테스터가 모든 구현을 통과했음을 알 수 있습니다.
마지막으로, 새로운 테스트가 인라인으로 생성되는(4:39) 약간 나중에 추가된(그리고 기록된, 약간 다른 형식을 설명하는) 기능을 봅니다. 새 테스터를 인라인으로 생성하는 동안 모든 구현에 대한 테스트 실행 결과는 테스터가 아직 저장되기 전에 이미 표시됩니다. 두 구현이 모두 통과한 것을 볼 수 있으면 새 테스터가 저장되고(따라서 5:28이 생성됨) 함수 페이지 자체를 저장하여 새 테스터와 함수를 연결합니다(5:35).
우리의 새로운 테스터 기능을 통해 이 회오리바람 투어를 즐기셨기를 바라며 위키함수가 어떻게 작동하는지 살짝 엿볼 수 있기를 바랍니다. 피드백과 아이디어는 언제나처럼 환영합니다.
우리 모두는 주말을 기대합니다: 위키마니아 2021이 시작되었습니다! 함수함수 및 추상 위키백과는 8월 14일 토요일 17:00 UTC에 세션을 주최합니다. 여기에서 우리의 작업을 발표하고 귀하 및 위키미디어 커뮤니티와 대화할 패널이 있을 것입니다. 저희와 함께 하시고 질문을 가지고 오세요. 활발한 토론을 기대합니다!