diff options
Diffstat (limited to 'content/playground.article')
-rw-r--r-- | content/playground.article | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/content/playground.article b/content/playground.article index c1eb6e5..657624d 100644 --- a/content/playground.article +++ b/content/playground.article @@ -27,7 +27,6 @@ The implementation involves a variant operating system environment and runtime and our description here assumes you have some familiarity with systems programming using Go. - * Overview .image playground/overview.png @@ -43,7 +42,6 @@ The playground service has three parts: It also does some caching. - A JavaScript client that implements the user interface and makes HTTP requests to the front end. - * The back end The back end program itself is trivial, so we won't discuss its implementation @@ -82,7 +80,6 @@ fake file system, making the playground's tool chain similar to a normal Go tool chain. These facilities are described in the following sections. - ** Faking time Playground programs are limited in the amount of CPU time and memory they can @@ -182,7 +179,6 @@ The JavaScript client (running in the user's web browser) then plays back the events using the provided delay intervals. To the user it appears that the program is running in real time. - ** Faking the file system Programs built with the Go's NaCl tool chain cannot access the local machine's @@ -245,7 +241,6 @@ There are several implementations of the interface: program's only way to interact with the outside world), - network sockets have their own implementation, discussed in the next section. - ** Faking the network Like the file system, the playground's network stack is an in-process fake @@ -268,7 +263,6 @@ The implementation can be found in [[https://github.com/golang/go/blob/master/sr A good place to start reading is [[https://github.com/golang/go/blob/master/src/syscall/net_nacl.go#L461][`netFile`]], the network socket implementation of the `fileImpl` interface. - * The front end The playground front end is another simple program (shorter than 100 lines). @@ -290,7 +284,6 @@ If there is no cached response, the front end makes an RPC request to the back end, stores the response in memcache, parses the playback events, and returns a JSON object to the client as the HTTP response (as described above). - * The client The various sites that use the playground each share some common JavaScript @@ -324,7 +317,6 @@ the various web servers (godoc, for instance) proxy requests to The common [[https://godoc.org/golang.org/x/tools/playground][`golang.org/x/tools/playground`]] package does this proxying. - * Playing offline Both the [[https://tour.golang.org][Go Tour]] and the @@ -342,7 +334,6 @@ The WebSocket back end implementation can be found in the [[https://godoc.org/golang.org/x/tools/playground/socket][`golang.org/x/tools/playground/socket`]] package. The [[https://talks.golang.org/2012/insidepresent.slide#1][Inside Present]] talk discusses this code in detail. - * Other clients The playground service is used by more than just the official Go project @@ -352,7 +343,6 @@ you [[mailto:golang-dev@googlegroups.com][contact us first]], use a unique user agent in your requests (so we can identify you), and that your service is of benefit to the Go community. - * Conclusion From godoc to the tour to this very blog, the playground has become an |