백엔드 개발 PHP 튜토리얼 Rails와 Node.js/PHP/Python 등의 비교

Rails와 Node.js/PHP/Python 등의 비교

Nov 11, 2016 am 09:58 AM
ruby

우선 비교 포스팅이 아닙니다. 언어와 프레임워크를 비교할 수 있나요?

두 번째로, 저는 그것들을 모두 사용하지 않았습니다

이 글의 유일한 목적은 여러분이 정말로 집중해야 할 것이 무엇인지 제 자신(그리고 탐색 중인 여러분)에게 상기시키는 것입니다

PHP
PHP는 단순하지만 더러운 언어입니다. 단순하다는 것은 학습 곡선이 낮다는 것을 의미합니다. 주로 wordpress, discuz 등과 같은 PHP 기반의 바보 같은 응용 프로그램이 많기 때문입니다. 또는 포럼 요구 사항, Google을 잘 활용하는 한 코드 한 줄도 작성할 필요가 없습니다. 그런데 PHP 자체가 단순할까요? 개인적으로는 그렇지 않다고 생각하며, 그 이유를 하나씩 나열하지는 않겠습니다. 더티는 디자인이 더 문제인 것 같습니다. 밑줄로 연결된 함수 이름만 봐도 알 수 있듯이 숙련된 PHP 프로그래머가 아니면 누구나 작성하기 어렵습니다. 심각하지 않은 프로그램.

권장 PHP 개발 프레임워크: 첫 번째 클래스: Yii, Yaf, Symfony; 두 번째 클래스: Zend, Cake, CI

Django
Django는 Python 기반 웹 개발 프레임워크이며 매우 유사합니다. Rails와 마찬가지로 몇 년 전만 해도 Python이 Ruby보다 "신뢰성"이 높았다는 점에서 Rails에 비해 장점이 있었습니다. 소위 신뢰성이란 더 많은 사람들이 사용하고, 더 많은 문서를 보유하고 있으며, 질문을 통해 답변을 찾을 수 있다는 것을 의미합니다. , 최근 몇 년 동안 Ruby가 개발되면서 점차적으로 등장하고(주로 Rails를 기반으로 함) 점점 더 많은 웹사이트에서 Rails를 사용하고 있습니다. 언어 설계 측면에서만 Python이 반드시 Ruby보다 단순하지는 않으며 일관성도 약간 덜 일관성이 있습니다. Python의 유일한 장점은 전 세계 대부분을 차지할 정도로 많은 진지한 과학자들이 Python을 사용하고 있다는 것입니다. Ruby는 일본에서 만들어진 반면 Ruby는 Python에서 빌린 것입니다. 루비가 파이썬과 동시에 유럽과 미국 국가에서 탄생한 언어였다면, 지금의 파이썬에도 문제가 없을 것이라고 믿습니다.

Rails
Rails는 이제 Ruby의 특성을 최대한 활용하는 거의 모든 주류 웹 프레임워크에서 Rails의 그림자를 볼 수 있습니다. Rails는 크고 작은 모든 애플리케이션에 적용될 수 있습니다. 매우 큰 규모의 애플리케이션은 어떤 스크립팅 언어만으로는 처리할 수 없습니다. 수년간의 개발 끝에 Rails는 그 영광을 잃어버렸고 이제 "뛰어난" 상태에 있습니다. 포괄적인 기능(사용 용이성, 단순성, 효율성, 학습 곡선 등) 측면에서 Rails를 능가할 수 있는 프레임워크는 없다고 말할 수 있습니다. .), NodeJS는 좋지 않고, 다른 "틈새" 언어는 더더욱 좋지 않습니다. 반대로 Rails는 급속도로 발전하고 있는 상태이며, 초대형 애플리케이션의 성공적인 사례가 나타날 것입니다. 앞으로도 하나씩.
ASP, JSP 등
복잡하고 비대하며 기업체, 사람 축적에 의존하는 기업, 국영기업, 은행, 전자상거래, 스타트업 기업은 자살한다 이것을 사용하면 자살하고 중요한 부서에서 이것을 사용하지 않으면 자살합니다. (모집) 그것을 할 수 없는 사람은 애프터 서비스만 이용할 수 있습니다.

기타
다른 언어도 나름대로의 용도가 있지만, 엄밀히 말하면 Clojure, Io 등 네트워크 개발에 특화되어 있다고 볼 수는 없습니다. 지금은 여기서 논의하지 않겠습니다.

요약:

학습 경로를 다시 선택하면(언어만, 서버, DB 측면 제외)

깊이 들어가지 않고 PHP에 대해 배우겠습니다

PHP MVC 프레임워크인 Yii에 대해 알아보세요. 깊이 들어갈 필요가 없습니다.

Ruby 기본 학습

Rails 기본 학습

Ruby 철저하게 학습

Rails를 철저하게 배우세요

Python, Django, Lisp, Clojure, NodeJS 등을 이해하세요.

---------------------- --- -구분선---------

이 문서에서는 적용 가능한 시나리오를 설명합니다. 레일 및 nodejs의 경우 매우 정확합니다. Rails와 nodejs는 가장 주목할만한 두 가지 백엔드 기술입니다.
면책 조항: 이 기사는 결코 NodeJS와 Ruby on Rails의 장점과 전략에 대한 논의가 아닙니다. 이는 의사결정 과정의 일부 사고와 결정 이면의 이유만을 설명합니다. 두 프레임워크 모두 훌륭하고 원래 설계 목표를 잘 달성했습니다. 이것이 바로 우리 모듈 중 일부가 여전히 NodeJS에서 실행되는 이유입니다.

저는 NodeJs의 열렬한 팬입니다. 저는 이것이 매우 흥미로운 기술이라고 생각하며 점점 더 대중화될 것이라고 믿습니다. 최근 Targeter 앱을 NodeJS에서 Ruby on Rails로 마이그레이션했지만 저는 이 기술에 대해 큰 감사를 표합니다.

NodeJS를 사용하여 개발한 이유는 간단했습니다. 저는 앱을 매우 빠르게 온라인에 올리는 패키지를 가지고 있으며(이 작업을 수행하는 데 54시간이 걸렸습니다) Ruby보다 JavaScript를 더 많이 사용합니다. 우리의 기술 아키텍처에는 MongoDB가 포함되어 있기 때문에 내 전문 지식은 NodeJS 환경에서만 의미가 있습니다. 하지만 애플리케이션의 크기가 커지면서 이 애플리케이션을 구현하기 위해 NodeJS를 선택한 것이 잘못된 선택이라는 것을 깨달았습니다. 그 이유를 간략하게 설명하겠습니다.

NodeJS는 단기 요청이 많은 애플리케이션에 매우 적합합니다. 기존 CRUD 애플리케이션의 경우에는 괜찮지만 이상적이지는 않습니다. 이러한 종류의 애플리케이션을 처리하기 위해 PHP, Ruby 및 Python 언어에는 매우 성숙하고 최적화된 프레임워크가 있습니다. NodeJS의 모든 것이 비동기적으로 실행된다는 생각은 CRUD 애플리케이션에 영향을 미치지 않습니다. 다른 언어로 널리 사용되는 프레임워크는 비동기 실행을 포함하여 모든 요구 사항을 충족하는 매우 우수한 캐싱 기술을 제공합니다.

NodeJS는 매우 젊은 기술 프레임워크이며 주변 라이브러리는 그다지 성숙하지 않습니다. 나는 훌륭하고 훌륭한 라이브러리를 많이 개발한 코드 기증자들을 모욕하지 않고 이렇게 말합니다. 그러나 대부분의 라이브러리는 개선이 필요하며 빠르게 성장하는 NodeJS 환경은 각 버전 업그레이드에 많은 변경 사항이 있음을 의미하므로 최신 기술을 사용하는 경우 즉시 최신 상태를 유지하는 것이 매우 중요합니다. 가능합니다. 이는 기업가들에게 많은 어려움을 안겨줍니다.

또 다른 이유는 테스트 때문입니다. NodeJS의 테스트 프레임워크는 나쁘지 않지만 Django나 RoR 플랫폼의 테스트 프레임워크에 비해 여전히 열등합니다. 매일 제출되는 코드 수가 많고 하루나 이틀 내에 출시되는 애플리케이션의 경우 프로그램에 문제가 없는 것이 중요합니다. 그렇지 않으면 여러분의 노력이 가치가 없을 것입니다. 멍청한 버그를 고치느라 하루를 보내고 싶어하는 사람은 아무도 없습니다.

마지막으로 우리에게 필요한 것은 모든 것을 캐시할 수 있는 것이며 가능한 한 빨리 구현되어야 합니다. 우리의 애플리케이션은 초당 수만 건의 조회수로 성장하고 있지만 결코 많은 액세스 요청이 발생하지 않습니다. 이것은 채팅 프로그램이 아닙니다. 메인 프로그램은 최대 1000RPS에 도달할 수 있습니다. 이러한 로드는 Ruby on Rails 및 Nginx에는 아무 것도 아닙니다.

지금도 이 기사를 읽고 계시다면 제가 말하려는 모든 내용을 보셨을 것이며, 우리 애플리케이션이 여전히 NodeJS를 사용하고 있는 곳이 어디인지 알고 싶을 수도 있습니다. 음, 우리 애플리케이션은 두 부분으로 구성되어 있습니다. 첫 번째는 사용자가 보는 부분인 인터페이스이고, 두 번째는 리포트 관리와 로깅 기능을 담당하는 부분입니다. 후자는 짧은 주기 요청이 많은 NodeJS의 가장 좋은 사용 시나리오 중 하나입니다. 작업의 이 부분은 데이터 푸시가 완료되기 전이라도 가능한 한 빨리 실행되어야 합니다. 요청 실행이 아직 종료되지 않은 경우 브라우저는 응답이 종료될 때까지 계속 기다리며 이는 사용자 경험에 영향을 미치기 때문에 중요합니다. NodeJS의 비동기적 특성이 우리를 구했습니다. 데이터는 데이터베이스에 저장되거나 처리되며, 요청이 완료되면 브라우저는 다른 중요한 작업을 시작할 수 있습니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Golang과 Ruby의 유사점과 차이점에 대한 심층 분석 Golang과 Ruby의 유사점과 차이점에 대한 심층 분석 Jun 01, 2024 pm 08:46 PM

Go와 Ruby의 주요 차이점은 Go는 경량 병렬성과 효율적인 메모리 관리를 지원하는 정적으로 유형이 지정된 컴파일 언어이며 동시성 애플리케이션을 작성하는 데 적합하다는 것입니다. Ruby는 진정한 병렬성을 지원하지만 메모리 관리를 지원하는 동적으로 유형이 지정된 해석 언어입니다. 수동 제어가 필요하며 유연한 웹 애플리케이션을 작성하는 데 적합합니다.

Ruby는 MySQL을 작동하기 위해 Mysql2 연결을 어떻게 사용합니까? Ruby는 MySQL을 작동하기 위해 Mysql2 연결을 어떻게 사용합니까? Apr 17, 2023 pm 10:07 PM

Ruby는 mysql2를 이용해 MySQL을 동작시켜 mysql에 접속하여 mysql을 동작시킨다. geminstallmysql2는 mysql에 연결하여 연결을 설정합니다. require'mysql2'conn=Mysql2::Client.new({host:'192.168.200.73',username:'root',password:'P@ssword1!'}) 허용되는 연결 옵션은 다음과 같습니다: Mysql2::Clie

Python, Ruby 및 기타 언어에서 증가 연산자를 더 이상 사용하지 않는 이유는 무엇입니까? Python, Ruby 및 기타 언어에서 증가 연산자를 더 이상 사용하지 않는 이유는 무엇입니까? May 11, 2023 pm 04:37 PM

많은 사람들이 현상을 발견했을 수 있습니다. 즉, 일부 현대 프로그래밍 언어(물론 "최근" 프로그래밍 언어를 말하는 것이 아님)에서 증가 및 감소 연산자가 취소되는 현상입니다. 즉, 이들 언어에는 i++ 또는 j--와 같은 표현은 없고, i+=1 또는 j-=1만 그런 표현이 있습니다. 이번 답변에서는 이러한 현상의 배경과 이유를 디자인 철학의 관점에서 살펴보겠습니다. 엄밀히 말하면 주류 프로그래밍 언어 중 Python, Rust, Swift만이 증가 및 감소 연산자를 지원하지 않는 것 같기 때문에 "i++가 사라지고 있다"고 말하는 것은 편파적일 수 있습니다. 제가 처음 Python을 접했을 때도 마찬가지였습니다.

MySQL과 Ruby를 사용하여 간단한 데이터 변환 기능을 구현하는 방법 MySQL과 Ruby를 사용하여 간단한 데이터 변환 기능을 구현하는 방법 Sep 21, 2023 am 08:07 AM

MySQL과 Ruby를 사용하여 간단한 데이터 변환 기능을 구현하는 방법 실제 개발 작업에서는 하나의 데이터 형식을 다른 형식으로 변환하기 위해 데이터 변환이 필요한 경우가 많습니다. 이 기사에서는 MySQL과 Ruby를 사용하여 간단한 데이터 변환 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 MySQL과 Ruby 환경을 설치하고 구성해야 합니다. MySQL 데이터베이스가 설치되어 있고 명령줄이나 기타 도구를 통해 데이터베이스에 연결할 수 있는지 확인하세요. 또한, 설치해야 할

MySQL과 Ruby를 사용하여 간단한 비동기 작업 스케줄링 기능을 구현하는 방법 MySQL과 Ruby를 사용하여 간단한 비동기 작업 스케줄링 기능을 구현하는 방법 Sep 20, 2023 am 10:48 AM

MySQL과 Ruby를 사용하여 간단한 비동기 작업 예약 기능을 구현하는 방법 대부분의 이전 웹 애플리케이션은 요청을 처리하기 위해 동기 방식을 사용했습니다. 즉, 사용자가 요청을 보낸 후 서버는 즉시 요청을 처리하고 결과를 반환합니다. . 그러나 애플리케이션의 복잡성이 증가함에 따라 동기식 방법의 처리 효율성은 점차 비효율적이게 되므로 비동기식 작업 스케줄링은 현대 웹 애플리케이션에서 일반적인 요구 사항이 되었습니다. 이 기사에서는 MySQL과 Ruby를 사용하여 작업을 포함한 간단한 비동기 작업 스케줄링 기능을 구현하는 방법을 소개합니다.

MySQL과 Ruby를 사용하여 간단한 데이터 쿼리 및 분석 기능을 구현하는 방법 MySQL과 Ruby를 사용하여 간단한 데이터 쿼리 및 분석 기능을 구현하는 방법 Sep 21, 2023 pm 04:36 PM

MySQL과 Ruby를 사용하여 간단한 데이터 쿼리 및 분석 기능을 구현하는 방법 오늘날의 빅데이터 시대에 데이터 분석은 많은 분야에서 없어서는 안 될 부분이 되었습니다. 데이터 분석을 수행할 때 가장 일반적으로 수행되는 작업은 데이터 쿼리입니다. 이 기사에서는 MySQL 및 Ruby 프로그래밍 언어를 사용하여 간단한 데이터 쿼리 및 분석 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 MySQL 및 Ruby 개발 환경을 설치해야 합니다. MySQL은 오픈 소스 관계형 데이터베이스입니다.

MySQL과 Ruby를 사용하여 간단한 데이터 분석 보고서 기능을 구현하는 방법 MySQL과 Ruby를 사용하여 간단한 데이터 분석 보고서 기능을 구현하는 방법 Sep 20, 2023 pm 05:09 PM

MySQL 및 Ruby를 사용하여 간단한 데이터 분석 보고 기능을 구현하는 방법 소개: 오늘날의 데이터 중심 시대에 데이터 분석은 기업의 의사 결정 및 개발에 중요한 역할을 합니다. 데이터 분석의 중요한 부분인 데이터 분석 보고서는 데이터를 구성하고 시각화하고 해석하는 데 매우 중요합니다. 이 기사에서는 MySQL과 Ruby를 사용하여 간단한 데이터 분석 보고서 기능을 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다. 1. 데이터베이스 설계 및 테이블 생성은 데이터 분석 및 보고 기능을 구현해야 합니다.

Ruby 개발에 Redis 적용: 복잡한 데이터 구조를 캐시하는 방법 Ruby 개발에 Redis 적용: 복잡한 데이터 구조를 캐시하는 방법 Jul 30, 2023 pm 08:58 PM

Ruby 개발에 Redis 적용: 복잡한 데이터 구조를 캐시하는 방법 개요: Redis는 데이터 캐시 및 임시 저장소에 널리 사용되는 고성능 키-값 저장소 시스템입니다. Ruby 개발에서는 Redis를 사용하여 복잡한 데이터 구조를 캐시함으로써 시스템 성능과 응답 속도를 향상시킬 수 있습니다. 이 기사에서는 Redis를 사용하여 Ruby에서 복잡한 데이터 구조를 캐시하는 방법을 소개하고 코드 예제를 제공합니다. 배경: 개발 과정에서 우리는 복잡한 데이터 구조를 처리해야 하는 상황에 자주 직면합니다. 예를 들어,

See all articles