programing

Play Framework 1.0과 2.0의 주요 차이점은 무엇인가요?

procenter 2021. 1. 14. 23:20
반응형

Play Framework 1.0과 2.0의 주요 차이점은 무엇인가요?


최근 Play Framework 2.0 릴리스를 통해 Play Framework 1과 2의 주요 차이점을 높은 수준의 관점에서 요약 할 수 있는지 알고 싶습니다.

나는 이미 몇 가지를 컴파일했습니다 (플레이 1.0-> 플레이 2.0) :

  • 템플릿 엔진 : Groovy Pages-> Scala 템플릿
  • 지속성 : 최대 절전 모드-> Ebean
  • 언어 지원 : Java-> Scala, Java
  • 동적 컴파일 : 바이트 코드 삽입-> SBT를 통한 동적 컴파일
  • 빌드 시스템 : 해당 사항 없음-> SBT
  • 확장 성 : 모듈, 플러그인-> 하위 프로젝트, 플러그인, SBT 플러그인

또 뭐야? Akka?


물론 여기에 몇 가지 중복 된 목록이 있습니다.

  • 이전 버전과의 호환성 중단 (처음부터 다시 작성)

  • 스칼라 대 자바로 프로그래밍 된 코어 (협업을 위해 스칼라를 배워야 함)

  • 템플릿 용 scala (하지만 마이그레이션을 용이하게하기 위해 그루비 템플릿에 대한 작업이 모듈로 수행되고 있음), 따라서 각 매개 변수의 유형을 지정해야합니다.

  • 파이썬 스크립트 대신 sbt 콘솔

  • 기본 제공 솔루션 대신 종속성 해결을위한 sbt (play 종속성 명령)

  • 모듈 가용성, 분명히 모두 마이그레이션하는 데 약간의 시간이 걸립니다.

  • 자바의 경우 최대 절전 모드 대신 ebean을 선호합니다 (하지만 최대 절전 모드를 사용할 수 있음).

  • scala의 경우 anorm과 함께 제공됩니다 (하지만 다른 라이브러리를 사용할 수 있음).

  • 더 모듈화되고 다른 구성 요소를 선택하기 쉽습니다.

  • 더 많은 타입 안전성-뷰와 심지어 라우트가 컴파일 타임에 확인됩니다.

  • 더 나은 성능

  • typesafe 지원, typesafe 스택 의 일부

  • 덜 마술, 그렇게 많은 바이트 코드 생성 및 유사한 것

  • 더 표준, (플레이 프로젝트는 표준 sbt 프로젝트입니다)

  • 다른 컨트롤러 API (더 자세한 정보, IMHO) 간단한 플레이 1.x 크 러드 컨트롤러유사한 플레이 2.0 컨트롤러비교할 수 있습니다.

  • scala는 일급 시민이지만 java도 동일하게 지원됩니다 (각각에 대한 기본 API가 있음).

  • 핫 리 컴파일이 더 느립니다 (아직 베타 버전이므로 해결되기를 바랍니다)

  • scala IDE 지원은 Java만큼 성숙하지는 않지만 멋지게 발전하고 있습니다.

  • akka에 위임 된 비동기 지원

  • nosql dbs와 같은 다양한 종류의 데이터 소스에 대해 더 잘 준비 됨

자세한 내용은 play 2.0 페이지 ( 여기에서 스페인어 번역 가능 ) 및 RC1 문서를 참조 하세요.

어쨌든, 가장 큰 차이점은 플레이 1.x가 j2ee에서 탈출하면서 자체 스택을 구축하려고했지만 이제는 scala, akka, sbt 및 회사의 지원을 기반으로하는 새롭고 대체 스택의 일부라는 것입니다. 타입 세이프처럼 ...


다음 사항이 중요하다고 생각합니다. 일부는 찬성이며 일부는 콘트라입니다. 선호하는 버전을 직접 확인해야합니다.

  • 코어는 Scala로 작성되었으므로 Scala 개발자가 아닌 경우 버그를 혼자서 쉽게 수정할 수 없습니다. 이것이 플레이의 강점 1.2. 또한 문서가 좋지 않으면 손실됩니다. 플레이 1.2에서는 코드를 간단히 살펴볼 수 있습니다. Eclipse를 사용하면 참조를 쉽게 검색 할 수있는 IDE가 있습니다. Scala와 비슷한 IDE가 있는지 잘 모르겠습니다. 이클립스 인텔 리즈가 잘 작동한다고 들었지만 자신의 경험은 없었습니다.

  • 구성 요소는 2.0에서 더 느슨하게 결합됩니다. Play 2.0에서는 선호하는 템플릿 엔진 또는 지속성 레이어를 쉽게 선택할 수 있습니다. 1.2에서는 지속성을 위해 JPA 이외의 것을 선택하는 것이 더 어려웠습니다.

  • Scala는 이제 일류 시민이므로 Scala 또는 Java로 애플리케이션을 작성하려는 경우 자유롭게 선택할 수 있습니다.

  • 다른 프레임 워크에 대한 종속성이 더 높습니다. 예를 들어 이제 그들은 Scala와 Akka가 필요합니다. 둘 다 훌륭하지만 복잡합니다. 따라서 이러한 프레임 워크 중 하나에 오류가 있으면 큰 문제가 발생할 수 있습니다. 플레이 1.2에서는 Hibernate에 대한 그러한 위험만을 볼 수 있습니다.

  • "Everything"은 이제 형식이 안전하며 컴파일러에서 확인할 수 있습니다.

  • Python을 SBT로 변경하면 개발 시스템에 훨씬 더 많은 메모리가 필요합니다. Scala 컴파일러에는 최소 512MB RAM이 필요합니다. 이는 연속 빌드 서버에서 문제가 될 수 있습니다.

물론 Codemwnci가 언급 한 작은 세부 사항이 많이 있습니다.


귀하의 목록은 아주 좋은 시작입니다. 내 목록은 몇 가지 추가 항목과 유사합니다.

  • 템플릿이 Groovy에서 Scala로 이동했습니다.
  • Scala는 선택적 플러그인이 아닌 일류 시민이됩니다.
  • 특히 템플릿에서 형식 안전성에 더 중점을 둡니다.
  • Python에서 SBT로
  • Ebean으로 최대 절전 모드
  • Akka 모듈이 아닌 Play 1.x의 비동기 기능을 보완하는 Akka
  • 코어에서 사용 가능한 Anorm (Scala 플러그인이 아닌)
  • 더 적은 동적 요소와 더 많은 컴파일로 인한 프로덕션 성능 향상
  • TypeSafe 스택에 통합

예상대로 목록 사이에 중복이 있습니다. 또한이 목록은 2011 년 11 월 기준이며 플레이 2는 아직 베타 버전입니다.


There are some very good answers here, I just wanted to add a few small points and provide details that became clearer with time.

In-Browser-Reporting: Play 2 reports on errors in Javascript ( Using google's closure compiler) and CSS files in the browser as well and not only Java/Scala files. This is really cool.

Deployment as WAR: Play 2 doesn't still officially support deployment or export as a WAR. A plug-in exists that is supposed to provide such support, but is in beta with some known issues. Complete support of all Play 2 features is not really possible without Servlets 3.1 containers, which will take at least half a year, probably more.

Plug-ins: For now, there are still many more for play 1, if you are depending on some plug in, make sure it exists for play 2 as well.

IDE support: IntelliJ 12 should come with built-in support for play 2. You can already get the EAP ( I ran out of allowed hyper links so you will have to google).

Subjective opinion: I feel as if Play 2 sacrificed some simplicity for support for more advanced features and more complete type-safety. I'm not saying Play 2 is hard or not intuitive, just less so than Play 1.

Play 1 was a web framework for web developers by web developers. Play 2 is a forward looking web framework for web developers by web developers.

So to say, there was a slight shift in focus, ease of use is no longer the primary goal, but one of two primary goals. This is of course only my opinion and I know very little.


You can find another take on the topic at the following blog post: http://blog.awfbeat.com/post/22314115684/impressions-of-play-framework-1-2-4-vs-2-0


Summarizing from this article:

  • Asset pipeline for direct use of Google Closure Compiler, CoffeScript and LESS
  • Everything is compiled, even the routes file
  • Low memory footprint for a running app
  • Async/reactive programming with Iteratee/Enumerator
  • As you mentioned, Scala, Akka, ...

ReferenceURL : https://stackoverflow.com/questions/8189893/what-are-the-major-differences-between-play-framework-1-0-and-2-0

반응형