看了標題,也許很多程序員會反感的說:“程序員的做人問題先不用談,你想出來這個標題,那你做人是不是有問題吧!”
筆者本人並不反駁這樣的說法,每個人都有自己的做人原則。法國人的那句俗話說的好:“我不苟同你的思想,但是我絕對捍衛你思想的自由”。 是,這是站在個人的立場上可以那麼說。但是如果站在一個團隊的立場上呢?一切不盡然了!
無論馬拉車的原理也好,還是木桶原理也好,西方人整出來那些比喻確實是值得贊賞的。但是個人認為還是欠缺一些! 其實作為一個完整的團隊,有幾個出類拔萃的技術人才是非常必要的。技術團隊在技術上必須要有階梯,否則對於一手抓金錢,一手抓發展的程序員而言,抓不住他的心啊!所以說,這些西方人的東西放到政治中,或者下放到沒有什麼研發必要,只是熟練工的環境中,是必須的,必要的。但是在技術團隊中,並不是最優的。
引導一個正確的技術方向,對於整個團隊的發展及壯大有舉足輕重的必要。既然今天主要談PHP,那麼班門弄斧的多說2句PHP的東西。
首先要規范大家編碼習慣,采取拿來主義就可以了!
數據庫層建議全部使用ADODB的數據庫類,以盡量減少程序員直接寫SQL語句的可能性為目的。這對於以後數據庫移植及本身的安全都有好處,最關鍵的還是規范大家的書寫習慣。雖然很多人抱怨效率不太好,但是筆者始終認為一個穩定高於效率、個人必須服從團。如果還抱怨效率問題,那加個CPU,換上2GB的內存。不知道抱怨的主兒,是否不用ADODB寫出的代碼比加個CPU還要快?
數據庫建議還是使用MYSQL吧! 起碼要4.1以上的版本。支持事務是非常有必要的。
采用MYSQL的原因有很多。第一:兼容性好;第二:功能相對完善;第三:容易配置;第四:支持開源。MYSQL5,這裡就不多說了。因為國內程序員開發依然以MYSQL4+PHP4為主,筆者不想給團隊造成開發成果不兼容的現象。
Apache 是筆者堅決的選擇。從國際市場占有率62%就知道了:)安全,高效的突出特點無疑是IIS無法企及的。雖然最近WINDOWS2003 SERVER搶占了一些市場分額,但是依然難以撼動Apache的地位。這中間還有一個更主要的角色,那就是LIUNX。 這裡不過多討論LIUNX了,但是作為一個好的PHP程序員,如果他一點都不了解LIUNX,那無疑也是郁悶的事情。筆者用自己的情況可以大概說說:幾年前,筆者開發一個LIUNX虛擬主機的管理軟件,拿到需求後,就做技術方案的可行性分析,發現涉及大量的對MYSQL數據庫及APACHE的操作,如何完成這些操作呢?這其中要求你必須對LIUNX系統有一定的了解,否則項目根本無法進行!當然還有很多例子,例如PHP的負載均衡解決方案;數據庫雙備份方案…...太多了。
PHP依然以4.0版本為主要開發工具,但是起碼需要掌握SMARTY。邏輯業務和頁面是必須要分離的。在這裡要尤其談到PEAR。 這裡還是有人提出執行效率的問題。筆者依然強調,那個不是問題。PEAR也有自己的數據庫類。程序員完全可以考慮和ADODB交換使用,無所謂了。看個人的開發嗜好。
但是PEAR豐富的類庫,讓筆者垂涎三尺啊:)
提到PHP。不能不說說ZEND。
ZEND是好人啊! 沒有ZEND就沒有PHP的今天,那麼大家也就沒有了今天的飯碗,今天的這篇文字。
ZEND 的系列工具及解決方案都是每個PHP程序員必須去理解的。
起碼在一個團隊中,ZEND STUDIO 應該能被熟練的運用,這對項目的管理及開發都有深遠的意義。ZEND 系列產品有版本管理,代碼優化,代碼加密等等優秀功能舉不勝舉。這裡不多說的。大家有機會可以去http://www.phpchina.cn 或 http://www.zend.com 去自己看。
最後說到SVN或CVS做版本管理,那也是必不可少的。為什麼還用說嗎?
最後總結下來,無非就是編碼的規范和統一。從技術上獲得了思想的統一,大家在協作開發的時候才能心有靈犀,才能事半功倍。沒有一個程序員會使用自己不感冒的開發工具去做出賞心悅目的作品來的!
對於團隊的管理,具體下來還是對人的管理。程序員無非要2種東西,錢和發展。
控制好給予的量,是整個團隊是否能和諧的關鍵! 落後的要扶起來,太冒進了要壓下去。你保護的是大家的利益,而不是某個人的利益。公平,公正才是一個管理者必須掌握的。
至於私下的交情,要學會通融和諒解,但是一旦事情進入程序中,也就是說一旦提到一定高度的時候,就必須要放棄私情而尋大義了。
好了,以上是在管理者的角度去談了很多團隊的管理問題。基本上是自己的一些理解和想法。