문제

있다 다양한 웹 애플리케이션 프레임워크 요즘에는 거의 모든 언어에 사용할 수 있습니다.귀하의 경험에 따르면 그들의 강점, 약점 및 독특한 특징은 무엇입니까?선택의 폭이 넓다고 가정할 때, 서로를 고려하게 만드는 요소는 무엇입니까?

나는 세상에 있는 모든 것을 철저하게 비교하는 것보다 사람들이 하나 이상의 프레임워크를 직접 경험하는 데 가장 관심이 있습니다.SO 커뮤니티에는 다음과 같은 일에 좋은 경험과 나쁜 경험을 가진 프로그래머가 있기를 바랍니다. 울타리, ASP.NET, 장고, 터보기어, 또는 JSF.다음과 같이 덜 주류인 프레임워크 중 하나를 사용하는 사람이 있다면 듣기에도 좋을 것입니다. 해안 또는 웹블록.

프로그래밍 언어는 분명한 차이가 있지만 Java와 Ruby의 불꽃 전쟁은 그다지 재미있지 않을 것이며 대부분의 프레임워크는 최소한 선택한 언어만큼 기술, 도구 및 복잡성에 투자하는 것 같습니다.그래서 나는 다음과 같은 것에 더 관심이 있습니다.

  • 개발 속도와 편의성
  • 진입 장벽 - 개발자 교육 및 필요한 인프라 측면 모두에서
  • 잠금 - 프레임워크를 전환해야 한다면 얼마나 많은 코드를 유지할 수 있습니까?
  • 유연성 - 프레임워크가 아키텍처나 디자인을 결정합니까?(그것이 좋은 것인지 나쁜 것인지는 별도의 논의에 맡기는 것이 가장 좋습니다.)
  • 성능, 확장성 및 안정성 - 당연히 개발자에 따라 다릅니다!
도움이 되었습니까?

해결책

세 가지 인기 있는 Python 프레임워크에 대한 각 영역을 간략하게 설명하겠습니다.이것은 단지 내 개인적인 경험과 관찰에 근거한 것입니다.

개발 속도와 편의성

을 위한 터보기어, 철탑, 그리고 장고, 개발 속도는 거의 동일합니다.최신 프레임워크이므로 새 사이트를 시작하고 페이지를 함께 시작하는 것이 쉽습니다.Python은 개발 및 디버그 속도가 빠른 것으로 유명하며 Python 프레임워크는 제가 작업한 다른 설정(PHP, Perl, Embedded Perl 및 C#/ASP.Net 포함)보다 개발 시간이 더 짧다고 생각합니다.

진입 장벽 - 개발자 교육 및 인프라

Python을 알고 있고 시청할 의향이 있는 경우 20분 비디오 튜토리얼, 를 사용하면 처음부터 상당히 완전한 위키 유형 사이트를 만들 수 있습니다.아니면 걸어서 지나갈 수도 있어요 소셜 북마킹 사이트 튜토리얼 30분 안에 (설치 포함).이는 TurboGears 예제이지만 다른 두 프레임워크에도 거의 동일한 튜토리얼이 있습니다.

이러한 프레임워크와 함께 기본으로 제공되는 테스트/개발 인프라는 일반적으로 대부분의 사이트를 완료하기에 충분합니다.언제든지 생산 환경 요구 사항에 맞게 구성 요소를 교체할 수 있습니다.예를 들어, SQLite는 모델을 설정하고 테스트 데이터를 로드하는 데 적합하지만, 예를 들어 라이브로 전환하거나 대량의 데이터를 저장하기 전에 MySQL을 설치하는 것이 좋습니다.

모든 경우에 요구 사항은 매우 낮으며 프레임워크의 특성이 아닌 확장성 요구 사항에 따라 전적으로 결정됩니다.특정 템플릿 언어나 ORM에 익숙하다면 아마도 바로 연결될 것입니다.

가두어 넣다

이는 모든 프레임워크에 걸쳐 일반화된 문제입니다.언어를 선택하면 코드 재사용 옵션이 제한됩니다.템플릿러를 선택하면 다시 잠기게 됩니다(일반적으로 다른 것보다 변경하기가 더 쉽지만).ORM, 데이터베이스 등도 마찬가지입니다.이러한 프레임워크가 특별히 잠금을 돕거나 방해하는 일은 없습니다.

유연성

이 세 가지 프레임워크를 갖춘 MVC에 관한 모든 것입니다.당신이 말했듯이, 그것은 매우 다른 토론입니다!

성능, 확장성 및 안정성

글쎄, 좋은 코드를 작성하면 사이트가 잘 작동할 것입니다!다시 말하지만, 이는 다음에서 다루는 모든 프레임워크에 걸쳐 발생하는 문제입니다. 다양한 개발 기술 아마도이 답변의 범위를 벗어나는 것 같습니다.

다른 팁

Django vs Struts.

개발 속도와 편의성.

DJANGO- 모델을 구축하는 데 필요한 시간 (Python)에 필요한 시간에 UP 및 실행, 관리 매핑 (모델 클래스 당 2-3 줄의 코드 라인)을 정의하고 HTML 템플릿을 작성하여 기본 마스터-디테일 뷰와 함께 작동합니다.

struts- 데이터베이스를 SQL로 정의한 다음 iBatis에서 ORM 매핑을 정의해야합니다. 그런 다음 액션 클래스 및 JSP 템플릿 페이지를 사용하여 다양한 응용 프로그램 구성 요소를 정의, 테스트 및 빌드하십시오. 아, 그리고 데이터를 응용 프로그램에서 JSP로 이동하려면 EJB를 정의해야합니다. 그것은 모두 컴파일해야하고 컴파일 규칙에 맞는 무언가를 얻기 위해 수많은 세부 사항을 해결해야합니다.

진입 장벽 - 개발자 교육과 필요한 인프라 측면에서

모든 프레임 워크와 언어에서 일정합니다. 이것은 거의 신경 쓰지 않는 항목입니다. 언어 나 프레임 워크는 본질적으로 훈련하기 쉽습니다. 모든 웹 프레임 워크에는 유사한 인프라 요구 사항이 있습니다.

가두어 넣다 - 프레임 워크를 전환 해야하는 경우 얼마나 많은 코드를 유지할 수 있습니까?

이것은 많은 의미가 없습니다. Tomcat에서 Tomcat 파생 상품으로 전환하면 많은 Java 코드를 보존 할 수 있습니다. 그렇지 않으면 프레임 워크를 전환 할 때 일반적으로 많은 코드를 보존하지 않습니다.

유연성 - 프레임 워크가 건축이나 디자인을 지시합니까? (좋은 것이든 나쁜 일이든 별도의 토론에 남은 것이 가장 좋습니다.)

사실, 그것은 별도의 토론이 아닙니다. 그게 요점입니다. 프레임 워크는 건축을 지시합니다. 좋은 일입니다. 실제로 프레임 워크는 작성, 테스트, 디버그 또는 지원이 필요하지 않은 코드입니다. 응용 프로그램이 프레임 워크에 의해 입증 된 실행 가능한 구조로 제한되는 것은 좋은 일입니다.

성능, 확장 성 및 안정성 - 분명히 개발자에 따라!

성능은 언어입니다 (프레임 워크가 아님). 디자인입니다. 어느 정도까지는 구현 구성도 있습니다.

확장 성은 프레임 워크 (언어가 아님)입니다. 디자인 및 구성입니다.

OS, 언어, 프레임 워크, 설계, 프로그래밍, QA 및 구현 구성과 같은 안정성은 전반적입니다.

이것은 엄청나게 주관적인 질문입니다. 그리고 그것은 당신이 당신의 질문에 추가해야 할 태그입니다. 여러 의견이 이미 제안한 것처럼 이미 꽤 좋은 가이드를 지정했습니다. 실제로 무엇을 요구하고 있습니까? 이런 종류의 일에 대한 10 억 의견이 있으며 확실히 정답이 없습니다!

개인적으로, 나는 .html을 사용하기 시작했고, PHP로 옮기고, 루비를 시험해 보았고, Python / django를 발견했으며 그 이후로 행복했습니다. 그것은 (아마도) 가져가는 매우 독특한 길이기 때문에 마일리지는 다를 수 있습니다 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top