문제

이것은 더 많은 비즈니스 지향 프로그래밍 질문할 수 없는 것 그 밖으로 어떻게 해결하는 방법이 있습니다.작업의 팀 프로그래머들이 일하고있으로 기본적인 위해 20 년이다.나는 데에 도움을 쓰는 동일 소프트웨어입니다.NET,만으로 업데이트 및 현대습니다.문제할 수 없는 것 중 하나를 얻을 수 있는 다른 3 팀 구성원(모든 기본 프로그래머지만,하나는 않습니다.그물은 이제뿐만 아니라)이해하는 방법을 제대로 하는 관계형 데이터베이스입니다.여기 것은 그들이 이해하지 않을 것:

우리는 기본적으로 트랜잭션을 추적하는 고객의 태그 정보입니다.우리가 필요한 것을 추적할 수 있는 현재 거래 및 지난 트랜잭션이 있습니다.에서 시스템,플랫 파일 데이터베이스를 사용되었다는 하나의 테이블는 기록을 포함한 기본적인 전류 트랜잭션의 고객과 다른 트랜잭션을 포함하는 모든 이전의 거래 고객과 함께 중요한 돈 정보입니다.을 방지하는 이중화,그들은 덮어쓰 현재 트랜잭션과 역사의 거래-(역사를 파일 업데이트되었 첫째,후 전자민원으로 처리가 가능합니다.) 그것은 완전히 불필요한 이후 당신은 하나가 필요 테이블 트랜잭션이지만,나는 감독자 또는 다른 두 개의 공동 노동자를 이해할 수 없는 것 같다.는 방법을 정확하게 수 있습니 나는 그들을 설득하여 빛을 보고 그래서 우리는 할 필요가 없습니다 말도 안되는 금액의 일 끝난을 치 datatabse 너무 많은 시간은?입력 주셔서 감사합니다!

도움이 되었습니까?

해결책

첫째는 내가 그것을 인정하지 않는 절대적으로 명확하게 당신의 설명에서 어떤 데이터 구조 및 논리의 흐름에서 기존 구조물입니다.이것이 의미하는 나에게는 아마도 당신은 자신을 귀하의 협력자 중 하나,그래서 당신의 우선 순위 중 하나이어야 합하여할 수 있을 설명하고,구두로하거나 바람직하게 작성 및 다이어그램,현재 상황 그리고 제안했다.이것을 선택하십시오으로 관찰보다는 비판을 당신의 질문입니다.

둘째는 내가 그것을 찾아라 프로그래머의 경험 20 년 이해하지 않는 관계형 데이터베이스와 트랜잭션이 있습니다.평면 파일 코딩의 주류가 매우 오랜 시간 전에 내가 먼저 처리한 관계형 데이터베이스에서 상업적인 설정은 다시 1988 년에 그들은 예쁜 일상에 의해 중 90 년대입니다.어떤 분야고 제품 유형은 당신이 뭔가요?그것은 소리를 가능하게하는 당신은 수 있습을 다루는 어떤 종류의 임베디드 또는'특별한'시스템이 어떤 경우에는,당신이 할 필요가 있는지 확인하는 없는 몇 가지 종류의 커뮤니케이션 문제를 바라보고 있는 큰 코끼리는 되지 않았고 지적하지 않는 첫 번째'컨설턴트'가져 팀으로 누가 설정되었습니에서 몇 가지 방식으로에 의해되지 않는 공급에 적절한 정보입니다.그 말은 오래된 상점이 여전히 존재하 하나의 클라이언트 시스템 인터페이스를 기반 플랫 파일 시스템에서 코딩 COBOL,그것은 그렇다,지옥을 관리하는;-)

마지막으로는 경우에,당신은 당신의 당신의 입장을 고수하고 당신이 직면하고 있는 팀과 함께 가지고 가지 않을 것이 보드에 당신의 권장 사항과 데모 코드는 좋은 아이디어할 수 있다면 시간을 절약-당신은 아마도 결정을 받아들이 정상적으로 이동 하나입니다.에서 자신이 위치하를 추상적으로 문제할 수 있는 데이터베이스의 업데이트를 수동으로 저장 프로시저를 예를 들어 코드는 모두 업데이트하려면 테이블이 SP 수정될 수 있습니다 나중에 이동 당신의 스키마없이 해당 응용 프로그램을 변경합니까?지 확인해 인수가 잘 문서화 및 기록할 수 있는 그래서 나중에 그들을 방문해야할 기회가 발생한다.

지 않을 것이 첫 번째 코드의 구현하는 최적의 솔루션이기 때문에 사무실 정치의 사용이 그것을 학습 경험으로 자신의 개인적인 발전을위한 처리에 대한 이러한 상황을 가엾게 여기는 자신이 가진 생각은 당신이 지불을 위해 추가적인 작동합니다.종종 결정하는 요소에서 인수되지 않은 논리지만,'중량의 명성은'너 자신을 가지고하는 테이블처럼 들리는 데에서 가져왔지 많은 종류의 활용과 팀,그래서 당신은에서 작동 할 수 있습니다 명성을 얻으로 exceling 에서 구현하는 그들이 무엇에 동의하기 전에 수행할 수 있는 충분한 명성에 이후의 경우-당신이해야 할작합니다!

다른 팁

때때로 당신은 할 수 없습니다.

XP 책을 읽으면 가장 큰 장애물 중 하나가 팀이 항상 한 일을 포기하도록 설득 할 것이라고 말합니다.

일반적으로 그들은 적응할 수없는 사람들이 다른 프로젝트에 갈 수 있도록 권장합니다.

코드 검토가 귀하의 경우에 도움이 될 수 있습니다. 모든 코드 라인의 필수 코드 리뷰는 들어 본 적이 없습니다.

언젠가 최고의 논쟁이 예입니다. 프로토 타입 (또는 너무 많은 작업이 아닌 경우 교체)을 작성했습니다. 예를 들어 검토 할 예정으로 관계형 데이터베이스의 장단점을 더 쉽게 볼 수 있습니다.

제쳐두고, 플랫 파일 데이터베이스는 진정한 관계형 데이터베이스보다 "관리"하기가 훨씬 쉽기 때문에 자리가 있습니다. 열린 마음을 유지. ;-)

사람들이 "새로운"방식이 적은 작업이라는 것을 알면 코를 문지르지 않는 한, 사람들이 "새로운"방식이 덜 작업한다는 것을 알 때는 모범을 보일 수 있다고 생각합니다.

또한 오래된 디자인이 실제로 문제를 일으키는 지 또는 미학적으로 성가신 지 여부를 스스로에게 묻습니다. 전투를 선택하는 것이 중요합니다. 기존 디자인이 성능 문제를 일으키지 않거나 시스템을 유지하기 어려운 경우 이전 디자인을 내버려두고 싶을 수도 있습니다.

마지막으로, 이전 디자인을 제자리에두면 새 코드와 기존 데이터베이스 사이의 인터페이스를 시도하고 추상화하려면 동료가 설계를 개선하도록 설득하면 나중에 변경하지 않고도 새 스키마를 삭제할 수 있습니다. 다른 것.

원래 질문에서 일반적인 좌절을 제외하고는 많은 것을 추출하는 것은 어렵습니다.

그렇습니다. 기술 변화에 비추어 쓸모없고 비용이 많이들 수있는 많은 기술과 습관이 시간이 지남에 따라 픽업됩니다. 전원, 메모리 및 디스크조차도 비용이 많이 들었을 때 의미가있는 것은 지금 최적화에 대한 어리석은 시도가 될 수 있습니다. 사람들이 시간이 지남에 따라 나쁜 습관과 나쁜 프로그래밍 패턴을 축적하는 것은 매우 많은 경우입니다.

그래도 조심해야합니다.

때로는 오래된 타이머가하는 일에 대한 좋은 이유가 있습니다. 슬프게도, 그들은 더 이상 이유를 알고 있다면 "왜"를 말로 표현할 수 없을 수도 있습니다.

초보자가 엔터프라이즈 소프트웨어 개발 상점에 들어올 때 이런 종류의 좌절감이 많이 있습니다. 환경이 모두 현대적인 기술과 도구 인 경우에도 나쁠 수 있습니다. 대부분의 경험이 소규모 커뮤니티 데스크탑 및 웹 응용 프로그램을 작성하는 데있어 "알고있는"많은 것들이 잘못 될 수 있습니다.

종종 DBMS가 할 수있는 것보다 한 수준에서 거래 저널링에 대한 요구 사항이 종종 있습니다. 시간-시퀀스 정확성을 한 번만 업데이트, 복원력 및 비 반복을 보장하기 위해 DB 트랜잭션 시맨틱을 넘어서야하는 경우가 많습니다.

그리고 이것은 기업 또는 기업 간 확장 성과 관련된 문제를 다루기 시작하지 않습니다. 하루에 50 만 개의 복잡한 거래에 접근하기 시작하면 RDBMS 기술이 실패한다는 것을 알게 될 것입니다. 관계형 데이터베이스는 높은 트랜잭션 볼륨을 처리하도록 설계되지 않았으므로 정규화 및 업데이트를 위해 표준 패러다임을 중단해야합니다. 기존의 RDBMS 잠금 기술은 문제에 얼마나 많은 하드웨어를 던져도 확장 성을 파괴 할 수 있습니다.

모든 것을 낙담하거나 일반적인 잘못된 머리로 무시하는 것은 쉽습니다. 그러나 이것이 항상 그런 것은 아니기 때문에주의하십시오.

그건 그렇고 : RDBMS 외에 다른 모델이 있으며 RDBMS에 대한 대안이 반드시 "플랫 파일"은 아닙니다. 오늘날 대부분의 코더의 경험과는 반대로. RDBM보다 훨씬 높은 처리량을 처리 할 수있는 트랜잭션 계층 적 DBMS가 있습니다. IMS 예를 들어 큰 IBM 상점에서 여전히 살아 있습니다. 다른 공급 업체는 다른 플랫폼에 유사한 소프트웨어를 제공합니다.

물론 4 인 상점에서는이 중 어느 것도 적용되지 않을 수 있습니다.

괜찮은 교육에 가입 한 다음 새로운 기술로 더 많은 것이 가능하다는 것을 확신시키는 것은 당신에게 달려 있습니다 (또는 적어도 더 쉽습니다!).

그러나 여기서 가장 중요한 것은 전문적이고 공인 트레이너가 기본 사항을 먼저 가르친다는 것입니다. 그들은 동료 중 한 명 대신에 그들에게 더 깊은 인상을받을 것입니다. "이봐, 왜 이것을 사용하지 않습니까?"

관련 게시물 여기.

다음은 YR 상황에서는 적용되지 않을 수 있지만 기술적 인 세부 사항에 대해 거의 언급하지 않으므로 언급 할 것이라고 생각했습니다.

때로는 액세스 패턴이 과거 데이터와 현재 데이터에 대해 매우 다른 경우 (이 예제를 만들고 있지만 현재 데이터가 초당 1000 시간에 액세스하고 작은 열의 작은 하위 집합 및 모든 현재 데이터에 액세스한다고 말합니다. 예를 들어, 히스토리 데이터는 1000 년의 GBS를 사용하는 반면 1GB 미만으로 맞는 반면, 하루에 100 시간에만 액세스하고 액세스 권한은 모든 열에 액세스됩니다),

그러면 동료들이하는 일은 성능 최적화를 위해 완벽하게 이해 될 것입니다. 현재 데이터를 분리하면 (Albiet 중복) 해당 테이블의 지수 및 데이터 구조를 최적화 할 수 있습니다.

실제 상황에 적용될 때 순전히 관계 적 관점에서 "학문적으로"또는 "기술적으로"모든 것이 의미가있는 것은 아닙니다.

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