>백엔드 개발 >PHP 문제 >15,000 PHP를 얻으려면 어떤 기술을 마스터해야 합니까?

15,000 PHP를 얻으려면 어떤 기술을 마스터해야 합니까?

王林
王林원래의
2019-11-18 09:53:143192검색

15,000 PHP를 얻으려면 어떤 기술을 마스터해야 합니까?

1. Linux

Linux에서는 일반적인 작업과 성능 모니터링 및 추적 외에도 다양한 고급 명령과 복잡한 명령을 사용하여 작업을 완료할 수 있습니다(watch/tcpdump/starce /ldd/ar 등).

쉘 스크립트 측면에서 백업, 자동화 처리, 모니터링 등을 포함한 많은 쉘을 완료하는 데 도움이 되는 비교적 복잡한 쉘 스크립트(500줄 이상)를 작성할 수 있었습니다.

awk/sed에 능숙해졌습니다. /perl 및 기타 응용 프로그램을 마음대로 작동하고 제어할 수 있습니다. 텍스트 통계를 처리하고 다양하고 복잡한 형식의 데이터를 분석합니다.

Linux의 내부 메커니즘에 대해 어느 정도 이해하고 커널 모듈 로딩, 시작 오류 처리, NFS, 디스크 관리 등과 같은 다른 관련 사항도 이해합니다.

2. Nginx

특정 마스터/워커 작업 메커니즘, Nginx 내부 이벤트 처리, 메모리 관리 등과 같은 소스 코드를 읽는 것부터 시작하여 Nginx의 작동 원리에 대해 심층적으로 학습하는 것을 고려할 수 있습니다. .;

동시에 Nginx 확장 기능의 개발을 배우고 자신만의 비공개 확장 기능을 사용자 정의할 수 있습니다. 동시에 Nginx+Lua에 대해 어느 정도 이해하고 결합하고 적용할 수 있는지 확인할 수 있습니다. 더 나은 모델을 만드는 것입니다.

3. MySQL/MongoDB

MySQL 애플리케이션의 경우 이전의 기본 SQL 최적화 외에도 대규모 데이터 배치 가져오기 및 내보내기, 온라인 대규모 배치의 테이블 구조 변경 등 일부 복잡한 작업을 완료할 수도 있습니다.

설치 및 구성 외에도 다양한 문제 추적, 마스터-슬레이브 동기화 지연 문제 해결 등 보다 복잡한 MySQL 문제를 처리할 수 있게 되었습니다. , 컴퓨터실 간 데이터 동기화 솔루션, MySQL 고가용성 아키텍처 등 이해가 필요합니다.

MySQL 애플리케이션 수준과 트랜잭션 메커니즘(격리 수준, 잠금 등)과 같은 MySQL의 핵심 핵심 기술을 숙지합니다. 트리거, 파티션 및 기타 기술에 대해 어느 정도 이해하고 적용할 수 있습니다.

4. Redis/Memcached

Memcached는 특별히 복잡하지 않기 때문에 소스 코드, 특히 메모리 관리 부분을 읽어보는 것이 좋습니다.

Redis 부분에서는 더 많은 응용 프로그램을 사용할 수 있습니다. 복잡한 데이터 구조(zset은 플래시 판매 시나리오 애플리케이션에서 원자성을 보장하기 위해 순위 순위 작업/트랜잭션 처리를 수행함)는 주로 aof와 같은 동기화 메커니즘의 애플리케이션 학습을 포함하고 가용성이 높은 Redis 애플리케이션 아키텍처 및 클러스터를 설계합니다.

5. PHP

기본 코드 응용 측면에서 PHP 개발에서 발생하는 문제의 95%를 해결할 수 있으며 대부분의 PHP 기술을 하루 안에 빠르게 사용할 수 있으며 장점을 이해할 수 있습니다. 프로젝트 개발 중에 빠르고 편리하게 기술을 선택할 수 있는 각 주류 PHP 프레임워크의 단점

구성 측면에서 확장 및 원칙의 일부 복잡한 고급 구성을 포함하여 좀 더 모호한 구성 옵션(php auto_prepend_file/auto_append_file)을 이해하세요.

php-fpm의 작동 메커니즘(예: 다양한 구성 시스템에서 php-fpm이 활성화하는 프로세스 수의 계산 및 원리)을 포함하여 php의 작동 메커니즘을 잘 이해하고 기본적으로 친숙해집니다. zend 엔진(vm/gc/stream 처리), 기본 PHP 커널 소스 코드 읽기(또는 관련 기사 읽기), PHP 내부의 핵심 데이터 구조(기본 유형/배열/객체) 구현에 대한 이해 메커니즘을 심층적으로 연구하고 핵심 인프라(zval/hashtable/gc)를 학습합니다.

6. C/C++

C/C++ 언어에 대한 깊은 이해를 갖고 기본 C/C++ 구문과 더불어 중소형 C/C++ 시스템 개발을 완료할 수 있습니다. 두 번째 단계에서는 데이터 구조, 특수 작업에 필요한 몇 가지 특수 데이터 구조(b-tree/rb-tree/skiplist/lsm-tree/trie-tree 등)를 배울 수도 있습니다. 시스템 프로그래밍, 멀티프로세스 및 멀티스레드 프로그래밍에 익숙하신 분 .);

멀티 스레드 프로그래밍은 잠금 충돌 문제를 잘 해결할 수 있으며, 개발 및 디버깅 작업을 동시에 수행할 수 있습니다. 저는 네트워크 프로그래밍에 익숙하고 멀티 스레드의 차이점을 이해합니다. -프로세스 모델/멀티 스레드 모델/비동기 네트워크 IO 모델, 다양한 비동기 네트워크 IO 모델(select/poll/epoll/iocp 등)의 원리와 차이점에 익숙하고 일반적인 비동기 프레임워크(ACE)에 익숙합니다. /ICE /libev/libevent/libuv/Boost.ASIO 등) 및 그 용도에 대해 여유가 있으시면 국내에서 개발된 라이브러리(예: muduo)도 살펴보실 수 있습니다. 우수한 설계 동시성 프로그램 아키텍처(리더-팔로우/마스터-워커 등) C/C++ 백엔드 서버 개발의 대부분의 문제(메모리 관리, 로그 인쇄, 높은 동시성, 프런트엔드 및 백엔드)를 이해합니다. 최종 통신 프로토콜, 서비스 모니터링), 각 백엔드 서버 최종 서비스 RPC 통신 문제(struct/http/thirft/protobuf 등)를 이해합니다.

7. 프런트 엔드

HTTP 프로토콜에 대한 심층적인 이해(각 세부 프로토콜, 특수 프로토콜 코드 및 그 이유 포함, 302개의 정적 파일이 캐시됨, 502는 nginx 뒤의 PHP가 다운되었음을 의미함) .) 이전의 다양한 프런트엔드 측면 외에도 프레임워크 애플리케이션 통합 기능이 있습니다.

추천 튜토리얼:

PHP 튜토리얼

위 내용은 15,000 PHP를 얻으려면 어떤 기술을 마스터해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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