Python 프로그래밍 - Python으로 엔터프라이즈급 소프트웨어를 개발하기 위한 규칙/조언?

StackOverflow https://stackoverflow.com/questions/672781

문제

저는 최근 Python에 관심을 갖게 된 다소 고급 C++/Java 개발자이며 Python의 동적 타이핑과 효율적인 코딩 스타일을 매우 좋아합니다.저는 현재 프로그래밍 수수께끼 풀기 및 스크립팅과 같은 작은 프로그래밍 요구 사항에 이를 사용하고 있지만, 엔터프라이즈급 프로젝트에서 Python을 성공적으로 사용한 사람이 있는지 궁금합니다.(OOP 및 일부 유형의 디자인 패턴과 같은 최신 프로그래밍 개념을 사용하는 것이 좋습니다)

그렇다면 설명해 주시겠어요? 당신은 파이썬을 선택했습니다 (구체적으로) 그리고 우리에게 몇 가지를 줘 수업 이 프로젝트에서 배웠나요?(프로젝트에서 Python을 사용하는 방법과 Java 등을 자유롭게 비교해 보세요.)

도움이 되었습니까?

해결책

저는 복잡한 보험 인수 애플리케이션을 개발하기 위해 Python을 사용하고 있습니다.

우리의 응용 프로그램 소프트웨어는 기본적으로 회사가 구독할 수 있는 형태로 보험 통계 모델을 다시 패키지합니다.이 사업은 보험계리사와 그들의 깊은 사고를 기반으로 합니다.우리는 상대적으로 고정된 영리한 알고리즘을 패키징하는 것이 아닙니다.우리는 웹 서비스를 통해 고객에게 보험 통계 두뇌를 임대하고 있습니다.

  1. 보험계리사는 청구로 이어지는 다양한 요소에 대한 더 깊은 통찰력을 얻으면서 자유롭게 변경할 수 있어야 합니다.

    • 정적 언어(Java, C++, C#)는 데이터 모델에 조기에 종속됩니다.

    • Python을 사용하면 매우 유연한 데이터 모델을 가질 수 있습니다.많은 개발 비용과 복잡성 없이 요소나 정보 소스를 자유롭게 추가, 변경 또는 삭제할 수 있습니다.덕 타이핑을 사용하면 많은 재작업 없이 새로운 작품을 소개할 수 있습니다.

  2. 우리 소프트웨어는 패키지가 아닌 서비스이므로 끝없는 통합 문제가 있습니다.

    • 정적 언어에는 복잡한 매핑 구성 요소가 필요합니다.고객 메시지에서 끊임없이 변화하는 내부 구조까지 일종의 구성 가능한 XML 기반 매핑이 있는 경우가 많습니다.

    • Python을 사용하면 간단히 조정하고 테스트하고 프로덕션에 적용할 수 있는 간단한 Python 클래스 정의로 매핑을 가질 수 있습니다.이 모듈에는 제한이 없습니다. 이는 일류 Python 코드입니다.

  3. 우리는 광범위하고 장기적인 개념 증명을 수행해야 합니다.여기에는 다양한 데이터 피드와 맞춤형 기능을 갖춘 수많은 "가상" 시나리오가 포함됩니다.

    • 정적 언어에는 또 다른 데모를 생성하고 또 다른 고객 제공 파일을 현재 버전의 보험 통계 모델에 매핑하기 위해 많은 신중한 계획과 사고가 필요합니다.

    • Python에는 훨씬 적은 계획이 필요합니다.덕 타이핑(및 Django)을 사용하면 큰 어려움 없이 데모를 완료할 수 있습니다.데이터 매핑은 간단한 Python 클래스 정의입니다.우리의 보험 통계 모델은 상당히 일정한 유동 상태에 있습니다.

  4. 우리의 비즈니스 모델은 일정 수준의 협상을 거쳐야 합니다.우리는 정보 제공자와 다소 복잡한 계약을 맺고 있습니다.이는 보험 통계 모델만큼 자주 변경되지는 않지만 여기에서 변경하려면 사용자 정의가 필요합니다.

    • 정적 언어는 계약에 대한 가정을 묶고 거래를 협상하는 비즈니스 담당자의 두뇌 방귀를 처리하기 위해 상당히 복잡한 설계(또는 해결 방법)가 필요합니다.

    • Python에서 우리는 광범위한 테스트 스위트를 사용하고 다양한 계약 조건이 우리에게 전달됨에 따라 많은 리팩토링을 수행합니다.

    매주 우리는 "X와 같은 조항을 처리할 수 있습니까?"와 같은 질문을 받습니다. 우리의 표준 대답은 "물론입니다"입니다. 한 시간 동안 리팩토링을 한 후 확인합니다. ~할 수 있었다 그런 식으로 거래가 성사되면 처리하세요.

  5. 우리는 대부분 RESTful 웹 서비스입니다.Django는 기본적으로 이러한 작업을 많이 수행합니다.우리의 보안 모델은 Django에서 제공하는 것보다 조금 더 엄격하기 때문에 몇 가지 확장을 작성해야 했습니다.

    • 정적 언어는 소스를 제공할 필요가 없습니다.보안 모델이 마음에 들지 않습니까?공급업체에 $$$를 지불합니다.

    • 동적 언어는 소스로 제공되어야 합니다.우리의 경우 보안 모델이 Django의 나머지 부분과 완벽하게 맞는지 확인하기 위해 Django의 소스를 주의 깊게 읽는 데 시간을 보냅니다.우리는하지 않습니다 필요 HIPAA 규정을 준수하지만 어쨌든 이를 준수하고 있습니다.

  6. 당사는 정보 제공업체의 웹 서비스를 사용합니다.urllib2는 이 작업을 훌륭하게 수행합니다.우리는 인터페이스의 프로토타입을 빠르게 만들 수 있습니다.

    • 정적 언어를 사용하면 API가 있고 작성하고 실행하며 작동하기를 바랍니다.개발 주기는 편집, 컴파일, 빌드, 실행, 충돌, 로그 보기입니다.이는 인터페이스를 스파이크하고 프로토콜, 자격 증명 및 구성이 올바른지 확인하기 위한 것입니다.

    • 대화형 Python에서 인터페이스를 실행합니다.대화형으로 실행하므로 응답을 즉시 검사할 수 있습니다.개발 주기가 실행, 편집으로 단축됩니다.오후에는 웹 서비스 API를 스파이크할 수 있습니다.

다른 팁

나는 세계 최대 은행 중 하나에서 Python을 분산 컴퓨팅 프레임 워크로 사용하고 있습니다. 다음과 같은 때문에 선택되었습니다.

  • 새로운 기능을 개발하고 배포하는 데 매우 빠르야했습니다.
  • C 및 C ++와 쉽게 통합해야했습니다.
  • 코드의 일부는 소프트웨어 개발이 아닌 수학적 모델링 인 전문 분야의 사람들이 작성해야했습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top