2010-08-04 3 views
1

이 질문을 조금 설명해 드리겠습니다. :)저장 프로 시저에서 실행 중 잠재적 인 문제가 있는지 확인해야합니까?

저는 신제품에 대해 많은 수의 저장 프로 시저를 작성하고 있습니다. 그들은 주어진 기술 사양을 따르는 개발자가 작성한 C# 응용 프로그램에서만 호출됩니다. 실제 기술 사양으로 갈 수 없으므로 충분한 예제를 제공합니다.

기술 사양에서는 파일 데이터를 독점 Zip 파일에 저장해야하며

이제는 "작업 A"를 수행하기 위해 다음 단계를 수행해야한다고 명시 할 수 있습니다.

(예 : 각 zip 파일의 데이터베이스)

1 : 추가 할 파일의 공간 요구 사항을 계산하십시오.

2 : zip 파일 및 해당 데이터 목록 가져 오기 기본 연결 문자열 (저장된 프로 시저 "GetZips을"전화)

2 : (적절한 하나가 발견 될 때까지, 각 데이터베이스 연결에 대해 "GetSuitableFileLocation을"저장된 프로 시저를 호출)

파일을 저장하는 압축 파일 내에서 적절한 위치를 찾습니다

3 단계 : 2 단계에서 파일을 추가하기 위해 zip 내에 시작/끝 지점이 제공됩니다. "AllocateLocationToFile"저장 프로 시저를 호출하고이 값을 전달한 다음 파일을 zip에 추가하십시오.

OK - "AllocateLocationToFile"은 지정된 시작/끝 지점을 "다시 확인"해야하며 그렇지 않은 경우 예외가 발생합니까?

사무실에서 이것에 대해 약간의 토론이 있었고 개발자가 "GetSuitableFileLocation"을 즉시 호출하기 때문에 필요가 없기 때문에 확인하고 제기해야한다고 생각하는 사람들도 있습니다.

일부 중요한 의견을 요청할 수 있습니까?

답변

3

일반적으로 가능한 한 안전 해하는 것이 좋습니다. 호출 코드는 외부 코드에 의존해서는 안됩니다 (sp는 일종의 외부 코드입니다). 미래에 어떤 일이 일어날 지 예측할 수 없다는 것이 그 아이디어입니다. 새로운 사람들이 회사에 왔습니다 ... sp는 다른 팀에 주어집니다.

개인적으로 B()가 A() 바로 뒤에 있다는 사실은 아무 것도 보장하지 않습니다. 어떤 이유로 든이를 변경하는 것은 불가능한 것으로 간주되지 않습니다.

그래서 그들은 해고 할 수 있기 때문에,이 회사는 제품을 판매 할 수 없다 "우리는 아무 문제가 모든이를 유지하려고"를 기반으로 의사 결정을해서는 안됩니다 팀 ..

내 제안이다 점검을하고, 코드를 프로파일 링하고, 실제로 병목 현상을 제거하기위한 병목이라면이 코드를 어딘가에 작성하십시오.

+0

감사합니다. 이것은 거의 내 주장입니다. 내 생각에 혼자가 아니라는 것을 알고있는 것이 좋습니다. – Sk93

+0

이것은 실제적으로 더 많은 일반적인 토론이며 저장된 Procs에 국한되지 않습니다. –

+1

앞으로 C#은 유일하게 액세스 할 수있는 방법이다. –

1

파일을 조작하고있어 이로 인해 발생할 수있는 모든 잠재적 인 혼란을 감안할 때이 시나리오에서는 위험 요소 (피해 구성 요소)가 신중할만큼 충분히 높다고 말할 수 있습니다.

그리고 Svetlozar의 권리 : 큰 성공으로 인해 재사용 또는 기타 추가 응용 프로그램이 발생할 경우 어떻게해야합니까? 팀이 지금 당장이라도 모든 사람이 잘 행동하는 것은 아닙니다.

+0

고마워요. 제가 말했던 이유 중 하나입니다.하지만 총에 맞았습니다. 제가 생각하기에 혼자서 이런 식으로 생각하는 것이 아닙니다. :) – Sk93

0

좋은 생각일지도 모르는 한 가지 이유는 경쟁 조건과 관련이 있습니다. 두 명의 사용자가 동시에 프로세스를 호출하여 동일한 값을 얻을 수 있습니까? 적어도 현재 설계된 프로세스로이 시나리오를 테스트하십시오.

+0

코드가 작동하는 방식으로 인해 분해되었습니다. . – Sk93

관련 문제