타사 라이브러리를 사용하여, 코드 재사용에 대한 몇 가지 생각

그것은 여부 不要重复造轮子, 또는 站在巨人的肩膀上소프트웨어 개발자, 코드 재사용은 가장 기본적인 원칙 중 하나입니다.

코드 재사용, 당신은 크게 이러한 다중를 달성하기 위해 다른 사람의 팀 내 누군가 다른 사람의 코드, 오픈 소스 프로젝트, 또는 다른 팀의 구성 요소, 서비스, 또는 공용 모듈을 사용 할 수있다 (그나마 자신을 반복) DIY 될 수있다 그것은 개발 시간과 프로젝트의 비용을 줄일 수 있습니다.

그러나 올바른 자세를 사용하여 고효율, 타사 코드는 무엇인가? 라인이 빨리 찾아 문제를 해결할 수없는 타사 코드와 관련된 사고처럼 보이는 경우 실제 동작에서, 어떤 경우는 제 3 자 코드의 숫자에 의해 사용으로 타사 코드의 사용의 제어의 손실로 이어질있을 수 있지만 파손으로 떨어졌다 .

이 문서에서는 "클린 코드"장 VIII을 읽고 边界(Boundaries)몇 가지 생각 할 때입니다.

이 문서 주소 : https://www.cnblogs.com/xybaby/p/11372846.html

코드를 다시 사용이 문서는 두 가지 범주로 나누어 져 있습니다 :

  • 하나는 특별히 종종 일반 크고 포괄적 할 필요가 같은 코드를 특징으로 타사 라이브러리 내에서 공통 구성 요소, 오픈 소스 라이브러리, 회사의 다른 팀을 말한다, 팀 외부의 코드이며, 사용자의 프로젝트 팀은 단지 매우입니다 어려운 설계를 변경하거나 기본적인 구현합니다.
  • 다른 팀 내에서 코드입니다 몇 가지 일반적인 모듈, 프로젝트,보다 편리하게 상담 변경의 핵심 서비스 인 자신의 패키지에 프로젝트 팀 구성원의 공통 구성 요소.

어떻게 타사 라이브러리 코드를 재사용

여기 멀티플렉싱,뿐만 아니라 장거리 전화 서비스에 대한 코드에 한정되는 것은 아니다. 일반적으로,이 프로젝트는 회사의 서비스 나 클라우드 컴퓨팅에 기초하여 서비스의 일부를 사용, 일부 오픈 소스를 선택, 연구 것이다, 나는이이 멀티 플렉스로 간주됩니다 생각합니다.

최소화, 코드 재사용 집중

코드가 더 많은 사용자를 유치하기 위해 여러 환경에서 작동 할 수 있도록 자주 타사 라이브러리 기능 (서비스)의 추구는 보편적이다. 그리고 사용자는 종종 (사용하지 않는 것이 좋습니다뿐만 아니라) 원치 않는 기능에 대한 인터페이스의 일부의 특정 요구 사항을 충족해야하지만이 프로젝트에 대한 부담이지만, 제대로 위험을 제어하지 않습니다.

예 레디 스의 경우뿐만 아니라, 메모리 데이터베이스를 할뿐만 아니라, 지속성, 또한 바 서브 (비교적 새로운 흐름)을 지원하는, 단일 배치뿐만 아니라, 표지를 통해 클러스터 가용성 및 수평 스케일링을 제공하기 위해 모두를 지원한다. 그러나 우리의 프로젝트에, 전용 메모리 캐시, 가용성, 확장 성, 많은 수요가 없습니다.

원칙적으로, 타사 라이브러리의 사용은 직접 다른 곳에서 다른 라이브러리를 사용하지 않고, 별도의 파일 (클래스 모듈)에 포장되어있는, 가능한 인터페이스 (서비스)를 사용합니다. 적응으로 만 원치 않는 기능 (인터페이스)가 노출되지 않는 일부 기능을 포함해야합니다.

이 통합 입구, 유지 관리가 용이 ​​내부 코드의 최소한의 양을 사용하는 모든 제 3 자 라이브러리에 초점을 맞출 것이다 장점이있다. 쉽게 다른 구현을 분리하는 계층 적 사고, 비즈니스 코드와 타사 라이브러리는 또한 그것입니다.

학습 테스트

오픈 소스 프로젝트에 자신의 비즈니스 코드, 과학 연구 및 완벽한 테스트의 필요성을 소개합니다. 연구를 포함하여 이에 국한되지 : 비즈니스 요구와 중복의 정도, 등 오픈 소스 커뮤니티 활동의 성숙. 테스트는 다음과 같은 측면을 포함해야

  • 기능 테스트
  • 성능 테스트
  • 스트레스 테스트
  • 실패 테스트

첫 번째 두 사람은 주로 타사 라이브러리 함수 여부, 성능 비즈니스의 요구 사항뿐만 아니라 마스터 올바른 사용 자세를 결정하는 가장 기본적인 시험이다. 뒤의 두 테스트 포인트는 종종 경우 별도의 서비스 배포로 실행 타사 라이브러리입니다.

테스트를 위해, 우리는 몇 가지 테스트 코드를가집니다, 프로젝트 수있는 참조 코드 샘플, 튜토리얼, 벤치 마크, 유닛 테스트에 온다. 그러나 문제는이를하게되었다, 이러한 테스트 코드가 자주 던져하는 데 사용된다는 점이다

  • 문제가 나중에 발생하면, 우리는 라이브러리 자체, 또는 제스처의 우리의 사용을 발행 할 것인지 여부를 결정하기 위해, 디버그를 계속해야합니다.
  • 라이브러리의 새 버전이 동일한 계약을 제공하는지 확인 할 수단이 없기 때문에 노사정 지역 도서관 업그레이드 한 후, 응용 프로그램 업그레이드, 따르지 않을 수 있습니다.

나는 많은, 많은 사람들이 업그레이드 타사 라이브러리에 종속 된 발생할 것이라고 생각 두 번째 질문, 당신은 프로젝트를 함께 따라하는 것입니다 업그레이드? 내가 발견 한 두 개의 극단적 인 전략의 비교는, 하나는 항상 타사 라이브러리의 최신 안정 버전으로 업데이트되며, 다른 하나는, 업그레이드 자신의 특정 버전을 유지하기 위해 기본적으로하지 않습니다.

learning test두 번째 문제를 해결할 수 :

우리 모두는 이러한 테스트 기능을 사용하기 위해 단위 테스트의 세트로 구성 테스트합니다 측면의 많은 기능, 성능 및 안정성에 대한 우리의 요구를하고 있습니다 다룹니다. 타사 라이브러리의 업데이트 된 버전은, 우리가 다시 다시 실행 단위 테스트를 넣을 때, 당신은 새로운 코드의 코드가 동일한 계약을 제공할지 여부를 결정할 수 있습니다, 그것은 상대적으로 안전 업그레이드 할 수 있습니다.

이전 섹션, "타사 코드가 중앙 집중식 사용"는 것입니다 보이지 아니 learning test타사 라이브러리의 사용을 확장 할 경우 기반을 우리는 분명히 그 인터페이스를 테스트해야합니다 알고, 쉽게 증가시킬 수있다, 해당 테스트의 유지 보수.

팀 내에서 코드를 재사용하는 방법

팀이 매우 코드 재사용을 권장 내에서 더 일반적인 방법은 공통의 다양한 구성 요소를 형성하는 것입니다. 그래서, 모듈 B를 사용하여 프로그래머의 경우 프로그래머는 책임을 나누는 방법을 다음, 공공 문제를 제공?

코드가 오픈 소스 인 경우, 사용자는 비난 할 수 있다는 의심의 여지가 없다지만, 팀, 사용자에게 전적으로 기인하지 않는 것. 공공 어셈블리의 사용자는 일반적으로 철저한 검사를 사용하지 않습니다 생각합니다 "팀, 당신은 공급자가 빠르고 사용하기 쉬운 품질을 보장해야한다."

나는 공급자가 적절한 단위 테스트를 제공하고, 또한을 통해, 그것은 직접 사용할 수있는 경우 사용자 계정에 대한 주요 책임은 사용자가 테스트하는 데 사용할해야한다고 생각합니다. 그렇지 않으면, 해당 테스트 케이스를 추가해야 통과하지, 당신은 공급자 상담을 찾을 수 있습니다. 둘째, 사용자의 및 상기 공통 모듈, 공통 부품 공급자의 자체 테스트도없고 추가 작업 때문에 시간을 개발하기 위해, 테스트 유닛의 높은 커버리지를 제공해야만한다 공식 보증의 사본뿐만 아니라, 팀에서 자신의 영향력을 강화한다.

추천

출처www.cnblogs.com/xybaby/p/11372846.html