Wide - 使用Golang開發基于Web的IDE團隊

jopen 10年前發布 | 46K 次閱讀 Google Go/Golang開發 Golang IDE

Wide 是使用Golang開發基于Web的IDE團隊 。

Wide - 基于 Web 的團隊 Golang IDE

Wide 的由來

  • 團隊的 IDE:

    • 安全可靠:項目源代碼實時保存在服務器上,開發者的機器崩潰不會丟失任何源代碼

    • 統一環境:服務器統一配置開發環境,開發者本機無需任何額外配置

    • 開箱即用:5 分鐘搭建服務器;開發者打開瀏覽器即可開發、調試

    • 版本控制:每個開發者擁有自己的源代碼倉庫,隨時可和主干保持同步

  • 基于 Web 的 IDE:

    • 只需要瀏覽器就能進行開發

    • 跨平臺,甚至在移動設備上

    • 易進行功能擴展

    • 易與其他系統集成

    • 極客體驗

  • 商業-開源的一次嘗試:會推出專門為企業定制的 Wide,貼近開發流程

  • 目前較為流行的 Go IDE 都有一些缺陷或遺憾:

    • 文本編輯器類(vim/emacs/sublime/Atom 等):對于新手門檻太高,搭建復雜

    • 插件類(goclipse 等):需要原 IDE 支持,不夠專業

    •  LiteIDE:界面不夠 modern :p

    •  沒有團隊開發體驗

  • Go IDE 很少,用 Go 本身開發的 IDE 更是沒有,這是一個很好的嘗試

特性

  • 代碼高亮、折疊:Go/HTML/JavaScript/Markdown 等

  • 自動完成:Go/HTML 等

  • 編譯檢查:編輯器提示編譯錯誤

  • 格式化:Go/HTML/JSON 等

  • 運行:支持同時運行多個程序,方便聯調

  • 調試:基于 gdb 的調試系統

  • 多用戶:團隊開發,方便協作

  • 代碼導航:跳轉到聲明,查找使用,文件搜索等

  • Shell:連接到服務器執行命令

  • Web 開發:前端(HTML/JS/CSS)開發支持

  • go tool:go get/install/fmt 等

  • Git 整合:常用 git 命令可視化操作

    文檔

架構

Build & Run

Build & Run

  • A browser tab corresponds to a Wide session
  • Execution output push via WebSocket

Flow:

  1. Browser sends Build request
  2. Server executes go build command via os/exec
    2.1. Generates a executable file
  3. Browser sends Run request
  4. Server executes the file via os/exec
    4.1. A running process
    4.2. Execution output push via WebSocket channel
  5. Browser renders with callback function ws.onmessage

Code Assist

Code Assist

  • Autocompletion
  • Find Usages

Flow:

  1. Browser sends code assist request
  2. Handler gets user workspace of the request with HTTP session
  3. Server executes gocode/ide_stub
    3.1 Sets environment variables (e.g. ${GOPATH})
    3.2 gocode with lib-path parameter

項目主頁:http://www.baiduhome.net/lib/view/home/1411807083750

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!