2009-12-28 2 views
12

한번에 모두하는 것이 더 좋습니까? 저는 wxPython에 익숙하지 않습니다. 그리고 나에게 익숙한 방식으로 프로그램을 작성한 다음 wxPython GUI를 응용 프로그램의 전반적인 디자인에 만족시킨 후에 적용하는 것이 더 좋을 것이라고 생각합니다. 어떤 충고?파이썬 응용 프로그램 백엔드를 디자인하고 개발 한 다음 GUI를 적용하려고하면 끝내는 것이 좋지 않은가요?

답변

16

이것은 가능한 접근법입니다. 사실, 어떤 프로그래머가 가져 오는 이점을 위해 그것을 사용

모듈 형 비 GUI 코드는 그것은 또한 - 명령에 사용할 수 있습니다
  • 다른 GUI를, 단지 하나의 라이브러리에 연결 할 수 있습니다
    • 그것은 웹 응용 프로그램
    • 그리고 가장 중요한 재사용 할 수
    • 줄 응용 프로그램 (또는 GUI의 하나에 배치 인터페이스)는 코드의 단위 테스트를 쉽게 만들 수 있습니다.

    그러나 신중하게 설계해야한다는 점에 유의하십시오. "논리 코드"가 GUI 제약 조건에서 벗어나기를 원할 때도 있고 때로는 어렵습니다 (특히 코드가 이벤트 루프와 같은 GUI 관용구에 의존 할 때).

  • +2

    단위 테스트가 가능합니다. 코드가 GUI와 결합 될 때 단위 테스트는 매우 어렵습니다. –

    +0

    일반적인 문제 및 이에 대한 훌륭한 대답 –

    2

    문제 도메인에 따라 다릅니다. 이미지 처리 도구는 GUI를 참조하지 않고 구현하는 것이 다소 어려울 수 있습니다. 하지만 대부분의 앱에서는 두 부분을 분리하는 데 강하게 반대한다고합니다. UI가없는 백엔드를 개발, 테스트 및 발전시키는 것이 훨씬 쉽습니다. 이 이득은 프론트 엔드와 백엔드 사이에 깨끗한 API를 정의하는 비용보다 훨씬 큽니다. 사실, API를 정의하는 프로세스는 전반적으로 더 나은 디자인을 산출 할 것입니다.

    +3

    ImageMagick에 대해 들어 보셨습니까? "X 및 Y 차원으로 자르기"와 같은 지침이 필요하기 만하면 GUI에서 가져와야 함을 의미하지는 않습니다. –

    0

    IMHO,이 것이 더 좋은 아이디어입니다. 기본 비즈니스 로직을 UI에 묶지 않고 유지하는 것이 인터페이스에 대해 너무 많이 허물 거리는 것보다 기본 로직에 대해 더 많이 염려 할 수있는 더 나은 접근 방법입니다.

    동시에 인터페이스의 기본 디자인을 가지고 어떤 유형의 입력과 출력이 관련되어 있는지, 그리고 기본 로직이 다양한 입력을 지원하도록하는 것이 중요합니다./출력 또는 단순히 광범위한 인터페이스.

    -1

    어떤 수준의 상호 작용이 필요합니까? 풍부한 피드백과 상호 작용이 필요하다면 객체 지향 프로그램 모델이 필요하다. 그런 다음 객체 위에 GUI를 표시 할 수있다.

    라이브러리 또는 구성 요소 모델보다 필터 및 기능 (실제 결과가 없거나 결과 창 만)이 있다면 더 좋을 것입니다.

    어느 쪽이든, 논리를 GUI와 별도로 코딩하는 것이 더 좋으므로보다 쉽게 ​​테스트 할 수 있습니다.

    -1

    더 많은 명령 행 방식에 익숙하다면 좋지 않은 생각입니다. 사용자 입력에 대한 응답은 완전히 다른 패러다임이며 처음에는 제대로 이해하지 못할 가능성이 있습니다.

    wxPython과 다른 GUI의 차이점 만 이야기한다면 걱정하지 마십시오.

    1

    엔진 코드에서 사용자 인터페이스를 분리하는 것은 유익한 방법이며이를 수행하는 데 많은 장점이 있습니다. 모듈화 된 재사용 가능한 프로그램과 코드는 다른 프로그램과 잘 호환되고 더 큰 도구 체인에 적합합니다.

    이러한 접근 방식은 실제로 사용 가능한 UI 경험을 만드는 가치를 할인하는 경향이 있다고 말합니다. 프로그램의 기능을 먼저 설계 한 다음 나중에 사용자 인터페이스를 설계 할 때 프로그램의 내부 모델이 사용자 모델과 일치하는 것은 매우 어렵고 드뭅니다. 결과적으로, 독립적으로 생성 한 후에 양면을 임피던스 매칭해야합니다. 이로 인해 사용성 측면에서 타협이 생기게됩니다 (사용자의 프로그램이 취하는 명령 행 스위치의 프론트 엔드가 될뿐입니다) UI와 핵심 프로그램 사이에 큰 접착제 레이어가되어 지저분하고 버그가 발생하는 경향이 있습니다.

    프로그램이 주로 사용자 인터페이스를 통해 사용자와 대화식으로 실행되도록 설계된 경우 실제 기능과 함께 사용자 인터페이스를 디자인하는 것이 좋습니다.

    그래서 :

    내가 응용 프로그램의 전반적인 디자인에 만족 해요 후 그 다음, 나에게 익숙한 방식으로 프로그램을 작성 그것에 wxPython에 GUI를 적용하는 것이 좋습니다 것

    UI가 프로그램을 운영하는 주요 수단 인 경우 해당 UI는 부분은 프로그램 디자인입니다. 프로그램을 끝낼 때 그 프로그램 위에 칠할 무언가가 아닙니다.

    +0

    당신은 "프로그램의 내부 모델이 사용자 모델과 일치하는 것은 매우 어렵고 드물다"라고 말하지만, 이것이 바로 당신이 노력해야 할 사항입니다. 사용자 정신 모델은 코드가 구현되는 방식과 관련이 없어야합니다. –

    +0

    네, 물론 일치 시키려고 노력해야합니다. UI 이전에 백엔드를 작성하면 어렵다고했습니다. 사용자가 UI에서 기대하는 것은 필요한 백엔드 코드에 많은 영향을 미칩니다. 나는 실제로 내가 쓴 것과 아래에 적어 준 답변 사이에 어떤 충돌도 보이지 않는다. :) –

    0

    GUI 프로그래밍을 처음 사용하기 때문에 접근법이 완벽합니다. UI가 최적이되지 않을 수도 있지만 현재는 괜찮습니다. 그리고 실제로, 이렇게 성공적으로 건설 된 수백만 달러의 상업 프로젝트가 있습니다.

    아마도 가장 좋은 부분이기 때문에 UI를 먼저 디자인하는 것이 좋습니다. 그런 다음 해당 UI를 지원할 수있는 백엔드를 만들 수 있습니다. 이 방법은 여전히 ​​프론트 엔드와 백 엔드가 분리되어 있지만 사용자의 요구에 중점을 둡니다.

    관련 문제