한번에 모두하는 것이 더 좋습니까? 저는 wxPython에 익숙하지 않습니다. 그리고 나에게 익숙한 방식으로 프로그램을 작성한 다음 wxPython GUI를 응용 프로그램의 전반적인 디자인에 만족시킨 후에 적용하는 것이 더 좋을 것이라고 생각합니다. 어떤 충고?파이썬 응용 프로그램 백엔드를 디자인하고 개발 한 다음 GUI를 적용하려고하면 끝내는 것이 좋지 않은가요?
답변
이것은 가능한 접근법입니다. 사실, 어떤 프로그래머가 가져 오는 이점을 위해 그것을 사용
모듈 형 비 GUI 코드는 그것은 또한 - 명령에 사용할 수 있습니다- 그것은 웹 응용 프로그램
- 그리고 가장 중요한 재사용 할 수
- 줄 응용 프로그램 (또는 GUI의 하나에 배치 인터페이스)는 코드의 단위 테스트를 쉽게 만들 수 있습니다.
그러나 신중하게 설계해야한다는 점에 유의하십시오. "논리 코드"가 GUI 제약 조건에서 벗어나기를 원할 때도 있고 때로는 어렵습니다 (특히 코드가 이벤트 루프와 같은 GUI 관용구에 의존 할 때).
문제 도메인에 따라 다릅니다. 이미지 처리 도구는 GUI를 참조하지 않고 구현하는 것이 다소 어려울 수 있습니다. 하지만 대부분의 앱에서는 두 부분을 분리하는 데 강하게 반대한다고합니다. UI가없는 백엔드를 개발, 테스트 및 발전시키는 것이 훨씬 쉽습니다. 이 이득은 프론트 엔드와 백엔드 사이에 깨끗한 API를 정의하는 비용보다 훨씬 큽니다. 사실, API를 정의하는 프로세스는 전반적으로 더 나은 디자인을 산출 할 것입니다.
ImageMagick에 대해 들어 보셨습니까? "X 및 Y 차원으로 자르기"와 같은 지침이 필요하기 만하면 GUI에서 가져와야 함을 의미하지는 않습니다. –
IMHO,이 것이 더 좋은 아이디어입니다. 기본 비즈니스 로직을 UI에 묶지 않고 유지하는 것이 인터페이스에 대해 너무 많이 허물 거리는 것보다 기본 로직에 대해 더 많이 염려 할 수있는 더 나은 접근 방법입니다.
동시에 인터페이스의 기본 디자인을 가지고 어떤 유형의 입력과 출력이 관련되어 있는지, 그리고 기본 로직이 다양한 입력을 지원하도록하는 것이 중요합니다./출력 또는 단순히 광범위한 인터페이스.
어떤 수준의 상호 작용이 필요합니까? 풍부한 피드백과 상호 작용이 필요하다면 객체 지향 프로그램 모델이 필요하다. 그런 다음 객체 위에 GUI를 표시 할 수있다.
라이브러리 또는 구성 요소 모델보다 필터 및 기능 (실제 결과가 없거나 결과 창 만)이 있다면 더 좋을 것입니다.
어느 쪽이든, 논리를 GUI와 별도로 코딩하는 것이 더 좋으므로보다 쉽게 테스트 할 수 있습니다.
더 많은 명령 행 방식에 익숙하다면 좋지 않은 생각입니다. 사용자 입력에 대한 응답은 완전히 다른 패러다임이며 처음에는 제대로 이해하지 못할 가능성이 있습니다.
wxPython과 다른 GUI의 차이점 만 이야기한다면 걱정하지 마십시오.
엔진 코드에서 사용자 인터페이스를 분리하는 것은 유익한 방법이며이를 수행하는 데 많은 장점이 있습니다. 모듈화 된 재사용 가능한 프로그램과 코드는 다른 프로그램과 잘 호환되고 더 큰 도구 체인에 적합합니다.
이러한 접근 방식은 실제로 사용 가능한 UI 경험을 만드는 가치를 할인하는 경향이 있다고 말합니다. 프로그램의 기능을 먼저 설계 한 다음 나중에 사용자 인터페이스를 설계 할 때 프로그램의 내부 모델이 사용자 모델과 일치하는 것은 매우 어렵고 드뭅니다. 결과적으로, 독립적으로 생성 한 후에 양면을 임피던스 매칭해야합니다. 이로 인해 사용성 측면에서 타협이 생기게됩니다 (사용자의 프로그램이 취하는 명령 행 스위치의 프론트 엔드가 될뿐입니다) UI와 핵심 프로그램 사이에 큰 접착제 레이어가되어 지저분하고 버그가 발생하는 경향이 있습니다.
프로그램이 주로 사용자 인터페이스를 통해 사용자와 대화식으로 실행되도록 설계된 경우 실제 기능과 함께 사용자 인터페이스를 디자인하는 것이 좋습니다.
그래서 :
내가 응용 프로그램의 전반적인 디자인에 만족 해요 후 그 다음, 나에게 익숙한 방식으로 프로그램을 작성 그것에 wxPython에 GUI를 적용하는 것이 좋습니다 것
UI가 프로그램을 운영하는 주요 수단 인 경우 해당 UI는 부분은 프로그램 디자인입니다. 프로그램을 끝낼 때 그 프로그램 위에 칠할 무언가가 아닙니다.
당신은 "프로그램의 내부 모델이 사용자 모델과 일치하는 것은 매우 어렵고 드물다"라고 말하지만, 이것이 바로 당신이 노력해야 할 사항입니다. 사용자 정신 모델은 코드가 구현되는 방식과 관련이 없어야합니다. –
네, 물론 일치 시키려고 노력해야합니다. UI 이전에 백엔드를 작성하면 어렵다고했습니다. 사용자가 UI에서 기대하는 것은 필요한 백엔드 코드에 많은 영향을 미칩니다. 나는 실제로 내가 쓴 것과 아래에 적어 준 답변 사이에 어떤 충돌도 보이지 않는다. :) –
GUI 프로그래밍을 처음 사용하기 때문에 접근법이 완벽합니다. UI가 최적이되지 않을 수도 있지만 현재는 괜찮습니다. 그리고 실제로, 이렇게 성공적으로 건설 된 수백만 달러의 상업 프로젝트가 있습니다.
아마도 가장 좋은 부분이기 때문에 UI를 먼저 디자인하는 것이 좋습니다. 그런 다음 해당 UI를 지원할 수있는 백엔드를 만들 수 있습니다. 이 방법은 여전히 프론트 엔드와 백 엔드가 분리되어 있지만 사용자의 요구에 중점을 둡니다.
- 1. 페이지 요청에 아약스를 사용하여 페이지 콘텐츠를로드하는 것이 왜 좋지 않은가요?
- 2. .Net MVC에서보기에서 세션 정보에 액세스하는 것이 좋지 않은가요?
- 3. WCF - 채널을 오랫동안 열어 놓는 것이 좋지 않은가요?
- 4. JavaScript와 같이 Clojure 맵에 함수를 추가하는 것은 좋지 않은가요?
- 5. VS2010에서 데이터 모델을 디자인하고 ORM 코드를 생성하는 응용 프로그램
- 6. Windows 응용 프로그램과 웹 응용 프로그램 개발
- 7. iPhone에서의 Windows 응용 프로그램 개발
- 8. GUI를 파이썬 프로그래밍에서
- 9. 파이썬 GUI를 만들고
- 10. 안드로이드 응용 프로그램 개발
- 11. 웹 응용 프로그램 개발
- 12. 블루투스 응용 프로그램 개발
- 13. 안드로이드 응용 프로그램 개발
- 14. BlackBerry 응용 프로그램 개발
- 15. 개발 아이폰의 응용 프로그램
- 16. GPS 응용 프로그램 개발
- 17. 시맨틱 웹 응용 프로그램 개발
- 18. 웹 응용 프로그램 개발 프로세스
- 19. 웹 응용 프로그램 개발 일정은?
- 20. 웹 개발 응용 프로그램 - mac
- 21. jQuery Javascript 대규모 응용 프로그램 개발
- 22. 파이썬 백엔드를 AIR 응용 프로그램에 "포함"할 수 있습니까?
- 23. 파이썬 응용 프로그램 포장
- 24. j2me로 웹 응용 프로그램 개발
- 25. Android ==> 응용 프로그램 개발?
- 26. 파이썬 응용 프로그램 개발 자원 (도서/온라인 안내서와 마찬가지로)
- 27. 끝내는 방법/프로그램 가까이에서 강제 실행하기 (Clojure에서)
- 28. 양식 디자이너 응용 프로그램 개발
- 29. 웹 응용 프로그램 및 개발
- 30. 좋은 도구 안드로이드에서 GUI를 개발?
단위 테스트가 가능합니다. 코드가 GUI와 결합 될 때 단위 테스트는 매우 어렵습니다. –
일반적인 문제 및 이에 대한 훌륭한 대답 –