欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

獻(xiàn)給PHPer:一言難盡話PHP 兼談我的編程經(jīng)歷

admin
2012年4月4日 2:0 本文熱度 3290
文章簡介:一言難盡話PHP,兼談我的編程經(jīng)歷。

寫到一半,發(fā)現(xiàn)鋪墊有些長,總扯和技術(shù)無關(guān)的東西。我以前沒這么啰嗦和八卦的,這是為什么呢?

有一個(gè)人,這個(gè)人我已經(jīng)不記得他的相貌和姓名,但是他曾經(jīng)影響了我。99年的春天,聯(lián)想開始做公共網(wǎng)站,我雖然主要工作是做設(shè)計(jì),但其實(shí)我的興趣在技術(shù)上,喜歡自己找些Perl(當(dāng)年的CGI程序多數(shù)是Perl的,自己在學(xué)校學(xué)到的那不足千行的C還不知道怎么用在Web上)的留言版或聊天室程序改改代碼和界面,用在一個(gè)叫“幸福之家”的土得掉渣兒的網(wǎng)站上。 大約在秋天或年底的時(shí)候,這個(gè)據(jù)說是北大(也可能是清華)的學(xué)生來幫忙做兼職開發(fā)新聞系統(tǒng)。我經(jīng)常正事兒不干,看著他寫代碼。他的主要開發(fā)方式就是連接到服務(wù)器上打開Vi開始寫。那時(shí)我雖然也在Solaris用過VI,但還只會(huì)移動(dòng)光標(biāo)和保存之類的簡單操作,而且并不習(xí)慣。這樣完全用VI開發(fā)還覺得比較新奇。那是我第一次接觸PHP,那時(shí)的版本是3.0,所以他寫的文件擴(kuò)展名全是.php3。我負(fù)責(zé)前臺(tái)的界面和樣式,偶爾打打下手寫點(diǎn)兒代碼。這樣邊寫邊測(cè)試(完全正式線上服務(wù)器環(huán)境,現(xiàn)在想想那時(shí)真無畏),大概用了一周時(shí)間,一個(gè)基本的新聞管理系統(tǒng)就上線了。就這樣,我也就開始了我的PHP生涯。

這個(gè)新聞管理系統(tǒng)運(yùn)行了不到半年后,就被聯(lián)想研究院的同事完全用Java重寫。我也在合作期間偷偷學(xué)了點(diǎn)兒Java語言和EJB的皮毛。而這位年長于我一兩歲的同學(xué),就此失去了聯(lián)系,不知道他現(xiàn)在在做什么。問題是,我真不記得他叫什么,也沒有聯(lián)系方式,好像我倆都很內(nèi)向,不問彼此,真是一對(duì)奇怪的年輕人。

在離開聯(lián)想之前,我用PHP寫過幾個(gè)小項(xiàng)目,我現(xiàn)在還記得有一個(gè)廣告維護(hù)和更新系統(tǒng),主要功能是廣告管理、圖片上傳、和html文本塊編輯等。由于之前有研究過Perl的代碼,加上一些C的基礎(chǔ),讓我對(duì)PHP這個(gè)腳本語言真真的喜愛有加。你想想看,那個(gè)年月,有哪個(gè)Web腳本有如此豐富的擴(kuò)展又有這么簡單易學(xué)的代碼。什么數(shù)據(jù)庫操作啊、圖像生成啊——我甚至用它的GD庫實(shí)現(xiàn)了餅圖顯示投票的結(jié)果(當(dāng)然餅圖的生成算法是抄來的)——、文本操作什么的,好多的擴(kuò)展,包括數(shù)不清的和風(fēng)格不一的命名,它實(shí)在太容易學(xué)了,也太好用了,語法自由,又沒有像Java那樣的強(qiáng)類型約束,我對(duì)它實(shí)在是愛不釋手,這可如何是好哇。后來的幾年也確實(shí)是PHP高速普及的時(shí)期。

聯(lián)想當(dāng)年做的那個(gè)網(wǎng)站,用的數(shù)據(jù)庫幾乎全是Oracle,而且跑在Sun的服務(wù)器上,據(jù)說還有光纖陣列啥的。多年后有人告訴我,由于無人打理,域名被人搶注了,我記得當(dāng)時(shí)我的心情平靜的。據(jù)說搶注 FM365.com 的人后來做了個(gè)叫 265 的網(wǎng)站。

02年和同樣是聯(lián)想出來的兩個(gè)朋友去了北大附中網(wǎng)校。當(dāng)時(shí)在線的是ASP環(huán)境。那之前還沒用過ASP,寫了一些模塊,發(fā)現(xiàn)和PHP差距較大,如果不用Com,很多想法較難實(shí)現(xiàn)。這里再啰嗦兩句,ASP支持兩種語言:VBScript和JScript,我實(shí)在是不喜歡VB的語法,后期寫的模塊我都盡量用JScript實(shí)現(xiàn)。而且,JScript支持一種類似Hashtable的Dictionary對(duì)象,操作字典類數(shù)據(jù)很方便。不過,總得說來,ASP還是太弱了,如果PHP是把多功能軍刀,ASP只能算是生銹的水果刀。

人的思想是會(huì)變的,人又總不滿足于現(xiàn)狀。約一年后就將整個(gè)系統(tǒng)逐步升級(jí)到.Net。第一次用C#發(fā)現(xiàn)和Java很像,也是第一次開始試著用分層的概念設(shè)計(jì)系統(tǒng)架構(gòu)。在這期間的同事有霍炬戴飛。經(jīng)常在去飯館的路上還在和火炬討論是分三層好還是四層好。

霍炬對(duì)我的幫助和影響又更多些,他還送了我兩本書《設(shè)計(jì)模式》和《C++Primer》(前者到是時(shí)常翻閱,后者較厚,沒怎么看,幾次搬家都想扔了)。

坦率的講,C#真是門集眾家之所長的好的語言,相較于PHP這類腳本語言,又足夠Mono還是個(gè)實(shí)驗(yàn)項(xiàng)目)。

大約04年的時(shí)候,或許是受Java的影響,PHP社區(qū)也出現(xiàn)了一些開發(fā)框架,如CakePHPZend FrameworkCodeIgniterSymfony…。但是,在看了這些框架并做了些測(cè)試之后,我限入了糾結(jié)之中。Cake和其他幾位還稍好,最變態(tài)的就是Zend,幾乎完全模擬強(qiáng)類型語言(如Java),完全的用OO方法設(shè)計(jì)模塊和類。方向和龐雜度直奔Java的屁股而去。

PHP真的要這么寫嗎?這和Java和.Net有什么區(qū)別?這還有PHP的優(yōu)勢(shì)么?看煩了各個(gè)論壇各種框架之間的口水戰(zhàn)。為了防止可能繼續(xù)誤入歧途,我逃離了這些豪華巨輪。但是我限入了迷惘,我要再怎么寫的PHP呢,我似乎失去了方向。我各類在各類開源項(xiàng)目和書里尋找答案。隨著幾次失敗的項(xiàng)目和工作單位的變動(dòng),思想也有較大的變化。后來的兩年多時(shí)間,較少關(guān)注社區(qū)的動(dòng)向,按照自己對(duì)Web開發(fā)和結(jié)構(gòu)分層的理解,寫一些適合自己用的基礎(chǔ)庫,談不上框架,用著倒也趁手。

我也有接觸和學(xué)習(xí)其他的新的語言和框架,例如PythonDjangoRuby。其中Python的語言特性讓我很著迷,這是我見過的第一個(gè)把清晰(或者說整潔)度作為語法規(guī)則一部分的編程語言。也許是我本人愛干凈,也許是我的想法變了,我甚至覺得Python的語言哲學(xué):“There should be one– and preferably only one –obvious way to do it.”(有且僅有一種明確的實(shí)現(xiàn)方法),是非常完美且正確的理念。我回過頭再審視PHP滿身的傷疤和陷阱,不禁要問:PHP是不是進(jìn)步的太慢和太不思進(jìn)取了。為什么會(huì)這樣呢?

這里又要感謝一位同學(xué),幾年前某天在西南三環(huán)某處租房里,郝培強(qiáng)送了我一本Python入門(也可能是我拿在手里一直不放下的原因),那時(shí)他還單身,還很純情,大家在聊著對(duì)未來的憧憬和各種的夢(mèng)想。

就一種語言來說,PHP易學(xué)易用,幾乎不需要什么基礎(chǔ)和背景,適合各類人群(比如被大家臭罵的北大青島的畢業(yè)生),只是代碼的質(zhì)量差距較大而已。然而,人不可能永遠(yuǎn)在初級(jí)狀態(tài),人是會(huì)成長的,用得越久,越是能感受到它的局限。

前段時(shí)間看到有人說PHP很爛,雖然這話難聽且觀點(diǎn)很武斷,但他文中所說的PHP特性包括引用幾位老外的觀點(diǎn)又都是事實(shí)。比如這個(gè),還有這個(gè)

我的朋友老王說,“語言不重要,重要的是思想”,這話不錯(cuò)。但思想的獲得何其難,它需要一段時(shí)間積累加上一些天分甚至還需要有一點(diǎn)點(diǎn)機(jī)緣才能灌輸?shù)饺说哪X子里面。為了實(shí)現(xiàn)高質(zhì)量和可控的代碼,我需要寫幾十頁紙的約定和規(guī)范,并且還要定期Review,要不然就等著數(shù)不清的地雷哪天突然被踩中吧。影響生產(chǎn)力因素有多種,有人的因素,也有語言和工具(包括平臺(tái))的因素。如果一種語言可以很容易的實(shí)現(xiàn)清晰、明確和嚴(yán)謹(jǐn)?shù)母哔|(zhì)量代碼,而另一種語言則需要數(shù)年經(jīng)驗(yàn)且小心小心再小心才能達(dá)到同樣的質(zhì)量要求,孰優(yōu)孰劣,似乎不難判斷。

其實(shí)俺又是個(gè)重感情的人(:D),這么多年一路陪俺走過一個(gè)溝又一個(gè)坎兒,今兒使勁說嫌棄的話,心里怪不是滋味的(:S)。

現(xiàn)實(shí)會(huì)給人一些安慰。有數(shù)量眾多的人用PHP,也有大量的網(wǎng)站運(yùn)行其上,PHP在實(shí)事上占有一席之地。一切在變化中,結(jié)局還未可知。

Update:
關(guān)于開發(fā)速度的問題,要看具體針對(duì)的業(yè)務(wù)需求。PHP由于有大量開源項(xiàng)目(且不論其質(zhì)量)可以參考使用,加上人力成本相對(duì)較低,可以很容易在短期內(nèi)部署一個(gè)適應(yīng)多種類型的小型網(wǎng)站,確實(shí)會(huì)比Java要快些。然而,但是,根據(jù)前面的描述,你知道我要說什么,你需要有至少一個(gè)最好是多個(gè)有非常豐富經(jīng)驗(yàn)的人來控制架構(gòu)和設(shè)計(jì),否則的話,隨著用戶和訪問量的提升,一定會(huì)遇到技術(shù)上的瓶頸。這些都是有現(xiàn)實(shí)教訓(xùn)的例子的。

作者:liut 原文:http://liut.cc/blog/2010/04/all-about-php.html


該文章在 2012/4/4 2:02:56 編輯過
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved