>  기사  >  2018년 백엔드 기술 동향에 대한 간략한 논의

2018년 백엔드 기술 동향에 대한 간략한 논의

小云云
小云云원래의
2018-01-25 14:06:502455검색

이 글에서는 백엔드 기술에 대한 보다 명확한 이해를 돕기 위해 2018년 백엔드 기술 동향을 주로 다루겠습니다.

비동기 모드

Go 언어는 점점 더 대중화되고 있으며 많은 대형 인터넷 회사들이 백엔드를 GO로 전환하고 있습니다. Java 분야에서 잘 알려진 서비스 지향 프레임워크인 Dubbo도 비동기 모드로의 전환을 발표했습니다. 이는 큰 추세이며 비동기식 모델은 시장에서 검증되고 인정되었습니다.

웹 서버를 선택할 때 대부분의 사람들은 몇 년 전부터 동기식 차단 Apache 대신 비동기식 비차단 Nginx를 선택하기 시작했습니다. Nginx와 같은 비동기 프로그램이 더 나은 적응성과 더 강력한 동시성 기능을 제공하기 때문입니다. 이제 백엔드 비즈니스 개발 프로그래밍 측면에서 강력한 기술 역량을 갖춘 팀이 기술 스택을 동기 모드에서 비동기 모드로 전환하기 시작했습니다.

동기식 차단 모드에는 약한 동시성, 낮은 적응성, 느린 요청 등 많은 결함이 있어 서비스를 사용할 수 없습니다. 예를 들어, 백그라운드 인터페이스에서 타사 API를 호출하는 시나리오에서 동기화 모드는 효과가 매우 낮습니다. 과거에는 Java, PHP, C++, Python 및 Ruby 언어를 사용하여 개발된 동기식 차단 모드 프레임워크를 사용하는 사람이 점점 줄어들었습니다.

Node.js

Node.js도 매우 유명하고 유명하지만 Node.js를 회사 백엔드의 주요 프로그래밍 언어로 사용하는 기업은 여전히 ​​흔하지 않습니다. C++, Java, PHP 및 Python 언어에도 Node.js와 유사한 비동기 콜백 모드를 기반으로 하는 Swoole-1.0을 포함하여 유사한 솔루션이 있습니다.

핵심적인 이유는 Promise, Future, Yield/Generator, Async/Await 등을 포함하여 비동기 콜백의 기술 솔루션과 이에 기반한 일부 최적화 솔루션이 프로그램 개발 스타일과 습관을 변화시켰기 때문입니다. 이러한 기술을 사용하려면 엔지니어는 이러한 키워드와 기능을 사용하는 방법을 추가로 학습해야 합니다.

이러한 기술 솔루션을 사용하면 기존 프로그램과 호환되지 않습니다. 연구개발 비용이 엄청나고 원활한 전환이 어렵다고 할 수 있습니다. 비동기 콜백 기술 스택의 인기에 영향을 미쳤습니다. 이 프로그래밍 모델은 모든 사람이 받아들이기 어렵습니다.

Coroutine

코루틴 모드는 동기 차단의 유지 관리 가능성과 비동기 비차단의 높은 동시성 기능을 고려합니다. 이는 향후 백엔드 개발 분야의 주류 기술 솔루션이 될 것입니다.

가장 중요한 점은 코루틴 모드를 실행하려면 기존 프로젝트 코드를 약간만 조정하면 되며 이전 프로젝트와도 완벽하게 호환된다는 것입니다. 호환성을 위해서는 프레임워크 레이어만 필요합니다. 이를 통해 팀의 원활한 전환이 가능합니다.

코루틴 모드를 사용하면 개발자는 추가 키워드 및 기능 사용법을 전혀 배울 필요가 없습니다. 코딩 스타일은 동기 모드와 완전히 동일합니다.

다양한 코루틴 기술 중에서 GO가 가장 눈부신 기술입니다. 코루틴, 채널, 정적 언어, 성능, 풍부한 컴파일, 풍부한 표준 라이브러리, 완전한 생태학, Google 등 장점이 너무 많습니다. GO 是最耀眼的那一个。协程、通道、静态语言、性能、富编译、标准库丰富、生态完整、Google 等,优势太多了。GO 语言,个人认为是目前所有编程语言中,最值得学习的

Swoole 2.x 让 PHP 这门 20多年历史的老牌后台编程语言也能有协程的能力。相比 Go 这样的技术,PHP + Swoole 的技术栈,更适合快速开发、快速迭代、业务驱动的场景。毕竟动态语言比静态语言还是要更加灵活、开发效率更高。而 Go 更适合编写系统级软件、核心业务。

2018 年我重构了 swoole framework 这个很老的项目,底层支持 Swoole 2.x 协程模式。主要原因是车轮公司内部有很多项目基于这个框架,尤其是服务层全部用了 swoole framework。我们希望业务代码一行不改,可以一键切换为协程模式。理论上其他的同步阻塞 PHP 框架,如 Laravel 、Yii ,都可以实现只修改底层兼容 Swoole 2.x 协程,实现项目代码无缝切换协程模式。

使用协程后,整个系统的性能、并发能力、稳定性有了巨大提升。过去,线上经常出现一个慢请求导致整个服务器卡住的问题不存在了。

PHP & Swoole

虽然 Swoole 2.0 只有不到两年的历史,相比 Go 语言 10 年的耕耘,还有很长一段路要走。但相比 GO 这样的静态语言,PHP + Swoole 还是有很多优势的,PHP 更加简单易用,PHP 是动态语言,使用起来更加灵活。

当然,如果是新项目还是推荐使用 Swoft 这个专门为 Swoole 2.x내 생각에는 GO 언어가 현재의 모든 프로그래밍 언어 중에서 가장 배울 가치가 있는 언어입니다

.

Swoole 2.x를 사용하면 20년 이상의 역사를 지닌 베테랑 백엔드 프로그래밍 언어인 PHP에 코루틴 기능을 사용할 수 있습니다. Go와 같은 기술과 비교할 때 PHP + Swoole의 기술 스택은 신속한 개발, 빠른 반복 및 비즈니스 중심 시나리오에 더 적합합니다. 결국 동적 언어는 정적 언어보다 개발에 더 유연하고 효율적입니다. 그리고 Go는 시스템 수준 소프트웨어 작성 및 핵심 비즈니스에 더 적합합니다.


2018년에 저는 아주 오래된 프로젝트인 swoole 프레임워크를 리팩터링했습니다. 기본 레이어는 Swoole 2.x 코루틴 모드를 지원합니다. 주된 이유는 휠 회사 내에서 이 프레임워크를 기반으로 하는 프로젝트가 많기 때문입니다. 특히 서비스 계층에서는 모두 Swoole 프레임워크를 사용합니다. 비즈니스 코드가 한 줄도 바뀌지 않고 클릭 한 번으로 코루틴 모드로 전환될 수 있기를 바랍니다. 이론적으로 Laravel 및 Yii와 같은 다른 동기식 차단 PHP 프레임워크는 기본 호환 Swoole 2.x 코루틴만 수정하여 프로젝트 코드에서 코루틴 모드를 원활하게 전환할 수 있습니다.

코루틴을 사용한 후 전체 시스템의 성능, 동시성, 안정성이 크게 향상되었습니다. 과거에는 느린 요청으로 인해 종종 전체 서버가 온라인 상태로 멈추던 문제가 더 이상 존재하지 않습니다. PHP & Swoole

Swoole 2.0이 출시된 지 2년이 채 안 됐지만, 10년 동안 Go 언어를 열심히 개발한 것에 비하면 아직 갈 길이 멀다. 그러나 GO와 같은 정적 언어에 비해 PHP + Swoole은 여전히 ​​많은 장점을 가지고 있습니다. PHP는 동적 언어이며 사용이 더 쉽습니다. 물론, 새로운 프로젝트라면 Swoole 2.x용으로 특별히 설계된 프레임워크인 Swoft를 사용하는 것이 좋습니다.

이제 Swoole 2.0 코루틴을 통해 우리는 여전히 PHP의 미래에 대해 확신을 갖고 있습니다. 관련 추천:


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