Merge pull request #502 from zgordan-vv/ru

Ru
This commit is contained in:
astaxie
2015-07-30 22:15:42 +08:00
104 changed files with 911 additions and 0 deletions

20
ru/01.0.md Normal file
View File

@@ -0,0 +1,20 @@
# 1 Настройка окружения Go
Добро пожаловать в мир Go! Давайте начнем.
Go - это язык программирования, характерными чертами которого являюся быстрое время компиляции, сборка мусора и многопоточность. Вот список преимуществ Go:
- Большие проекты компилируюстя за несколько секунд.
- Модель разработки в Go легко объяснима, Go позволяет избежать большинства проблем, связанных с заголовочными файлами в стиле языка C.
- Это статически типизированный язык программирования, в системе типов которого не поддерживается иерархия уровней, поэтому пользователю не нужно тратить время на выяснение отношений между типами. Go, скорее, "легковесный" объектно-ориентированный язык программирования.
- Go обеспечивает сборку мусора. Он предлагает встроенную поддержку конкарентности и протоколов связи.
- Разработан для многоядерных процессоров.
Go - компилируемый язык. Он сочетает в себе эффективность разработки интерпретируемых или динамически типизированных языков и безопасность статически типизируемых языков. Его задача - стать оптимальным вариантом среди языков программирования для современных многоядерных компьютеров, работающих в сети. Чтобы стать таким языком, нужно решить несколько задач, таких как поддержка богатой, выразительной и легкой системы типизации, поддержка одновременности выполнения процедур "из коробки" и точно регулируемая сборка мусора. Иногда при программировании на каком-либо языке оказывалось так, что пакетов для решения всех этих задач практичным способом просто не было. Это и явилось причиной появления языка Go.
В этой главе я покажу, как установить и настроить среду разработки на Go.
## Ссылки
- [Содержание](preface.md)
- Следующий раздел: [Установка](01.1.md)

120
ru/01.1.md Normal file
View File

@@ -0,0 +1,120 @@
# 1.1 Установка
## 3 способа установить Go
Существует несколько способов установить Go, можете выбирать, какой Вам больше нравится. 3 наиболее распространенных таковы:
- Установка из пакетов.
- Команда разработчиков Go предлагает установочные пакеты для Windows, Linux, Mac и других операционных систем. Это, вероятно, наиболее легкий путь.
- Установка из исходного кода.
- Это метод популярен среди разработчиков, которые знакомы с работой в Unix-подобных системах.
- Установка с использованием сторонних инструментов.
- Существует множество сторонних инструментов и менеджеров пакетов для установки Go, таких как apt-get в Ubuntu и homebrew для Mac.
В случае, если Вы собираетесь установить несколько версий Go на одном компьютере, советую Вам ознакомиться с инструментом [GVM](https://github.com/moovweb/gvm). Это лучший инструмент для решения этой задачи, который я когда-либо встречал. Впрочем, решать Вам.
## Установка из исходного кода
Поскольку Go частично написан на Plan 9 C и AT&T assembler, Вам нужно установить компилятор C перед тем, как продолжить.
На Mac у Вас есть компилятор, если на компьютере установлен Xcode.
На Unix-подобных системах Вам нужно установить gcc или подобный ему компилятор. Например, используя пакетный менеджер apt-get, по умолчанию включенный в Ubuntu, можно установить требуемые пакеты следующей командой:
`sudo apt-get install gcc libc6-dev`
На Windows для установки gcc Вам нужно сначала установить MinGW. Не забудьте настроить переменные окружения после завершения установки. ( ***Все, что выглядит таким образом - здесь и далее добавлено переводчиком на английский - если Вы используете 64-битную Windows, Вам нужно будет установить 64-битную версию MiniGW*** )
Итак, для того, чтобы скачать исходные коды Go и скомпилировать их, выполните следующие команды ( ***При этом исходники скачаются в тот каталог, в которой Вы находитесь. Для того, чтобы скачать их в другой каталог, сначала перейдите в нее.***):
git clone https://go.googlesource.com/go
cd go/src
./all.bash
В случае успешной установки по ее завершении появится сообщение "ALL TESTS PASSED."
На Windows то же самое можно сделать с помощью запуска файла `all.bat`.
Если Вы используете Windows, установщик настроит переменные окружения автоматически. В Unix-подобных системах Вам нужно будет настроить их самому следующим образом ( ***Если устанавливаемая версия Go больше 1.0, настраивать переменную $GOBIN не надо, она автоматически будет равна $GOROOT/bin, о чем мы поговорим в следующем разделе***):
export GOROOT=$HOME/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOROOT/bin
Если Вы видите следуюую информацию, все настроено правильно:
![](images/1.1.mac.png?raw=true)
Рисунок 1.1 Информация после установки из исходных кодов.
Если Вы видите информацию о том, как пользоваться Go (Usage), это значит, что Вы успешно установили Go. Если же выдается "no such command", проверьте переменную $PATH на предмет содержания в ней пути к каталогу установки Go.
## Установка, используя стандартные установочные пакеты
Для каждой из поддерживаемых операционных систем в Go имеются установочные пакеты, из которых можно легко произвести установку одним щелчком мыши. Они установят Go в каталог `/usr/local/go` (`c:\Go` в Windows) по умлочанию. Конечно, Вы можете изменить путь установки, но в этом случае Вам придется изменить также и значения переменных окружения так, как было показано выше.
### Как проверить, 32-битная или 64-битная у Вас операционная система?
Следующий наш шаг зависит от разрядности Вашей операционной системы, поэтому перед загрузкой пакетов нам надо ее узнать.
Если у Вас Windows, нажмите `Win+R` и запустите командную строку. Выполните команду `systeminfo`, которая выдаст Вам информацию о системе. Найдите строку, содержащую "system type" - если Вы видите "x64-based PC", это означает 64-битную ОС, в другом случае - 32-битную.
Я настоятельно рекомендую использовать 64-битный пакет, если Вы - пользователь Mac, так как Go больше не поддерживает 32-битные процессоры на Mac OSX.
Пользователям Linux можно выполнить команду `uname -a` в терминале для того, чтобы ознакомиться с информацией о системе.
64-битная ОС покажет следующее:
<...некоторая информация...> x86_64 x86_64 x86_64 GNU/Linux
// некоторые ОС типа Ubuntu 10.04 покажут следующее:
x86_64 GNU/Linux
32-битная ОС - следующее:
<...информация...> i686 i686 i386 GNU/Linux
### Mac
Зайдите на [страницу загрузки](https://golang.org/dl/), выберите `go1.4.2.darwin-386.pkg` для 32-битных систем или `go1.4.2.darwin-amd64.pkg` для 64-битных. Далее жмите все время "next", `~/go/bin` будет добавлен к системной переменной $PATH после того, как установка закончится. Теперь откройте терминал и напечатайте `go`. Вы должны увидеть то же, что показано на рисунке 1.1.
### Linux
Зайдите на [страницу загрузки](https://golang.org/dl/), выберите `go1.4.2.linux-386.tar.gz` для 32-битных систем или `go1.4.2.linux-amd64.tar.gz` для 64-битных. Предположим, Вы хотите установить Go в каталог `$GO_INSTALL_DIR`. Распакуйте `tar.gz` в этот каталог командой `tar zxvf go1.4.2.linux-amd64.tar.gz -C $GO_INSTALL_DIR`. Затем измените прееменную $PATH следующим образом: `export PATH=$PATH:$GO_INSTALL_DIR/go/bin`. Теперь откройте терминал и напечатайте `go`. Вы должны увидеть то же, что показано на рисунке 1.1.
### Windows
Зайдите на [страницу загрузки](https://golang.org/dl/), выберите `go1.4.2.windows-386.msi` для 32-битных систем или `go1.4.2.windows-amd64.msi` для 64-битных. Далее жмите все время "next", `c:/go/bin` будет добавлен к системной переменной $PATH после того, как установка закончится. Теперь откройте терминал и напечатайте `go`. Вы должны увидеть то же, что показано на рисунке 1.1.
## Установка с использованием сторонних инструментов
### GVM
GVM - это инструмент управления версиями Go, разработанный сторонними разработчиками, наподобие rvm для ruby. Он довольно-таки легок в использовании. Установить gvm можно следующей командой в терминале:
bash < <(curl -s -S -L https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)
Теперь можно устанавливать Go с помощью следующих команд:
gvm install go1.4.2
gvm use go1.4.2
На этом процесс установки закончен.
### apt-get
Ubuntu - это наиболее распространенный релиз Linux для рабочих станций. Он использует `apt-get` для управления пакетами. С помощью него мы можем установить Go с помощью следующих команд:
sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang-stable
### Homebrew
Homebrew - это инструмент для управления пакетами, используемый в Mac. Используя его, можно установить Go следующей командой:
brew install go
## Ссылки
- [Содержание](preface.md)
- Предыдущий раздел: [Настройка окружения Go](01.0.md)
- Следующий раздел: [$GOPATH и рабочий каталог](01.2.md)

151
ru/01.2.md Normal file
View File

@@ -0,0 +1,151 @@
#1.2 $GOPATH и рабочий каталог
## $GOPATH
Все команды Go зависят от переменной окружения $GOPATH. Имейте в виду, что это не переменная $GOROOT, в которой хранится путь установки Go. Эта переменная указывает на рабочий каталог Go на Вашем компьютере (я использую этот путь у себя на компьютере; Вы можете заменить его по своему усмотрению, если структура каталогов на вашем компьютере другая).
В Unix-подобных системах переменную можно задать следующим образом:
export GOPATH=/home/apple/mygo
В Windows Вам нужно создать новую переменную окружения GOPATH, а затем задать ей значение `c:\mygo`( ***Оно заваисит от того, где расположен Ваш рабочий каталог*** )
$GOPATH при Вашем желании может содержать больше одного пути к рабочим каталогам, но помните, что следует использовать знак `:`(или `;` в Windows) для того, чтобы разделять их. В этом случае `go get` будет сохранять содержимое в первый путь из тех, что указаны в $GOPATH.
В $GOPATH должно находиться три следующих папки:
- `src` для текстов исходных кодов с расширениями .go, .c, .g, .s.
- `pkg` для скомпилированных файлов с расширением .a.
- `bin` для исполняемых файлов.
В этой книге я буду использовать `mygo` в качестве единственного пути в $GOPATH.
## Каталог пакета
Создайте каталоги и исходные файлы пакетов, такие как `$GOPATH/src/mymath/sqrt.go` (где `mymath` - имя пакета) ( ***Автор использует `mymath` в качестве имени пакета и в качестве имени каталога, где располагаются исходные файлы этого пакета***)
Каждый раз при создании пакета Вы должны создать новый каталог в каталоге 'src'. Каталог обычно называется так же, как и пакет, который предполагается использовать. Можно использовать многоуровневую структуру каталогов, если нужно. Например, если создать каталог `$GOPATH/src/github.com/astaxie/beedb`, то путь к пакету будет `github.com/astaxie/beedb`. Имя пакета - это имя последнего каталога пути, в данном случае `beedb`.
Выполните следующие команды: ( ***Сейчас автор возвращается к примеру*** )
cd $GOPATH/src
mkdir mymath
Создайте новый файл `sqrt.go` и поместите туда следующее:
// Исходный код $GOPATH/src/mymath/sqrt.go
package mymath
func Sqrt(x float64) float64 {
z := 0.0
for i := 0; i < 1000; i++ {
z -= (z*z - x) / (2 * x)
}
return z
}
Сейчас нами создан каталог пакета, в пакете содержится код. Я рекомендую использовать одни и те же названия для пакетов и каталогов, в которых они находятся; таким образом, каталог будет содержать все исходные файлы пакета.
## Компиляция пакетов
Мы только что создали пакет, но как нам теперь скомпилировать его для того, чтобы потом использовать? Для этого существуют два способа:
1. Перейдите в каталог пакета и выполните команду `go install`.
2. Выполните вышеуказанную команду с указанием имени файла, например `go install mymath`.
После компиляции можно открыть каталог:
cd $GOPATH/pkg/${GOOS}_${GOARCH}
// Вы увидите созданный файл
mymath.a
Файл с расширением `.a` - это исполняемый файл нашего пакета. Как его можно использовать?
Очевидно, что для этого нам нужно создать какое-нибудь приложение.
Создайте новое приложение под названием `mathapp`.
cd $GOPATH/src
mkdir mathapp
cd mathapp
vim main.go
Код:
//$GOPATH/src/mathapp/main.go source code.
package main
import (
"mymath"
"fmt"
)
func main() {
fmt.Printf("Hello, world. Sqrt(2) = %v\n", mymath.Sqrt(2))
}
Для того, чтобы скомпилировать это приложение, перейдите в каталог с приложением `$GOPATH/src/mathapp`, затем выполните команду `go install`. Вы должны увидеть, как исполняемый файл `mathapp` появился в каталоге `$GOPATH/bin/`. Для запуска приложения выполните команду `./mathapp`. Вы должны увидеть следующее в терминале:
Hello world. Sqrt(2) = 1.414213562373095
## Установка удаленных пакетов
В Go есть инструмент для установки удаленных пакетов - команда `go get`. Он поддерживает работу с большинством сообществ Open Source, включая Github, Google Code, BitBucket и Launchpad.
go get github.com/astaxie/beedb
Чтобы обновить Ваши удаленные пакеты, выполните `go get -u …`, при этом установятся все дополнительные зависимости .
Для разных Open Source платформ потребуются различные системы контроля версий, например `git` для Github и `hg` для Google Code. Поэтому Вам нужно установить соответствующие системы контроля версий перед использованием `go get`.
После выполнения команд выше структура каталогов будет выглядеть следующим образом:
$GOPATH
src
|-github.com
|-astaxie
|-beedb
pkg
|--${GOOS}_${GOARCH}
|-github.com
|-astaxie
|-beedb.a
Фактически `go get` делает точную копию кода в $GOPATH/src локальной файловой системы, а затем выполняет `go install`.
Удаленные пакеты можно использовать так же, как и локальные:
import "github.com/astaxie/beedb"
## Полная структура каталогов
Если Вы выполнили все предыдущие шаги, структура каталогов должна выглядеть следующим образом:
bin/
mathapp
pkg/
${GOOS}_${GOARCH}, например darwin_amd64, linux_amd64
mymath.a
github.com/
astaxie/
beedb.a
src/
mathapp
main.go
mymath/
sqrt.go
github.com/
astaxie/
beedb/
beedb.go
util.go
Можно ясно видеть структуру каталогов: `bin` содержит исполняемые файлы, `pkg` - скомпилированные файлы и `src` - исходные коды пакетов.
(В Windows переменная окружения называется `%GOPATH%`, однако эта книга следует в основном стилю Unix. Если Вы пользуетесь Windows, замените везде ее название сами.)
## Ссылки
- [Содержание](preface.md)
- Предыдущий раздел: [Установка](01.1.md)
- Следующий раздел: [Утилиты Go](01.3.md)

106
ru/01.3.md Normal file
View File

@@ -0,0 +1,106 @@
#1.3 Утилиты Go
## Утилиты Go
Язык Go имеет в своем распоряжении полный набор утилит, выполняемых из командной строки. Вы можете исполнить в терминале команду `go`, чтобы увидеть их:
![](images/1.3.go.png?raw=true)
Рисунок 1.3 Команда Go показывает подробную информацию
Все эти утилиты могут быть нам полезными. Давайте посмотрим, как пользоваться некоторыми из них.
## go build
Эта утилита компилирует тесты. По необходимости она также скомпилирует зависимости.
- Если имя пакета не `main`, а, например, `mymath` из раздела 1.2, то после того, как Вы выполните `go build`, ничего не скомпилируется. Если Вы хотите скомпилировать файл `.a` в `$GOPATH/pkg`, Вам вместо этого нужно выполнить `go install`.
- Если имя пакета - `main`, то в каталоге, откуда Вы запустили утилиту, будет создан исполняемый файл. Если Вы хотите, чтобы файл был создан в `$GOPATH/bin`, используйте `go install` или `go build -o ${указать путь}/a.exe.`
- Если в каталоге много файлов, но Вы хотите скомпилировать только один, Вам нужно добавить имя файла после `go build`. Например, `go build a.go`. Просто `go build` скомпилирует все файлы в каталоге.
- Вы также можете указать имя исполняемого файла, который будет создан. Например, в проекте `mathapp` (раздел 1.2), команда `go build -o astaxie.exe` создаст `astaxie.exe` вместо `mathapp.exe`. Именем по умолчанию для исполняемого файла является имя каталога (если пакет не main) или название первого файла-исходника (если пакет - main).
(Согласно [The Go Programming Language Specification](https://golang.org/ref/spec) имя пакета должно следовать после слова `package` в первой строке исходного файла. Оно не обязательно должно быть таким же, как имя каталога, и имя исполняемого файла по умлочанию будет таким же, как и имя каталога.)
- `go build` не работает с файлами, имя которых начинается на `_` или `.`.
- Если Вам нужно несколько исходных файлов для каждой операционной системы, Вы можете в конце каждого имени файла добавить соответствующий суффикс ОС. Предположим, имеется несколько файлов для загрузки массивов. Можно назвать их следующим образом:
array_linux.go | array_darwin.go | array_windows.go | array_freebsd.go
`go build` выберет тот, который соответствует Вашей ОС. Например, в Linux-системах он скомпилирует только array_linux.go, а все остальные файлы, начинающиеся с array_, проигнорирует.
## go clean
Эта команда удаляет все файлы, созданные компилятором, включая следующие:
_obj/ // старый каталог object, созданный Makefiles
_test/ // старый каталог test, созданный Makefiles
_testmain.go // старый каталог gotest, созданный Makefiles
test.out // старый каталог test, созданный Makefiles
build.out // старый каталог test, созданный Makefiles
*.[568ao] // объектные файлы, созданные Makefiles
DIR(.exe) // создано go build
DIR.test(.exe) // создано go test -c
MAINFILE(.exe) // создано go build MAINFILE.go
Я обычно пользуюсь этой командой, чтобы почистить свой проект от файлов перед тем, как загрузить его на Github. Эти файлы полезны на этапе тестов, но не нужны для контроля версий.
## go fmt и gofmt
Те из вас, которые работают с C/C++, должны знать, что люди часто дискутируют, какой стиль написания кода лучше: K&R-стиль или ANSI-стиль. Однако же в Go есть только один стиль написания кода. Например, левые скобки могут быть только в конце строк, а не на своих отдельных строках, иначе Вы получите ошибку компиляции! К счастью, Вам не нужно запоминать все эти правила. `go fmt` сделает всю работу за Вас. Просто выполните команду `go fmt <Имя файла>.go` в терминале. Я не пользуюсь этой командой часто, поскольку среды разработки делают то же самое автоматически при сохранении проекта. О средах разработки я расскажу подробнее в следующем разделе.
`go fmt` - это алиас(сокращение) для `gofmt -l -w` для пакетов, указанных в пути команды import.
Мы обычно используем `gofmt -w` вместо `go fmt`. Последний вариант не переписывает исходники после форматирования кода. `gofmt -w src` форматирует весь проект.
## go get
Эта команда служит для установки удаленных пакетов. На данный момент она поддерживает BitBucket, Github, Google Code и Launchpad. При запуске этой команды происходят вещи: первая - Go скачивает исходники пакетов, вторая - исполняется `go install`. Перед использованием этой команды убедитесь, что у Вас установлены соответствующие инструменты:
BitBucket (Mercurial Git)
Github (git)
Google Code (Git, Mercurial, Subversion)
Launchpad (Bazaar)
Для того, чтобы использовать эту команду, Вы должны корректно установить эти инструменты. Не забудьте установить переменную `$PATH`. Кстати, эта команда также поддерживает нестандартные доменные имена. Для более детальной информации используйте `go help remote` ( ***Прим. переводчика на русский язык - у меня сработала не эта команда, а `go help importpath`*** ).
## go install
Эта команда компилирует все пакеты, создает соответствующие файлы и перемещает их в `$GOPATH/pkg` или `$GOPATH/bin`.
## go test
Эта команда загружает все файлы, чьи имена включают в себя `*_test.go` и создает исполняемые файлы тестов, а затем печатает на экране информацию, подобную следующей:
ok archive/tar 0.011s
FAIL archive/zip 0.022s
ok compress/gzip 0.033s
...
По умолчанию она обрабатывает все файлы тестов. Для более подробной информации используйте `go help testflag`.
## godoc
Многие говорят, что никакая сторонняя документация для программирования на Go не нужна (вообще я одну сделал - [CHM](https://github.com/astaxie/godoc)). В Go существует мощная утилита для того, чтобы управлять документацией "из коробки".
Итак, как мы можем ознакомиться с информацией о пакете в документации? Например, если Вы хотите получить подробную информацию о пакете `builtin`, используйте команду `godoc builtin`. Подобным образом Вы можете воспользоваться `godoc net/http` для того, чтобы ознакомиться с документацией по пакету `http`. Если Вам нужно больше деталей об отдельных функциях, выполните `godoc fmt Printf` и `godoc -src fmt Printf`, чтобы увидеть исходный код функции .
Выполните `godoc -http=:8080`, затем откройте в браузере `127.0.0.1:8080`. Вы должны увидеть локальную версию сайта golang.org. Он покажет не только информацию о стандартных пакетах, но также о пакетах в Вашем `$GOPATH/pkg`. Это здорово для людей, которые страдают от Великого Китайского Файерволла.
## Другие утилиты
В Go есть больше утилит, чем те, о которых мы только что говорили:
go fix // делает апгрейд кода, написанного в версии, старее, чем go1 до новой версии (после go1)
go version // выдает информацию об установленной версии Go
go env // выдает информацию о переменных окружения Go
go list // перечисляет все установленные пакеты
go run // компилирует во временные файлы и запускает приложение
По этим утилитам есть также более детальная информация. Вы можете воспользоваться `go help <утилита>`, чтобы ознакомиться с ней.
## Ссылки
- [Содержание](preface.md)
- Предыдущий раздел: [$GOPATH и рабочий каталог](01.2.md)
- Следующий раздел: [Инструменты разработки для Go](01.4.md)

409
ru/01.4.md Normal file
View File

@@ -0,0 +1,409 @@
# Инструменты разработки для Go
В этом разделе я ознакомлю Вас с несколькими средами разработки (IDE), которые помогут Вам более эффективно программировать. Они обладают такими возможностями как умное автодополнение и автоформатирование. Все они кроссплатформенные, поэтому шаги по настройке, которые я покажу, не будут слишком отличаться в зависимости от операционной системы, которую Вы используете.
## LiteIDE
LiteIDE - нетребовательный к ресурсам системы IDE с открытым исходным кодом, который предназначен для разработки проектов только на Go. Он разработан visualfc.
![](images/1.4.liteide.png?raw=true)
Рисунок 1.4 Главная панель LiteIDE
Отличительные черты LiteIDE:
- Кроссплатформенность
- Windows
- Linux
- Mac OS
- Кросскомпилируемость
- Поддерживает разные среды компиляции
- Поддерживает кросс-компиляцию проектов на Go
- Управление проектами
- Представление досументации основано на $GOPATH
- Система компиляции основана на $GOPATH
- Документация API основана на $GOPATH
- Редактор исходного кода Go
- Схема кода
- Полная поддержка gocode
- Доступ к документации Go и содержанию API
- Просмотр выражений языка через `F1`
- Переход к декларациям функций по `F2`
- Поддержка Gdb
- Автоформат через `gofmt`
- Другое
- Поддержка множества языков
- Система плагинов
- Темы текстового редактора
- Поддержка синтаксиса основана на Kate
- Умное полнотекстовое автодополнение
- Настраиваемые сочетания клавиш для быстрого выполнения задач
- Поддержка Markdown
- Предпросмотр в реальном времени
- Настраиваемые CSS
- Экспорт в HTML и PDF
- Конвертация и слияние в HTML и PDF
### Установка LiteIDE
- Установите LiteIDE:
- [Страница загрузки](http://code.google.com/p/golangide)
- [Исходные коды](https://github.com/visualfc/liteide)
Сначала установите Go, затем скачайте версию LiteIDE, соответствующую Вашей операционной системе. Распакуйте скачанный пакет.
- Установите gocode:
Для того, чтобы заработало автодополнение, установите gocode.
go get -u github.com/nsf/gocode
- Настройте среду компиляции:
Теперь измените конфигурацию LiteIDE согласно Вашей операционной системе.
В Windows, если Вы используете 64-битную версию Go, Вам нужно выбрать на панели инструментов win64 в качестве среды конфигурации. Затем выберите `opinion`, найдите `LiteEnv` в левом списке и откройте `win64.env` в правом списке.
GOROOT=c:\go
GOBIN=
GOARCH=amd64
GOOS=windows
CGO_ENABLED=1
PATH=%GOBIN%;%GOROOT%\bin;%PATH%
。。。
Замените `GOROOT=c:\go` на свой путь установки Go, сохраните. Если у Вас есть MinGW64, добавьте в переменную окружения path значение `c:\MinGW64\bin` для поддержки `cgo`.
В 64-битном Linux нужно выбрать linux64 на панели инструментов в качестве среды конфигурации. Затем выберите `opinion`, найдите `LiteEnv` в левом списке и выберите файл `linux64.env` в правом.
GOROOT=$HOME/go
GOBIN=
GOARCH=amd64
GOOS=linux
CGO_ENABLED=1
PATH=$GOBIN:$GOROOT/bin:$PATH
。。。
Замените `GOROOT=$HOME/go` на тот, где у Вас установлен Go, сохраните.
- $GOPATH
$GOPATH - это путь, указывающий на то, где находятся проекты. Для получения подробностей откройте командную строку (или нажмите ``Ctrl+`пробел``в LiteIDE), а затем напечатайте `go help gopath`.
В LiteIDE очень легко увидеть и изменить значение $GOPATH. Для этого зайдите в `View - Setup GOPATH`.
## Sublime Text
Сейчас я хочу рассказать про Sublime Text 2 (для краткости Sublime) + GoSublime + gocode + MarGo. И вот почему:
- Умное автодополнение
![](images/1.4.sublime1.png?raw=true)
Рисунок 1.5 Умное автодополнение Sublime.
- Автоформатирование исходных кодов
- Управление проектами
![](images/1.4.sublime2.png?raw=true)
Рисунок 1.6 Управление проектами в Sublime
- Подсветка синтаксиса
- Пробный период без функциональных ограничений навсегда. Вам могут напоминать о том, что нужно приобрести лицензию, но можно это игнорировать, если хотите. Конечно же, если Вы поймете, что Sublime увеличил Вашу производительность, и Вам он нравится, приобретите, пожалуйста, лицензионную копию и поддержите таким образом развитие проекта!
Сначала скачайте версию [Sublime](http://www.sublimetext.com/), соответствующую Вашей операционной системе.
1. Нажмите ``Ctrl+`пробел``, откройте командную строку и введите следующие команды:
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Пожалуйста, перезапустите Sublime Text для завершения установки'
Когда процесс установки закончится, перезапустите Sublime Text. Затем найдите опцию `Package Control` в меню "Preferences".
![](images/1.4.sublime3.png?raw=true)
Рисунок 1.7 Sublime Package Control
2. Для установки GoSublime, SidebarEnhancements и Go Build, нажмите `Ctrl+Shift+p`, чтобы открыть управление пакетами, затем напечатайте `pcip` (сокращение от "Package Control: Install Package").
![](images/1.4.sublime4.png?raw=true)
Рисунок 1.8 Установка пакетов Sublime
Теперь введите "GoSublime", нажмите OK для установки пакета и повторите те же шаги для установки SidebarEnhancements и Go Build. По завершении установки снова перезапустите редактор.
3. Чтобы проверить, успешно ли прошла установка, откройте Sublime, откройте файл `main.go` и проверьте, правильно ли подсвечивается синтаксис. Напечатайте `import` и проверьте, правильно ли работает автодополнение кода. После того, как Вы ввели `import "fmt"`, напечатайте `fmt.` где-нибудь после выражения `import` и проверьте, работает ли автодополнение для функций.
Если все работает, это значит, что Вы все настроили правильно.
Если нет, еще раз проверьте значение переменной $PATH. Откройте терминал, выполните `gocode`. Если запуск не произошел, переменная $PATH настроена неправильно.
## Vim
Vim - это популярный текстовый редактор для программистов, происшедший от своего предшественника Vi. У него есть функции умного автодополнения, компиляции и перехода к ошибкам.
![](images/1.4.vim.png?raw=true)
Рисунок 1.8 Умное автодополнение для Go в Vim
1. Установите подсветку ситаксиса для Go:
cp -r $GOROOT/misc/vim/* ~/.vim/
2. Включите подсветку синтаксиса:
filetype plugin indent on
syntax on
3. Установите [gocode](https://github.com/nsf/gocode/):
go get -u github.com/nsf/gocode
gocode по умолчанию будет установлен в `$GOBIN`.
4. Настройте [gocode](https://github.com/nsf/gocode/):
~ cd $GOPATH/src/github.com/nsf/gocode/vim
~ ./update.bash
~ gocode set propose-builtins true
propose-builtins true
~ gocode set lib-path "/home/border/gocode/pkg/linux_amd64"
lib-path "/home/border/gocode/pkg/linux_amd64"
~ gocode set
propose-builtins true
lib-path "/home/border/gocode/pkg/linux_amd64"
Немного о конфигурации gocode:
propose-builtins: определяет, нужно ли включать умное автодополнение; по умолчанию false.
lib-path: изначально gocode ищет пакеты в `$GOPATH/pkg/$GOOS_$GOARCH` и `$GOROOT/pkg/$GOOS_$GOARCH`. Эта настройка нужна для добавления дополнительных путей.
5. Поздравляем! Попробуйте `:e main.go` для погружения в мир Go!
## Emacs
Emacs называют оружием Бога. Это не только редактор, но и мощная IDE.
![](images/1.4.emacs.png?raw=true)
Рисунок 1.10 Главная панель редактора Go в Emacs
1. Установите подсветку синтаксиса:
cp $GOROOT/misc/emacs/* ~/.emacs.d/
2. Установите [gocode](https://github.com/nsf/gocode/):
go get -u github.com/nsf/gocode
По умолчанию gocode будет установлен в `$GOBIN`.
3. Настройте [gocode](https://github.com/nsf/gocode/):
~ cd $GOPATH/src/github.com/nsf/gocode/vim
~ ./update.bash
~ gocode set propose-builtins true
propose-builtins true
~ gocode set lib-path "/home/border/gocode/pkg/linux_amd64"
lib-path "/home/border/gocode/pkg/linux_amd64"
~ gocode set
propose-builtins true
lib-path "/home/border/gocode/pkg/linux_amd64"
4. Установите [автодополнение](http://www.emacswiki.org/emacs/AutoComplete):
Скачайте и распакуйте:
~ make install DIR=$HOME/.emacs.d/auto-complete
Настройте файл ~/.emacs:
;;auto-complete
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/ac-dict")
(ac-config-default)
(local-set-key (kbd "M-/") 'semantic-complete-analyze-inline)
(local-set-key "." 'semantic-complete-self-insert)
(local-set-key ">" 'semantic-complete-self-insert)
Для более подробной информации пройдите по [ссылке](http://www.emacswiki.org/emacs/AutoComplete).
5. Настройте файл .emacs:
;; golang mode
(require 'go-mode-load)
(require 'go-autocomplete)
;; speedbar
;; (speedbar 1)
(speedbar-add-supported-extension ".go")
(add-hook
'go-mode-hook
'(lambda ()
;; gocode
(auto-complete-mode 1)
(setq ac-sources '(ac-source-go))
;; Imenu & Speedbar
(setq imenu-generic-expression
'(("type" "^type *\\([^ \t\n\r\f]*\\)" 1)
("func" "^func *\\(.*\\) {" 1)))
(imenu-add-to-menubar "Index")
;; Outline mode
(make-local-variable 'outline-regexp)
(setq outline-regexp "//\\.\\|//[^\r\n\f][^\r\n\f]\\|pack\\|func\\|impo\\|cons\\|var.\\|type\\|\t\t*....")
(outline-minor-mode 1)
(local-set-key "\M-a" 'outline-previous-visible-heading)
(local-set-key "\M-e" 'outline-next-visible-heading)
;; Menu bar
(require 'easymenu)
(defconst go-hooked-menu
'("Go tools"
["Go run buffer" go t]
["Go reformat buffer" go-fmt-buffer t]
["Go check buffer" go-fix-buffer t]))
(easy-menu-define
go-added-menu
(current-local-map)
"Go tools"
go-hooked-menu)
;; Other
(setq show-trailing-whitespace t)
))
;; helper function
(defun go ()
"run current buffer"
(interactive)
(compile (concat "go run " (buffer-file-name))))
;; helper function
(defun go-fmt-buffer ()
"run gofmt on current buffer"
(interactive)
(if buffer-read-only
(progn
(ding)
(message "Buffer is read only"))
(let ((p (line-number-at-pos))
(filename (buffer-file-name))
(old-max-mini-window-height max-mini-window-height))
(show-all)
(if (get-buffer "*Go Reformat Errors*")
(progn
(delete-windows-on "*Go Reformat Errors*")
(kill-buffer "*Go Reformat Errors*")))
(setq max-mini-window-height 1)
(if (= 0 (shell-command-on-region (point-min) (point-max) "gofmt" "*Go Reformat Output*" nil "*Go Reformat Errors*" t))
(progn
(erase-buffer)
(insert-buffer-substring "*Go Reformat Output*")
(goto-char (point-min))
(forward-line (1- p)))
(with-current-buffer "*Go Reformat Errors*"
(progn
(goto-char (point-min))
(while (re-search-forward "<standard input>" nil t)
(replace-match filename))
(goto-char (point-min))
(compilation-mode))))
(setq max-mini-window-height old-max-mini-window-height)
(delete-windows-on "*Go Reformat Output*")
(kill-buffer "*Go Reformat Output*"))))
;; helper function
(defun go-fix-buffer ()
"run gofix on current buffer"
(interactive)
(show-all)
(shell-command-on-region (point-min) (point-max) "go tool fix -diff"))
6. Поздравляем, все готово! Панель скорости по умолчанию отключена - для включения удалите символы комментария в строке `;;(speedbar 1)`, или можно сделать это посредством `M-x speedbar`.
## Eclipse
Eclipse также является отличным инструментом разработки. Я покажу Вам, как использовать его для того, чтобы писать программы на Go.
![](images/1.4.eclipse1.png?raw=true)
Рисунок 1.1 Основная панель Eclipse для редактирования кода на Go
1. Скачайте и установите [Eclipse](http://www.eclipse.org/).
2. Скачайте [goclipse](https://code.google.com/p/goclipse/) [http://code.google.com/p/goclipse/wiki/InstallationInstructions](http://code.google.com/p/goclipse/wiki/InstallationInstructions).
3. Скачайте gocode:
gocode на Github:
https://github.com/nsf/gocode
В Windows Вам нужно установить git, обычно мы используем [msysgit](https://msysgit.github.com/).
В командной строке установите gocode:
go get -u github.com/nsf/gocode
Если хотите, можете установить его из исходных кодов.
4. Скачайте и установите [MinGW](http://sourceforge.net/projects/mingw/files/MinGW/).
5. Настройте плагины:
Windows->Preferences->Go
(1).Настройте компилятор Go.
![](images/1.4.eclipse2.png?raw=true)
Рисунок 1.12 Настройки Go в Eclipse
(2).Настройте gocode (если нужно), установите путь к gocode туда, где находится gocode.exe.
![](images/1.4.eclipse3.png?raw=true)
Рисунок 1.13 Настройки gocode
(3).Настройте gdb (по желанию), установите путь к gdb туда, где находится gdb.exe.
![](images/1.4.eclipse4.png?raw=true)
Рисунок 1.14 Установки gdb
6. Проверьте правильность установки:
Создайте новый проект Go и файл hello.go как на рисунке:
![](images/1.4.eclipse5.png?raw=true)
Рисунок 1.15 Создание нового проекта и файла
Протестируйте установку так (Вам нужно напечатать команду в консоли Eclipse):
![](images/1.4.eclipse6.png?raw=true)
Рисунок 1.16 Тестирование программы Go в Eclipse
## IntelliJ IDEA
Те, кто работал с Java, должны быть знакомы с этой IDE. Она поддерживает подсветку синтаксиса Go и умное автодополнение кода посредством плагина.
1. Скачайте IDEA, подойдут версии и Ultimate, и Community.
![](images/1.4.idea1.png?raw=true)
2. Установите плагин Go. Выберите `File - Setting - Plugins`, затем выберите `Browser repo`.
![](images/1.4.idea3.png?raw=true)
3. Выберите `golang`, затем двойным щелчком мыши `download and install` и подождите, пока завершится загрузка.
![](images/1.4.idea4.png?raw=true)
Нажмите `Apply`, затем перезапустите приложение.
4. Теперь можно создавать проект Go.
![](images/1.4.idea5.png?raw=true)
Введите расположение Go sdk на следующем шаге - скорее всего, это $GOROOT.
( ***Смотрите [Пост блога](http://wuwen.org/tips-about-using-intellij-idea-and-go/) об установке и использовании IntelliJ IDEA с Go шаг за шагом*** )
## Ссылки
- [Содержание](preface.md)
- Предыдуший раздел: [Утилиты Go](01.3.md)
- Следующий раздел: [Итоги раздела](01.5.md)

9
ru/01.5.md Normal file
View File

@@ -0,0 +1,9 @@
# 1.5 Итоги раздела
В этом разделе мы поговорили о том, как установить Go тремя различными способами - из исходных кодов, из стандартных пакетов и с помощью сторонних утилит. Затем мы показали, как настроить окружение Go, в основном как установить нужное значение переменной $GOPATH. После этого мы рассказали о последовательности шагов для того, чтобы скомпилировать программу на Go. Мы также поговорили об утилитах командной строки Go, включая утилиты для компилирования, установки, форматирования и тестирования. И, наконец, существует множество инструментов разработки для Go, таких как LiteIDE, Sublime Text, Vim, Emacs, Eclipse, IntelliJ IDEA и т.д. Вы можете выбрать любой из них для того, чтобы исследовать мир Go.
## Ссылки
- [Содержание](preface.md)
- Предыдущий раздел: [Инструменты разработки для Go](01.4.md)
- Следующий раздел: [Основы Go](02.0.md)

BIN
ru/images/1.1.cmd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
ru/images/1.1.linux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
ru/images/1.1.mac.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
ru/images/1.3.go.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
ru/images/1.4.eclipse1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
ru/images/1.4.eclipse2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

BIN
ru/images/1.4.eclipse3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
ru/images/1.4.eclipse4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

BIN
ru/images/1.4.eclipse5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

BIN
ru/images/1.4.eclipse6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

BIN
ru/images/1.4.emacs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

BIN
ru/images/1.4.idea1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
ru/images/1.4.idea2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
ru/images/1.4.idea3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

BIN
ru/images/1.4.idea4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

BIN
ru/images/1.4.idea5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
ru/images/1.4.liteide.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
ru/images/1.4.sublime1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
ru/images/1.4.sublime2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
ru/images/1.4.sublime3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
ru/images/1.4.sublime4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
ru/images/1.4.vim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
ru/images/13.1.flow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
ru/images/13.1.gopath.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
ru/images/13.1.gopath2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
ru/images/13.4.beego.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
ru/images/14.4.github.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
ru/images/14.4.github2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
ru/images/14.4.github3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
ru/images/14.6.pprof.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
ru/images/14.6.pprof2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

BIN
ru/images/14.6.pprof3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
ru/images/2.2.array.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
ru/images/2.2.basic.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
ru/images/2.2.makenew.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

BIN
ru/images/2.2.slice.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
ru/images/2.2.slice2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
ru/images/2.3.init.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
ru/images/3.1.dns2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
ru/images/3.1.http.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
ru/images/3.1.httpPOST.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
ru/images/3.1.response.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
ru/images/3.1.web.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

BIN
ru/images/3.1.web2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
ru/images/3.2.goweb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
ru/images/3.3.http.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
ru/images/4.1.login.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
ru/images/4.1.slice.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
ru/images/4.3.escape.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
ru/images/4.4.token.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
ru/images/4.5.upload.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
ru/images/4.5.upload2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
ru/images/5.6.mongodb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

BIN
ru/images/6.1.cookie.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
ru/images/6.1.cookie2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
ru/images/6.1.session.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
ru/images/6.4.cookie.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
ru/images/6.4.hijack.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
ru/images/6.4.setcookie.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
ru/images/7.4.template.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
ru/images/8.1.socket.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
ru/images/8.2.websocket.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
ru/images/8.3.rest.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
ru/images/8.3.rest2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
ru/images/8.3.rest3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
ru/images/8.4.rpc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
ru/images/9.1.csrf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
ru/images/cover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

BIN
ru/images/ebook.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

BIN
ru/images/navi1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
ru/images/navi10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
ru/images/navi11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
ru/images/navi12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
ru/images/navi13.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
ru/images/navi14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
ru/images/navi2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
ru/images/navi3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
ru/images/navi4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
ru/images/navi5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
ru/images/navi6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
ru/images/navi7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Some files were not shown because too many files have changed in this diff Show More