diff --git a/ru/01.1.md b/ru/01.1.md new file mode 100644 index 00000000..eac6c9e7 --- /dev/null +++ b/ru/01.1.md @@ -0,0 +1,121 @@ +# 1.1 Installation + +## Three ways to install Go + +There are many ways to configure the Go development environment on your computer, and you can choose whichever one you like. The three most common ways are as follows. + + +- Official installation packages. + - The Go team provides convenient installation packages in Windows, Linux, Mac and other operating systems. This is probably the easiest way to get started. +- Install it yourself from source code. + - Popular with developers who are familiar with Unix-like systems. +- Using third-party tools. + - There are many third-party tools and package managers for installing Go, like apt-get in Ubuntu and homebrew for Mac. + +In case you want to install more than one version of Go on a computer, you should take a look at a tool called [GVM](https://github.com/moovweb/gvm). It is the best tool I've seen so far for accomplishing this task, otherwise you'd have to deal with it yourself. + +## Install from source code + +Because some parts of Go are written in Plan 9 C and AT&T assembler, you have to install a C compiler before taking the next step. + +On a Mac, if you have installed Xcode, you already have the compiler. + +On Unix-like systems, you need to install gcc or a similar compiler. For example, using the package manager apt-get (included with Ubuntu), one can install the required compilers as follows: + + `sudo apt-get install gcc libc6-dev` + +On Windows, you need to install MinGW in order to install gcc. Don't forget to configure your environment variables after the installation has completed.( ***Everything that looks like this means it's commented by a translator: If you are using 64-bit Windows, you should install the 64-bit version of MinGW*** ) + +At this point, execute the following commands to clone the Go source code and compile it.( ***It will clone the source code to your current directory. Switch your work path before you continue. This may take some time.*** ) + + git clone https://go.googlesource.com/go + cd go/src + ./all.bash + +A successful installation will end with the message "ALL TESTS PASSED." + +On Windows, you can achieve the same by running `all.bat`. + +If you are using Windows, the installation package will set your environment variables automatically. In Unix-like systems, you need to set these variables manually as follows. ( ***If your Go version is greater than 1.0, you don't have to set $GOBIN, and it will automatically be related to your $GOROOT/bin, which we will talk about in the next section***) + + export GOROOT=$HOME/go + export GOBIN=$GOROOT/bin + export PATH=$PATH:$GOROOT/bin + +If you see the following information on your screen, you're all set. + +![](images/1.1.mac.png?raw=true) + +Figure 1.1 Information after installing from source code + +Once you see the usage information of Go, it means you have successfully installed Go on your computer. If it says "no such command", check that your $PATH environment variable contains the installation path of Go. + +## Using the standard installation packages + +Go has one-click installation packages for every supported operating system. These packages will install Go in `/usr/local/go` (`c:\Go` in Windows) by default. Of course this can be modified, but you also need to change all the environment variables manually as I've shown above. + +### How to check if your operating system is 32-bit or 64-bit? + +Our next step depends on your operating system type, so we have to check it before we download the standard installation packages. + +If you are using Windows, press `Win+R` and then run the command tool. Type the `systeminfo` command and it will show you some useful system information. Find the line that says "system type" -if you see "x64-based PC" that means your operating system is 64-bit, 32-bit otherwise. + +I strongly recommend downloading the 64-bit package if you are a Mac user, as Go no longer supports pure 32-bit processors on Mac OSX. + +Linux users can type `uname -a` in the terminal to see system information. +A 64-bit operating system will show the following: + + x86_64 x86_64 x86_64 GNU/Linux + // some machines such as Ubuntu 10.04 will show as following + x86_64 GNU/Linux + +32-bit operating systems instead show: + + i686 i686 i386 GNU/Linux + +### Mac + +Go to the [download page](https://golang.org/dl/), choose `go1.4.2.darwin-386.pkg` for 32-bit systems and `go1.4.2.darwin-amd64.pkg` for 64-bit systems. Going all the way to the end by clicking "next", `~/go/bin` will be added to your system's $PATH after you finish the installation. Now open the terminal and type `go`. You should see the same output shown in igure 1.1. + +### Linux + +Go to the [download page](https://golang.org/dl/), choose `go1.4.2.linux-386.tar.gz` for 32-bit systems and `go1.4.2.linux-amd64.tar.gz` for 64-bit systems. Suppose you want to install Go in the `$GO_INSTALL_DIR` path. Uncompress the `tar.gz` to your chosen path using the command `tar zxvf go1.4.2.linux-amd64.tar.gz -C $GO_INSTALL_DIR`. Then set your $PATH with the following: `export PATH=$PATH:$GO_INSTALL_DIR/go/bin`. Now just open the terminal and type `go`. You should now see the same output displayed in figure 1.1. + +### Windows + +Go to the [download page](https://golang.org/dl/), choose `go1.4.2.windows-386.msi` for 32-bit systems and `go1.4.2.windows-amd64.msi` for 64-bit systems. Going all the way to the end by clicking "next", `c:/go/bin` will be added to `path`. Now just open a command line window and type `go`. You should now see the same output displayed in figure 1.1. + +## Use third-party tools + +### GVM + +GVM is a Go multi-version control tool developed by a third-party, like rvm for ruby. It's quite easy to use. Install gvm by typing the following commands in your terminal: + + bash < <(curl -s -S -L https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer) + +Then we install Go using the following commands: + + gvm install go1.4.2 + gvm use go1.4.2 + +After the process has finished, you're all set. + +### apt-get + +Ubuntu is the most popular desktop release version of Linux. It uses `apt-get` to manage packages. We can install Go using the following commands. + + sudo add-apt-repository ppa:gophers/go + sudo apt-get update + sudo apt-get install golang-stable + +### Homebrew + +Homebrew is a software management tool commonly used in Mac to manage packages. Just type the following commands to install Go. + + brew install go + +## Links + +- [Directory](preface.md) +- Previous section: [Go environment configuration](01.0.md) +- Next section: [$GOPATH and workspace](01.2.md) diff --git a/ru/images/1.1.cmd.png b/ru/images/1.1.cmd.png new file mode 100644 index 00000000..0df2504b Binary files /dev/null and b/ru/images/1.1.cmd.png differ diff --git a/ru/images/1.1.linux.png b/ru/images/1.1.linux.png new file mode 100644 index 00000000..539563d9 Binary files /dev/null and b/ru/images/1.1.linux.png differ diff --git a/ru/images/1.1.mac.png b/ru/images/1.1.mac.png new file mode 100644 index 00000000..ad2ceed6 Binary files /dev/null and b/ru/images/1.1.mac.png differ diff --git a/ru/images/1.3.go.png b/ru/images/1.3.go.png new file mode 100644 index 00000000..8155b2d5 Binary files /dev/null and b/ru/images/1.3.go.png differ diff --git a/ru/images/1.4.eclipse1.png b/ru/images/1.4.eclipse1.png new file mode 100644 index 00000000..5b2f10d8 Binary files /dev/null and b/ru/images/1.4.eclipse1.png differ diff --git a/ru/images/1.4.eclipse2.png b/ru/images/1.4.eclipse2.png new file mode 100644 index 00000000..55931f33 Binary files /dev/null and b/ru/images/1.4.eclipse2.png differ diff --git a/ru/images/1.4.eclipse3.png b/ru/images/1.4.eclipse3.png new file mode 100644 index 00000000..3c7bd634 Binary files /dev/null and b/ru/images/1.4.eclipse3.png differ diff --git a/ru/images/1.4.eclipse4.png b/ru/images/1.4.eclipse4.png new file mode 100644 index 00000000..d4ee77af Binary files /dev/null and b/ru/images/1.4.eclipse4.png differ diff --git a/ru/images/1.4.eclipse5.png b/ru/images/1.4.eclipse5.png new file mode 100644 index 00000000..8a89555d Binary files /dev/null and b/ru/images/1.4.eclipse5.png differ diff --git a/ru/images/1.4.eclipse6.png b/ru/images/1.4.eclipse6.png new file mode 100644 index 00000000..7771ec2e Binary files /dev/null and b/ru/images/1.4.eclipse6.png differ diff --git a/ru/images/1.4.emacs.png b/ru/images/1.4.emacs.png new file mode 100644 index 00000000..3dd6845f Binary files /dev/null and b/ru/images/1.4.emacs.png differ diff --git a/ru/images/1.4.idea1.png b/ru/images/1.4.idea1.png new file mode 100644 index 00000000..87d2e51e Binary files /dev/null and b/ru/images/1.4.idea1.png differ diff --git a/ru/images/1.4.idea2.png b/ru/images/1.4.idea2.png new file mode 100644 index 00000000..8059b20f Binary files /dev/null and b/ru/images/1.4.idea2.png differ diff --git a/ru/images/1.4.idea3.png b/ru/images/1.4.idea3.png new file mode 100644 index 00000000..574e1d74 Binary files /dev/null and b/ru/images/1.4.idea3.png differ diff --git a/ru/images/1.4.idea4.png b/ru/images/1.4.idea4.png new file mode 100644 index 00000000..f6e5138d Binary files /dev/null and b/ru/images/1.4.idea4.png differ diff --git a/ru/images/1.4.idea5.png b/ru/images/1.4.idea5.png new file mode 100644 index 00000000..7784a611 Binary files /dev/null and b/ru/images/1.4.idea5.png differ diff --git a/ru/images/1.4.liteide.png b/ru/images/1.4.liteide.png new file mode 100644 index 00000000..f28d755e Binary files /dev/null and b/ru/images/1.4.liteide.png differ diff --git a/ru/images/1.4.sublime1.png b/ru/images/1.4.sublime1.png new file mode 100644 index 00000000..60f2b3db Binary files /dev/null and b/ru/images/1.4.sublime1.png differ diff --git a/ru/images/1.4.sublime2.png b/ru/images/1.4.sublime2.png new file mode 100644 index 00000000..a888636f Binary files /dev/null and b/ru/images/1.4.sublime2.png differ diff --git a/ru/images/1.4.sublime3.png b/ru/images/1.4.sublime3.png new file mode 100644 index 00000000..8b2eb3dc Binary files /dev/null and b/ru/images/1.4.sublime3.png differ diff --git a/ru/images/1.4.sublime4.png b/ru/images/1.4.sublime4.png new file mode 100644 index 00000000..b0fef624 Binary files /dev/null and b/ru/images/1.4.sublime4.png differ diff --git a/ru/images/1.4.vim.png b/ru/images/1.4.vim.png new file mode 100644 index 00000000..27a15c05 Binary files /dev/null and b/ru/images/1.4.vim.png differ diff --git a/ru/images/13.1.flow.png b/ru/images/13.1.flow.png new file mode 100644 index 00000000..b9d6c2f3 Binary files /dev/null and b/ru/images/13.1.flow.png differ diff --git a/ru/images/13.1.gopath.png b/ru/images/13.1.gopath.png new file mode 100644 index 00000000..c948437a Binary files /dev/null and b/ru/images/13.1.gopath.png differ diff --git a/ru/images/13.1.gopath2.png b/ru/images/13.1.gopath2.png new file mode 100644 index 00000000..450b4104 Binary files /dev/null and b/ru/images/13.1.gopath2.png differ diff --git a/ru/images/13.4.beego.png b/ru/images/13.4.beego.png new file mode 100644 index 00000000..96a9d274 Binary files /dev/null and b/ru/images/13.4.beego.png differ diff --git a/ru/images/14.1.bootstrap.png b/ru/images/14.1.bootstrap.png new file mode 100644 index 00000000..13ab7f82 Binary files /dev/null and b/ru/images/14.1.bootstrap.png differ diff --git a/ru/images/14.1.bootstrap2.png b/ru/images/14.1.bootstrap2.png new file mode 100644 index 00000000..753ffc79 Binary files /dev/null and b/ru/images/14.1.bootstrap2.png differ diff --git a/ru/images/14.1.bootstrap3.png b/ru/images/14.1.bootstrap3.png new file mode 100644 index 00000000..460b8183 Binary files /dev/null and b/ru/images/14.1.bootstrap3.png differ diff --git a/ru/images/14.4.github.png b/ru/images/14.4.github.png new file mode 100644 index 00000000..4da4c6f5 Binary files /dev/null and b/ru/images/14.4.github.png differ diff --git a/ru/images/14.4.github2.png b/ru/images/14.4.github2.png new file mode 100644 index 00000000..c3ae04bf Binary files /dev/null and b/ru/images/14.4.github2.png differ diff --git a/ru/images/14.4.github3.png b/ru/images/14.4.github3.png new file mode 100644 index 00000000..e98768c3 Binary files /dev/null and b/ru/images/14.4.github3.png differ diff --git a/ru/images/14.6.pprof.png b/ru/images/14.6.pprof.png new file mode 100644 index 00000000..532f1a76 Binary files /dev/null and b/ru/images/14.6.pprof.png differ diff --git a/ru/images/14.6.pprof2.png b/ru/images/14.6.pprof2.png new file mode 100644 index 00000000..610c93a4 Binary files /dev/null and b/ru/images/14.6.pprof2.png differ diff --git a/ru/images/14.6.pprof3.png b/ru/images/14.6.pprof3.png new file mode 100644 index 00000000..a3b9f7ba Binary files /dev/null and b/ru/images/14.6.pprof3.png differ diff --git a/ru/images/2.2.array.png b/ru/images/2.2.array.png new file mode 100644 index 00000000..5560023b Binary files /dev/null and b/ru/images/2.2.array.png differ diff --git a/ru/images/2.2.basic.png b/ru/images/2.2.basic.png new file mode 100644 index 00000000..9bac6a0f Binary files /dev/null and b/ru/images/2.2.basic.png differ diff --git a/ru/images/2.2.makenew.png b/ru/images/2.2.makenew.png new file mode 100644 index 00000000..00f74179 Binary files /dev/null and b/ru/images/2.2.makenew.png differ diff --git a/ru/images/2.2.slice.png b/ru/images/2.2.slice.png new file mode 100644 index 00000000..119f2141 Binary files /dev/null and b/ru/images/2.2.slice.png differ diff --git a/ru/images/2.2.slice2.png b/ru/images/2.2.slice2.png new file mode 100644 index 00000000..0729a1bf Binary files /dev/null and b/ru/images/2.2.slice2.png differ diff --git a/ru/images/2.3.init.png b/ru/images/2.3.init.png new file mode 100644 index 00000000..abe7cfad Binary files /dev/null and b/ru/images/2.3.init.png differ diff --git a/ru/images/2.4.student_struct.png b/ru/images/2.4.student_struct.png new file mode 100644 index 00000000..7c4f87ac Binary files /dev/null and b/ru/images/2.4.student_struct.png differ diff --git a/ru/images/2.5.rect_func_without_receiver.png b/ru/images/2.5.rect_func_without_receiver.png new file mode 100644 index 00000000..b4b571fd Binary files /dev/null and b/ru/images/2.5.rect_func_without_receiver.png differ diff --git a/ru/images/2.5.shapes_func_with_receiver_cp.png b/ru/images/2.5.shapes_func_with_receiver_cp.png new file mode 100644 index 00000000..2d26a01d Binary files /dev/null and b/ru/images/2.5.shapes_func_with_receiver_cp.png differ diff --git a/ru/images/2.5.shapes_func_without_receiver.png b/ru/images/2.5.shapes_func_without_receiver.png new file mode 100644 index 00000000..112f56fc Binary files /dev/null and b/ru/images/2.5.shapes_func_without_receiver.png differ diff --git a/ru/images/3.1.dns2.png b/ru/images/3.1.dns2.png new file mode 100644 index 00000000..f432edf3 Binary files /dev/null and b/ru/images/3.1.dns2.png differ diff --git a/ru/images/3.1.dns_hierachy.png b/ru/images/3.1.dns_hierachy.png new file mode 100644 index 00000000..8dfeb232 Binary files /dev/null and b/ru/images/3.1.dns_hierachy.png differ diff --git a/ru/images/3.1.dns_inquery.png b/ru/images/3.1.dns_inquery.png new file mode 100644 index 00000000..b95d952e Binary files /dev/null and b/ru/images/3.1.dns_inquery.png differ diff --git a/ru/images/3.1.http.png b/ru/images/3.1.http.png new file mode 100644 index 00000000..25108bf3 Binary files /dev/null and b/ru/images/3.1.http.png differ diff --git a/ru/images/3.1.httpPOST.png b/ru/images/3.1.httpPOST.png new file mode 100644 index 00000000..31d02020 Binary files /dev/null and b/ru/images/3.1.httpPOST.png differ diff --git a/ru/images/3.1.response.png b/ru/images/3.1.response.png new file mode 100644 index 00000000..978de790 Binary files /dev/null and b/ru/images/3.1.response.png differ diff --git a/ru/images/3.1.web.png b/ru/images/3.1.web.png new file mode 100644 index 00000000..5b98b5dc Binary files /dev/null and b/ru/images/3.1.web.png differ diff --git a/ru/images/3.1.web2.png b/ru/images/3.1.web2.png new file mode 100644 index 00000000..a604c217 Binary files /dev/null and b/ru/images/3.1.web2.png differ diff --git a/ru/images/3.2.goweb.png b/ru/images/3.2.goweb.png new file mode 100644 index 00000000..d6a53829 Binary files /dev/null and b/ru/images/3.2.goweb.png differ diff --git a/ru/images/3.3.http.png b/ru/images/3.3.http.png new file mode 100644 index 00000000..40137e33 Binary files /dev/null and b/ru/images/3.3.http.png differ diff --git a/ru/images/3.3.illustrator.png b/ru/images/3.3.illustrator.png new file mode 100644 index 00000000..8159b8bb Binary files /dev/null and b/ru/images/3.3.illustrator.png differ diff --git a/ru/images/4.1.login.png b/ru/images/4.1.login.png new file mode 100644 index 00000000..dfca39df Binary files /dev/null and b/ru/images/4.1.login.png differ diff --git a/ru/images/4.1.slice.png b/ru/images/4.1.slice.png new file mode 100644 index 00000000..3405c147 Binary files /dev/null and b/ru/images/4.1.slice.png differ diff --git a/ru/images/4.3.escape.png b/ru/images/4.3.escape.png new file mode 100644 index 00000000..76ce1245 Binary files /dev/null and b/ru/images/4.3.escape.png differ diff --git a/ru/images/4.4.token.png b/ru/images/4.4.token.png new file mode 100644 index 00000000..b52cc1d1 Binary files /dev/null and b/ru/images/4.4.token.png differ diff --git a/ru/images/4.5.upload.png b/ru/images/4.5.upload.png new file mode 100644 index 00000000..e5766e38 Binary files /dev/null and b/ru/images/4.5.upload.png differ diff --git a/ru/images/4.5.upload2.png b/ru/images/4.5.upload2.png new file mode 100644 index 00000000..06460446 Binary files /dev/null and b/ru/images/4.5.upload2.png differ diff --git a/ru/images/5.6.mongodb.png b/ru/images/5.6.mongodb.png new file mode 100644 index 00000000..6161fbe5 Binary files /dev/null and b/ru/images/5.6.mongodb.png differ diff --git a/ru/images/6.1.cookie.png b/ru/images/6.1.cookie.png new file mode 100644 index 00000000..b94559cf Binary files /dev/null and b/ru/images/6.1.cookie.png differ diff --git a/ru/images/6.1.cookie2.png b/ru/images/6.1.cookie2.png new file mode 100644 index 00000000..2888e392 Binary files /dev/null and b/ru/images/6.1.cookie2.png differ diff --git a/ru/images/6.1.session.png b/ru/images/6.1.session.png new file mode 100644 index 00000000..f538b8f5 Binary files /dev/null and b/ru/images/6.1.session.png differ diff --git a/ru/images/6.4.cookie.png b/ru/images/6.4.cookie.png new file mode 100644 index 00000000..0dad93f1 Binary files /dev/null and b/ru/images/6.4.cookie.png differ diff --git a/ru/images/6.4.hijack.png b/ru/images/6.4.hijack.png new file mode 100644 index 00000000..5ab0753f Binary files /dev/null and b/ru/images/6.4.hijack.png differ diff --git a/ru/images/6.4.hijacksuccess.png b/ru/images/6.4.hijacksuccess.png new file mode 100644 index 00000000..57f48d41 Binary files /dev/null and b/ru/images/6.4.hijacksuccess.png differ diff --git a/ru/images/6.4.setcookie.png b/ru/images/6.4.setcookie.png new file mode 100644 index 00000000..dbb52170 Binary files /dev/null and b/ru/images/6.4.setcookie.png differ diff --git a/ru/images/7.4.template.png b/ru/images/7.4.template.png new file mode 100644 index 00000000..195e24fb Binary files /dev/null and b/ru/images/7.4.template.png differ diff --git a/ru/images/8.1.socket.png b/ru/images/8.1.socket.png new file mode 100644 index 00000000..93dd544d Binary files /dev/null and b/ru/images/8.1.socket.png differ diff --git a/ru/images/8.2.websocket.png b/ru/images/8.2.websocket.png new file mode 100644 index 00000000..b293c653 Binary files /dev/null and b/ru/images/8.2.websocket.png differ diff --git a/ru/images/8.2.websocket2.png b/ru/images/8.2.websocket2.png new file mode 100644 index 00000000..b744c634 Binary files /dev/null and b/ru/images/8.2.websocket2.png differ diff --git a/ru/images/8.2.websocket3.png b/ru/images/8.2.websocket3.png new file mode 100644 index 00000000..ee769c16 Binary files /dev/null and b/ru/images/8.2.websocket3.png differ diff --git a/ru/images/8.3.rest.png b/ru/images/8.3.rest.png new file mode 100644 index 00000000..0c1e5b54 Binary files /dev/null and b/ru/images/8.3.rest.png differ diff --git a/ru/images/8.3.rest2.png b/ru/images/8.3.rest2.png new file mode 100644 index 00000000..b43c0804 Binary files /dev/null and b/ru/images/8.3.rest2.png differ diff --git a/ru/images/8.3.rest3.png b/ru/images/8.3.rest3.png new file mode 100644 index 00000000..1f62b505 Binary files /dev/null and b/ru/images/8.3.rest3.png differ diff --git a/ru/images/8.4.rpc.png b/ru/images/8.4.rpc.png new file mode 100644 index 00000000..0b3fcfe2 Binary files /dev/null and b/ru/images/8.4.rpc.png differ diff --git a/ru/images/9.1.csrf.png b/ru/images/9.1.csrf.png new file mode 100644 index 00000000..54d3a434 Binary files /dev/null and b/ru/images/9.1.csrf.png differ diff --git a/ru/images/cover.png b/ru/images/cover.png new file mode 100644 index 00000000..22bfab44 Binary files /dev/null and b/ru/images/cover.png differ diff --git a/ru/images/ebook.jpg b/ru/images/ebook.jpg new file mode 100644 index 00000000..b2f3710d Binary files /dev/null and b/ru/images/ebook.jpg differ diff --git a/ru/images/navi1.png b/ru/images/navi1.png new file mode 100644 index 00000000..92a7669e Binary files /dev/null and b/ru/images/navi1.png differ diff --git a/ru/images/navi10.png b/ru/images/navi10.png new file mode 100644 index 00000000..94935e27 Binary files /dev/null and b/ru/images/navi10.png differ diff --git a/ru/images/navi11.png b/ru/images/navi11.png new file mode 100644 index 00000000..8eb93cb1 Binary files /dev/null and b/ru/images/navi11.png differ diff --git a/ru/images/navi12.png b/ru/images/navi12.png new file mode 100644 index 00000000..5bdbadfa Binary files /dev/null and b/ru/images/navi12.png differ diff --git a/ru/images/navi13.png b/ru/images/navi13.png new file mode 100644 index 00000000..c797033b Binary files /dev/null and b/ru/images/navi13.png differ diff --git a/ru/images/navi14.png b/ru/images/navi14.png new file mode 100644 index 00000000..3d9d38cc Binary files /dev/null and b/ru/images/navi14.png differ diff --git a/ru/images/navi2.png b/ru/images/navi2.png new file mode 100644 index 00000000..d18526ac Binary files /dev/null and b/ru/images/navi2.png differ diff --git a/ru/images/navi3.png b/ru/images/navi3.png new file mode 100644 index 00000000..23495893 Binary files /dev/null and b/ru/images/navi3.png differ diff --git a/ru/images/navi4.png b/ru/images/navi4.png new file mode 100644 index 00000000..1b4df73a Binary files /dev/null and b/ru/images/navi4.png differ diff --git a/ru/images/navi5.png b/ru/images/navi5.png new file mode 100644 index 00000000..55788152 Binary files /dev/null and b/ru/images/navi5.png differ diff --git a/ru/images/navi6.png b/ru/images/navi6.png new file mode 100644 index 00000000..74cab817 Binary files /dev/null and b/ru/images/navi6.png differ diff --git a/ru/images/navi7.png b/ru/images/navi7.png new file mode 100644 index 00000000..2e1c974e Binary files /dev/null and b/ru/images/navi7.png differ diff --git a/ru/images/navi8.png b/ru/images/navi8.png new file mode 100644 index 00000000..7a52d84e Binary files /dev/null and b/ru/images/navi8.png differ diff --git a/ru/images/navi9.png b/ru/images/navi9.png new file mode 100644 index 00000000..7692e113 Binary files /dev/null and b/ru/images/navi9.png differ diff --git a/ru/images/polling.png b/ru/images/polling.png new file mode 100644 index 00000000..8bd128ec Binary files /dev/null and b/ru/images/polling.png differ diff --git a/ru/preface.md b/ru/preface.md new file mode 100644 index 00000000..3f97cd99 --- /dev/null +++ b/ru/preface.md @@ -0,0 +1,96 @@ +- 1.[Настройка среды разработки на Go](01.0.md) + - 1.1. [Установка](01.1.md) + - 1.2. [$GOPATH и рабочая директория](01.2.md) + - 1.3. [Команды Go](01.3.md) + - 1.4. [Go development tools](01.4.md) + - 1.5. [Summary](01.5.md) +- 2.[Go basic knowledge](02.0.md) + - 2.1. ["Hello, Go"](02.1.md) + - 2.2. [Go foundation](02.2.md) + - 2.3. [Control statements and functions](02.3.md) + - 2.4. [struct](02.4.md) + - 2.5. [Object-oriented](02.5.md) + - 2.6. [interface](02.6.md) + - 2.7. [Concurrency](02.7.md) + - 2.8. [Summary](02.8.md) +- 3.[Web foundation](03.0.md) + - 3.1. [Web working principles](03.1.md) + - 3.2. [Build a simple web server](03.2.md) + - 3.3. [How Go works with web](03.3.md) + - 3.4. [Get into http package](03.4.md) + - 3.5. [Summary](03.5.md) +- 4.[User form](04.0.md) + - 4.1. [Process form inputs](04.1.md) + - 4.2. [Verification of inputs](04.2.md) + - 4.3. [Cross site scripting](04.3.md) + - 4.4. [Duplicate submissions](04.4.md) + - 4.5. [File upload](04.5.md) + - 4.6. [Summary](04.6.md) +- 5.[Database](05.0.md) + - 5.1. [database/sql interface](05.1.md) + - 5.2. [MySQL](05.2.md) + - 5.3. [SQLite](05.3.md) + - 5.4. [PostgreSQL](05.4.md) + - 5.5. [Develop ORM based on beedb](05.5.md) + - 5.6. [NoSQL database](05.6.md) + - 5.7. [Summary](05.7.md) +- 6.[Data storage and session](06.0.md) + - 6.1. [Session and cookies](06.1.md) + - 6.2. [How to use session in Go](06.2.md) + - 6.3. [Session storage](06.3.md) + - 6.4. [Prevent hijack of session](06.4.md) + - 6.5. [Summary](06.5.md) +- 7.[Text files](07.0.md) + - 7.1. [XML](07.1.md) + - 7.2. [JSON](07.2.md) + - 7.3. [Regexp](07.3.md) + - 7.4. [Templates](07.4.md) + - 7.5. [Files](07.5.md) + - 7.6. [Strings](07.6.md) + - 7.7. [Summary](07.7.md) +- 8.[Web services](08.0.md) + - 8.1. [Sockets](08.1.md) + - 8.2. [WebSocket](08.2.md) + - 8.3. [REST](08.3.md) + - 8.4. [RPC](08.4.md) + - 8.5. [Summary](08.5.md) +- 9.[Security and encryption](09.0.md) + - 9.1. [CSRF attacks](09.1.md) + - 9.2. [Filter inputs](09.2.md) + - 9.3. [XSS attacks](09.3.md) + - 9.4. [SQL injection](09.4.md) + - 9.5. [Password storage](09.5.md) + - 9.6. [Encrypt and decrypt data](09.6.md) + - 9.7. [Summary](09.7.md) +- 10.[Internationalization and localization](10.0.md) + - 10.1 [Time zone](10.1.md) + - 10.2 [Localized resources](10.2.md) + - 10.3 [International sites](10.3.md) + - 10.4 [Summary](10.4.md) +- 11.[Error handling, debugging and testing](11.0.md) + - 11.1. [Error handling](11.1.md) + - 11.2. [Debugging by using GDB](11.2.md) + - 11.3. [Write test cases](11.3.md) + - 11.4. [Summary](11.4.md) +- 12.[Deployment and maintenance](12.0.md) + - 12.1. [Logs](12.1.md) + - 12.2. [Errors and crashes](12.2.md) + - 12.3. [Deployment](12.3.md) + - 12.4. [Backup and recovery](12.4.md) + - 12.5. [Summary](12.5.md) +- 13.[Build a web framework](13.0.md) + - 13.1. [Project program](13.1.md) + - 13.2. [Customized routers](13.2.md) + - 13.3. [Design controllers](13.3.md) + - 13.4. [Logs and configurations](13.4.md) + - 13.5. [Add, delete and update blogs](13.5.md) + - 13.6. [Summary](13.6.md) +- 14.[Develop web framework](14.0.md) + - 14.1. [Static files](14.1.md) + - 14.2. [Session](14.2.md) + - 14.3. [Form](14.3.md) + - 14.4. [User validation](14.4.md) + - 14.5. [Multi-language support](14.5.md) + - 14.6. [pprof](14.6.md) + - 14.7. [Summary](14.7.md) +- Appendix A [References](ref.md)