Update README.md

This commit is contained in:
Liang Ding 2014-09-26 09:56:14 +08:00
parent 87c205b086
commit 261583672d
1 changed files with 69 additions and 63 deletions

View File

@ -5,35 +5,36 @@
A <b>W</b>eb <b>IDE</b> IDE for Teams using Golang. A <b>W</b>eb <b>IDE</b> IDE for Teams using Golang.
## Motivation ## Motivation
* **Team** IDE:
* **Team** IDE:
* Safe and reliable: the project source code stored on the server in real time, the developer's machine crashes without losing any source code * Safe and reliable: the project source code stored on the server in real time, the developer's machine crashes without losing any source code
* Unified environment: server unified development environment configuration, the developer machine without any additional configuration * Unified environment: server unified development environment configuration, the developer machine without any additional configuration
* Out of the box: 5 minutes to setup a server then open browser to develop, debug * Out of the box: 5 minutes to setup a server then open browser to develop, debug
* Version Control: each developer has its own source code repository, easy sync with the trunk * Version Control: each developer has its own source code repository, easy sync with the trunk
* **Web based** IDE: * **Web based** IDE:
* Developer needs a browser only * Developer needs a browser only
* Cross-platform, even on mobile devices * Cross-platform, even on mobile devices
* For the geeks * For the geeks
* A try for commercial-open source: versions customized for enterprises, close to their development work flows respectively * A try for commercial-open source: versions customized for enterprises, close to their development work flows respectively
* Currently more popular Go IDE has some defects or regrets: * Currently more popular Go IDE has some defects or regrets:
* Text editor (vim/emacs/sublime/Atom, etc.): For the Go newbie is too complex * Text editor (vim/emacs/sublime/Atom, etc.): For the Go newbie is too complex
* Plug-in (goclipse, etc.): the need for the original IDE support, not professional * Plug-in (goclipse, etc.): the need for the original IDE support, not professional
* LiteIDE: no modern user interface :p * LiteIDE: no modern user interface :p
* No team development experience * No team development experience
* There are a few of GO IDEs, and no one developed by Go itself, this is a nice try * There are a few of GO IDEs, and no one developed by Go itself, this is a nice try
## Features ## Features
* Code Highlight, Folding: Go/HTML/JavaScript/Markdown etc. * Code Highlight, Folding: Go/HTML/JavaScript/Markdown etc.
* Autocomplete: Go/HTML etc. * Autocomplete: Go/HTML etc.
* Format: Go/HTML/JSON etc. * Format: Go/HTML/JSON etc.
* Run & Debug: run/debug multiple processes at the same time * Run & Debug: run/debug multiple processes at the same time
* Multiplayer: a real team development experience * Multiplayer: a real team development experience
* Navigation, Jump to declaration, Find usages, File search etc. * Navigation, Jump to declaration, Find usages, File search etc.
* Shell: run command on the server * Shell: run command on the server
* Git integration: git command on the web * Git integration: git command on the web
* Web development: Frontend devlopment (HTML/JS/CSS) all in one * Web development: Frontend devlopment (HTML/JS/CSS) all in one
* Go tool: go get/install/fmt etc. * Go tool: go get/install/fmt etc.
## Architecture ## Architecture
@ -42,69 +43,74 @@ A <b>W</b>eb <b>IDE</b> IDE for Teams using Golang.
![Build & Run](https://cloud.githubusercontent.com/assets/873584/4389219/3642bc62-43f3-11e4-8d1f-06d7aaf22784.png) ![Build & Run](https://cloud.githubusercontent.com/assets/873584/4389219/3642bc62-43f3-11e4-8d1f-06d7aaf22784.png)
* A browser tab corresponds to a Wide session * A browser tab corresponds to a Wide session
* Execution output push via WebSocket * Execution output push via WebSocket
1. Browser sends ````Build```` request 1. Browser sends ````Build```` request
2. Server executes ````go build```` command via ````os/exec````<br/> 2. Server executes ````go build```` command via ````os/exec````<br/>
2.1. Generates a executable file 2.1. Generates a executable file
3. Browser sends ````Run```` request 3. Browser sends ````Run```` request
4. Server executes the file via ````os/exec````<br/> 4. Server executes the file via ````os/exec````<br/>
4.1. A running process<br/> 4.1. A running process<br/>
4.2. Execution output push via WebSocket channel 4.2. Execution output push via WebSocket channel
5. Browser renders with callback function ````ws.onmessage```` 5. Browser renders with callback function ````ws.onmessage````
### Code Assist ### Code Assist
![Code Assist](https://cloud.githubusercontent.com/assets/873584/4399135/3b80c21c-4463-11e4-8e94-7f7e8d12a4df.png) ![Code Assist](https://cloud.githubusercontent.com/assets/873584/4399135/3b80c21c-4463-11e4-8e94-7f7e8d12a4df.png)
* Autocompletion * Autocompletion
* Find Usages * Find Usages
1. Browser sends code assist request 1. Browser sends code assist request
2. Handler gets user workspace of the request with HTTP session 2. Handler gets user workspace of the request with HTTP session
3. Server executes ````gocode````/````ide_stub````<br/> 3. Server executes ````gocode````/````ide_stub````<br/>
3.1 Sets environment variables (e.g. ${GOPATH})<br/> 3.1 Sets environment variables (e.g. ${GOPATH})<br/>
3.2 ````gocode```` with ````lib-path```` parameter 3.2 ````gocode```` with ````lib-path```` parameter
## Documents ## Documents
* [用户指南](http://88250.gitbooks.io/wide-user-guide/zh-cn/index.html) * [用户指南](http://88250.gitbooks.io/wide-user-guide/zh-cn/index.html)
* [开发指南](http://88250.gitbooks.io/wide-dev-guide/zh-cn/index.html) * [开发指南](http://88250.gitbooks.io/wide-dev-guide/zh-cn/index.html)
## Demos ## Demos
* 20140913, png ![](http://b3log.org/wide/demo/20140913.png) * 20140913, png ![](http://b3log.org/wide/demo/20140913.png)
### Olds ### Olds
* [20140910, png](http://b3log.org/wide/demo/20140910.png)
* [20140823, swf](http://b3log.org/wide/demo/20140823.html) * [20140910, png](http://b3log.org/wide/demo/20140910.png)
* [20140823, swf](http://b3log.org/wide/demo/20140823.html)
## Setup from sources ## Setup from sources
1. Downloads source
2. Gets dependencies with 1. Downloads source
2. Gets dependencies with
* `go get -u` * `go get -u`
* `go get -u github.com/88250/ide_stub` * `go get -u github.com/88250/ide_stub`
* `go get -u github.com/nsf/gocode` * `go get -u github.com/nsf/gocode`
3. Compiles wide with `go build` 3. Compiles wide with `go build`
4. Configures `conf/wide.json` 4. Configures `conf/wide.json`
5. Runs the executable `wide` or `wide.exe` 5. Runs the executable `wide` or `wide.exe`
## Known Issues ## Known Issues
* [Shell is not available on Windows](https://github.com/b3log/wide/issues/32)
* [Shell is not available on Windows](https://github.com/b3log/wide/issues/32)
## License ## License
Copyright (c) 2014, B3log Team (http://b3log.org) Copyright (c) 2014, B3log Team (http://b3log.org)
Licensed under the [Apache License 2.0](https://github.com/b3log/wide/blob/master/LICENSE). Licensed under the [Apache License 2.0](https://github.com/b3log/wide/blob/master/LICENSE).
## Credits ## Credits
* [golang](http://golang.org)
* [CodeMirror](https://github.com/marijnh/CodeMirror) * [golang](http://golang.org)
* [zTree](https://github.com/zTree/zTree_v3) * [CodeMirror](https://github.com/marijnh/CodeMirror)
* [LiteIDE](https://github.com/visualfc/liteide) * [zTree](https://github.com/zTree/zTree_v3)
* [gocode](https://github.com/nsf/gocode) * [LiteIDE](https://github.com/visualfc/liteide)
* [Gorilla](https://github.com/gorilla) * [gocode](https://github.com/nsf/gocode)
* [Gorilla](https://github.com/gorilla)