摘要:本文發(fā)掘集成開(kāi)發(fā)環(huán)境(IDE)的所有用途,并比較7種流行的IDE的成本和優(yōu)勢(shì)。編寫(xiě)關(guān)于PHP的系列文章讓我更加深刻地了解了PHP開(kāi)發(fā)人員的世界。我和許多PHP程序員交談過(guò),最令我驚奇的是只有很少的人使用IDE。大多數(shù)程序員使用文本編輯器,比如MicrosoftWindows上的記事本、Emacs或者Vim。我提到的這些文本編輯器(
編寫(xiě)關(guān)于 PHP 的系列文章讓我更加深刻地了解了 PHP 開(kāi)發(fā)人員的世界。我和許多 PHP 程序員交談過(guò),最令我驚奇的是只有很少的人使用 IDE。大多數(shù)程序員使用文本編輯器,比如 Microsoft Windows 上的記事本、Emacs 或者 Vim。
我提到的這些文本編輯器(以及我沒(méi)提到)都是很不錯(cuò)的 —— 我不想討論哪個(gè)編輯器更好。但是,我要強(qiáng)調(diào)的是不使用文本編輯器會(huì)使您對(duì) PHP 代碼有更深的見(jiàn)解。幾乎所有人都將 PHP 項(xiàng)目視為只不過(guò)是文件目錄而已(這種看法十分片面)?,F(xiàn)在就讓我?guī)M(jìn)入 IDE 的世界,向您展示 IDE 能夠 —— 或者應(yīng)該 —— 給您帶來(lái)什么,并向您介紹七個(gè)最流行的 IDE。
什么是 IDE?
簡(jiǎn)而言之,IDE 為編碼工作提供了一站式服務(wù)。IDE 包括一個(gè)編輯器,在此編輯器內(nèi)可以編輯代碼、調(diào)試代碼、在瀏覽器(通常是嵌入式的)中查看代碼和簽入和簽出源碼控制。為了支持這些功能,IDE 擁有一套在基本編輯器(比如記事本或者 Vim)中所找不到的特性。當(dāng)然,您可以通過(guò)擴(kuò)展編輯器來(lái)實(shí)現(xiàn)這些功能,但是 IDE 在一個(gè)精簡(jiǎn)軟件包中囊括了所有這些功能 —— 并都已預(yù)配置:
項(xiàng)目
IDE 的一個(gè)關(guān)鍵特性是它把一個(gè) PHP 應(yīng)用程序看作是一個(gè)項(xiàng)目,而不僅僅是一組文件。這個(gè)概念 —— 項(xiàng)目 —— 維護(hù)額外的信息,比如源碼控制的配置、用于調(diào)試的數(shù)據(jù)庫(kù)設(shè)置,以及某一關(guān)鍵目錄所在位置。
調(diào)試
另一個(gè)方便的特性是集成調(diào)試。使用這個(gè)功能,可以在編輯器中設(shè)置斷點(diǎn),當(dāng) PHP 解釋程序執(zhí)行到這個(gè)腳本時(shí)就會(huì)停止。從斷點(diǎn)開(kāi)始,就可以檢查局部變量的值,在代碼中診斷問(wèn)題。在代碼中可以使用 echo 語(yǔ)句來(lái)檢查值或者也可以使用錯(cuò)誤日志獲得變量的值。
代碼智能
PHP 是一種非常規(guī)則的編程語(yǔ)言,這意味著它遵循著簡(jiǎn)單的模式。這些模式不僅使代碼易于編寫(xiě),也使 IDE 在項(xiàng)目中檢查代碼變得很容易。此外,它們可以通過(guò)顯示檢查結(jié)果幫助您編寫(xiě)程序。例如,如果在項(xiàng)目中定義了一個(gè)名為 MyClass 的類(lèi),在鍵入關(guān)鍵詞 new 時(shí),IDE 會(huì)立即提供一個(gè)包括 MyClass 作為選項(xiàng)的彈出窗口。當(dāng)使用那種類(lèi)型的對(duì)象時(shí),IDE 就會(huì)顯示它的可用方法和實(shí)例變量。當(dāng)開(kāi)始鍵入一個(gè)函數(shù)命令時(shí),IDE 就會(huì)顯示它的可用參數(shù)。公正地說(shuō),這是應(yīng)該使用 IDE 而不是文本編輯器的首要原因。這種代碼智能可以有效減少敲錯(cuò)類(lèi)名、方法名和參數(shù)。
類(lèi)視圖
IDE 中的代碼智能引擎產(chǎn)生的另一個(gè)作用是 IDE 可以產(chǎn)生項(xiàng)目的 類(lèi)視圖。系統(tǒng)不是顯示文件,而是顯示已經(jīng)定義的不同的類(lèi),而不管它們所在的文件。當(dāng)單擊類(lèi)時(shí),編輯器訪問(wèn)相應(yīng)文件并顯示相應(yīng)類(lèi)、方法或者實(shí)例變量。這在大項(xiàng)目中是一種非常好的導(dǎo)航方法。
多語(yǔ)言支持
這里提到的每種 IDE 不僅支持 PHP 而且支持相關(guān)語(yǔ)言集:JavaScript、Structured Query Language(SQL)、Hypertext Markup Language(HTML)和 Cascading Style Sheets(CSS)。因?yàn)?HTML 和 CSS 比較簡(jiǎn)單,所以 IDE 對(duì)它們的支持是最好的。對(duì)于 JavaScript 的支持經(jīng)常會(huì)突出語(yǔ)法,但是支持比不支持要好。
源碼控制
這里評(píng)價(jià)的所有 IDE 都支持一些與源碼控制系統(tǒng)的連接,允許隨著時(shí)間維護(hù)項(xiàng)目中的文件版本。可以標(biāo)記文件的特別版本為發(fā)布版本,這樣在需要撤銷(xiāo)改動(dòng)的時(shí)候就可以恢復(fù)。在團(tuán)隊(duì)環(huán)境中使用源碼控制系統(tǒng)是很關(guān)鍵的,即使對(duì)于個(gè)人使用也很重要。當(dāng)磁盤(pán)癱瘓或者客戶突然想要以前的版本而不是現(xiàn)在的版本的時(shí)候,一個(gè)好的源碼控制系統(tǒng)就可以發(fā)揮作用了。大多數(shù)的 IDE 都支持 Concurrent Version System (CVS) 和 Subversion,它們都是開(kāi)源控制系統(tǒng)。其中一種 IDE 支持 Perforce —— 一款商業(yè)源碼控制系統(tǒng)。
FTP/SFTP 集成
與源碼控制相關(guān)的一種功能是在服務(wù)器中對(duì)于最新的代碼使用 FTP 。這比使用 FTP 客戶機(jī)或者自己打包文件并發(fā)送給服務(wù)器然后再解包要容易許多。
數(shù)據(jù)庫(kù)導(dǎo)航
一個(gè)非基本但十分有用的特性是數(shù)據(jù)庫(kù)導(dǎo)航。使用這個(gè)特性,可以瀏覽應(yīng)用程序訪問(wèn)的數(shù)據(jù)庫(kù)、找到表格和字段名并返回查詢結(jié)果。一些系統(tǒng)甚至可以自動(dòng)寫(xiě)入一些數(shù)據(jù)庫(kù)訪問(wèn)代碼。
集成 Web 瀏覽器
一些 IDE 支持集成 Web 瀏覽器,可以直接導(dǎo)航到正在使用指定的附加參數(shù)編輯的頁(yè)面,這個(gè)瀏覽器可以宿主在 IDE 內(nèi),也可以外部調(diào)用。誠(chéng)實(shí)地講,我并不大喜歡集成瀏覽器,因?yàn)槲也唤橐庠诰庉嫶a和查看結(jié)果這兩個(gè)獨(dú)立的應(yīng)用程序之間切換。但是我知道它確實(shí)有一定的作用,但您不必一定要使用它。
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬(wàn)道題
已有25.02萬(wàn)小伙伴參與做題