Sandro Mancuso에 의해 Bank Kata를 연습했습니다
TDD (Manuel Rivero의 아이디어)의 외부 + 클래식 믹스 혼합을 연습 할 수있는 목표
GIT 커밋 사용 시간을 추적합니다.
안전한 전송의 기능을 구현했습니다. 계정은 나가는 (예 : 대부분의 은행이이를 가지고 있음) 모두 와이어 전송을 확인하기 위해 코드 (예 : OTP)를 요청하도록 구성 할 수 있습니다.
나는 결국 일관된 시스템을 선택하기보다는 산 특성을 보존하는 방법을 조사했습니다.
계정 클래스의 매개 변수 : 코드
이것은 가장 간단한 접근법입니다. 클래스의 동작을 결정하기 위해 매개 변수의 유형에 따라 다릅니다.
상태 기계 : 코드
상태와 전환을 전송 클래스의 내부/외부 부분으로 구성하여보다 일반적이고 미래 방지 (YAGNI?)를 구성합니다.
이것은 공통 클래스 (이 경우 전송) 또는 래퍼 (state <>)의 상속을 사용하여 현재 상태를 나타내는 것을 사용하여 표현할 수 있습니다. 전자의 경우 생산 코드가 있습니다. 후자의 경우 주 머신 라이브러리를 구현하는 측면 Étude (자동차 + 공장을 도메인으로 사용)
구현에서는 방법 서명이 상당히 모호하기 때문에 유형-안전 하고이 구현 작업을 수행하기가 덜 편안합니다. 모든 상태는 전송 오브젝트 아래에 표시됩니다.
어느 쪽이든 (즉, 계산 실패) : 코드
두 가지 명시 적 계산 결과를 나타낼 수 있습니다. 왼쪽은 차단/안전 전송을 의미하고 차단되지 않은 전송을 의미 할 권리를 의미합니다.
이것은 두 가지 값을 암시적인 방식으로 표현할 수 있습니다. 팀 컨센서스는 이러한 의미의 왼쪽과 오른쪽을 나타냅니다.
또한 두 T 동일 인 곳에서 Either<T,T> 보는 것이 힘입니다. 이것은 상태 머신을 암시 적으로 (공통 클래스에서 상속) + 둘 중 하나로부터 발생시켜 발생할 수 있습니다.
Thunks (즉, 지연 계산) : 코드
펑크는 매개 변수로 전달되었으며 필요할 때 실행되었습니다. 이 시스템은 기능이 직렬화/사제화 할 수 없으므로 쉽게 지속성/저장을 허용하지 않습니다.
워크 플로 (즉, 사전 정의 된 단계 세트) : [코드] [https://github.com/alvarogarcia7/bank-kata-kotlin/tree/variant/control-safe-transfers-as-workflow]
이 워크 플로에는 일련의 단계 (검증 될 수 있는지 여부)가 있으며 결국에는 일련의 작업이 있습니다.
구현 된 방법에 따라 (데이터 만 통과하지만 동작은 아닙니다), 이는 휴식을 통해 직렬화 / 노출 될 수 있습니다.
f log --format="%s;%ct"|grep CLOCK|cut -d";" -f1 은 메시지 f log --format="%s;%ct"|grep CLOCK|cut -d";" -f2 Millis의 시간을 제공합니다
그런 다음 스프레드 시트에 복사하여 정지시 차이를 계산합니다.