Tranlated 1.3 and start translation of 1.4
This commit is contained in:
@@ -6,101 +6,103 @@ A linaguagem Go possui nativamente uma série de comandos operacionais. Você po
|
||||
|
||||

|
||||
|
||||
Figure 1.3 O comando Go mostra a informação detalhada
|
||||
Figura 1.3 O comando Go mostra a informação detalhada
|
||||
|
||||
These are all useful for us. Let's see how to use some of them.
|
||||
Todos são bastante úteis para nós. Vamos ver como funcionam alguns deles.
|
||||
|
||||
## go build
|
||||
|
||||
This command is for compiling tests. It will compile dependence packages if it's necessary.
|
||||
Este é o comando para testes de compilação. Ele irá compilar as dependências, se for necessário.
|
||||
|
||||
- If the package is not the `main` package such as `mymath` in section 1.2, nothing will be generated after you execute `go build`. If you need package file `.a` in `$GOPATH/pkg`, use `go install` instead.
|
||||
- If the package is the `main` package, it will generate an executable file in the same folder. If you want the file to be generated in `$GOPATH/bin`, use `go install` or `go build -o ${PATH_HERE}/a.exe.`
|
||||
- If there are many files in the folder, but you just want to compile one of them, you should append the file name after `go build`. For example, `go build a.go`. `go build` will compile all the files in the folder.
|
||||
- You can also assign the name of the file that will be generated. For instance, in the `mathapp` project (in section 1.2), using `go build -o astaxie.exe` will generate `astaxie.exe` instead of `mathapp.exe`. The default name is your folder name (non-main package) or the first source file name (main package).
|
||||
- Se o pacote não for o pacote `main`, como o exemplo `mymath` na seção 1.2, nada será gerado após a execução do momando `go build`. Se você precisa do arquivo `.a` no diretório `$GOPATH/pkg`, o comando a ser utilizado é o `go install`.
|
||||
- Se o pacote for o pacote `main`, como o exemplo `mathapp` na seção 1.2, então será gerado um arquivo executável na mesma pasta do arquivo `.go`. Se você precisa do arquivo executável no diretório `$GOPATH/bin` deverá utilizar o comando `go install` ou `go build -o {CAMINHO_DIRETORIO}/{FILE_NAME}.exe` (N. do T.: Pode também ser utilizado para direcionar o executável para outros diretórios e o final `.exe` não é obrigatório em sistemas UNIX-Linux).
|
||||
- Se houverem muitos arquivos na mesma pasta e você quiser compilar apenas um deles, então você deve inserir o nome do arquivo no final do comando `go build`. Por exemplo, `go build a.go`. Usar apenas `go build` irá compilar todos os arquivos da pasta.
|
||||
- Você também pode determinar o nome do arquivo que será gerado pelo comando `go build`. Por exemplo, no projeto `mathapp` (da seção 1.2), usando `go build -o astaxie.exe` irá gerar o arquivo `astaxie.exe` ao invés de `mathapp.exe`. O nome padrão é o nome da pasta, para pacotes que não sejam main, ou o nome do primeiro arquivo de código fonte, para o pacote main.
|
||||
|
||||
(According to [The Go Programming Language Specification](https://golang.org/ref/spec), package names should be the name after the word `package` in the first line of your source files. It doesn't have to be the same as the folder name, and the executable file name will be your folder name by default.])
|
||||
(De acordo com o ["The Go Programming Language Specification"](https://golang.org/ref/spec), o nome do pacote é definido pela palavra que aparece na frente da palavra chave `package` na primeira linha dos arquivos de código fonte. Essa palavra não precisa necessariamente ter o mesmo nome da pasta onde o arquivo está salvo, porém o arquivo executável terá o nome da pasta por padrão.)
|
||||
|
||||
- `go build` ignores files whose names start with `_` or `.`.
|
||||
- If you want to have different source files for every operating system, you can name files with the system name as a suffix. Suppose there are some source files for loading arrays. They could be named as follows:
|
||||
- O comando `go build` ignora arquivos cujo os nomes comecem por `_` ou `.`.
|
||||
- Se você desejar criar diferentes arquivos de código fonte para cada sistema operacional, você pode nomear os arquivos com o nome do sistema no final. Suponha que temos alguns códigos para carregamento de arrays, eles podem ser nomeados conforme segue abaixo:
|
||||
|
||||
array_linux.go | array_darwin.go | array_windows.go | array_freebsd.go
|
||||
|
||||
`go build` chooses the one that's associated with your operating system. For example, it only compiles array_linux.go in Linux systems, and ignores all the others.
|
||||
O comando `go build` irá escolher o arquivo respectivo ao seu sistema operacional. Por exemplo, ele irá compilar o array_linux.go em sistema Linux e ignorar os demais.
|
||||
|
||||
## go clean
|
||||
|
||||
This command is for cleaning files that are generated by compilers, including the following files:
|
||||
Este comando serve para uma limpeza dos arquivos gerados pelos compiladores, incluindo os arquivos abaixo:
|
||||
|
||||
_obj/ // old directory of object, left by Makefiles
|
||||
_test/ // old directory of test, left by Makefiles
|
||||
_testmain.go // old directory of gotest, left by Makefiles
|
||||
test.out // old directory of test, left by Makefiles
|
||||
build.out // old directory of test, left by Makefiles
|
||||
*.[568ao] // object files, left by Makefiles
|
||||
_obj/ // antigo diretório de objetos, deixado pelos Makefiles
|
||||
_test/ // antigo diretório de testes, deixado pelos Makefiles
|
||||
_testmain.go // antigo arquivo do gotest, deixado pelos Makefiles
|
||||
test.out // antigo arquivo de teste, deixado pelos Makefiles
|
||||
build.out // antigo arquivo de teste, deixado pelos Makefiles
|
||||
*.[568ao] // arquivos de objetos, deixado pelos Makefiles
|
||||
|
||||
DIR(.exe) // generated by go build
|
||||
DIR.test(.exe) // generated by go test -c
|
||||
MAINFILE(.exe) // generated by go build MAINFILE.go
|
||||
DIR(.exe) // gerado pelo go build
|
||||
DIR.test(.exe) // gerado pelo go test -c
|
||||
MAINFILE(.exe) // gerado pelo go build MAINFILE.go
|
||||
|
||||
I usually use this command to clean up my files before I upload my project to Github. These are useful for local tests, but useless for version control.
|
||||
Normalmente, usa-se esse comando para uma limpeza dos arquivos antes de fazer o upload do projeto para o repositório (GitHub,por exemplo). Eles são úteis para testes locais, mas inúteis para o versionamento.
|
||||
|
||||
## go fmt and gofmt
|
||||
## go fmt e gofmt
|
||||
|
||||
The people who are working with C/C++ should know that people are always arguing about which code style is better: K&R-style or ANSI-style. However in Go, there is only one code style which is enforced. For example, left braces must only be inserted at the end of lines, and they cannot be on their own lines, otherwise you will get compile errors! Fortunately, you don't have to remember these rules. `go fmt` does this job for you. Just execute the command `go fmt <File name>.go` in terminal. I don't use this command very much because IDEs usually execute this command automatically when you save source files. I will talk about IDEs more in the next section.
|
||||
As pessoas acostumadas a trabalhar com C/C++ estão sempre discutindo sobre qual o melhor estilo de código: estilo-K&R ou estilo-ANSI?
|
||||
Ao trabalhar com Go, só existe um estilo de código. Por exemplo, chaves esquerdas só devem ser inseridas no final da linha e não podem estar sozinhos em uma linha, caso contrário você receberá um erro de compilação! Felizmente, você não precisa se lembrar dessa regras. O comando `go fmt` faz esse trabalho pa você, basta executar o comando ` go fmt <NomeDoArquivo.go>` no terminal. As IDEs modernar usualmente já realizam esse comando de modo automático, mas a escolha de IDE é o assunto da próxima seção.
|
||||
|
||||
`go fmt` is just an alias, which runs the command 'gofmt -l -w' on the packages named by the import paths.
|
||||
`go fmt` é apenas um apelido (alias) que irá de fato rodar o comando 'gofmt -l -w' nos pacotes nomeados pelos caminhos de importação.
|
||||
|
||||
We usually use `gofmt -w` instead of `go fmt`. The latter will not rewrite your source files after formatting code. `gofmt -w src` formats the whole project.
|
||||
Normalmente, usamos o comando `gofmt -w` ao invés de simplesmente `go fmt`. A diferença é que o último não irá reescrever os aruivos de código fonte formatando o código. `gofmt -w src` formata o projeto inteiro.
|
||||
|
||||
## go get
|
||||
|
||||
This command is for getting remote packages. So far, it supports BitBucket, Github, Google Code and Launchpad. There are actually two things that happen after we execute this command. The first thing is that Go downloads the source code, then executes `go install`. Before you use this command, make sure you have installed all of the related tools.
|
||||
Esse comando serve para obtenção de pacotes remotamente. Até agora, o comando suporta BitBucket, Github, Google Code e Launchpad. De fato, duas coisas ocorrem quando esse comando é executado. Primeiramente é feito o download do código fonte e então é executado o comando `go install`. Antes de utilizar esse comando, tenha certeza de possuir instalados as seguintes ferramentas.
|
||||
|
||||
BitBucket (Mercurial Git)
|
||||
Github (git)
|
||||
Google Code (Git, Mercurial, Subversion)
|
||||
Launchpad (Bazaar)
|
||||
|
||||
In order to use this command, you have to install these tools correctly. Don't forget to set `$PATH`. By the way, it also supports customized domain names. Use `go help remote` for more details about this.
|
||||
Para o correto funcionamento, além de instalar as ferramentas acima, não se esqueça de configurar corretamente sua variável `$PATH`. A propósito, esse comando também suporta nomes de domínios customizados. Use `go help remote` para mais detalhes.
|
||||
|
||||
## go install
|
||||
|
||||
This command compiles all packages and generates files, then moves them to `$GOPATH/pkg` or `$GOPATH/bin`.
|
||||
Esse comando compila todos os pacotes e gera os arquivos executáveis movendo-os para `$GOPATH/pkg` ou `$GOPATH/bin`.
|
||||
|
||||
## go test
|
||||
|
||||
This command loads all files whose name include `*_test.go` and generates test files, then prints information that looks like the following.
|
||||
Esse comando carrega todos os arquivos que tenham o nome seguindo o padrão `*_test.go` e gera os arquivos de testes, imprimindo informações conforme o exemplo abaixo.
|
||||
|
||||
ok archive/tar 0.011s
|
||||
FAIL archive/zip 0.022s
|
||||
ok compress/gzip 0.033s
|
||||
...
|
||||
|
||||
It tests all your test files by default. Use command `go help testflag` for more details.
|
||||
Ele testa todos os arquivos por padrão. Use o comando `go help testflag` para mais detalhes e informações.
|
||||
|
||||
## godoc
|
||||
|
||||
Many people say that we don't need any third-party documentation for programming in Go (actually I've made a [CHM](https://github.com/astaxie/godoc) already). Go has a powerful tool to manage documentation natively.
|
||||
Muitos afirmam não ser necessária a utilização de bibliotecas externas para documentação dos programas Go, uma vez que Go já possui uma poderosa ferramenta para documentação nativamente (de qualquer maneira, veja a biblioteca criada por mim, a [CHM](https://github.com/astaxie/godoc) (N. do T.: Link do autor original)).
|
||||
|
||||
So how do we look up package information in documentation? For instance, if you want to get more details about the `builtin` package, use the `godoc builtin` command. Similarly, use the `godoc net/http` command to look up the `http` package documentation. If you want to see more details about specific functions, use the `godoc fmt Printf` and `godoc -src fmt Printf` commands to view the source code.
|
||||
Sendo assim, como devemos buscar essa documentação para cada um dos pacotes?
|
||||
Se você quiser mais informações para um pacote nativo (builtin), você pode usar o comando `godoc builtin`. De forma semelhante, você pode usar `godoc net/http` para encontrar a documentação do pacote `http`, por exemplo. E ainda, se quiser mais detalhes de uma função específica, você pode usar `godoc fmt Printf` e `godoc -src fmt Printf` para ver o código fonte da função.
|
||||
|
||||
Execute the `godoc -http=:8080` command, then open `127.0.0.1:8080` in your browser. You should see a localized golang.org. It can not only show the standard packages' information, but also packages in your `$GOPATH/pkg`. It's great for people who are suffering from the Great Firewall of China.
|
||||
Finalmente, você pode ainda executar o comando `godoc -http=:8080` e, em seguida, abrir `127.0.0.1:8080` no seu navegador. Você terá uma cópia local de golang.org. Ele vai mostrar não só os pacotes padrões, mas também aqueles encontrados em `$GOPATH/pkg`. Esse recurso é ótimo para pessoas que sofrem de algum bloqueio como aquele do Great Firewall of China, por exemplo.
|
||||
|
||||
## Other commands
|
||||
## Outros comandos
|
||||
|
||||
Go provides more commands than those we've just talked about.
|
||||
Go possui ainda muitos outros comandos além daqueles citados aqui. Seguem alguns exemplos abaixo.
|
||||
|
||||
go fix // upgrade code from an old version before go1 to a new version after go1
|
||||
go version // get information about your version of Go
|
||||
go env // view environment variables about Go
|
||||
go list // list all installed packages
|
||||
go run // compile temporary files and run the application
|
||||
go fix // atualiza o código de uma versão antiga anterior a go1 para uma nova versão depois de go1
|
||||
go version // exibe informações sobre sua versão de Go
|
||||
go env //exibe as variáveis de ambiente relacionados a Go
|
||||
go list // lista todos os pacotes instalados
|
||||
go run // compila os arquivos temporários e executa a aplicação
|
||||
|
||||
There are also more details about the commands that I've talked about. You can use `go help <command>` to look them up.
|
||||
Mesmo os comandos explicados até aqui, existem vários outros detalhes que não foram discutidos aqui. Você sempre pode usar `go help <command>` para detalhes e informações completas.
|
||||
|
||||
## Links
|
||||
|
||||
- [Directory](preface.md)
|
||||
- Previous section: [$GOPATH and workspace](01.2.md)
|
||||
- Next section: [Go development tools](01.4.md)
|
||||
- [Sumário](preface.md)
|
||||
- Sessão anterior: [$GOPATH e Workspace](01.2.md)
|
||||
- Próxima sessão: [Ferramentas de desenvolvimento Go](01.4.md)
|
||||
|
||||
102
pt-br/01.4.md
102
pt-br/01.4.md
@@ -1,66 +1,67 @@
|
||||
# Go development tools
|
||||
# Ferramentas de desenvolvimento Go
|
||||
|
||||
In this section, I'm going to show you a few IDEs that can help you become a more efficient programmer, with capabilities such as intelligent code completion and auto-formatting. They are all cross-platform, so the steps I will be showing you should not be very different, even if you are not using the same operating system.
|
||||
Nesta seção, vamos mostrar alguns IDEs (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado) que podem ajudar você a ser um programador Go mais eficiente, com recursos como auto-complete inteligente e auto-formatação. Todas elas são compatíveis com todos os sitemas operacionais (cross-platform), então os passos descritos abaixo devem ser semelhantes independentemente do sistema que esteja utilizando.
|
||||
|
||||
## LiteIDE
|
||||
|
||||
LiteIDE is an open source, lightweight IDE for developing Go projects only, developed by visualfc.
|
||||
LiteIDE é um IDE leve e de código aberto para desenvolvimento exclusivo de projetos Go. Foi desenvolvido por visualfc.
|
||||
|
||||

|
||||
|
||||
Figure 1.4 Main panel of LiteIDE
|
||||
Figure 1.4 Painel principal do LiteIDE
|
||||
|
||||
LiteIDE features.
|
||||
Recursos do LiteIDE.
|
||||
|
||||
- Cross-platform
|
||||
- Windows
|
||||
- Linux
|
||||
- Mac OS
|
||||
- Cross-compile
|
||||
- Manage multiple compile environments
|
||||
- Supports cross-compilation of Go
|
||||
- Project management standard
|
||||
- Documentation view based on $GOPATH
|
||||
- Compilation system based on $GOPATH
|
||||
- API documentation index based on $GOPATH
|
||||
- Go source code editor
|
||||
- Code outlining
|
||||
- Full support of gocode
|
||||
- Go documentation view and API index
|
||||
- View code expression using `F1`
|
||||
- Function declaration jump using `F2`
|
||||
- Gdb support
|
||||
- Auto-format with `gofmt`
|
||||
- Others
|
||||
- Multi-language
|
||||
- Plugin system
|
||||
- Text editor themes
|
||||
- Syntax support based on Kate
|
||||
- intelligent completion based on full-text
|
||||
- Customized shortcuts
|
||||
- Markdown support
|
||||
- Real-time preview
|
||||
- Customized CSS
|
||||
- Export HTML and PDF
|
||||
- Convert and merge to HTML and PDF
|
||||
- Gerencimaneto de multiplos ambientes de compilação
|
||||
- Suporte a compilação cruzada (cross-compilation) da linguagem Go
|
||||
- Gerenciamento do projeto
|
||||
- Visão da documentação baseada na variável $GOPATH
|
||||
- Sistema de compilação baseado na variável $GOPATH
|
||||
- Indíce da documentação da API baseadoo na veriável $GOPATH (N. do T.: Necessita de adaptações melhores para o português)
|
||||
- Editor de código fonte Go
|
||||
- Alinhamento e identação de código
|
||||
- Suporte total ao gocode
|
||||
- Visualização da documentação Go e da API
|
||||
- Visualização de expressões de código usando `F1`
|
||||
- Movimentação entre as funções (Function declaration jump) usando `F2`
|
||||
- Suporte ao Gdb (debug)
|
||||
- Auto-formatação com `gofmt`
|
||||
- Outros
|
||||
- Multi-linguagem
|
||||
- Sistema de plugins
|
||||
- Temas para o editor de textos
|
||||
- Suporte a sintaxe baseado no Kate
|
||||
- Auto-complete inteligente baseado no texto completo
|
||||
- Atalhos customizados
|
||||
- Suporte a Markdown
|
||||
- Preview em tempo real
|
||||
- CSS customizado
|
||||
- Exportação para PDF e HTML
|
||||
- Conversão para PDF e HTML
|
||||
|
||||
### LiteIDE installation
|
||||
### Instalação do LiteIDE
|
||||
|
||||
- Install LiteIDE
|
||||
- [Download page](http://code.google.com/p/golangide)
|
||||
- [Source code](https://github.com/visualfc/liteide)
|
||||
- Instale o LiteIDE
|
||||
- [Página de Download](http://code.google.com/p/golangide)
|
||||
- [Código Fonte](https://github.com/visualfc/liteide)
|
||||
|
||||
You need to install Go first, then download the version appropriate for your operating system. Decompress the package to directly use it.
|
||||
- Install gocode
|
||||
Você precisa instalar Go primeiro (conforme a seção 1.1), depois faça o download da versão do LiteIDE mais apropriada para o seu sistema. Apenas descompacte e use diretamente.
|
||||
|
||||
You have to install gocode in order to use intelligent completion
|
||||
- Instale o gocode
|
||||
|
||||
Você precisa instalar o gocode para poder usar o auto-complete inteligente.
|
||||
|
||||
go get -u github.com/nsf/gocode
|
||||
|
||||
- Compilation environment
|
||||
- Ambiente de compilação
|
||||
|
||||
Switch configuration in LiteIDE to suit your operating system.
|
||||
In Windows and using the 64-bit version of Go, you should choose win64 as the configuration environment in the tool bar. Then, choose `opinion`, find `LiteEnv` in the left list and open file `win64.env` in the right list.
|
||||
Troque a configureguração no LiteIDE para configura-lo corretamente para o seu sistema operacional.
|
||||
Por exemplo, no Windows e usando a versão 64-bit da linguagem Go, você deve escolher win64 como ambiente de configuração na barra de ferramentas. Escolha `opinion`, encontre `LiteEnv` e na lista esquerda, abro o arquivo `win64.env`. Ele deve ser parecido como modelo a seguir.
|
||||
|
||||
GOROOT=c:\go
|
||||
GOBIN=
|
||||
@@ -71,9 +72,9 @@ LiteIDE features.
|
||||
PATH=%GOBIN%;%GOROOT%\bin;%PATH%
|
||||
。。。
|
||||
|
||||
Replace `GOROOT=c:\go` to your Go installation path, save it. If you have MinGW64, add `c:\MinGW64\bin` to your path environment variable for `cgo` support.
|
||||
Substitua `GOROOT=c:\go` para o caminho de instalação configurado anteriormente, salve o arquivo. Para ter suporte completo ao `cgo`, você precisar ter instalado o MinGW64 e deve adicionar `c:\MinGW64\bin` a a sua variável de ambiente.
|
||||
|
||||
In Linux and using the 64-bit version of Go, you should choose linux64 as the configuration environment in the tool bar. Then, choose `opinion`, find `LiteEnv` in the left list and open the `linux64.env` file in the right list.
|
||||
No Linux, usando uma versão 64-bit da linguagem Go, você deve escolher linux64 como configuração de ambiente na barra de ferramentas. Em seguida, escolha `opinion`, encontre `LiteEnv` no menu a esquerda e abra o arquivo `linux64.env`. Edite-o conforme segue.
|
||||
|
||||
GOROOT=$HOME/go
|
||||
GOBIN=
|
||||
@@ -84,20 +85,23 @@ LiteIDE features.
|
||||
PATH=$GOBIN:$GOROOT/bin:$PATH
|
||||
。。。
|
||||
|
||||
Replace `GOROOT=$HOME/go` to your Go installation path, save it.
|
||||
Substitua `GOROOT=$HOME/go` para o caminho da sua instalação, salve o arquivo.
|
||||
|
||||
- $GOPATH
|
||||
$GOPATH is the path that contains a list of projects. Open the command tool (or press ``Ctrl+` ``in LiteIDE), then type `go help gopath` for more details.
|
||||
It's very easy to view and change $GOPATH in LiteIDE. Follow `View - Setup GOPATH` to view and change these values.
|
||||
|
||||
$GOPATH é o caminho do diretório que contém seus projetos Go. Abra a linha de comando (ou apenas use ``Ctrl+` ``no LiteIDE) e então digite `go help gopath` para maiores detalhes.
|
||||
É bastante fácil visualizar e alterar a variável $GOPATH no LiteIDE. Use o menu `View - Setup GOPATH` para visualizar e alterar esses valores.
|
||||
|
||||
## Sublime Text
|
||||
|
||||
Here I'm going to introduce you the Sublime Text 2 (Sublime for short) + GoSublime + gocode + MarGo. Let me explain why.
|
||||
Nesse ponto, iremos introduzir o Sublime Text (ou apenas Sublime) + GoSublime + gocode + MarGo. Vamos lá.
|
||||
|
||||
- Intelligent completion
|
||||
- Auto-complete inteligente
|
||||
|
||||

|
||||
|
||||
Figure 1.5 Sublime intelligent completion
|
||||
Figure 1.5 Auto-complete inteligente no Sublime
|
||||
|
||||
- Auto-format source files
|
||||
- Project management
|
||||
|
||||
|
||||
Reference in New Issue
Block a user