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

132
README.md
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:
* Safe and reliable: the project source code stored on the server in real time, the developer's machine crashes without losing any source code * **Team** IDE:
* Unified environment: server unified development environment configuration, the developer machine without any additional configuration * Safe and reliable: the project source code stored on the server in real time, the developer's machine crashes without losing any source code
* Out of the box: 5 minutes to setup a server then open browser to develop, debug * Unified environment: server unified development environment configuration, the developer machine without any additional configuration
* Version Control: each developer has its own source code repository, easy sync with the trunk * Out of the box: 5 minutes to setup a server then open browser to develop, debug
* **Web based** IDE: * Version Control: each developer has its own source code repository, easy sync with the trunk
* Developer needs a browser only * **Web based** IDE:
* Cross-platform, even on mobile devices * Developer needs a browser only
* For the geeks * Cross-platform, even on mobile devices
* A try for commercial-open source: versions customized for enterprises, close to their development work flows respectively * For the geeks
* Currently more popular Go IDE has some defects or regrets: * A try for commercial-open source: versions customized for enterprises, close to their development work flows respectively
* Text editor (vim/emacs/sublime/Atom, etc.): For the Go newbie is too complex * Currently more popular Go IDE has some defects or regrets:
* Plug-in (goclipse, etc.): the need for the original IDE support, not professional * Text editor (vim/emacs/sublime/Atom, etc.): For the Go newbie is too complex
* LiteIDE: no modern user interface :p * Plug-in (goclipse, etc.): the need for the original IDE support, not professional
* No team development experience * LiteIDE: no modern user interface :p
* There are a few of GO IDEs, and no one developed by Go itself, this is a nice try * No team development experience
* 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
* `go get -u` 2. Gets dependencies with
* `go get -u github.com/88250/ide_stub` * `go get -u`
* `go get -u github.com/nsf/gocode` * `go get -u github.com/88250/ide_stub`
3. Compiles wide with `go build` * `go get -u github.com/nsf/gocode`
4. Configures `conf/wide.json` 3. Compiles wide with `go build`
5. Runs the executable `wide` or `wide.exe` 4. Configures `conf/wide.json`
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)