Cloud9 IDE 雲端

透過網頁隨時隨地開發專案 Cloud9 IDE提供雲端開發環境

2012-05-25
雲端相關議題越來越火熱,現在連軟體開發也插上一腳,將整合開發環境由本地端電腦放到雲端之上,透過協同作業模式,所有開發成員都能隨時隨地掌握整個程式的開發進度。本文介紹的Cloud9 IDE,便是一套開風氣之先、利用雲端概念所推出的整合開發環境。
無論是程式語言的關鍵字,或是程式中的變數名稱、函式名稱,以及物件導向語言所提供的方法(Method)等等,都可以在輸入一定的字數後,直接使用補齊功能將剩餘文字補上。

Cloud9 IDE的自動補齊功能不僅能夠針對程式語言相關的字串來使用,亦可自動補齊任何英文單字。所以,使用者撰寫程式註解或程式說明文件時,也能夠體會到自動補齊功能的好處。


▲Cloud9 IDE的編輯器提供許多方便的功能,包括自動補齊、文法標示等等。

程式碼是否容易閱讀,也是開發程式時應該考慮的問題之一。為了讓使用者的程式碼可以更加容易被閱讀,Cloud9 IDE提供自動縮排功能。

在按下〔Enter〕按鍵切換至下一行的時候,Cloud9 IDE會自動決定下一行的開始行數並自動進行縮排,所以使用者無須考慮該如何縮排程式原始碼,即可得到一份易於閱讀的程式碼。

一般人在程式撰寫到一定程度以後,有些時候可能會被原始碼中一連串的大小括號或是雙引號弄得滿頭霧水,完全不知道這個括號該與哪一個括號對應。

為了讓使用者可以更加容易地找到相對應的括號,並且更快地讀懂程式,或是找出程式的臭蟲,Cloud9 IDE提供了自動尋找對應括號或雙引號的功能。選擇某一個括號或雙引號之後,Cloud9 IDE便會自動顯示相對應的括號或雙引號。

除此之外,在選擇某一個文字後(例如變數或函式名稱等等),Cloud9 IDE也會自動將整個檔案中的相同文字加以標示,所以此變數在整份檔案中的使用狀況,便可以相當清楚地呈現在使用者面前。

使用Cloud9 IDE之後,使用者再也不必擔心程式中會有輸入錯誤的狀況發生,因為Cloud9 IDE會顯示在原始碼中,這包括了所有會造成程式編譯錯誤的拼字問題,例如未宣告便直接使用的變數,或是未被使用的變數等等。

強大的檔案管理

如果專案的規模相當龐大,程式的原始碼勢必會散布在許多不同的檔案中,此時如何有效地管理檔案,也是專案開發時的一大問題。對於Cloud9 IDE而言,檔案管理功能其實只是舉手之勞,但對於使用者來說卻提供了莫大的幫助。

例如,Cloud9 IDE的檔案管理功能支援樹狀目錄管理,並且可以在檔案中以拖曳方式重新置放檔案的所在位置。為了可以快速切換各個不同的檔案,Cloud9 IDE也支援頁籤介面,每一個頁籤即代表一個已開啟的檔案。

如果覺得頁籤的排列方式不夠方便,也能夠自行以拖曳方式重新排列所有頁籤的先後順序。有些人可能會認為以檔案總管的方式列出所有檔案並不直覺,此時也可以切換至清單檢視畫面,此畫面只顯示目前被開啟的檔案,在畫面顯示上較為清爽。

如果經常需要在不同的專案之間進行切換,即可利用Cloud9 IDE所提供的頁籤狀態暫存功能,保留目前所有已開啟檔案的狀態,並且在稍後進行恢復並繼續使用。

有些整合開發環境在遇到相同狀況時,必須先儲存現有專案,再開啟另一個專案,並在處理完成後重新開啟原先正在編輯的專案。如此一來,使用者必須相當頻繁地開啟、關閉各個專案之中的檔案,在操作上顯得相當不直覺。

而在Cloud9 IDE之中,使用者只需要暫存目前的頁籤狀態,稍後再重新載入即可,不必浪費太多時間在開啟與關閉專案檔案。


▲檔案與畫面上的頁籤皆可利用拖曳方式進行搬移或切換顯示順序。

支援眾多程式語言

雖然Cloud9 IDE主要是針對HTML5、JavaScript、Node.js等網頁專用語言所設計的整合開發環境,但仍然支援許多不同種類的程式語言,並提供完整的文法標示等功能。

Cloud9 IDE所提供的編輯器也提供超過二十餘種不同的彩色佈景主題,可以依照個人需求加以採用。如果先前有使用過TextMate的經驗,也可以直接使用Cloud9 IDE的匯入功能,將TextMate的佈景主題完整匯入至Cloud9 IDE內,以便取得熟悉的作業環境。

目前Cloud9 IDE支援的程式語言多達二十餘種,其中較為知名的程式語言有C#、C/C++、CSS、Java、JavaScript、PHP、Perl、Python、Ruby、SQL、HTML、XML等等。在未來的版本中,可能會再新增其他程式語言的支援能力。

活用鍵盤熱鍵

以鍵盤熱鍵進行操作,向來是整合開發環境的一大特色。畢竟在熟悉操作環境的情況之下,直接使用熱鍵呼叫特定功能,在速度上會比使用滑鼠快得多。

Cloud9 IDE也不例外,幾乎所有動作都提供熱鍵功能,並且可以直接從選單中得知其熱鍵定義。

無論是執行專案或是進行偏好設定,或者在頁籤之間進行切換,Cloud9 IDE都能透過熱鍵進行處理。此外,這些熱鍵的功能可以在任何的作業系統或瀏覽器中進行使用,並不會因為作業系統或瀏覽器不同而產生差異。

如果先前習慣使用VIM或Emacs等編輯器所採用的熱鍵,也可以透過偏好設定將熱鍵的定義變更成VIM或Emacs的模式。

如此一來,就能減少摸索新系統的時間,直接以個人最習慣的方式使用Cloud9 IDE。

提供命令列功能

在Cloud9 IDE中,每一個專案的畫面最下方,都安排了一個文字命令列的輸入欄位。此命令列可以用來執行許多標準的UNIX命令,例如建立目錄的「mkdir」或是顯示檔案清單的「ls」指令等等。其執行結果會顯示在下方的「Console」視窗內,並且可以利用「clear」指令加以清除。

如果覺得使用滑鼠進行操作的速度太慢,也能直接在命令列中輸入指令並進行操作。無論是頁籤管理、執行程式,或是在檔案中進行字串搜尋,都能在命令列中直接完成。

除此之外,若想使用git等版本控制系統來回存或取出專案的內容,一樣也可以利用命令列加以完成。如果專案需要安裝一些套件才能繼續執行,也能在命令列中使用Node Package Manager功能以便安裝新的套件。

基本上,除了操作介面完全以文字方式顯示與操作之外,Cloud9 IDE的命令列幾乎可以完成大部分專案開發時所需要進行的工作。


▲習慣UNIX相關指令的使用者可以利用命令列進行檔案操作。

支援程式碼儲藏庫

許多人習慣將程式碼存放於各種不同的程式碼儲藏庫(Repository)中,並使用傳統的離線工具加以上傳或進行管理。如果希望將先前儲存的程式碼移至Cloud9 IDE內,則可以使用匯入功能,直接將這些既有的專案轉移過來。

Cloud9 IDE支援的程式碼儲藏庫包含GitHub、Bitbucket、Mercurial、Git,以及使用FTP方式存放的各種儲藏庫。

在完成程式碼的修改工作之後,也可以將修改過的資料再回存至原先的儲藏庫中,或者在Joyent、Heroku、Azure等執行環境中直接使用這些新的程式。

私有與公開專案的分別

在預設的狀態下,所有Cloud9 IDE的新專案都會是公開專案,並且採用開放原始碼的方式。也就是說,任何人都能直接存取這些程式碼,或是基於現有的專案再進行分支。

雖然只有Cloud9 IDE的付費使用者才能以私有方式建立新專案,但Cloud9 IDE也釋出一個免費方案,提供Cloud9 IDE的免費使用者一個建立私有專案的管道。所有匯入的私有專案基本上都會維持私有專案的狀態,直到使用者複製(Clone)此專案,才會改為公開專案。

Cloud9 IDE的付費帳號是以每個月15美元的方式進行收費,嚴格來說並不算是太大的金額。如果不希望自行架設相關的開發環境,以付費方式取得Cloud9 IDE的白金帳號,也許是個不錯的選擇。

採開放原始碼並支援外掛程式

由於Cloud9 IDE本身是以開放原始碼方式釋出,並且在GitHub網站提供其原始碼(https://github.com/ajaxorg/cloud9),所以任何人都能從此原始碼進行分支並進行修改。

如果對Cloud9 IDE有任何建議,亦可透過GitHub的Pull Request功能遞交建議,好讓Cloud9 IDE可以更加完善。

Cloud9 IDE也支援外掛功能,可讓不想直接修改編輯器內部功能的使用者,利用較為簡單的方式加入擴充功能。無論是新增一個選單項目,或是變更操作環境的色彩配置方式,都能利用外掛功能加以解決。


▲Cloud9 IDE也支援外掛程式,提供各種功能擴充的可能性。

結語

根據Cloud9 IDE的共同創辦人與其執行長Ruben Daniels的說明指出,Cloud9 IDE打算專注於改變應用程式開發的方式,加上現在的程式開發人員比以往更加聰明,也具備以行動模式進行工作的能力,並非常習慣協同作業模式,因此相當適合開發一套以雲端模式進行設計的整合開發環境。Ruben Daniels也相信,這樣的作業環境,將會為所有的程式設計師帶來更好的工作成果。

Ruben Daniels的雄心壯志是否可以順利達成,目前而言尚屬未定之數。但可以確定的是,Cloud9 IDE的出現,將會對軟體開發環境帶來一些變化。或許這樣的變化,還會帶來一些更有趣的應用模式也說不定。

此外,有部分人士可能會認為採用開放原始碼方式釋出的軟體,本身沒有獲利模式,所以商業公司並不適合以開放原始碼方式開發軟體。

事實上,開放原始碼軟體並非在原始碼公開之後便完全沒有機會獲利,就從Cloud9 IDE的運作模式來看,其實仍然有不少機會可以為作者或開發團隊帶來利益。這樣的營運模式,或許也可以作為軟體開發人員的一項參考指標。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!