문제

UI (또는 서비스 외관)에서 DB로 모든 레이어를 변경 해야하는 사용자 스토리를 구현한다고 가정합니다.

당신은 어떤 방향으로 움직입니까?

  • UI에서 비즈니스 계층, 리포지토리에서 DB까지?
  • DB에서 리포지토리, 비즈니스 계층으로, UI에 이르기까지?
  • 때에 따라 다르지. (에 무슨 ?)
도움이 되었습니까?

해결책

내가 이런 종류의 질문에 대해 본 가장 좋은 대답은 원자 물체 녀석들과 그들의 발표자 먼저 무늬. 기본적으로 그것은 MVP 패턴의 구현으로, (이름에서 알 수 있듯이) 발표자로부터 작업을 시작합니다.

이를 통해 매우 가벼운 객체를 제공합니다 (발표자는 기본적으로 모델에서 뷰로 데이터를 마샬링하기 위해서는 사용자 작업 세트에서 직접 모델링 할 수 있습니다). 발표자에서 작업 할 때보기 및 모델은 일반적으로 인터페이스로 정의되고 조롱되므로 초기 초점은 사용자가 객체와 상호 작용하는 방식을 정의하는 데 있습니다.

나는 엄격한 MVP 패턴을하지 않더라도 일반적으로 이런 식으로 일하는 것을 좋아합니다. 사용자 상호 작용에 중점을두면 상호 작용하기 쉬운 비즈니스 객체를 만드는 데 도움이됩니다. 우리는 또한 사용합니다 피트니스 통합 테스트를 위해 하우스에서 비즈니스 객체를 구축하면서 Fitnesse의 비품을 작성하면 스토리의 관점에 집중하는 데 도움이됩니다.

그러나 Fitnesse 테스트 실패로 시작할 때 꽤 흥미로운 TDD주기가 끝나고 해당 기능에 대한 실패한 단위 테스트를 만들고 스택을 백업하는 방식으로 작동한다고 말해야합니다. 경우에 따라 데이터베이스 단위 테스트를 작성하므로 Fitnesse 테스트가 통과하기 전에 작성, 실패 및 통과해야 할 또 다른 테스트 계층이 있습니다.

다른 팁

변경이 가능하다면 앞쪽에서 시작하십시오. 주주로부터 즉각적인 피드백을받을 수 있습니다. 누가 알아? 어쩌면 그들은 실제로 원하는 것을 모를 수도 있습니다. 인터페이스 (UI, 서비스 등)를 사용하는 것을보십시오. 그들의 행동은 새로운 시각에서 문제를 보도록 영감을 줄 수 있습니다. 도메인 개체 및 데이터베이스를 코딩하기 전에 변경 사항을 포착 할 수 있으면 많은 시간을 절약 할 수 있습니다.

요구 사항이 엄격한 경우 중요하지 않습니다. 가장 어려울 수있는 레이어에서 시작하십시오. 궁극적으로 이것은 "과학보다 더 많은 예술"중 하나입니다. 아마도 최상의 솔루션을 만드는 레이어 설계 간의 섬세한 상호 작용 일 것입니다.

건배.

작업 결과가 빠르기 때문에 하단을 수행 할 것입니다 (즉, 사용자 인터페이스없이 단위 테스트를 작성할 수 있지만 모델이 완료 될 때까지 사용자 인터페이스를 테스트 할 수는 없습니다).

그러나 다른 의견이 있습니다.

문제 도메인 모델링을 시작하겠습니다. 시스템의 엔티티를 나타내는 관련 클래스를 만듭니다. 일단 자신감이 느껴지면 엔티티를 데이터베이스에 유지하기위한 실현 가능한 매핑을 찾으려고 노력합니다. 도메인 모델을 갖기 전에 너무 많은 작업을 UI에 넣으면 나중에 UI를 재 작업 해야하는 중대한 위험이 있습니다.

그것을 생각하면, 어쨌든 모든 레이어에 대한 업데이트를해야 할 것입니다 ... =)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top