대규모 프로젝트를위한 NodeJS 대 Play 프레임 워크
나는 큰 응용 프로그램을 구축하기 위해 두 개의 다른 스택 사이에서 정말 찢어졌습니다. 한 손으로이 옵션이 있습니다.
- Node.js
- 표현하다
- 커피 스크립트
- 커피
- mongoose / mongodb 또는
- presistencejs / mysql
- 스칼라를 사용한 플레이 프레임 워크
- mysql이있는 Anorm
- 또는 mongodb
node.js 경로는 내가 이미 알고있는 coffeescript에 모든 서버 측 코드, 뷰 및 클라이언트 측 코드를 작성할 수 있기 때문에 나에게 매력적입니다. 이 길을 따라 가면 어떤 db 경로를 택할지 아직 100 % 확신 할 수 없습니다. mongoose를 사용하면 데이터를 빠르고 쉽게 저장할 수 있지만, 내가 염두에두고있는 데이터 모델 (매우 SQL)을 고려할 때 실제 관계가 부족하면 작업하기가 더 어려울 수 있습니다.
Java를 사용할 때는 프레임 워크를 잘 알고 있지만 Scala에 대해 잘 모르기 때문에 Play Framework 경로도 매력적입니다. 따라서 해당 언어를 배우면서 작업 할 때 생산성에 타격을 줄 수 있습니다. Anorm 데이터베이스 액세스 레이어는 내가 선호하는 SQL을 직접 작성할 수 있고 결과를 객체에 자동으로 매핑하여 많은 노력을 절약 할 수 있기 때문에 매력적입니다.
나는 node.js로 계속 기울고 있지만 최고의 db 액세스 레이어에서 판매되지 않았습니다. 누구든지 이것에 대한 경험이 있고 통찰력을 공유 할 수 있습니까?
선택하는 스택은 응용 프로그램의 요구 사항에 따라 달라집니다. Play vs. Node의 강점을 살펴 보겠습니다.
마디
- 실시간 애플리케이션 (채팅, 피드)
- 이벤트 중심 아키텍처
- 클라이언트-서버 작업 (예 : 파일 제공)을 수행 할 수 있지만 이에 적합하지 않습니다.
- 추가 패키지로 사용 가능한 데이터베이스 관리, 테스트 도구 등
플레이!
- 클라이언트-서버 애플리케이션 (웹 사이트, 서비스)
- 비공유 아키텍처
- 실시간 업무 (예 : Websocket)를 수행 할 수 있지만 이에 적합하지 않습니다.
- 코어에 내장 된 데이터베이스 관리 (마이그레이션 포함!), 테스트 도구 등
애플리케이션이 기존의 웹 기반 모델과 더 가깝게 일치한다면 Play가 최선의 선택 일 것입니다. 즉각적인 피드백과 실시간 동적 메시징이 필요한 경우 Node가 더 나은 선택입니다.
기존의 대규모 응용 프로그램의 경우 Play! 기본 제공 단위 및 데이터베이스 마이그레이션과 함께 기능 테스트로 인한 프레임 워크. 개발 프로세스에 통합되면 예상대로 작동하고 안정적이고 오류가없는 최종 제품을 향해 먼 길 을 갑니다 .
웹 프레임 워크를 비교할 때 고려해야 할 10 가지 주요 범주가 있습니다.
- 배우기 : 시작하기, 증가, 전반적인 학습 곡선.
- 개발 : 라우팅, 템플릿, i18n, 양식, json, xml, 데이터 저장소 액세스, 실시간 웹.
- 테스트 : 단위 테스트, 기능 테스트, 통합 테스트, 테스트 범위.
- 보안 : CSRF, XSS, 코드 삽입, 헤더, 인증, 보안 권고.
- 빌드 : 컴파일, 테스트 실행, 정적 콘텐츠 (sass / less / CoffeScript) 전처리, 패키지.
- 배포 : 호스팅, 모니터링, 구성.
- 디버그 : 단계별 디버거, 프로파일 러, 로깅,
- 규모 : 처리량, 지연 시간, 동시성.
- 유지 : 코드 재사용, 안정성, 성숙도, 유형 안전성, IDE.
- 공유 : 오픈 소스 활동, 메일 링리스트, 인기도, 플러그인, 상업적 지원, 일자리.
이 두 프레임 워크가이 10 가지 차원에서 어떻게 비교되는지 자세히 알아 보려면 내 토크 Node.js와 Play 프레임 워크 를 확인하세요 .
참조 URL : https://stackoverflow.com/questions/7639742/nodejs-vs-play-framework-for-large-project
'Program Tip' 카테고리의 다른 글
Symfony 2.0 단계별 자습서 필요 (0) | 2021.01.08 |
---|---|
Mod Zero를 할 수 없습니까? (0) | 2021.01.08 |
ssh : 호스트 이름을 확인할 수 없습니다. github.com : 이름 또는 서비스를 알 수 없습니다. (0) | 2021.01.08 |
OS 스케줄러는 어떻게 CPU를 다시 제어합니까? (0) | 2021.01.08 |
JAXB가 목록에 대한 setter를 생성하지 않는 이유 (0) | 2021.01.08 |