>  기사  >  백엔드 개발  >  PHP를 배울 때 프론트엔드에는 PHP가 적합하고 백엔드에는 JAVA가 적합한 이유는 무엇입니까?

PHP를 배울 때 프론트엔드에는 PHP가 적합하고 백엔드에는 JAVA가 적합한 이유는 무엇입니까?

小云云
小云云원래의
2017-11-09 14:42:304750검색

이 제목을 보면 필연적으로 백엔드에 PHP를 사용하는 것이 아닌가? 단일 언어를 사용하는 것이 정말 편리합니다. 여기서 대규모 웹사이트나 시스템을 대상으로 하는 프론트엔드에는 PHP가 적합하고 백엔드에는 JAVA가 적합합니다. 예를 들어 Taobao의 핵심 개발 언어는 JAVA를 사용하지만 프런트 엔드 프레젠테이션 계층은 PHP를 사용합니다. 다시 질문드립니다. Python, Ruby, Perl과 같은 웹 개발 언어가 많이 있습니다. 넷, 왜 PHP를 선택해야 할까요?
이유는 다음과 같습니다.
PHP는 유연하고 시작이 빠르며 수정이 쉽고 게시가 빠르다는 단점이 있습니다(철자 오류, SQL 삽입, 업로드 실행 등과 같은 일반적인 오류). , 실행 효율성이 낮고 글로벌 캐시가 부족합니다. Java의 장점은 안정적이고 신뢰할 수 있으며 운영 효율성이 높고 실수하기 쉽지 않다는 것입니다(강력한 타이핑, 사전 컴파일, 예외를 차단해야 함 등). 단점은 개발 효율성과 출시율이 상대적으로 낮습니다. 이는 상대적인 용어로, PHP가 대규모 웹을 개발할 수 없다는 의미도 아니고, JAVA가 비효율적이라는 의미도 아닙니다.
그런 다음 MVC 계층 구조의 관점에서 볼 때 일반 웹 사이트 프로젝트의 개발 주기에서 뷰는 요구 사항이 가장 자주 변경되고 가장 많은 조정이 이루어지며, 컨트롤러, 마지막으로 모델이 그 뒤를 따릅니다. 이것은 이해하기 매우 쉽습니다. 할 일이 없으면 누가 매일 데이터 구조를 변경합니까? 제어 구조는 버전이 업그레이드될 때마다 어느 정도 변경되어야 합니다. View는 언제 BU, PM, UED가 이틀만에 바뀌지 않나요?
둘 사이의 통신에 있어서 RPC 기술은 현재 웹 서비스/Hessian/RESTful API 여부에 관계없이 개발자가 이기종 플랫폼 간의 차이점과 세부 사항을 크게 고려하지 않고 기능 개발에 집중할 수 있도록 해줍니다. 이는 대기업에서 두 ​​가지 언어를 동시에 사용하는 솔루션이 너무 많은 복잡성과 작업량을 도입하지 않는다는 것을 의미합니다.
일반적으로 PHP를 사용하면 사용자의 프론트엔드에 가까워서 빈번하고 사소한 프론트엔드 업데이트도 더 빠르게 완료할 수 있고, 다양한 요구사항의 변화에도 자유롭게 대응할 수 있습니다. 페이지 구조 조정, 사용자 입력 내용의 기본 검증, 사용자 상호 작용에만 관련된 간단한 로직 등은 모두 PHP를 사용한 개발에 적합합니다. 심지어 페이지 변경 사항은 Smarty와 같은 템플릿 기술을 통해 프런트엔드 팀으로 마이그레이션될 수도 있습니다. 기본 비즈니스 로직과 데이터 업데이트는 Java를 사용하여 개발되므로 재사용성을 효과적으로 개선하고 성능과 처리량을 개선하며 보안 문제를 방지할 수 있습니다. 개발 효율성이 약간 떨어지면 유지 관리성이 향상되고, 느린 릴리스 속도는 문제가 되지 않습니다. 왜냐하면 일반적으로 기본 비즈니스 로직에 대한 조정은 전체적으로 수정되고 레이어별 테스트 및 확인 후에만 릴리스될 수 있기 때문입니다.
그래서 대규모 웹사이트에서는 프론트엔드에 PHP를, 백엔드에 Java를 사용하는데, 이는 채용 및 유지 관리가 쉽고 안정적인 시스템과 높은 성능을 갖추고 있으며 보안이 크게 향상됩니다. 코드 재사용 및 문서 완성도도 향상되었습니다. 위와 같은 이점을 손쉽게 누릴 수 있다면 더 폭넓은 건축가의 지식 혈통을 요구하는 것은 전혀 문제가 되지 않습니다.

단일 언어를 사용하지 않는 이유:

단일 솔루션은 실제로 좋은 격리를 달성할 수 있으며, PHP도 서비스를 제공할 수 있습니다. 실제로 성능 문제는 언어 차이보다는 알고리즘과 아키텍처의 문제인 경우가 많습니다. Velocity나 JSTL과 같은 것도 뛰어난 격리 솔루션입니다.
그러나 우리 모두는 현실이 이상보다 훨씬 더 빈약하다는 것을 알고 있습니다. 이러한 솔루션은 높은 압박감 속에서 많은 문제를 노출시키고 이중 언어 사용의 장점을 반영하며, 변경하기 어려운 몇 가지 사항을 자세히 설명합니다. PHP의 동적 스크립팅 언어의 특성상 FastCGI를 적용하기 위해서는 운영 환경을 구축하기 전에 각 요청 주기마다 클래스, 함수 및 상수를 반복적으로 실행해야 합니다. 다른 언어와 달리 포크 비용을 줄이기 위해 요청을 처리하는 프로세스를 재사용할 뿐입니다. 초기화 후에는 FastCGI 인터페이스를 통해 데이터를 가져오고 해당 인터페이스로 데이터를 반환하므로 여러 가지 이유로 기본적으로 성능을 복구하는 것은 불가능합니다. JIT 브랜드 스포츠카의 Java보다 더 나쁩니다.
2. PHP에서는 실수하기가 너무 쉽고 찾기 어렵습니다. 공식 Zend Studio를 사용해도 사실은 바뀔 수 없습니다. 프로그램의 품질이 높고 큰 실수가 없는지 확인하려면 충분한 경험과 책임감 있는 QA. Taobao의 Huang Shang은 한때 IDE에 대해 농담을 했습니다. "미들웨어 부족"이라는 농담의 이유는 최근 몇 년간 많이 개선되었습니다. 주로 많은 미들웨어 지원이 더욱 광범위해져서 PHP에 도움이 되었지만 개발의 뿌리는 여전히 C 및 Java 커뮤니티에 있기 때문입니다. . 성능과 오류 발생 가능성은 언어 특성으로 인한 기술적인 어려움이며, 유연성과 속도를 위해 필요한 대가이기도 합니다. 근본적인 개선을 기대하기는 어렵습니다.
3. Java 세계에도 JSTL, Velocity, Freemaker 등이 있지만 PHP의 유연하고 강력한 동적 기능, 풍부한 기능과 클래스 라이브러리, 쉬운 학습 비용, 엄청난 양의 문서에 비하면 쓰레기에 불과합니다. , 그냥 쓰레기 야! JSTL을 변경한 후 컨텍스트를 다시 시작해야 합니까? 캐시가 비활성화된 경우에도 Velocity를 다시 시작해야 합니까? 캐싱이 켜져 있을 때 Velocity의 성능이 저하될 수 있습니까? 이를 무시하더라도 특정 데이터 검증 규칙을 조정할 때 Action을 다시 시작해야 합니까?

이제 모두가 이 질문에 대한 명확한 답을 갖게 될 것입니다.

위 내용은 PHP를 배울 때 프론트엔드에는 PHP가 적합하고 백엔드에는 JAVA가 적합한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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