Reload Original PagePrint PageEmail Page

也來寫點程式碼 - 強悍的線上程式開發平台 — Koding.com

強悍的線上程式開發平台 — Koding.com

image

 圖片來源:www.twentyzerotwo.co.uk

上一篇我們介紹了用Github當做簡單的網頁伺服器,但他的缺點就是只能放簡單的HTML/CSS/JS等檔案,若是你正在撰寫PHP/Ruby甚至是Nodejs等網頁編程的話,Github顯然是不夠的,特別是你採用的是HTML/PHP/MySQL這種專案常用的開發方案。

通常我們都必須花錢在網路上找一個網頁伺服器供應商,例如X國策或補O網,才能在上面架起我們的作品展示區;或者找虛擬伺服器供應商如AWS,直接在上面架起主機並客製化它的組態。

但他們都有些問題:

  • 網頁伺服器通常提供的功能是有限的,在他們的後台選單裡面沒有的就是不能用,例如你想開發新的nodejs專案,但你承租的網頁伺服器沒有安裝nodejs,很抱歉你與nodejs無緣。
  • 網頁伺服器似乎都沒有與版本控管整合,檔案管理到最後通常是一團糟。尤其是多人開發的時候。
  • 承租虛擬伺服器等於是一台新主機,幾乎可以在上面安裝任何東西,但缺點是你只能用SSH Client存取該主機,如果你需要在上面改動檔案,要不你必須用ftp或版本控管由本機修改檔案並上傳到VM,要不就是你必須用vim在VM中修改檔案,前一種方式效率稍嫌太慢,後一種必須克服vim的學習曲線。

這時候一些新創公司開發了一些很有新意的產品,試圖克服上述的缺陷。

不久之前,我從同事的臉書那裏看到了一個非常有趣的程式開發網站,試玩了一下發現他的概念非常奇特,但是又很符合新世代的開發者的需求,但當時因為有太多新使用者註冊進入這網站,網站扛不住這麼大的流量,VM變得非常不穩定,幾乎沒辦法開啟VM的終端介面,幾個月後熱潮消退漸漸穩定,我才重新開始審視這平台的功能與趣味。

這個奇妙的線上程式開發網站就是本文的主題 — https://koding.com/ 。

在介紹它的功能之前,請大家看一下他們自家發佈的廣告:

簡單說,這個線上開發供應商將社群以及合作開發的概念整合進線上程式開發的平台中。

他也將版本控管的概念自然地整合進入此平台,你只要擁有Github的帳號,就可以串連帳號,這樣之後登入koding就不用輸入帳號密碼了!

除此之外它也將VM的終端介面整合進網頁,從此之後就不需要SSH或Putty,只要一個瀏覽器就能登入VM執行指令了!


這個網站將程式開發需要的大部分功能都濃縮在了左上角的選單裡:

image

他們的功能分別是:首頁,社交,協作,終端,檔案編輯器,Koding App,以及開發Koding App。

對我們開發者來說,最常用的頁面是前五個,讓我們來看看這五個功能吧:

  1. 首頁與社交,其實是同一個東西,他們都會叫出社交介面:

    image

    社交介面包含了目前你能看到的公開討論串,通常是大家在上面徵求團隊成員,或者提出問題,或者回報系統問題。

    右邊的面板則是各個主題的討論串,你可以註冊感興趣的主題以參與討論。

    我有種感覺,Koding一開始應該是想把類似stackoverflow的軟體開發工程師知識共享平台這樣的社交概念帶入Koding,並且讓使用者可以利用這功能達到溝通以及媒合成員的需求。目前我看起來他還有待加強,至少在模仿致敬stackoverflow的方面還有很長的路要走。最少最少,也讓我能bookmark有用的提問與解答討論吧?

  2. 協作介面:

    image

    這個介面是koding最新穎的概念,簡單說就像Google Doc一樣,可以讓多人同時修改文件檔,但這次的對象是程式文檔。這邊也提供了許多初始專案的簡單設定精靈,讓你可以快速開啟一個專案。

    這個介面也可以讓我們無痛將git的專案引入,下面會提到簡單的步驟。

    另外,左邊的面板是簡單的檔案目錄,或者專案的檔案目錄,我們可以從這裡開啟文字編輯器,或者點選眼睛圖案開啟瀏覽器預覽成果。

    image

  3. VM終端介面:

    image

    頗奇妙的介面,每個使用者預設都會有一個免費VM可使用,目前這個VM幾乎把所有開發者常用的開源套件都安裝好了:

    • PHP 5.4.9-4ubuntu2.
    • mysql Ver 14.14
    • nodejs v0.10.18
    • npm 1.3.8
    • ruby 1.9.3p194 
    • Python 2.7.4
    • perl 5.14.2
    • java version “1.7.0_25” (openJDK)
    • gcc 4.7.3

    你可以直接在這個介面中開啟終端機,輸入指令並且啟動任何這台VM裡可執行的程式,除了screen因為Ctrl鍵與瀏覽器的快捷指令重疊而無法使用外,真的非常威!連登入、輸入帳號密碼等步驟都省了!

  4. 檔案編輯介面:

    image

    其實就是線上檔案管理員,你可以連點兩下打開檔案夾以及打開檔案編輯介面,對檔案按右鍵也可以打開功能選單,讓你簡便使用改名刪檔等功能。對檔案夾按右鍵還可以新增檔案夾或新檔案,甚至也可以從這裡把git專案抓進來!

    終於不用vim也能在遠端主機上修改檔案了!


當各位讀者將你的檔案利用檔案編輯複製貼上,或者scp上傳,或者git下載之後,其他使用者可以很方便地用瀏覽器瀏覽,步驟也很簡單:

  1. 將檔案放在Web目錄下,例如/Web/git/pages-demo/index.html。
  2. 然後打開瀏覽器,到http://{使用者帳號}.kd.io/{/Web底下的檔案路徑}就能看到你的檔案了,例如這一頁
  3. 另外,為了防止你將惡意網頁放上網站,進入此頁前koding都會要求使用者確認他確實有意進入此頁。雖然我覺得這是一種防止你將這個開發環境當做上線環境使用的小手段。

以上介紹了這麼多,讓我們來實際操作一下吧!這次我們從Github下載一個nodejs專案,讓我們看看架設一個nodejs環境有多快!

  1. http://neversay.kd.io:5000/我們這次從Github上的 https://github.com/wercker/getting-started-nodejs 專案下載nodejs的展示程式。
  2. 首先在協作介面左方的檔案面板上,找一個目錄按下右鍵。我習慣創建一個git檔案夾收藏我所有的git專案。右鍵打開選單後選擇”Clone a repo here"。

    image

  3. 在跳出來的視窗上輸入專案的https路徑,這樣我們就不需要ssh私鑰認證,也能將他人的專案下載下來: https://github.com/wercker/getting-started-nodejs.git 。按下”CLONE"後,整個專案就複製到/git/getting-started-nodejs/檔案夾底下了!

    image

  4. 接著進入終端機介面,用”cd /git/getting-started-nodejs/”進入這個專案所在路徑底下,然後打上”npm install; node app”將依賴模組安裝起來,並且啟動nodejs,這個專案就會在http://{帳戶名}.kd.io:5000/底下運行!

    image

  5. 例如我的nodejs會運行在http://neversay.kd.io:5000/ 底下,不過我平常並沒有開啟這專案所以各位是沒辦法從我這邊看到結果,請各位自行測試。

    image


講了這麼多,當然也要講一下缺點:

  • 因為是免費版,所以VM有些限制。開啟之後如果沒有輸入指令,就會在15分鐘後自動將VM關閉,連帶VM正在執行的程式也會關閉。所以諸如nodejs或tomcat這些有別於apache的網頁伺服器也沒辦法維持太久。除非你住在美國,能花錢購買他的服務,否則就只能將就了。
  • 他的網頁伺服器每過一個小時,就需要使用者認證一次,不是很友善,雖然說Koding的初衷就是提供開發環境而不是上線環境,所以作為開發測試環境,Koding這樣的措施不算過分。但是還是有點小煩。
  • 最致命的一點就是Koding的基礎設施不太穩定,所有使用者的VM常常一起掛掉無法使用,尤其是新使用者越來越多,硬體消耗越來越大,錢越燒越多,網站的財務壓力就越大。

    許多開發者還在觀望這網站是否能撐得下去。但我必須衷心稱讚,這網站確實符合許多開發者的習慣,新穎的概念還有方便的開發環境非常適合小型團隊快速的協同開發方式。

以上的說明,希望有需要的人能夠上去體會一下這個新奇又前衛的協作編程方式。用得習慣的話還能把自己的作品都搬過來當免費的展示平台用。

Happy Coding Day!