2013-10-28 2 views
2

템플릿에서 전자 메일을 생성하는 시스템에서 작업하고 있습니다. 템플릿은 기업에 의해 공급, 그리고 그들은 이것과 같은 코드의 라인이 포함 된 다음 PaymentAmount가 (예를 들어, 필요한 출력은 £ 5.54 것 정수의 문자열 표현으로 예상된다이 경우프레젠테이션에서 계산을 제거하는 방법

Thank you for your payment of @((decimal.Parse(Model.PaymentAmount)/100).ToString("C")) 

을 "554"로 제공됨).

이제 저는 프리젠 테이션 레이어에 계산이 없어야한다고 생각합니다.이 경우에는/100 계산과 구문 분석이 있습니다. 내가 변경보기 등을 제공하는 변환이 서식하기 전에 코드에서 수행이 대안의 수를 제안했다 :

Thank you for your payment of @Model.PaymentAmount.ToString("C") 

우리는이 프로젝트에 합리적 능력, 기술 건축가의 집합을 가지고 있지만 나는 그들에게 이것에 대한 좋은 이유를 확신시키는 데 어려움을 겪고있다.

전임자에게 구현 된 후자의 코드 조각을 얻는 데 도움이 될 건축가에게 제시 할 수있는 주장을 누군가가 도와 줄 수 있습니까? 아니면이 접근 방식에 동의하지 않는 이유는 무엇입니까?

답변

1

첫 번째 해결 방법보다 2 번째 솔루션을 선호하는 한 가지 이유는 어떤 이유로 누군가가 십진수로 구문 분석 할 수없는 텍스트를 서식 파일에 전달하면 문제가 발생할 수 있다는 것입니다. 다양한 가능성이 있습니다 :

  1. 숫자가 아닌 텍스트.
  2. 숫자는 다른 문화권 용으로 지정됩니다.

따라서 유형 안전은 접근 # 2에서 훨씬 좋습니다. 아키텍처 관점에서 볼 때 템플리트를 채우는 사람은 구현 세부 사항을 알 필요가 없지만 접근법 # 1에서는 특정 방식으로 형식화 된 문자열을 제공해야한다는 것을 알아야합니다.

1

나를 위해 두 번째 접근법이 더 좋습니다. 소프트웨어 엔지니어링 패턴에서 권장합니다. 배울 점은 격리되고 헌신적 인 시도입니다. 따라서 계산 처리가 별도로 이루어져야합니다. 프로젝트 크기가 세분화되고 잘 격리 된 것보다 큰 것은 유지하기 쉽습니다. 그러나 크기가 작고 개인적으로 사용된다면 이것은 단지 연습으로 이어집니다.

관련 문제