第一篇:PHP工程師技能水平區(qū)分
PHP工程師技能水平區(qū)分
說句實話,寫這個真夠無聊的.本來看了某位大蝦的類似文章,腹誹了幾句也就算了.但是昨天晚上有個客戶拿著這篇文章問我: 你丫的自己做
外包,你算幾段PHPer?遂感覺那篇文章對某些半通不通之人的誤導(dǎo)之深.無法,只有寫此文章表明我對PHPer的水平區(qū)分的立場.關(guān)于具體收入水平,總的來說因為這幾年P(guān)HP培訓(xùn)班的加多,大量PHP新手開始搞亂市場,所以很難說清.在此貿(mào)然寫出有誤導(dǎo)之嫌.而且收入水平和所在地區(qū)有很大的關(guān)系,例如重慶的同水平PHPer肯定比北京的工資低.但在重慶省著點花錢反而比北京剩的工資多.不過,PHP的市場確實在逐步混亂,目前因為培訓(xùn)班/大學(xué)選修課等原因,初級PHPer大量增加.故初級PHPer的工資市場有步asp呈現(xiàn)白菜價的趨勢
.但高級PHPer仍然極為缺乏.但我認(rèn)為:工資水平和實際技術(shù)水平基本成正比,目前業(yè)界信息透明,且到目前位置高端PHPer的圈子仍然極小.大家交換信息極為方便.如果PHP水平不高,但拿到高工資的概率不高.即使PHP技術(shù)差能拿到高工資也不能長久.以下觀點屬于我的一家之言,您不贊同可以拍磚,可以給我發(fā)信討論,我的mail是 jstel && 126.com(&&換成 @)Arain收.qq :
155313 7 2 4.目前我職業(yè)做網(wǎng)站項目外包,也就是大家所說的自由職業(yè)者.歡迎大家有網(wǎng)站/crm等活發(fā)包給我.0 : 我對PHPer的定義: PHPer是工作/程序以編寫PHP程序為主,其他方面略有涉獵的人.部分由C/C++ 轉(zhuǎn)來的人,雖然也做php程序,但工作重點仍是C/C++.不能說是PHPer或者不能說是純粹的PHPer.1 : 對PHPer的劃分,我對PHPer劃分為以下幾個階段.a: PHP 愛好者(半個PHPer)
b: PHP 初學(xué)者(PHP Beginner)
c: PHP 初級程序員(Primary PHP Coder)
d: PHP 中級程序員(Junior PHP Coder)
e: PHP 高級程序員(Senior PHP Coder)
f: PHP 工程師(PHP Programmar)
以下是對PHPer劃分的具體描述:
X: PHPer的共同特點:
0: 會電腦,能上網(wǎng).1: 知道w3c標(biāo)準(zhǔn),2: 會html,會JS,會PHP.會MySQL.3: 知道linux.見過linux運(yùn)行.不滿足以上內(nèi)容者別說自己是PHPer.以下對不同階段的描述, 每一個高級階段都需要掌握低級階段的技能.他們之間具有繼承關(guān)系.在初級階段,由于目前國內(nèi)的情況.經(jīng)常需要PHPer兼美工/網(wǎng)管的功能.所以也寫了一部分其他技能.a: PHP 愛好者
定義: 以PHP程序為業(yè)余愛好,建有或正維護(hù)著一個或幾個使用PHP技術(shù)實現(xiàn)的網(wǎng)站/程序的人是PHP 愛好者.描述: 這些人一般不以PHP為謀生手段,他們的分布以網(wǎng)站站長及在校學(xué)生為主.特征: 1: 會用dreamweaver/frontpage等工具制作網(wǎng)頁.2: 可以對現(xiàn)成PHP程序進(jìn)行修改.3: 愛好PHP.技術(shù)要求: 無.b: PHP 初學(xué)者(PHP Beginner)
定義: 準(zhǔn)備以PHP程序謀生,準(zhǔn)備建設(shè)或正在維護(hù)一個或幾個使用PHP技術(shù)實現(xiàn)的網(wǎng)站/程序的人是PHP 初學(xué)者(PHP Beginner).描述: 這些人已經(jīng)或即將以PHP為主要謀生手段,他們的分布以即將畢業(yè)的大學(xué)生及剛剛加入PHP 程序員行列的人為主
特征: 1: 能夠簡單維護(hù)/操作/優(yōu)化linux.2: 能夠編寫PHP程序.3: 會MySQL.4: 會html/js.5: 能夠構(gòu)建符合W3C標(biāo)準(zhǔn)的頁面.6: 能夠勝任簡單的服務(wù)器維護(hù)工作.技術(shù)要求:
1: 服務(wù)器運(yùn)行系統(tǒng):
a: linux:
I: 能夠安裝Linux系統(tǒng)、熟練使用Linux常用命令、知道Vim文本編輯器,會軟件包管理.II: 能夠?qū)嶋H操作用戶管理、進(jìn)程管理、文件系統(tǒng)管理、權(quán)限管理功能
III: 知道并會使用Linux網(wǎng)絡(luò)配置相關(guān)文件、基本配置命令、DHCP、VNC、DNS服務(wù)器、Samba服務(wù)器.能成功配置并使以下服務(wù)平穩(wěn)運(yùn)行.SSH、FTP、Apache,站點登錄控制、日志管理.IV: 能夠使用shell對服務(wù)器進(jìn)行維護(hù).V: 能夠進(jìn)行Linux系統(tǒng)安全配置、Iptables、syslog日志管理
b: windows:
僅為初學(xué)者和初級程序員要求.I: 能夠安裝windows、熟練使用windows、能夠?qū)IS進(jìn)行優(yōu)化.II: 能夠正確配置防火墻、對服務(wù)器進(jìn)行管理維護(hù).III: 能夠抵御普通的網(wǎng)絡(luò)攻擊.2 web頁面技術(shù)及相關(guān):
其實這不應(yīng)該算是PHP的技術(shù).但實際工作中,大部分PHP初學(xué)者都需要兼前臺/后臺/網(wǎng)管的角色.故在此提出,僅供參考.I: 熟練掌握HTML, Dreamweaver、常用標(biāo)簽、圖象地圖、表格、分楨框架、表單,Header處理,CSS, 樣式表的分類、樣
式則規(guī)器使用,常用的樣式、層標(biāo)簽,JavaScript
II: 各種事件及事件處理程序的應(yīng)用、window對象、document對象、location對象、body對象、form對象、form表單字段元素對象
III: ajax及其相關(guān)技術(shù).能完成常見ajax頁面制作
MySQL技術(shù)
I: 熟練掌握SQL語句.II: 熟練掌握MySQL的常用操作.包括安全、訪問控制和權(quán)限、備份和恢復(fù),復(fù)制、導(dǎo)入和導(dǎo)出記錄.III: 熟練掌握 phpMyAdmin或任意一種MySQL管理維護(hù)工具.4 PHP技術(shù)
I: 熟練掌握PHP語法,常用函數(shù).II: 熟悉PHP的面向?qū)ο缶幊?并能實際使用面向?qū)ο笏枷脒M(jìn)行程序?qū)懽?III: 熟悉PHP常用庫.c: PHP 初級程序員(Primary PHP Coder)
定義: 正在以PHP程序謀生,正在建設(shè)或維護(hù)一個或幾個使用PHP技術(shù)實現(xiàn)的網(wǎng)站/程序的人,PHP經(jīng)驗有限的人是PHP初級程序員.描述: 這些人已經(jīng)以PHP為主要謀生手段,他們的分布以剛剛加入PHP 程序員行列的人為主,也有部分加入PHP行列若干年的人.特征: 1: 能夠維護(hù)/操作/優(yōu)化linux.2: 熟練編寫PHP程序.3: 熟練掌握MySQL.4: 會html/js.5: 能夠快速構(gòu)建符合W3C標(biāo)準(zhǔn)的頁面.6: 能夠勝任大部分服務(wù)器維護(hù)工作.技術(shù)要求:
1: 服務(wù)器運(yùn)行系統(tǒng):
a: linux:
I: 熟練安裝Linux系統(tǒng)、熟練使用Linux常用命令和某些日常使用的命令、掌握軟件包管理.II: 能夠熟練操作用戶管理、進(jìn)程管理、文件系統(tǒng)管理、權(quán)限管理功能
III: 能夠熟練使用Linux網(wǎng)絡(luò)配置相關(guān)文件、基本配置命令、DHCP、VNC、DNS服務(wù)器、Samba服務(wù)器.能快速的配置并使
以下服務(wù)平穩(wěn)運(yùn)行.SSH、FTP、Apache,站點登錄控制、日志管理.IV: 能夠?qū)ySQL和Apache進(jìn)行一定的優(yōu)化以提升網(wǎng)站性能.V: 能夠使用shell對服務(wù)器進(jìn)行維護(hù).熟練使用常用的維護(hù)工具.VI: 能夠進(jìn)行Linux系統(tǒng)安全配置、Iptables、syslog日志管理
b: windows:
僅為初學(xué)者和初級程序員要求.I: 能夠安裝windows、熟練使用windows、能夠?qū)IS進(jìn)行優(yōu)化.II: 能夠正確配置防火墻、對服務(wù)器進(jìn)行管理維護(hù).III: 能夠抵御普通的網(wǎng)絡(luò)攻擊.2 web頁面技術(shù)及相關(guān):
其實這不應(yīng)該算是PHP的技術(shù).但實際工作中,大部分初級PHP程序員在公司里都需要兼前臺/后臺/網(wǎng)管的角色.故在此提出,僅供參
考.I: 熟練掌握HTML, Dreamweaver、常用標(biāo)簽、圖象地圖、表格、分楨框架、表單,Header處理,CSS, 樣式表的分類、樣
式則規(guī)器使用,常用的樣式、層標(biāo)簽,JavaScript
II: 各種事件及事件處理程序的應(yīng)用、window對象、document對象、location對象、body對象、form對象、form表單字段
元素對象
III: ajax及其相關(guān)技術(shù).能完成常見ajax頁面制作.IV: 會photoshop在內(nèi)的一種或多種圖片編輯軟件
MySQL技術(shù)
I: 熟練掌握SQL語句.II: 熟練掌握MySQL的操作.包括安全、訪問控制和權(quán)限、備份和恢復(fù),復(fù)制、導(dǎo)入和導(dǎo)出記錄.III: 熟練掌握 phpMyAdmin或任意一種MySQL管理維護(hù)工具.IV: 知道MySQL常見性能瓶頸的原因及解決方法.并能實際解決.4 PHP技術(shù)
I: 熟練掌握PHP語法,常用函數(shù).II: 熟悉PHP的面向?qū)ο缶幊?并能實際使用面向?qū)ο笏枷脒M(jìn)行程序.III: 熟悉php面向?qū)ο蟮奶匦?能夠根據(jù)實際運(yùn)行環(huán)境選擇開發(fā)方法.IV: 熟悉PHP常用庫.能夠使用常用的php庫進(jìn)行項目開發(fā).V: 擁有良好的編碼格式習(xí)慣,可以規(guī)范的進(jìn)行代碼編寫.5 項目相關(guān)
I: 實際完成過PHP項目.或全程參與過php網(wǎng)站開發(fā)與建設(shè).II: 能夠較為快速的進(jìn)行項目開發(fā).d: PHP 中級程序員(Junior PHP Coder)
定義: 正在以PHP程序謀生,正在建設(shè)或維護(hù)一個或幾個使用PHP技術(shù)實現(xiàn)的網(wǎng)站/程序的人,有幾年P(guān)HP經(jīng)驗但是尚未積累必要的代碼庫和
快速開發(fā)工具的人是PHP 中級程序員.描述: 這些人已經(jīng)以PHP為主要謀生手段,他們的分布以加入PHP 程序員行列5年內(nèi)的人為主,也有部分加入PHP行列更多年的人.特征:
1: 能熟練維護(hù)/操作/優(yōu)化linux.2: 快速編寫結(jié)構(gòu)清晰,代碼格式優(yōu)美的PHP程序.3: 熟練掌握MySQL的操作和常用優(yōu)化.4: 熟悉程序性能的出現(xiàn)瓶頸的常見原因,并能在實際編寫過程中避免出現(xiàn)性能瓶頸.5: 能夠使用某些框架/類庫加速項目開發(fā)進(jìn)度.6: 能夠勝任大部分服務(wù)器維護(hù)工作.技術(shù)要求:
1: 服務(wù)器運(yùn)行系統(tǒng):
a: linux:
I: 熟悉操作一種版本linux,并能對此版本的linux進(jìn)行一些調(diào)整優(yōu)化
II: 能夠進(jìn)行不停機(jī)維護(hù)升級.III: 能夠熟練使用Linux命令行下操作.IV: 能夠?qū)ySQL和Apache進(jìn)行優(yōu)化以提升網(wǎng)站性能.V: 能夠配置小型服務(wù)器集群(雙服務(wù)器或三服務(wù)器).VI: 能夠進(jìn)行Linux系統(tǒng)安全配置、Iptables、syslog日志管理
web頁面技術(shù)及相關(guān):
到中級程序員,一般公司都有專門的美工和前臺程序員配合工作.故頁面制作技術(shù)要求同初級程序員.I: 熟悉常見的通信標(biāo)準(zhǔn).可以根據(jù)手冊編寫出符合通信標(biāo)準(zhǔn)的程序.3 MySQL技術(shù)
I: 熟練掌握SQL語句.II: 熟練掌握MySQL的操作.包括安全、訪問控制和權(quán)限、備份和恢復(fù),復(fù)制、導(dǎo)入和導(dǎo)出記錄.III: 熟練掌握 phpMyAdmin或任意一種MySQL管理維護(hù)工具.IV: 知道MySQL性能瓶頸的原因及解決方法.并能實際解決.4 PHP技術(shù)
I: 熟練掌握PHP語法,常用函數(shù).II: 熟悉PHP的面向?qū)ο缶幊?并能實際使用面向?qū)ο笏枷脒M(jìn)行程序.III: 熟悉php面向?qū)ο蟮奶匦?能夠根據(jù)實際運(yùn)行環(huán)境選擇開發(fā)方法.IV: 熟悉PHP常用庫.能夠使用常用的php庫進(jìn)行項目開發(fā).V: 擁有良好的編碼格式習(xí)慣,可以規(guī)范的進(jìn)行代碼編寫.5 項目相關(guān)
I: 實際完成過PHP項目.或全程參與過php網(wǎng)站開發(fā)與建設(shè).II: 能夠較為快速的進(jìn)行項目開發(fā).III: 有自己的代碼庫.可以在項目中進(jìn)行復(fù)用
IV: 形成了良好的編碼習(xí)慣,編寫的程序代碼清晰,注釋清楚.V: 能夠?qū)椖恐械碾y點與新技術(shù)進(jìn)行攻關(guān).e: PHP 高級程序員(Senior PHP Coder)
定義: 正在以PHP程序為主要工作,建設(shè)過多個PHP項目,正在建設(shè)或維護(hù)一個或幾個使用PHP技術(shù)實現(xiàn)的網(wǎng)站/程序的人,有多年P(guān)HP經(jīng)驗, 有自己的代碼庫和快速開發(fā)工具的人是PHP 高級程序員.描述: 這些人已經(jīng)以PHP為主要謀生手段,他們的分布以加入PHP 程序員行列5年以上的人為主.高級程序員是PHP項目的核心力量.特征:
1: 能熟練維護(hù)/操作/優(yōu)化linux.2: 快速編寫結(jié)構(gòu)清晰,代碼格式優(yōu)美的PHP程序.3: 熟練掌握MySQL的操作/優(yōu)化和多數(shù)據(jù)庫.4: 能夠快速查出程序性能的出現(xiàn)瓶頸的原因,并能根據(jù)實際情況進(jìn)行調(diào)整.5: 能夠使用框架/類庫加速項目開發(fā)進(jìn)度.6: 有自己的代碼庫.7: 能夠勝任大部分服務(wù)器維護(hù)工作.技術(shù)要求:
1: 服務(wù)器運(yùn)行系統(tǒng):
a: linux:
I: 熟悉操作一種版本linux,并能對此版本的linux進(jìn)行一些調(diào)整優(yōu)化
II: 能夠進(jìn)行不停機(jī)維護(hù)升級.III: 能夠熟練使用Linux命令行下操作.IV: 能夠?qū)ySQL和Apache進(jìn)行優(yōu)化以提升網(wǎng)站性能.V: 能夠配置和優(yōu)化服務(wù)器集群.VI: 能夠進(jìn)行Linux系統(tǒng)安全配置、Iptables、syslog日志管理
MySQL技術(shù)
I: 精通SQL語句.II: 熟練掌握MySQL的操作.III: 熟練掌握 phpMyAdmin或任意一種MySQL管理維護(hù)工具.IV: 能夠根據(jù)實際運(yùn)行情況對數(shù)據(jù)庫瓶頸進(jìn)行調(diào)整,并適時改變開發(fā)方法.4 PHP技術(shù)
I: 精通PHP語法,常用函數(shù).并有自己專注的方向.II: 熟練使用PHP的面向?qū)ο缶幊?并能實際使用面向?qū)ο笏枷脒M(jìn)行程序.III: 熟悉php面向?qū)ο蟮奶匦?能夠根據(jù)實際運(yùn)行環(huán)境選擇開發(fā)方法.IV: 實際使用工廠化開發(fā)等開發(fā)方法進(jìn)行項目開發(fā).能夠使用PHP的特性提升開發(fā)速度和程序運(yùn)行速度.V: 有自己的代碼庫,有自己熟悉兵精通的某些共用類庫.VI: 擁有良好的編碼格式習(xí)慣,可以規(guī)范的進(jìn)行代碼編寫.5 項目相關(guān)
I: 實際完成過多個不同方面的PHP項目.II: 能夠快速的進(jìn)行項目開發(fā).III: 有自己的代碼庫.可以在項目中使用代碼庫進(jìn)行快速開發(fā).IV: 形成了良好的編碼習(xí)慣,編寫的程序代碼清晰,注釋清楚.V: 能夠領(lǐng)導(dǎo)程序員對項目中的難點與新技術(shù)進(jìn)行攻關(guān).VI: 熟悉軟件工程,能夠根據(jù)實際情況選用適當(dāng)?shù)拈_發(fā)模式.f: PHP 工程師(PHP Programmar)
定義: 正在以PHP程序為主要工作,并正在進(jìn)行新產(chǎn)品的研發(fā).可以同時使用C+/perl等輔助提高PHP程序性能的人是PHP工程師.描述: PHP工程師是.特征:
1: 精通一種或多種linux.2: 快速編寫結(jié)構(gòu)清晰,代碼格式優(yōu)美的PHP程序.3: 能夠進(jìn)行框架級通用程序的研發(fā).4: 能夠在程序開發(fā)初期就通過項目規(guī)劃避免未來可能出現(xiàn)的性能瓶頸.5: 能夠使用框架/類庫加速項目開發(fā)進(jìn)度.6: 有自己的代碼庫.7: 能夠勝任大部分服務(wù)器和部分服務(wù)器集群優(yōu)化工作.技術(shù)要求我就不說了.具體到PHP中級程序員之后,PHP程序員就開始選擇發(fā)展方向進(jìn)行分化了.能夠到這一步的人,基本都對自己的職業(yè)
規(guī)劃有清晰的認(rèn)識.目前國內(nèi)此類人才奇少.關(guān)于其他: PHP程序員從中級程序員階段就開始分化,具體方向根據(jù)公司性質(zhì),工作條件,自己的興趣等不一而同.因此需要擅長的詳細(xì)技能也不太相同
.例如: 公司使用 joomla 構(gòu)建網(wǎng)站, 這就要求程序員必須精通joomla.如果公司使用自研CMS+discuz構(gòu)建網(wǎng)站,這就要求程序員能夠熟練進(jìn)行DISCUZ的二次開發(fā).強(qiáng)行要求程序員精通這精通那,意義不大.到高級程序員開始.PHP程序員由于自己的職業(yè)經(jīng)歷.肯定會有自己的專攻方向,有人擅長大負(fù)載下程序開發(fā)優(yōu)化,有人擅長項目快速開發(fā).而
到這個階段,如果PHP程序員還需要看這篇文章規(guī)劃自己的職業(yè)生涯.那么請自己列出自己擅長的PHP技術(shù).并選擇一種最擅長的技術(shù)專攻.關(guān)于coder和programmar.字面上理解第一個是編碼員,第二個是程序員.實際因為國內(nèi)名詞的混亂.第一個大多以程序員稱呼,第二個目前
大多處于項目核心領(lǐng)導(dǎo)層面.故本文暫以工程師稱呼.coder 是進(jìn)行少量創(chuàng)新的,大量重復(fù)工作的人.programmar 是進(jìn)行新技術(shù)摸索開發(fā),并實際領(lǐng)導(dǎo)/帶領(lǐng)大中型項目開發(fā)的人.關(guān)于 C++.PHP初期的語法(php3/4時代)和C幾乎一樣.我當(dāng)初就是看一下午PHP速成+php手冊入的門.但到一定深度之后.有些PHP的特性
需要實際閱讀PHP源碼才能理解(相關(guān)文檔不全或者不好找到).有些實際項目功能使用C++開發(fā)遠(yuǎn)比PHP效率高.比如我現(xiàn)在做的項目需要爬蟲持續(xù)
海量抓取,當(dāng)帶寬足夠的情況時,純使用PHP實現(xiàn)效率不高.所以必須使用C++.所以C++到需要用的時候自然而然的就要用了.不過如果有C/C++的
基礎(chǔ),學(xué)習(xí)PHP要輕松很多.關(guān)于面向?qū)ο?面向?qū)ο筮€是很帥的,小型工程上使用意義不大,大中型工程可以極大的提升開發(fā)效率.在php4的時代對面向?qū)ο蠡緵]有
什么要求,但是現(xiàn)在需要完整掌握面向?qū)ο?關(guān)于JAVA/Delphi 他們和php有關(guān)么? 我孤陋寡聞.請牛人指教.謝謝 關(guān)于軟件工程.軟件工程是一個實際使用中才能學(xué)懂的學(xué)科.我才疏學(xué)淺,在大學(xué)的時候楞沒學(xué)懂.等實際領(lǐng)導(dǎo)項目了.才慢慢的明白其中 的含義與奧妙.關(guān)于開發(fā)模式.開發(fā)模式的好壞直接關(guān)系這項目開發(fā)的速度與項目的質(zhì)量.初期死摳模式意義不大.建議有一定積累了再說.關(guān)于名氣.嗯...怎么說呢?高端PHP圈子很小,也就那么些人.水平到了,自然就認(rèn)識那些人了.關(guān)于第三方庫,初期學(xué)習(xí)掌握一些,比如smarty.到一定階段需要決定到底是精通第三方庫還是使用自行積累開發(fā)的庫.總的來說,由于第
三方庫大多是外國人開發(fā),所以國內(nèi)想要時刻緊跟比較被動,phpBB中文的沒落便是一例.如果使用自行積累開發(fā)的庫,難度較大,要注意通用性和
可擴(kuò)展性.關(guān)于英文.這個是廢話.最低要求是流暢閱讀英文文檔.其他:
鳴謝: 國內(nèi)某培訓(xùn)機(jī)構(gòu)的資料.我引用里你們的3月速成PHP工程師的標(biāo)準(zhǔn)作為PHP初學(xué)者的標(biāo)準(zhǔn).謝謝.因為我也沒稿費得.所以就不給你們稿費了.
第二篇:PHP開發(fā)工程師崗位職責(zé)
1.負(fù)責(zé)PHP相關(guān)產(chǎn)品模塊開發(fā)工作。
2.負(fù)責(zé)公司業(yè)務(wù)系統(tǒng)開發(fā)、單元測試、系統(tǒng)對接工作。
3.負(fù)責(zé)公司已有網(wǎng)絡(luò)管理系統(tǒng)的二次開發(fā)。
4.負(fù)責(zé)相關(guān)系統(tǒng)的設(shè)計與編碼工作。
5.負(fù)責(zé)研發(fā)產(chǎn)品技術(shù)文稍的編寫工作。
第三篇:PHP工程師崗位要求
崗位描述1、2、3、4、參與系統(tǒng)框架和核心模塊的開發(fā)并維護(hù);
根據(jù)業(yè)務(wù)部需求,進(jìn)行新產(chǎn)品開發(fā);
根據(jù)公司技術(shù)文檔規(guī)范編寫相應(yīng)的技術(shù)文檔;
參與產(chǎn)品測試方案的規(guī)劃,負(fù)責(zé)系統(tǒng)測試,集成測試。
職位要求
1、計算機(jī)相關(guān)專業(yè),本科及以上學(xué)歷;
2、熟悉PHP開發(fā),有一年以上PHP開發(fā)經(jīng)驗;
3、熟悉css/xml等網(wǎng)頁技術(shù),熟悉Ajax、JQuery、JavaScript,熟悉Adodb、Smarty、ThinkPHP、WebService等;
4、熟悉 Apache, MySQL, 熟悉MySql數(shù)據(jù)庫的設(shè)計、管理、開發(fā)和優(yōu)化,具備一定服務(wù)器構(gòu)建經(jīng)驗,精通數(shù)據(jù)庫存儲過程、函數(shù)的編寫;
5、熟悉面向?qū)ο缶幊?,具有良好的編程風(fēng)格、習(xí)慣;了解軟件開發(fā)流程,熟悉MVC模式;并有在MVC模式下進(jìn)行中大型web開發(fā)的經(jīng)驗;
6、熟悉開發(fā)文檔的編寫,有良好文檔編寫能力;
7、可以單獨對已有的系統(tǒng)進(jìn)行維護(hù),工作認(rèn)真細(xì)致負(fù)責(zé),有良好的自學(xué)能力,獨立思考能力,能夠在短時間內(nèi)學(xué)習(xí)并應(yīng)用新技術(shù);
8、積極熱情、溝通能力強(qiáng),有強(qiáng)烈的責(zé)任心,具有良好的團(tuán)隊合作精神和敬業(yè)精神;
第四篇:php工程師面試題及答案
PHP全稱:Hypertext Preprocessor,是一種用來開發(fā)動態(tài)網(wǎng)站的服務(wù)器腳本語言。下面是小編整理的php工程師面試題及答案,希望對大家有幫助!
【1 】Memcached、redis的使用和理解
Memcached和redis 都是一個key-value的內(nèi)存式存儲系統(tǒng),通過hash表來存儲檢索結(jié)果,做到強(qiáng)大的緩存機(jī)制。像新浪的微博、淘寶等大流量站點都必須的使用了這些東東。
Memcache是一個高性能的分布式的內(nèi)存對象緩存系統(tǒng),通過在內(nèi)存里維護(hù)一個統(tǒng)一的巨大的hash表,它能夠用來存儲各種格式的數(shù)據(jù),包括圖像、視頻、文件以及數(shù)據(jù)庫檢索的結(jié)果等。簡單的說就是將數(shù)據(jù)調(diào)用到內(nèi)存中,然后從內(nèi)存中讀取,從而大大提高讀取速度。
redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。
【2】你對于設(shè)計模式和MVC的理解
Model-View-Controller,模型、視圖、控制器,一想到MVC就會想到JAVA,因為JAVA是一個完全面向?qū)ο蟮恼Z言,MVC最早出現(xiàn)在smalltalk中,其核心就是要將試圖和數(shù)據(jù)模型分離,這樣不同的程序就可以有不同的展示。
模型,即程序員寫的功能、算法和數(shù)據(jù)模型,也就是我們說的系統(tǒng)業(yè)務(wù)邏輯層。
視圖,即前端,圖形界面。展示給用戶看的。
控制器,主要負(fù)責(zé)對請求處理、轉(zhuǎn)發(fā)和加載視圖。
設(shè)計模式,說白了就是代碼的設(shè)計經(jīng)驗的總結(jié)和歸類,設(shè)計模式最早應(yīng)用于建筑行業(yè),編程的設(shè)計模式按最早的GoF所述,包括23種設(shè)計模式,主要用于面向?qū)ο蟮某绦蚓幊?。遵循幾個設(shè)計原則:開閉原則、單一職責(zé)原則、里氏替換原則、依賴注入、接口分離、迪米特原則、優(yōu)先使用組合而不是繼承等等。包括創(chuàng)建型模式、結(jié)構(gòu)性模式、行為模式三類。
【3】HTTP協(xié)議1.0及1.1的區(qū)別,并簡單說下HTTP協(xié)議
HTTP,超文本傳輸協(xié)議。它定義了瀏覽器和服務(wù)器的通信規(guī)則。HTTP協(xié)議是基于TCP/IP的TCP協(xié)議上,現(xiàn)在萬維網(wǎng)使用的是HTTP1.1版本,其特點包括,C/S模式,請求簡單(GET/POST/HEAD),靈活(可以傳輸任何類型的數(shù)據(jù)HTML、XML、JSON、自定義等),無連接(每次連接只處理一個請求,從發(fā)出請求到收到200狀態(tài)為止斷開連接),無狀態(tài)。
對HTTP協(xié)議的考察主要包括,響應(yīng)消息格式、請求消息格式、狀態(tài)碼等知識點。
一般一個HTTP協(xié)議包括:起始行(start line)、首部(header)、主體(body)三個部分。
[響應(yīng)消息格式]
HTTP/1.1 200 0K
Connectlon:close
Date: Thu, 13 Oct 2005 03:17:33 GMT
Server: Apache/2.0.54(Unix)
Last—Nodified:Mon,22 Jun 1998 09;23;24 GMT
Content—Length:682l
Content—Type:text/html
這個響應(yīng)消息分為3部分:1個起始的狀態(tài)行(status line),首部、1個包含所請求對象本身的附屬體。狀態(tài)行有3個字段:協(xié)議版本字段、狀態(tài)碼字段、原因短語字段。
[請求消息格式]
GET /somedir/page.html HTTP/1.1Host:
mod_rewrite 使用基于正則表達(dá)式動態(tài)的修改傳入請求的URL。它可以將URL映射到文件系統(tǒng)路徑,也可以將一個URL映射到另一個URL。它使用了沒有限制數(shù)量的規(guī)則來操縱URL,每條規(guī)則可以包括沒有限制數(shù)量的附加條件。你可以通過多種方式來檢測,如,服務(wù)器變量、環(huán)境變量、HTTP頭、時間戳等。
mod_rewrite 操作整個URL路徑,包括path-info的部分。一個重寫規(guī)則可以被設(shè)置在http.conf或者.htaccess中。一個重寫規(guī)則生成的路徑可以包括一個請求字符串,或者內(nèi)部的子程序處理,外部請求的重定向,或者穿透內(nèi)部代理等。
2)PHP框架中的URI路由機(jī)制,與apache重寫類似,一般包括通配符和正則兩種規(guī)則。讓用戶可以重新定向(remap)URI處理程序.設(shè)定你自己的路由規(guī)則。
【5】MySQL的索引機(jī)制,復(fù)合索引的使用原則
(深入淺出MySQL一書中對索引的使用講的比較細(xì)致)
一般都會用書本中的目錄來介紹索引機(jī)制,包括有些書本會有專門的快速檢索附錄,就很類似于數(shù)據(jù)庫的索引。
MySQL的索引包括4類:主鍵索引(primary key)、唯一索引(unique)、常規(guī)索引(index)、全文索引(fullindex)。
Show index from table_name;–查看表中的索引
Show status like ‘Handler_read%’ –查看索引的使用情況
復(fù)合索引,一般遵循最左前綴原則,如table_a 的 a b c 三列建復(fù)合索引
create index ind_table_a on table_a(a,b,c);
那么,只有在條件中用到a,或者a、b,或者a、b、c這樣的情況下,才會用到剛建的復(fù)合索引。
【6】如何理解OOP
OOP,面向?qū)ο缶幊?,包括三個方面,繼承性、封裝性、多態(tài)性,其中最根本的東西就是抽象。
繼承性,即擴(kuò)展性,通過子類對已經(jīng)存在的父類進(jìn)行功能擴(kuò)展。
封裝性,要求外部不能隨意存取對象的內(nèi)部數(shù)據(jù),即對該類中的具體實現(xiàn)做封裝,用戶不必知道內(nèi)部的具體實現(xiàn),只有知道它是干什么的,怎么用就好了。
多態(tài)性,就是類的抽象和接口,同一個類能夠處理多種類型對象的能力。
我們在現(xiàn)實中,看到的任何東東都可以看做為一個對象,然后通過進(jìn)一步的抽象為類,類又可以演變?yōu)楹芏囝愃频膶ο?。舉個簡單的例子,將我們看到的一個房子抽象為一個ROOM類,包括基本的門,窗,桌子等物件,人可以進(jìn)出等功能。現(xiàn)在我們繼承ROOM類為Classroom,包括扇門,有大窗,有桌椅,另外只包括一個黑白和一個講臺,老師和同學(xué)可以上課?,F(xiàn)在我們實例化這個Classroom類為Classroom_621對象,包括兩扇門,四扇大窗,30套桌椅,有同學(xué)正在上毛概課。
第五篇:PHP開發(fā)工程師-實習(xí)報告
畢業(yè)實習(xí)報告專用紙
PHP開發(fā)工程師實習(xí)報告
一、實習(xí)目的和意義
我自大二起便對PHP Web開發(fā)產(chǎn)生了濃厚的興趣,然后便一直在進(jìn)行相關(guān)的學(xué)習(xí)。由于學(xué)校沒有開設(shè)相關(guān)課程,所有的學(xué)習(xí)和實踐都只能源于自己思考和書本知識,故而難免在經(jīng)驗上有相當(dāng)大的欠缺。我越來越清醒地認(rèn)識到Web開發(fā)是一項技術(shù)工作,更是一門對經(jīng)驗依賴性很強(qiáng)工作,于是我便決定開始自己的實習(xí)。
為了進(jìn)一步了解PHP Web開發(fā)的相關(guān)知識,掌握PHP Web開發(fā)的基本技術(shù),豐富PHP Web開發(fā)的實戰(zhàn)經(jīng)驗,鞏固SQL的基礎(chǔ)知識及正確的運(yùn)用方法,和有用的相關(guān)技術(shù),提高自己的工作效率,我開始了此次實習(xí)。通過實習(xí),鞏固大學(xué)所學(xué)專業(yè)的基本知識,提高分析、判斷和處理實際問題的能力,鍛煉自己的實際動手能力,增強(qiáng)自己的團(tuán)隊協(xié)作意識,了解軟件開發(fā)的思考角度和主要流程。為畢業(yè)之后能夠更快地進(jìn)入工作狀態(tài)并且能夠更好的工作,打好一定的基礎(chǔ)。
二、實習(xí)崗位簡介
崗位名稱:PHP開發(fā)工程師
主要工作:本次實習(xí)我的主要工作與其他同事合作使用PHP語言在EcShop開源商城項目上二次開發(fā)出一個B2C商城。
三、實習(xí)內(nèi)容和過程
入職第一天要求熟悉公司的開發(fā)環(huán)境,以及代碼風(fēng)格。
公司的開發(fā)環(huán)境是WAMP平臺,即Windows、Apache、MySQL、PHP環(huán)境,開發(fā)工具是PHPEclipse和Navicat。
原本以為如今公司開發(fā)都會在Linux系統(tǒng)下,這才清楚開發(fā)環(huán)境全憑個人喜好以及熟悉程度。其實同樣是做架構(gòu),同樣是寫代碼,環(huán)境不重要。只是因為最后的服務(wù)器是Linux系統(tǒng),為了避免上線以后出問題,所以對常見的Linux的特點要求熟悉。
Apache并不要求掌握多少,因為服務(wù)器維護(hù)有專職人員做,而且做的更專
畢業(yè)實習(xí)報告專用紙
業(yè)更好,我們只是簡單的能使用就好。
Eclipse是一套很強(qiáng)大的IDE,有各種版本適合各種語言開發(fā),如Java、PHP等。其附帶的功能強(qiáng)大而又方便,是大中型項目的開發(fā)利器。因為在大中型項目開發(fā)時,項目內(nèi)部結(jié)構(gòu)錯亂復(fù)雜,各個文件之間存在個各種各樣的依賴關(guān)系,這時候一個好的IDE可以省下很多使用Notepad開發(fā)時的勞力。
Navicat是一套數(shù)據(jù)庫管理工具,用它來連接MySQL比命令行操作更方便,比phpMyAdmin更快捷,因為C/S的系統(tǒng)有更快的響應(yīng)速度以及處理速度。
代碼風(fēng)格是影響團(tuán)隊開發(fā)的一個很重要因素,這一點在我們后面進(jìn)行開發(fā)的時候給我?guī)硐喈?dāng)深刻的感觸。從簡單的代碼縮進(jìn)、留白,到更深入的數(shù)據(jù)處理方式,處理環(huán)節(jié),每個人都有自己的理解和想法,因為每個人都有自己的經(jīng)驗。
代碼格式還好說,在公司見識到了很方便的代碼美化工具,可以方便的轉(zhuǎn)化為自己賞心悅目的格式。但是數(shù)據(jù)的處理方式、流程、環(huán)節(jié),卻是項目整合的關(guān)鍵。比如關(guān)鍵字過濾的處理,重復(fù)處理會影響效率,比如某個顯示值的變換,萬萬不能重復(fù)處理。所以在一開始就必須規(guī)定好入口參數(shù)、出口參數(shù)的格式,并且將數(shù)據(jù)處理流程規(guī)定好!即有一套精確的數(shù)據(jù)流圖!
關(guān)于數(shù)據(jù)庫架構(gòu)——理論和實踐
該商城是由一個經(jīng)驗豐富的項目經(jīng)歷、還有幾個專職人員帶領(lǐng)我們幾個實習(xí)生一起做。在數(shù)據(jù)庫架構(gòu)的問題上我第一次感受到經(jīng)驗和書本的矛盾關(guān)系。
在看到該商城的數(shù)據(jù)庫架構(gòu)時,我不禁覺得其有問題。按著書上關(guān)于數(shù)據(jù)庫范式的講解,毫無疑問該網(wǎng)站的數(shù)據(jù)庫存在數(shù)據(jù)冗余等諸多問題,難道這個項目經(jīng)理和這些工程師們不懂?dāng)?shù)據(jù)庫范式?事實證明我猜對了一半,當(dāng)我滿懷疑惑提出數(shù)據(jù)庫的問題后,才發(fā)現(xiàn)有一個工程師真的不清楚數(shù)據(jù)庫范式是什么,甚至連這個概念都沒聽過。另外一個工程師帶著我分析這個網(wǎng)站的用途和需求,并講解了這樣設(shè)計的優(yōu)點和缺點,以及按著規(guī)范的范式要求去設(shè)計的優(yōu)點和缺點。最終我了解到,數(shù)據(jù)庫范式是一個規(guī)范,它在理想程度上解決了數(shù)據(jù)冗余,刪除出錯等諸多問題,但是當(dāng)我們完全按著數(shù)據(jù)庫范式去設(shè)計的時候就發(fā)現(xiàn)并沒有想象中的好。因為有一些冗余或刪除出錯很可能一年才遇到一次,而且在人為提醒的狀況下完全可以避免,但是為了避免冗余所耗費的勞力,所付出的代價卻是相當(dāng)巨大的。
畢業(yè)實習(xí)報告專用紙
關(guān)于注釋
開發(fā)的時候被一再強(qiáng)調(diào)注釋的重要性。并且就連注釋的格式都規(guī)范的死死的。這就是團(tuán)隊開發(fā)。每一個文件都必須有文件注釋,每一個函數(shù)都必須有功能注釋以及參數(shù)注釋,甚至就連每一個變量都必須有注釋,必須清清楚楚標(biāo)明用途,哪怕它的標(biāo)識符很清楚表示它只是個password。
如今的開發(fā)語言都有其相應(yīng)的自動生成API幫助文檔的小軟件,每一個軟件都規(guī)定了注釋的規(guī)范,以方便生成幫助文檔,好在這些文檔規(guī)范大致相同。剛開始很驚訝,因為注釋的內(nèi)容居然能占一半,甚至更多,這在以前都未曾遇到。
如何解決問題
商城開發(fā)到一半遇到兩個問題:一個是視頻播放上傳,再有一個就是自動繪制圖表。
視頻上傳在土豆、優(yōu)酷上屢見不鮮,可是真正到了自己開發(fā)的時候才發(fā)現(xiàn)并不像想象的那么容易。我只要一想到上傳時網(wǎng)絡(luò)狀況、斷點續(xù)傳、視頻格式這些技術(shù)問題,頭就大了。自動圖表就更不必說,根本不知道從哪里下手,更不能接受的是項目經(jīng)理和兩個工程師居然也沒遇到過類似問題。
當(dāng)時我覺得這件事或許解決不了,因為項目已經(jīng)分好時間,工期只有這么多,即便能解決怕也是要超工期。最后向上級反映一下改一下需求然后可能就不了了之了。事實證明了我的想法很愚蠢,因為經(jīng)理根本就沒向上反映,只是相當(dāng)?shù)ǖ亟o了一句話:上網(wǎng)找找方法,肯定能實現(xiàn)。沒想到真讓經(jīng)理說中了。
最后大家齊心合力,首先把問題分析,難關(guān)一個一個克服,經(jīng)歷了整夜守著谷歌翻譯看幫助文檔,經(jīng)歷了整夜手工輸入連接下載flash接口,經(jīng)理了整夜調(diào)試修改別人的代碼……經(jīng)歷了一個又一個不眠之夜,工作居然提前完成了!
事后一次聚餐的時候大家說根本沒想到這個可能實現(xiàn),經(jīng)理說:“類似的狀況我之前就遇到很多回了。最開始也是想著該需求,后來才認(rèn)識到,公司招人來是解決問題的,工作就要盡責(zé)!有需求就必須滿足!即便滿足不了也得盡全力去做。最重要的是:事情都是人做的,別人能做,自己為什么不能,即便不能自創(chuàng),抄也可以抄來”。
四、實習(xí)心得:
1.關(guān)于公司的開發(fā)環(huán)境和代碼規(guī)范
畢業(yè)實習(xí)報告專用紙
公司的環(huán)境和規(guī)范,都是長期以來根據(jù)實踐經(jīng)驗慢慢總結(jié)出來的,很適合當(dāng)前規(guī)模項目的開發(fā),因此必須及時熟悉。這就如生產(chǎn)力和生產(chǎn)關(guān)系之間的聯(lián)系,毫無疑問當(dāng)前的生產(chǎn)關(guān)系是適應(yīng)生產(chǎn)力的。
規(guī)范包括代碼規(guī)范和架構(gòu)規(guī)范,它制定了數(shù)據(jù)處理流程的規(guī)范,以及考慮因素。然而不同的項目對應(yīng)不同的需求,應(yīng)當(dāng)考慮的因素也是不同的。比如一個普通公司的內(nèi)網(wǎng)只允許內(nèi)部員工訪,這樣的話對安全系數(shù)的要求就不高,但大流量大負(fù)載的狀況就得多加考慮!換過來如果是一個機(jī)關(guān)部門的網(wǎng)站,顯然不會有大流量大負(fù)載的情況出現(xiàn),因此在這上面便可以少考慮,而安全系數(shù)就是不得不考慮的致命因素!
2.關(guān)于理論和實踐
最開始的數(shù)據(jù)庫問題讓我明白了書上的理論在面對實現(xiàn)中的硬傷時表現(xiàn)得是那么蒼白,那更多的只是理論上的完美,而實際工作中是不存在完美的!
后來的代碼實現(xiàn)工作讓我認(rèn)識到,即便是理論上掌握了,實踐的話卻不一定成功。且不說無數(shù)次調(diào)試后才能保證語句的正確,單單是邏輯錯誤出現(xiàn)的頻率就幾乎讓人崩潰。原本在腦海中那么清晰地思路,到實現(xiàn)的時候才發(fā)現(xiàn)居然有那么多問題沒想到!
公司實習(xí)這段時間我清楚了什么叫:紙上得來終覺淺,絕知此事要躬行!3.注釋——責(zé)任心的體現(xiàn)
在公司開發(fā),最開始被迫寫N多注釋,到后期整合項目的時候才發(fā)現(xiàn)多虧有這些注釋。它們使得我們可以很方便地回想起自己當(dāng)時的想法,更使得我們可以毫無障礙地讀懂別人的代碼,以后即便是換了一批人員進(jìn)行二次開發(fā)或者維護(hù)都會很方便。
注釋,既是對自己作品的信心,也是對自己作品的負(fù)責(zé)!4.公司招人是需要解決問題
商城遇到的兩個問題最終被解決,我清楚地知道問題解決的每一個過程。從最開始的毫無頭緒,到后來的稍有眉目,再到后來思路清晰,然后一步一步實現(xiàn)!經(jīng)理那句話給我印象很深刻:公司招人是要來解決問題的!我想我以后都不會輕易說不行了。
畢業(yè)實習(xí)報告專用紙
五、實習(xí)感受
通過本次實習(xí),我基本了解了公司的開發(fā)流程,以及一些開發(fā)時的注意事項,同時也使自己的代碼水平上升了一個層次。然而更多的收獲在于了解到工作是什么樣的狀態(tài),工作中的問題以及遇到問題怎么做。經(jīng)過這次實習(xí),工作于我不再是想象中的那個空洞的名詞,我深深地感受到它的存在!深深地體會到它和學(xué)校的區(qū)別!