문제

Django와 같은 웹 앱 개발 용이성과 우수한 배포, 디버깅 및 기타 도구가 결합되어 있는지 궁금합니다.

Django는 콘텐츠가 많은 사이트를 구축하기 위한 매우 생산적인 프레임워크입니다.제가 시도한 것 중 최고였고, 저 밖에 있는 자바 괴물들과 비교하면 신선한 공기를 마신 것이었습니다.그러나 Python으로 작성되었으므로 배포/패키징, 디버깅, 프로파일러 및 애플리케이션 구축 및 유지 관리를 훨씬 쉽게 해주는 기타 도구에 대한 실제 지원이 거의 없습니다.

Ruby에도 비슷한 문제가 있으며 저는 Ruby를 좋아하지만 많이 저는 Python을 좋아하는 것보다 앱 관리/지원에 있어서 Django에서 Rails가 거의 같은 배에 있다는 인상을 받았습니다.

여기 누군가가 사소한 프로젝트를 위해 Django와 Grails(또는 다른 웹 프레임워크)를 모두 사용해 본 사람이 있나요?그들은 어떻게 비교했는가?

도움이 되었습니까?

해결책

Grails와 Django를 모두 사용하는 사람을 요청하셨습니다.나는 큰 프로젝트를 위해 두 가지 작업을 모두 수행했습니다.내 생각은 다음과 같습니다.

십오 일:Django는 Eclipse에서 정말 잘 작동하고, Grails는 IntelliJ Idea에서 정말 잘 작동합니다.

디버깅:실질적으로 동일합니다(Grails에는 IntelliJ를 사용하고 Python에는 Eclipse를 사용한다고 가정).단계 디버깅, 변수 검사 등...어느 쪽에도 인쇄문이 필요하지 않습니다.때때로 django 오류 메시지는 쓸모가 없을 수 있지만 Grails 오류 메시지는 일반적으로 꽤 길고 구문 분석하기 어렵습니다.

단위 테스트를 실행할 시간:장고:2초.성배:20초(테스트 자체는 모두 1초 미만의 짧은 시간 내에 실행됩니다. 나머지는 테스트를 실행하기 위해 프레임워크를 로드하는 부분입니다...보시다시피 Grails의 로딩 속도는 실망스러울 정도로 느립니다.

전개:장고:하나의 파일을 복사하여 Apache 구성에 붙여넣고 재배포하려면 코드를 변경하고 Apache를 다시 로드하기만 하면 됩니다.성배:.war 파일을 생성하고 이를 Tomcat에 배포한 후 헹구고 반복하여 재배포합니다.

프로그래밍 언어:Groovy는 정말 굉장합니다.저는 파이썬보다 그것을 더 좋아합니다.그러나 나는 확실히 불만이 없습니다.

플러그인:성배:깨진 플러그인이 많습니다(그리고 모든 Java lib를 사용할 수 있습니다).장고:몇 가지 안정적인 플러그인이지만 필요한 대부분의 작업을 수행하기에 충분합니다.

데이터 베이스:장고:South를 사용한 스키마 마이그레이션과 일반적으로 직관적인 관계.성배:스키마 마이그레이션이 없으며 기본적으로 시작 시 데이터베이스를 삭제합니다.뭐야

용법:장고:스타트업(특히 Gov 2.0 공간), 독립 웹 개발 상점.성배:기업

도움이 되었기를 바랍니다!

다른 팁

그러나 Python으로 작성되었으므로 배포/포장, 디버깅, 프로파일 러 및 응용 프로그램을 훨씬 쉽게 구축하고 유지 관리하는 기타 도구에 대한 실제 지원이 거의 없습니다.

파이썬에는 다음이 있습니다:

  1. 훌륭한 대화형 디버거, Python을 매우 잘 활용합니다. REPL.
  2. easy_install 앤브 가상 환경 종속성 관리, 패키징 및 배포를 위한 것입니다.
  3. 프로파일링 기능 다른 언어에 비해

그러니 IMHO 이런 일에 대해 걱정하지 마세요. Python과 Django를 사용하고 행복하게 살아보세요 :-)

행운을 빕니다. 최신 버전입니다. Django는 Jython에서 실행됩니다., 따라서 전체 Java 생태계를 남겨둘 필요가 없습니다.

프레임워크에 관해 제가 올해 평가한 바는 다음과 같습니다.

  1. 철탑 (파이썬)
  2. 웹피 (파이썬)
  3. 심포니 (PHP)
  4. 케이크PHP (PHP)

이 프레임워크 중 어느 것도 Django나 Ruby on Rails의 성능에 근접하지 않습니다.내 동료의 의견에 따르면 당신을 추천할 수 있습니다 코하나 뼈대.단점은 PHP로 작성되었으며, 제가 아는 한 PHP에는 앱 디버깅, 프로파일링 및 패키징을 위한 뛰어난 도구가 없다는 것입니다.

편집하다: 여기 아주 좋은 것이 있습니다 Python 앱 패키징 및 배포에 관한 기사 (특히 Django 앱).현재 Django 커뮤니티에서 화제가 되고 있습니다.

그 진술은 grails는 시작 시 데이터베이스를 삭제합니다. 완전히 틀렸습니다.시작 시 동작은 완전히 구성 가능하고 구성하기 쉽습니다.저는 일반적으로 개발 모드에서 앱을 실행할 때 create-drop을 사용합니다.테스트 및 프로덕션에서 실행할 때 업데이트를 사용합니다.

또한 Grails의 환경별로 테스트 사용자, 데이터 등을 사전 구성할 수 있는 부트스트랩 처리 기능도 마음에 듭니다.

실제로 일부 상용 프로젝트를 구축하고 배포한 사람이 장단점에 대해 의견을 제시하는 것을 보고 싶습니다.정말 흥미로운 독서가 되십시오.

성배.

Grails는 Rails(Ruby)와 유사하지만 Java보다 간단한 Groovy를 사용합니다.Java 기술을 사용하므로 어떤 Java lib라도 문제 없이 사용할 수 있습니다.

나는 또한 단순성보다 Grails를 선택했고 많은 Java lib(예: Jasper Report, jawr 등)가 있으며 이제 그들이 기반을 탄탄하게 만드는 SpringSource와 합류하게 되어 기쁩니다.

원래 Ruby on Rails를 사용하여 애플리케이션 작성을 시작했지만 여러 가지 문제와 제한 사항에 부딪힌 친구가 두 명 있습니다.약 8주간의 작업 끝에 그들은 다른 대안을 조사하기로 결정했습니다.

그들은 촉매 프레임워크, 그리고 펄.그것은 지금으로부터 약 4개월 전의 일이며 그들은 애플리케이션이 얼마나 더 좋아지고 있고 얼마나 더 유연성이 있는지에 대해 반복해서 이야기했습니다.

Perl을 사용하면 많은 양의 도구와 함께 모든 CPAN을 사용할 수 있습니다.적어도 한 번 살펴보는 것이 좋습니다.

Python의 경우 "좋은 배포" 문제는 Java의 경우처럼 깊은 의미가 없습니다.

Django의 Python 배포는 기본적으로 "파일 이동"입니다.원하는 경우 Subversion 트렁크 디렉터리에서 바로 실행할 수 있습니다.

Python을 사용하면 땀을 많이 흘리지 않고도 할 수 있습니다. distutils Django 앱을 Python의 사이트 패키지에 넣는 배포 키트를 직접 구축하세요.저는 별로 좋아하지 않는데, 해보면 정말 쉽습니다.

내 작업은 Linux에서 실행되므로 Subversion 디렉토리에서 Subversion 디렉토리로 이동하는 간단한 "install.py" 스크립트가 있습니다. /opt/this 그리고 /opt/that 디렉토리.저는 Apache 구성에서 명시적인 경로 설정을 사용하여 애플리케이션이 있는 디렉터리의 이름을 지정합니다.

파일을 제자리에서 편집하여 패치를 수행할 수 있습니다.(나쁜 정책입니다.) 저는 SVN 위치에서 편집하고 작은 설치를 다시 실행하여 실제로 모든 파일을 제어할 수 있는지 확인하는 것을 선호합니다.

cakephp.org

Cakephp는 정말 훌륭합니다. Ruby on Rails(1.2)와 정말 비슷합니다.PHP로 되어 있고 공유 호스트에서 매우 잘 작동하며 구현하기 쉽습니다.

유일한 단점은 문서가 다소 부족하다는 점이지만 문서를 빨리 ​​얻고 멋진 작업을 빠르게 시작할 수 있다는 것입니다.

나는 cakephp를 전적으로 추천한다.

개인적으로 나는 Django를 사용하여 다소 큰 프로젝트를 만들었지만 "몬트로시티"(Spring, EJB) 및 Twisted와 같은 매우 낮은 수준의 프로젝트와만 비교할 수 있습니다.

해석된 언어를 사용하는 웹 프레임워크는 대부분 초기 단계에 있으며 모든 프레임워크(즉, 적극적으로 유지 관리됨)가 나날이 향상되고 있습니다.

"좋은 배포"란 단일 파일을 J2EE 서버에 업로드하여 웹 애플리케이션을 배포할 수 있는 Java의 EAR 파일과 비교하는 것입니까?(그리고 그 정도는 덜하지만 WAR 파일도 있습니다.EAR 파일은 종속 프로젝트에 대한 WAR 파일을 가질 수 있습니다)

아직 Django나 Rails가 그 수준에 도달하지 못했다고 생각합니다. 하지만 제가 틀렸을 수도 있습니다...zuber는 Python 측면에 대해 더 자세한 내용이 담긴 기사를 지적했습니다.

카피스트라노 Ruby 측에서 도움이 될 수 있습니다.

불행하게도 저는 Python이나 Ruby를 많이 사용해 본 적이 없기 때문에 프로파일러나 디버거에 대해서는 도움을 드릴 수 없습니다.

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