입니다. 이것은 here을 시작한 토론의 연속입니다. 필자는이 분야에서 경험하지 못했던 델파이 소스 코드를 모듈화하는 가장 좋은 방법을 찾고 싶습니다. 나는 너의 모든 제안에 감사 할 것이다.델파이의 모듈 프로그래밍에 대한 최선의 접근법은
내가 이미 작성한 것을 게시 해주십시오. there.
제가 일하는 회사에서 개발 한 소프트웨어는 100 개 이상의 모듈로 구성되어 있습니다 (대부분 다른 장치 용 드라이버와 비슷합니다). 대부분의 경우 동일한 코드를 공유합니다. 대부분의 경우 클래스입니다. 문제는 이러한 클래스가 항상 별도의 독립 실행 형 PAS 단위로 배치되지 않는다는 것입니다. 나는 공유 된 코드가 종종 모듈에 특정한 코드를 포함하는 유닛에 들어간다는 것을 의미한다. 즉, 공유 클래스에서 버그를 수정하면 정의 된 PAS 장치를 모든 소프트웨어 모듈에 복사하고 다시 컴파일하는 것으로는 충분하지 않습니다. 안타깝게도 고정 된 코드 조각을 복사하여 각 모듈에 하나씩 적절한 단위와 클래스로 붙여 넣어야합니다. 이것은 많은 시간이 걸리고 이것은 가까운 장래에 정확한 접근 방식을 선택하여 제거하고 싶습니다. 제발 도와주세요.
EXPL과 함께 배포 된 BPL을 사용하면 좋은 해결책이 될 것이라고 생각했지만 이전 논의에서 언급 한 것처럼 일부 단점도 있습니다. 최악의 문제는 각 EXE에 여러 개의 BPL이 필요한 경우 기술 지원 담당자가 어떤 EXE에 BPL이 필요한지 파악하고 최종 사용자에게 적절한 파일을 제공해야한다는 것입니다. 소프트웨어 업데이터가 없으면 기술자와 최종 사용자 모두에게 많은 도움이 될 것입니다. 그들은 분명히 길을 잃고 화를 낼 것입니다 : - /.
또한 호환성 문제가 발생할 수 있습니다. 하나의 BPL이 여러 EXE에서 공유되는 경우 해당 BPL의 수정으로 인해 하나의 EXE에는 좋고 다른 일부에는 적합하지 않을 수 있습니다.
많은 프로젝트에서 버그를 빨리 수정하려면 어떻게해야합니까? 나는 다음 접근법 중 하나를 생각한다. 더 좋은 아이디어가 있다면 알려주세요. 그 중 하나의 버그 수정이있을 때 별도의 독립 PAS 단위로
- 넣어 공유 코드, 그래서, (이전 파일을 덮어 쓰기) 모든 프로젝트에 복사에 충분하다 그들 모두를 다시 컴파일. 즉, 각 단위가 사용되는 프로젝트의 수만큼 복사됩니다.
이 솔루션은 거의 수정되지 않은 코드에 관한 한 괜찮은 것으로 보입니다. 그러나 우리는 또한 일반적으로 수정을 거치는 일반적인 사용 기능과 절차가있는 단위를 가지고 있습니다. 누군가이 파일에 새로운 기능을 추가 할 때마다 동일한 프로 시저 (너무 많은 프로젝트를 복사하고 다시 컴파일하는)를 수행하는 것은 불가능합니다.
- 모든 공유 코드에 대해 BPL을 만들지 만 EXE가 독립형이되도록 EXE에 연결하십시오.
나를 위해 그것은 지금 가장 좋은 해결책으로 보이지만 몇 가지 단점이 있습니다. BPL에서 버그를 수정하면 각 프로그래머는 컴퓨터에서 BPL을 업데이트해야합니다. 그들이 그것을 잊어 버렸다면? 그러나 사소한 문제라고 생각합니다. 우리가 변화에 대해 서로 알리는 일을 처리한다면 모든 것이 잘되어야합니다. 어떻게 생각해?
- CodeInChaos에서 제안한 마지막 아이디어 (제대로 이해했는지는 알 수 없음). 프로젝트간에 PAS 파일 공유. 아마도 공유 코드를 별도의 폴더에 저장하고 모든 프로젝트에서 해당 코드를 검색해야 할 것입니다. 그리고 프로젝트를 수정해야 할 때마다 공유 파일 폴더와 함께 SVN에서 다운로드해야합니다.공유 코드가 변경 될 때마다 해당 코드를 사용하는 각 프로젝트를 다시 컴파일해야합니다.
좋은 해결책을 선택하십시오. 소프트웨어 개발에 대한 어리석은 접근 방식 때문에 버그 수정에 필요한 것보다 훨씬 많은 시간과 돈을 잃고 싶지 않습니다. 지금까지 아무도 그것에 신경 쓰지 않았고 얼마나 많은 문제가 발생했는지 상상할 수 있습니다.
대단히 감사합니다.
같은 기능을 2 부 가지고 있지 않습니다. 이제까지. SVN은 당신이하고자하는 것을 성취하기가 어렵지만 SVN 외관이 필요하다고 생각합니다. 나는 당신이 더 나은 응답을 얻어야하는 프로그래머로 이동하기로 표결합니다. –
@David Microsoft는 Office 제품의 소스 코드에서이 작업을 수행합니다. (Scott Berkun, "프로젝트 관리의 기술") 왜? 한 사본에 버그가있는 경우 다른 제품에는 영향을 미치지 않습니다. – mjn
@mjn 나는 그것을 믿을 수 없다. 나는 당신이 이야기를 약간 비틀어서 다시 말하고 있다고 생각한다. –