2010-06-18 4 views
3

지금은 주 데이터베이스 액세스 클래스에 데이터베이스 (SQLite 데이터베이스에 대한 몇 가지 CREATE 쿼리)를 만드는 코드가 있습니다. 이 코드를 사용하려는 의도가 없어서 불필요한 것 같습니다. 뭔가 잘못되어 데이터베이스를 다시 만들어야하는 경우에만 필요합니다. 해야합니까 ...YAGNI 및 데이터베이스 작성 스크립트

  1. 데이터베이스 생성 코드가 내 파일 크기의 약 1/4인데도 그대로 둡니다.
  2. 데이터베이스 생성 코드를 별도의 스크립트로 이동하십시오. 그것은 어쨌든 다시 실행해야 할 경우 수동으로 실행하게 될 가능성이 있으며, 주 코드에서 작업하는 동안 마음이 바뀌어 버릴 수 있습니다.
  3. 데이터베이스 생성 코드를 삭제하고 다시 필요로하는 경우 리비전 컨트롤에 의존하십시오.
+0

나는이 경우 YAGNI = you * ARE *가 필요하다고 생각합니다! – Benjol

답변

3

코드를 유지하는 것이 가장 좋습니다. 더욱 중요한 것은 데이터베이스 스키마가 변경 될 때마다이 코드를 유지 관리하거나 생성해야한다는 것입니다.

다음과 같은 이유로 중요합니다.

  1. 몇 번이나 필요로하는지 당신은 아마 놀랠 것입니다. 서버를 이전하거나 다른 환경 (예 : 테스트 또는 데모)을 설정해야하는 경우.
  2. 필자는 코딩 할 때 DDL SQL을 자주 참조합니다. 특히 잠시 동안 시스템을 만진 적이 없다면 더욱 그렇습니다.
  3. 당신은

이에 대한 훈련 방법이없는 경우, 내가 찾은 등 등 등 사용자가 만든 인덱스, 고유 키, 같은 당신의 결정에 대한 참조가 그 데이터베이스 스키마 임시 변경으로 시간이 지남에 따라 표류 할 수 있으며 데이터베이스에 충돌 할 때까지 발견되지 않는 모호한 문제가 발생할 수 있습니다. 규율 된 접근법 (스키마의 참조 정의) 없이는 다른 데이터베이스가 미묘하게 다른 스키마를 가지고 있음을 알 수 있습니다. 뭔가 잘못 을 가서 내가 데이터베이스를 다시 필요한 경우

3

나는에게 필요한 것입니다.

데이터베이스를 재 작성하는 것은 예외적 인 경우는 아닙니다. 이 코드는 새/다른 시스템에서 배포 프로세스의 일부이며 코드가 사용할 것으로 예상하는 DB 구조를 나타냅니다. 실제로이를 확인하는 통합 테스트가 있어야합니다. 개발 도중 수동으로 전달 된 SQL 문을 통해 점진적으로 스키마가 생성 된 단일 DB 서버로 무기한 작업하면 이 아닌에 의존해야합니다.

하지만 액세스 코드와 구분해야합니다. 그래서 옵션 2가 맞습니다. 그런 다음 별도의 스크립트를 배포 및 테스트 용도로 사용할 수 있습니다.