2014-10-10 1 views

답변

3

당신이 묘사 한 것은 시스템을 작성하는 강력한 기술입니다. 시스템이 데이터를 잃어 버리지 않는다는 것을 거의 보장합니다. 프로그래밍 오류로 인해 데이터가 손상되지 않습니다. 버그가 수정되면 시스템은 버그가 발생했을 때 추가 된 레코드에 대해서도 정확한 결과를 반환합니다. 한 가지 유용한 기술 ("람다 아키텍처"와 밀접한 관련이 있음)는이 계산을 주어진 정보 조각의 "표준"형태로 취급하지만 효율성을 위해 그 위에 캐시를 제공합니다. 데이터베이스 디자인 비교 특정 쿼리의 성능을 향상시키기 위해 데이터베이스가 비정규 화됩니다.

그러나 불변의 데이터가있는 시스템을 작성하는 유일한 방법은 아닙니다. 예를 들어 업데이트가 접수되면 이전 버전을 가리키는 이력과 함께 전체 계정의 변경 불가능한 인스턴스를 저장하여 업데이트를 적용 할 수 있습니다 (두 사람이 동시에 변경 한 경우 사용자가 다른 "지점"을 조정해야 할 수도 있음) git과 같은 VCS 사용과 비교). 이는 특정 시점에서 계정이 어떻게 보 였는지 정확하게 유지하는 것이 중요하고 한 버전에서 다른 버전으로의 변경 사항을 보존하는 것이 덜 중요한 시스템에 더 적합 할 수 있습니다 (예를 들어 한 번 보험 계약 처리).

"불변의 핵심입니까?" 의미없는 질문입니다. "핵심"을 검색하는 대신 코드를 더 명확하고 유지 보수 할 수있는 실용적인 기법을 찾아 보는 것이 좋습니다.

+0

실용적인 기술을 찾을 수있는 곳을 제안 해 주실 수 있습니까? –

관련 문제