'GitHub項目推薦|PHP面試問答與經驗分享'

"

GitHub JS項目推薦|PHP面試問答

《PHP 面試問答》結合實際 PHP 面試經驗,系統地彙總面試中的各類的問題,並嘗試提供簡潔準確的答案,為你面試 PHP 相關崗位提供“祕籍”。包含:網絡協議、數據結構與算法、PHP基礎、Web、MySQL、Redis、自我介紹、離職原因、職業規劃等部分

"

GitHub JS項目推薦|PHP面試問答

《PHP 面試問答》結合實際 PHP 面試經驗,系統地彙總面試中的各類的問題,並嘗試提供簡潔準確的答案,為你面試 PHP 相關崗位提供“祕籍”。包含:網絡協議、數據結構與算法、PHP基礎、Web、MySQL、Redis、自我介紹、離職原因、職業規劃等部分

GitHub項目推薦|PHP面試問答與經驗分享

項目分析

倉庫名稱:PHP-Interview-QA

標星(star):1181 (網紅級項目,高手作品,star可以走一波)

標星趨勢

"

GitHub JS項目推薦|PHP面試問答

《PHP 面試問答》結合實際 PHP 面試經驗,系統地彙總面試中的各類的問題,並嘗試提供簡潔準確的答案,為你面試 PHP 相關崗位提供“祕籍”。包含:網絡協議、數據結構與算法、PHP基礎、Web、MySQL、Redis、自我介紹、離職原因、職業規劃等部分

GitHub項目推薦|PHP面試問答與經驗分享

項目分析

倉庫名稱:PHP-Interview-QA

標星(star):1181 (網紅級項目,高手作品,star可以走一波)

標星趨勢

GitHub項目推薦|PHP面試問答與經驗分享

關注(watch):83

拷貝(fork):202

貢獻人數:1

倉庫大小:31 MB

代碼提交週期分佈

"

GitHub JS項目推薦|PHP面試問答

《PHP 面試問答》結合實際 PHP 面試經驗,系統地彙總面試中的各類的問題,並嘗試提供簡潔準確的答案,為你面試 PHP 相關崗位提供“祕籍”。包含:網絡協議、數據結構與算法、PHP基礎、Web、MySQL、Redis、自我介紹、離職原因、職業規劃等部分

GitHub項目推薦|PHP面試問答與經驗分享

項目分析

倉庫名稱:PHP-Interview-QA

標星(star):1181 (網紅級項目,高手作品,star可以走一波)

標星趨勢

GitHub項目推薦|PHP面試問答與經驗分享

關注(watch):83

拷貝(fork):202

貢獻人數:1

倉庫大小:31 MB

代碼提交週期分佈

GitHub項目推薦|PHP面試問答與經驗分享

綜合推薦指數: 2星半

項目概述

PHP面試問答

結合實際PHP面試,彙總自己遇到的問題,以及網上其他人遇到的問題,嘗試提供簡潔準確的答案

包含網絡、數據結構與算法、PHP、Web、MySQL、Redis、Linux、安全、設計模式、架構、面試等部分

本倉庫將持續更新,fork 無法看到最新內容,建議 Watch 或 Star ~~

面試流程

"

GitHub JS項目推薦|PHP面試問答

《PHP 面試問答》結合實際 PHP 面試經驗,系統地彙總面試中的各類的問題,並嘗試提供簡潔準確的答案,為你面試 PHP 相關崗位提供“祕籍”。包含:網絡協議、數據結構與算法、PHP基礎、Web、MySQL、Redis、自我介紹、離職原因、職業規劃等部分

GitHub項目推薦|PHP面試問答與經驗分享

項目分析

倉庫名稱:PHP-Interview-QA

標星(star):1181 (網紅級項目,高手作品,star可以走一波)

標星趨勢

GitHub項目推薦|PHP面試問答與經驗分享

關注(watch):83

拷貝(fork):202

貢獻人數:1

倉庫大小:31 MB

代碼提交週期分佈

GitHub項目推薦|PHP面試問答與經驗分享

綜合推薦指數: 2星半

項目概述

PHP面試問答

結合實際PHP面試,彙總自己遇到的問題,以及網上其他人遇到的問題,嘗試提供簡潔準確的答案

包含網絡、數據結構與算法、PHP、Web、MySQL、Redis、Linux、安全、設計模式、架構、面試等部分

本倉庫將持續更新,fork 無法看到最新內容,建議 Watch 或 Star ~~

面試流程

GitHub項目推薦|PHP面試問答與經驗分享

問題列表

網絡篇

  • 計算機網絡體系結構
  • UDP 的主要特點
  • TCP 的主要特點
  • 簡述三報文握手建立 TCP 連接
  • 建立 TCP 連接為什麼最後還要發送確認
  • 簡述 TCP 連接的釋放
  • TIME-WAIT 是什麼,為什麼必須等待 2MLS
  • TCP 粘包問題
  • UDP、TCP 區別,適用場景
  • 建立 socket 需要哪些步驟
  • DNS 主要作用是什麼
  • HTTP 報文組成
  • HTTP 狀態碼
  • 常見的 HTTP 方法
  • GET 與 POST 請求方式區別
  • HTTP 優缺點
  • HTTPS 通信原理
  • HTTP 2.0
  • WebSocket
  • IPv6 與 IPv4 有什麼變化
  • 什麼是心跳機制
  • 什麼是長連接

數據結構與算法篇

  • 概述
  • 實現基礎
  • 線性結構
  • 散列查找
  • 排序
  • 補充
  • 經典算法題

PHP 篇

  • echo、print、print_r、var_dump 區別
  • 單引號和雙引號的區別
  • isset 和 empty 的區別
  • static、self、$this 的區別
  • include、require、include_once、require_once 的區別
  • 數組處理函數
  • Cookie 和 Session
  • 預定義變量
  • 傳值和傳引用的區別
  • 構造函數和析構函數
  • 魔術方法
  • public、protected、private、final 區別
  • 客戶端/服務端 IP 獲取,瞭解代理透傳 實際IP 的概念
  • 類的靜態調用和實例化調用
  • PHP 不實例化調用方法
  • php.ini 配置選項
  • php-fpm.conf 配置
  • 502、504 錯誤產生原因及解決方式
  • 如何返回一個301重定向
  • PHP 與 MySQL 連接方式
  • MySQL、MySQLi、PDO 區別
  • MySQL 連接池
  • 代碼執行過程
  • base64 編碼原理
  • ip2long 實現
  • MVC 的理解
  • 主流 PHP 框架特點
  • 對象關係映射/ORM

Web 篇

  • SEO 有哪些需要注意的
  • img 標籤的 title 和 alt 有什麼區別
  • CSS 選擇器的分類
  • CSS sprite 是什麼,有什麼優缺點
  • display: none 與 visibility: hidden 的區別
  • display: block 和 display: inline 的區別
  • CSS 文件、style 標籤、行內 style 屬性優先級
  • link 與 @import 的區別
  • 盒子模型
  • 容器包含若干浮動元素時如何清理(包含)浮動
  • 如何水平居中一個元素
  • 如何豎直居中一個元素
  • flex 與 CSS 盒子模型有什麼區別
  • Position 屬性
  • PNG,GIF,JPG 的區別及如何選
  • 為什麼把 JavaScript 文件放在 Html 底部
  • JavaScript 數據類型
  • JavaScript 操作 DOM 的方法有哪些
  • JavaScript 字符串方法有哪些
  • JavaScript 字符串截取方法有哪些?有什麼區別
  • setTimeout 和 setInterval 的區別
  • 使用 new 操作符實例化一個對象的具體步驟
  • 如何實現 ajax 請求
  • 同源策略是什麼
  • 如何解決跨域問題
  • 引起內存洩漏的操作有哪些
  • 閉包理解及應用
  • 對 JavaScript 原型的理解
  • 對 JavaScript 模塊化的理解
  • 如何判斷網頁中圖片加載成功或者失敗
  • 如何實現懶加載
  • JSONP 原理
  • Cookie 讀寫
  • 從瀏覽器地址欄輸入 URL 到顯示頁面的步驟
  • Vue.js 雙向綁定原理
  • 如何進行網站性能優化
  • 漸進增強

MySQL 篇

  • 體系結構
  • 基礎操作
  • 數據庫設計範式
  • 數據庫設計原則
  • CHAR 和 VARCHAR 數據類型區別
  • LEFT JOIN 、RIGHT JOIN、INNER JOIN
  • UNION、UNION ALL
  • 常用 MySQL 函數
  • 事務
  • 常見存儲引擎
  • 常見索引
  • 聚族索引與非聚族索引的區別
  • BTree 與 BTree-/BTree+ 索引原理
  • 分表數量級
  • EXPLAIN 輸出格式
  • my.cnf 配置
  • 慢查詢

Redis 篇

  • Redis 介紹
  • Redis 特點
  • Redis 支持哪些數據結構
  • Redis 與 Memcache 區別
  • 發佈訂閱
  • 持久化策略
  • Redis 事務
  • 如何實現分佈式鎖
  • Redis 過期策略及內存淘汰機制
  • 為什麼 Redis 是單線程的
  • 如何利用 CPU 多核心
  • 集合命令的實現方法
  • 有序集合命令的實現方法
  • redis.conf 配置
  • 慢查詢

Linux 篇

  • Linux 目錄結構
  • Linux 基礎
  • 命令與文件查找
  • 數據流重定向
  • sed
  • awk
  • 計劃任務
  • Vim
  • 負載查看
  • Linux 內存管理
  • 進程、線程、協程區別
  • 進程間通信與信號機制

安全篇

  • 跨站腳本攻擊(XSS)
  • 跨站點請求偽造(CSRF)
  • SQL 注入
  • 應用層拒絕服務攻擊
  • PHP 安全
  • 偽隨機數和真隨機數

設計模式篇

  • 什麼是設計模式
  • 如何理解框架
  • 主要設計模式
  • 怎樣選擇設計模式
  • 單例模式
  • 抽象工廠模式
  • 工廠方法模式
  • 適配器模式
  • 觀察者模式
  • 策略模式
  • OOP 思想
  • 抽象類和接口
  • 控制反轉
  • 依賴注入

架構篇

  • OAuth 2.0
  • 單點登錄
  • REST
  • API 版本兼容
  • JWT
  • 畫出 PHP 業務架構圖
  • LVS
  • Ngnix
  • 服務化
  • 微服務
  • 服務註冊發現
  • 數據庫讀寫分離
  • 數據庫拆分
  • 分佈式事務
  • ID 生成器
  • 一致性哈希
  • Redis 集群
  • 消息隊列
  • 穿透、雪崩
  • 限流(木桶、令牌桶)
  • 服務降級
  • 語言對比

為何要寫這個

從事軟件開發,已經接近五個年頭了,去年面試中,發現自己依然處於尷尬的位置。簡單重複,缺乏挑戰的工作,已經沒有多大吸引力了,優秀的平臺,面試缺屢次碰壁。人上年紀之後,思維敏感度、記憶力都明顯有所下滑。

程序開發不要被限制在語言層面,這是大家都懂的道理。但是作為一個 PHP 開發者,很多時候都是纏繞在業務的溝壑,理想和現實總是相差甚大。去年由於部門重組,本來將近十餘人負責的項目,之後只剩兩三人負責,各種坑只能靠人肉解決,深感無力。

工作可能只是你的一部分,你必須有自己的能力定位。以前總覺得學什麼,做什麼都無所謂,需要學習的技術,花點時間快速學習就行,有新的技術出來,趕緊緊跟了解下。但這些年下來,發現自己卻沒有一樣能夠拿的出手的,甚至連一個像樣的作品也沒有。其實 PHP 的技術棧還是比較廣的,在對整個技術棧有一定的掌握之後,可能還需要深挖幾個自己喜歡的領域,否則在現今的就業市場裡面,沒有任何的競爭力。所以可以看到很多招聘者都在感慨,中高級工程師都去哪裡了。

面試或者面試他人,無法逃避,那就選擇面對。撰寫《PHP 面試問答》,構建一個面試體系,而不必慌張的臨時準備,時時刻刻都充分準備好,對自己負責,也對別人負責。

結合實際 PHP 面試,系統的彙總面試中的各種各樣的問題,嘗試提供簡潔準確的答案。如果你在 PHP 面試中遇到問題,歡迎提 Issues 交流。包含網絡、數據結構與算法、PHP、Web、MySQL、Redis、Linux、安全、設計模式、架構、自我介紹、離職原因、職業規劃、準備問題等部分。

項目地址

https://github.com/colinlet/PHP-Interview-QA

程序員新視界:分享有趣、有料的流行程序員話題,每天進步一點點。

"

相關推薦

推薦中...