문제

몇 년 전에는 TCP를 통해 함수 호출을 수행하기 위해 C++ IPC 라이브러리가 필요했습니다.우리는 하나를 선택하여 응용 프로그램에 사용했습니다.얼마 후, 우리가 필요로 하는 모든 기능을 제공하지 않는다는 것이 분명해졌습니다.우리 소프트웨어의 다음 버전에서는 우리는 타사 IPC 라이브러리를 버리고 우리가 직접 작성한 라이브러리로 교체했습니다..그 이후로 나는 때때로 이것이 좋은 결정이었는지 의심스럽습니다. 바퀴를 재발명하다.그래서 내 질문은 다음과 같습니다이 재발명을 정당화하는 코드 재사용에 대한 단점이 있습니까?

도움이 되었습니까?

해결책

제 3 자 라이브러리를 재사용함으로써 가장 큰 단점 (직접 언급)은 도서관의 작동 방식과 사용 방법에 크게 결합되어 있으며, 처리 할 수있는 중간 인터페이스 레이어를 만들지 않는 한. 그것.

그러나 기존 라이브러리를 다른 라이브러리로 바꾸는 것은 일반적인 인터페이스를 만드는 것은 어렵습니다. 새로운 기능이 비슷한 방식으로 작동해야합니다. 그러나 항상 코드를 다시 작성할 수 있지만 매우 어려울 수 있으며 오랜 시간이 걸릴 수 있습니다.

또 다른 측면은 휠을 재발 명하면 무슨 일이 일어나고 있는지 완전히 제어 할 수 있고 적합한대로 수정을 할 수 있다는 것입니다. 세 번째 부분 라이브러리에 의존하고 업데이트 및 버그 수정을 지속적으로 제공하는 경우에는 완전히 불가능할 수 있습니다. 반면에 코드를 이런 식으로 재사용하면 소프트웨어의 다른 것들에 집중할 수 있습니다.

항상 트레이드 오프가 있습니다.

다른 팁

나는 몇 가지를 제안 할 수 있습니다

  1. 버그가 복제됩니다 - 버기 코드를 재사용하면 :)

  2. 때로는 추가 오버 헤드가 추가 될 수 있습니다. 예를 들어 간단한 작업을 수행 해야하는 경우 필요한 기능을 구현하는 복잡한 큰 라이브러리를 사용하는 것이 좋습니다.

  3. 라이센스 문제에 직면 할 수 있습니다.

  4. 외부 라이브러리를 구성하는 데 시간을 보내야 할 수도 있습니다. 재개발에 훨씬 더 낮은 시간이 걸리면 효과적이지 않을 수 있습니다.

  5. 제대로 문서화되지 않은 라이브러리를 재사용하면 예상/예상보다 더 많은 시간이 걸릴 수 있습니다.

추신우리 자신의 라이브러리를 작성하는 이유는 다음과 같습니다:

  • 외부 라이브러리를 평가하는 것은 종종 매우 어렵고 시간이 많이 걸립니다.또한 일부 문제는 철저한 평가를 거쳐야 눈에 띄게 나타납니다.
  • 이를 통해 우리 프로젝트에 특정한 일부 기능을 도입하는 것이 가능해졌습니다.
  • 라이브러리를 철저하게 알고 있으므로 유지 관리를 수행하고 확장 기능을 작성하는 것이 더 쉽습니다.

경우에 따라 항상 그렇습니다. 재사용하려는 것의 적합성과 품질을 살펴 봐야합니다.

가장 큰 문제는 다음과 같습니다. 해당 코드가 좋은 코드 인 경우 코드를 성공적으로 재사용 할 수 있습니다. 그것이 제대로 설계되었거나 버그가 있거나 매우 취약하다면, 이미 실행 한 것과 동일한 문제가 발생할 것입니다. 기존 코드를 수정하기가 너무 어렵 기 때문에 스스로해야합니다.

그러나 타사 인 경우 도서관 소스 코드가 없다는 것을 사용하는 것을 고려하고 있다는 것은 약간 다릅니다. 그런 종류의 라이브러리라면 소스를 얻을 수 있습니다. 일부 상용 도서관 공급 업체는 제안 및 기능 요청에 열려 있습니다.

황금 지혜 :: 재사용하기 전에 사용할 수 있어야합니다.

코드가 외부 리소스에 의존하고 사라지는 경우 많은 응용 프로그램의 일부를 무너 뜨릴 수 있습니다.

대부분의 재사용 코드는 인터넷에서 나오기 때문에 다음과 같은 모든 문제가 발생합니다. 코드의 욕실 벽 Atwood는 이야기합니다. 불안하거나 신뢰할 수없는 차용 코드로 문제가 발생할 수 있으며 블랙 박스가 많을수록 악화됩니다.

코드 재사용의 단점 :

  • 디버깅은 코드가 아니기 때문에 훨씬 더 오래 걸리며 다소 부풀어 오른 코드 일 가능성이 높습니다.
  • 재사용중인 코드에 의해 제약을 받고 제한 사항을 해결해야하기 때문에 특정 요구 사항은 더 많은 작업이 필요합니다.
  • 일정한 코드 재사용은 장기적으로 버그를 추격하기 어려운 부풀어 오르고 무질서한 응용 프로그램으로 인해 프로그래밍 지옥을 쫓아냅니다.
  • 코드를 재사용하면 (사례에 따라) 프로그래머의 도전과 만족 요소를 줄이고 새로운 기술을 개발할 수있는 기회를 낭비 할 수 있습니다.

재사용 또는 재 작성하려는 사례, 언어 및 코드에 따라 다릅니다. 일반적으로 나는 언어가 높을수록 코드 재사용을 향한 경향이 있다고 생각합니다. 더 높은 수준의 언어로 된 버그는 더 큰 영향을 줄 수 있으며 다시 작성하기가 더 쉽습니다. 높은 수준의 코드는 읽기 쉽고 깔끔하며 유연해야합니다. 물론 그것은 모든 코드에 대해 말할 수 있지만, 어떻게 든 C 라이브러리를 다시 작성하는 것은 PHP 모델 코드를 다시 작성 (또는 요약)보다 좋은 아이디어로 들리지 않습니다.

어쨌든, 이것들은 "바퀴 재창조"를 홍보하기 위해 내가 사용하는 주장 중 일부입니다.

때로는 현재 코드베이스의 버그와 제한을 해결하는 것보다 처음부터 처음부터 다시 쓰는 것이 더 빠르고 재미 있으며, 더 빠릅니다.

이 라이브러리를 재창조하기 위해 무엇을 사용하고 있는지 궁금하십니까?

  1. 재사용 가능한 코드를 만드는 초기 시간은 더 비싸고 시간 비용
  2. 마스터 브랜치가 업데이트가 있으면 동기화하고 다시 배포해야합니다.
  3. 버그가 복제됩니다 - 버기 코드를 재사용하면
  4. 제대로 문서화되지 않은 코드를 재사용하면 예상/예상보다 더 많은 시간이 걸릴 수 있습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top