一、Go安裝使用
創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站設計、成都網站設計、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的順河網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
1、下載Go源碼包
上傳到/usr/local/src目錄下
2、編譯安裝Go到/usr/local
tar zxvf go1.6.3.linux-amd64.tar.gz -C /usr/local/
#注:必須使用root賬戶或者使用sudo來解壓縮Go源碼包
3、設置PATH環(huán)境變量,添加/usr/local/go/bin到環(huán)境變量
export PATH=$PATH:/usr/local/go/bin
4、安裝到自定義位置
Go二進制文件默認安裝到/usr/local/go,但是可以安裝Go工具到不同的位置,可以自行定義,只需要設置正確的環(huán)境變量。
例如,安裝Go到家目錄下,必須添加環(huán)境變量到$HOME/.profile
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
注:安裝Go到其他目錄時,GOROOT必須設置為環(huán)境變量
5、檢查是否正確安裝程序
通過設置一個工作區(qū)和建立一個簡單的程序,檢查是否正確安裝了一個簡單的程序。創(chuàng)建一個目錄包含您的工作空間,例如/data/work,并設置GOPATH環(huán)境變量指向的位置。
export GOPATH=/data/work
#如果不存在/data/work,需要新建
然后,在你的工作內創(chuàng)建src/github.com/user/hello,如果使用github,可以使用自己的用戶名代替user,在hello目錄下,新建hello.go
# cat hello.go
package main
import "fmt"
func main {
fmt.Printf("hello,world!\n")
}
#使用go編譯hello.go
go install github.com/user/hello
#上面的命令講名叫hello(or hello.exe)的程序放到你的工作區(qū)內,執(zhí)行下面命令,會得到輸出結果。
$GOPATH/bin/hello
hello,world!
#當出現(xiàn)hello,world!表明Go已經安裝成功可以工作。
二、Go工作區(qū)介紹
1、機構組織代碼概述
Go語言程序通常將所有的代碼保存在一個工作區(qū)中。
工作區(qū)包含許多版本控制庫(由Git管理)。
每個存儲庫包含一個或多個包。
每個包由一個或多個在一個目錄中的源文件組成。
一個包的目錄的路徑決定其導入路徑。
注:同于其他的編程環(huán)境中,每一個項目都有一個獨立的工作區(qū)且工作區(qū)是緊密聯(lián)系在一起的版本控制庫。
2、工作區(qū)介紹
工作區(qū)是一個目錄層次結構,它的根目錄有三個目錄:
src 包含Go源文件
pkg 包含對象和包
bin 包含可執(zhí)行命令
Go工具創(chuàng)建源碼包并安裝二進制文件到pkg和bin目錄下
src目錄通常包含多個版本控制庫(如Git或Mercurial),跟蹤一個或多個源包的開發(fā)。
下面展示一個好的工作區(qū)的例子:
bin/
hello # command executable
outyet # command executable
pkg/
linux_amd64/
github.com/golang/example/
stringutil.a # package object
src/
github.com/golang/example/
.git/ # Git repository metadata
hello/
hello.go # command source
outyet/
main.go # command source
main_test.go # test source
stringutil/
reverse.go # package source
reverse_test.go # test source
golang.org/x/image/
.git/ # Git repository metadata
bmp/
reader.go # package source
writer.go # package source
... (many more repositories and packages omitted) ...
上面的屬性圖展示了一個包含兩個存儲庫(example和image)的工作區(qū),example 存儲庫包含兩個命令(hello,outyet),image庫包含bmp包和幾個其他的包。
一個典型的工作區(qū)包含包含許多軟件包和命令的多個源庫。大多數(shù)程序員將所有的源代碼和依賴關系保存在一個工作區(qū)中
3、GOPATH環(huán)境變量設置
GOPATH環(huán)境變量指定工作區(qū)的位置。它很可能是唯一的環(huán)境變量,代碼開發(fā)時需要設置。
開始,創(chuàng)建一個工作區(qū)目錄并設置相應的gopath。您的工作區(qū)可以位于任何你喜歡的地方,但我們將在這個文檔中使用/data/work。請注意,這不能是您的“Go安裝”路徑相同。
mkdir -p /data/work
export GOPATH=/data/work
為了方便。添加工作區(qū)的bin到PATH中
export PATH=$PATH:$GOPATH/bin
4、導入路徑
一個導入路徑是唯一標識一個包的字符串。一個包的導入路徑對應于它在工作區(qū)內或遠程存儲庫中的位置。
從標準庫的軟件包中給出了短的導入路徑等。對于您自己的包,您必須選擇不可能和未來添加到標準庫或其他外部庫的基礎路徑沖突的路徑。
注意,你不需要將你的代碼發(fā)布到一個遠程存儲庫之前,你可以建立它。這只是一個很好的習慣來組織你的代碼,如果你有一天會出版它。在實踐中,你可以選擇任何任意的路徑名稱,只要它是唯一的標準庫和更大的去生態(tài)系統(tǒng)。
我們將使用github.com/user作為我們的基本路徑。在您的工作區(qū)中創(chuàng)建一個目錄,以保持源代碼:
mkdir -p $GOPATH/src/github.com/user
5、第一個項目
編譯并運行一個簡單的程序,首先選擇一個包的路徑(我們將使用github.com/user/hello)和創(chuàng)建在您的工作區(qū)相應的軟件包目錄:
mkdir $GOPATH/src/github.com/user/hello
創(chuàng)建名叫hello.go的文件,上面創(chuàng)建過,此處略過。
cd $GOPATH/src/github.com/user/hello
go install
$GOPATH/bin/hello
或者:
hello
如果你使用的是一個源代碼管理系統(tǒng),現(xiàn)在是一個很好的時間來初始化一個存儲庫,添加文件,并提交你的第一次更改。再次,這一步是可選的:您不需要使用源代碼管理來寫代碼。
cd $GOPATH/src/github.com/user/hello
git init
Initialized empty Git repository in /data/work/src/github.com/user/hello/.git/
git add hello.go
git commit -m "first commit"
[master (root-commit) bbfb477] first commit
6、first library
mkdir $GOPATH/src/github.com/user/stringutil
下一步,在目錄下創(chuàng)建一個名為reverse.go文件中有下列內容:
// Package stringutil contains utility functions for working with strings.
package stringutil
// Reverse returns its argument string reversed rune-wise left to right.
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
使用go build測試包的編譯
$ go build github.com/user/stringutil
如果當前位置源碼包目錄,只需要:
go build
上面操作并不會產生一個輸出文件,必須使用go install,把包和對象輸出到工作去的pkg目錄內
確認stringutil包創(chuàng)建完成后,修改原始hello.go,使用stringutil包:
package main
import (
"fmt"
"github.com/user/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("\n !oG ,olleH"))
}
無論使用go安裝包還是二進制文件,所有相關的依賴都會自動安裝。所以當你安裝hello程序時:
$ go install github.com/user/hello
對應的stringutil包會自動安裝好。
執(zhí)行新的hello程序,可以看到消息已經被反轉
# hello
Hello, Go!
完成上面操作之后,工作區(qū)應該為:
├── bin
│ └── hello # command executable
├── pkg
│ └── linux_amd64 # this will reflect your OS and architecture
│ └── github.com
│ └── user
│ └── stringutil.a # package object
└── src
└── github.com
└── user
├── hello
│ └── hello.go # command source
└── stringutil
└── reverse.go # package source
注意:go install會把庫文件stringutil.a放到pkg/linux_amd64下邊(目錄結構跟源代碼結構一樣)。這樣可以go命令可以直接找到對應的包對象,避免不必要的重復編譯。linux_amd64是為了根據操作系統(tǒng)和你的系統(tǒng)架構交叉編譯。
所有Go可執(zhí)行程序都通過靜態(tài)方式鏈接在一起,所以在運行時是不需要相關的包對象(庫)。
7、包命令
所有的Go源代碼都以下面的語句開始:
package name
其中name就是包引用默認的名稱,一個包中的所有文件必須使用同一個包名,可執(zhí)行命令必須是main。
一個二進制文件下所有的包名不需要唯一,但是引用路徑必須唯一
8、測試
Go自帶了一個輕量級的測試框架,由go test和testing包組成。
可以通過新建xx_test.go寫一個測試,其中包含若干個TestXXX函數(shù)。測試框架會自動執(zhí)行這些函數(shù);如果函數(shù)中包含tError或t.Fail, 對應的測試會被判為失敗。
添加一個針對stringutil的測試文件$GOPATH/src/github.com/user/stringutil/reverse_test.go,包含以下內容:
package stringutil
import "testing"
func TestReverse(t *testing.T) {
cases := []struct {
in, want string
}{
{"Hello, world", "dlrow ,olleH"},
{"Hello, 世界", "界世,olleH"},
{"", ""},
}
for _, c := range cases {
got := Reverse(c.in)
if got != c.want {
t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
}
}
}
#通過go test測試
# go test github.com/user/stringutil
ok github.com/user/stringutil 0.002s
#同樣的,在包文件夾下可以忽略路徑而直接執(zhí)行go test
[root@zabbix stringutil]# go test
PASS
ok github.com/user/stringutil 0.002s
9、遠程包
包的引用路徑用來描述如何通過版本控制系統(tǒng)獲取包的源代碼。go工具通過引用路徑自動從遠程代碼倉庫獲取包文件。比如本文中用的例子也對應的保存在github.com/golang/example下。go可以通過包的代碼倉庫的url直接獲取、生成、安裝對應的包。
[root@zabbix ~]# go get github.com/golang/example/hello
[root@zabbix ~]# $GOPATH/bin/hello
Hello, Go examples!
如果工作區(qū)中不存在對應的包,go會將對應的包放到GOPATH環(huán)境變量指明的工作區(qū)下。(如果包已經存在,go跳過代碼拉去而直接執(zhí)行go install)
建議詳細看一下這個,有圖文
如何部署Golang應用
安裝supervisord
# 通過載入程式 ez_setup.py 來安裝。這個載入程式會聯(lián)網下載最新版本setuptools來安裝,同時也可以更新本地的setuptools。
wget :peak.telemunity./dist/ez_setup.py
sudo python ez_setup.py
# 更新setuptools:
sudo python ez_setup.py -U setuptools
# 安裝supervisor
easy_install supervisor
# 生成配置檔案
echo_supervisord_conf /etc/supervisord.conf
# 編輯配置檔案
vim /etc/supervisord.conf
# 進入vim后找到最后兩行,開啟注釋(取消前面的分號),
# [include]
# files = supervisor.d/*.ini
# 將所有的supervisor配置都放到 /etc/supervisor.d目錄
mkdir /etc/supervisor.d
建立 supervisor 對應程式的配置檔案
其中的一些路徑需要換成自己對應的,這里將 zankbo 這個web 應用放在了對應的使用者目錄下
通過在生產伺服器上設定environment可以在程式里判斷是線上還是開發(fā)模式,如 zankbo 的 debug判斷
當然也可已在啟動命令處加入引數(shù),如 mand = /home/zankbo/gopath/src/zankbo/zankbo -d 來關閉Debug模式。
if os.Getenv("APP_NAME") == "ZANKBO_PRODUCT" {
beego.RunMode = "prod"
}
vim /etc/supervisor.d/zankbo.ini
# 寫入
[program:zankbo]
directory = /home/zankbo/gopath/src/zankbo
environment=APP_NAME="ZANKBO_PRODUCT"
mand = /home/zankbo/gopath/src/zankbo/zankbo
autostart = true
startsecs = 5
user = zankbo
redirect_stderr = true
stdout_logfile = /home/zankbo/log/zankbo.log
建立對應的使用者
useradd zankbo
# 將使用者加入到zankbo使用者組,Nginx以使用者執(zhí)行
usermod -a -G zankbo
# 更改使用者家目錄使用者組的許可權,使Nginx可以訪問
chmod g+rx /home/zankbo
部署Go環(huán)境
其中的目錄為,go:Go安裝目錄 gopath:Go工作目錄,下面有src、pkg、bin三個目錄 log:日志資料夾
[zankbo@MyCloudServer ~]$ pwd
/home/zankbo
[zankbo@MyCloudServer ~]$ vim .bashrc
# 設定Go環(huán)境變數(shù),在.bashrc檔案末尾寫下如下內容
export GOROOT=$HOME/go
export GOPATH=$HOME/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bi
# 切換到使用者家目錄
[root@MyCloudServer ~]# su - zankbo
[zankbo@MyCloudServer ~]$ ls
go gopath log
將專案程式碼放到gopath/src下面,如我的播客專案:
[zankbo@MyCloudServer ~]$ tree -L 2 gopath/src/
gopath/src/
├── github.
│ ├── astaxie
│ ├── beego
│ ├── go-sql-driver
│ ├── howeyc
│ ├── jacobsa
│ ├── *** artystreets
│ └── wendal
└── zankbo
├── admin
├── blog
├── build_pkg.sh
├── mon
├── conf
├── controllers
├── dbstruct.mwb
├── main.go
├── models
├── static
├── views
└── zankbo
匯入專案sql檔案到資料庫
在專案資料夾執(zhí)行build
[zankbo@MyCloudServer zankbo]$ pwd
/home/zankbo/gopath/src/zankbo
[zankbo@MyCloudServer zankbo]$ go build
會在專案下生成與包名對應的可執(zhí)行檔案,這里為:zankbo,build的時候可能會遇到錯誤,比如mysql的密碼之類的,可根據提示排錯。
通過supervisor 來啟動服務
# supervisorctl start zankbo
配置Nginx
server {
listen 80;
server_name zankbo. zankbo.;
root /home/zankbo/gopath/src/zankbo;
error_log logs/zankbo..error.log warn ;
location /static/ {
root /home/zankbo/gopath/src/zankbo;
location ~ .*\.(js|css)$ {
aess_log off;
expires 1d;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
gzip off;
aess_log off;
expires 3d;
}
}
location / {
proxy_pass :127.0.0.1:8080;
}
}
如何部署thinkphp 應用
1、首先在官方網站下載ThinkPHP最新版本。
2、下載后的壓縮檔案解壓到WEB目錄(或者任何目錄都可以),框架的目錄結構為:
├─ThinkPHP.php 框架入口檔案
├─Common 框架公共檔案
├─Conf 框架配置檔案
├─Extend 框架擴充套件目錄
├─Lang 核心語言包目錄
├─Lib 核心類庫目錄
│ ├─Behavior 核心行為類庫
│ ├─Core 核心基類庫
│ ├─Driver 內建驅動
│ │ ├─Cache 內建快取驅動
│ │ ├─Db 內建資料庫驅動
│ │ ├─TagLib 內建標簽驅動
│ │ └─Template 內建模板引擎驅動
│ └─Template 內建模板引擎
└─Tpl 系統(tǒng)模板目錄
注意,框架的公共入口檔案ThinkPHP.php是不能直接執(zhí)行的,該檔案只能在專案入口檔案中呼叫才能正常執(zhí)行,這是很多新手很容易犯的一個錯誤。
3、接下來先在WEB根目錄下面建立一個app子目錄(這個就是app就是專案名),然后在該目錄下面建立一個index.php檔案,新增一行簡單的程式碼:
require '/ThinkPHP框架所在目錄/ThinkPHP.php';
這行程式碼的作用就是載入ThinkPHP框架的入口檔案ThinkPHP.php,這是所有基于ThinkPHP開發(fā)應用的第一步。然后,在瀏覽器中訪問這個入口檔案。
如何部署應用到was上
websphere的預設使用記憶體應該是256的 你的38的war包部署 不應該出現(xiàn)記憶體崩掉的問題呀。
部署系統(tǒng)也很簡單么,就是打成war包,記得打war包得時候要檢查web.xml的格式 websphere很在意這個東東的。
然后一步一步的部署就可以了。was慢 但是不會你那么慢得??梢再Nerror出來看看
如何部署python3 的應用
mod_python,這是apache內建的模組,很嚴重的依賴于mod_python編譯使用的python版本,和apache配套使用,不推薦
cgi,這個太old,不推薦,而且nginx不支援cgi方式,只能用ligd或者apache
fastcgi ,這個是目前流行最廣的做法,通過flup模組來支援的,在nginx里對應的配置指令是 fastcgi_pass
spawn-fcgi,這個是fastcgi多程序管理程式,ligd安裝包附帶的,和
flup效果一樣,區(qū)別是flup是
python程式碼級引入,spawn-fcgi是外部程式。spawn-fcgi用途很廣,可以支援任意語言開發(fā)的代
碼,php,python,perl,只要你程式碼實現(xiàn)了fastcgi介面,它都可以幫你管理你的程序
scgi,全名是Simple Common Gateway Interface,也是cgi的替代版本,scgi協(xié)議很簡單,我覺得和fastcgi差不多,只是沒有怎么推廣開來,nginx對應的配置指令是scgi_pass,你想用就用,flup也支援。
,nginx使用proxy_pass轉發(fā),這個要求后端appplication必須內建一個能處理高并發(fā)的 server,在python的web框架當中,只能選擇tornado.
python程式設計師喜歡發(fā)明輪子,tornado除了是一個web framework之外,它還可以單獨提供高效能
server,所以,如果你采用其他python框架寫程式碼,比如說bottle,也一樣可以通過import
tornado 來啟動一個高效能的
server,同樣的可以采用協(xié)議和nginx一起來部署。擴充套件開來,python包里面能處理高并發(fā)的
server還有很多,比如說gevent,也可以被其他框架引用來支援方式部署。
現(xiàn)實當中,用java來做web程式,通常就用和nginx配合,應用伺服器選擇tomcat或者jetty
uwsgi,包括4部分組成,
nginx從0.8.4開始內建支援uwsgi協(xié)議,uwsgi協(xié)議非常簡單,一個4個位元組header+一個body,body可以是很多協(xié)議的
包,比如說,cgi等(通過header里面欄位標示),我曾經做個一個小規(guī)模的效能對比測試,結果表明,uwsgi和fastcgi相比,效能
沒有太明顯的優(yōu)勢,也可能是資料集較小的原因
uwsgi的特點在于自帶的程序控制程式.它是用c語言編寫,使用natvie函式,其實和spawn-fcgi/php-fpm類似。所以uwsgi可以支援多種應用框架,包括(python,lua,ruby,erlang,go)等等
uwsgi協(xié)議
web server內建支援協(xié)議模組
application伺服器協(xié)議支援模組
程序控制程式
Gunicorn,和uwsgi類似的工具,從rails的部署工具(Unicorn)移植過來的。但是它使用的協(xié)議是 WSGI,全稱是Python Web Server Gateway Interface ,這是python2.5時定義的官方標準(PEP 333 ),根紅苗正,而且部署比較簡單,:gunicorn./ 上有詳細教程
mod_wsgi,apache的一個module,也是支援WSGI協(xié)議,:code.google./p/modwsgi/
如何部署簡單python + flask應用
python是一款應用非常廣泛的指令碼程式語言,谷歌公司的網頁就是用python編寫。python在生物資訊、統(tǒng)計、網頁制作、計算等多個領域都體現(xiàn)出了強大的功能。python和其他指令碼語言如java、R、Perl 一樣,都可以直接在命令列里執(zhí)行指令碼程式。
所需工具:
python3.4
flask
nginx
gunicorn
supervisor
系統(tǒng)環(huán)境:
Ubuntu 14.04LTS
我們先寫一個最基本的flask應用:
demo.py
from flask import Flask
app = Flask(**name**)
@app.route('\')
def index():
return 'Hello World.'
if __name__ == __main__:
app.run()
執(zhí)行這個py檔案,開啟瀏覽器訪問127.0.0.1:5000就能看到顯示Hello World的頁面 .
如果讓這個flask引用監(jiān)聽來自公網ip的請求,理論上你跑此程式的機器就相當于一個伺服器了,然而這個伺服器并不完美,所以我們需要nginx和gunicorn來增加它的功能,讓它真刀真槍上生產環(huán)境的時候能按要求執(zhí)行。
flask自帶的WSGI框架效能很差勁,只能適用于開發(fā)環(huán)境除錯使用。我們用專業(yè)一點的gunicorn(還有很多其他優(yōu)秀的框架)替代flask自帶的WSGI框架。
配置完后,通過命令’/usr/local/bin/gunicorn -b127.0.0.1:5000‘啟動應用。開啟瀏覽器訪問127.0.0.1:5000,同樣能夠得到返回頁面
然而gunicorn也僅僅是一個python的WSGI框架而已,要讓它真正處理來自網際網路的各類訪問功能還是有點欠缺,這時候就需要用到大名鼎鼎的nginx 伺服器來替gunicorn遮風擋雨了。
Ubuntu下安裝nginx可以用命令
sudo apt-get install nginx
安裝后需要進行下配置:
cd /etc/nginx/sites-available
sudo vi test (test為配置名稱,可以根據自己專案進行命名)
test檔案的配置為:
server {
listen 80; # 監(jiān)聽80埠
location / {
proxy_pass :127.0.0.1:5000; # 代理本機127.0.0.1:5000的服務
}
location /static {
alias /home/ubuntu/myproject/myblog/app/static; # 負載均衡
}
}
cd ..
cd sites-enable
sudo ln -s ../sites-available/lwhile . (建立軟連結,別漏掉最后的.)
sudo service nginx reload
sudo service nginx restart
這樣nginx的基本配置檔案就寫好了 接下來我們配置程序管理工具supervisor supervisor可以在后面啟動你的python程序,這樣很方便
1.cd /etc/supervisor/conf.d
2.sudo vi test.conf (test為檔名)
[program:test]
mand = /usr/local/bin/gunicorn -b127.0.0.1:5000 /home/ubuntu/myproject/test.py
3.sudo supervisorctl
4.reload
5.start test
如果一切正常,做完這所有步驟之后,現(xiàn)在公網的ip訪問你的主機,就可以開啟你的flask應用了
python是一款應用非常廣泛的指令碼程式語言,谷歌公司的網頁就是用python編寫。python在生物資訊、統(tǒng)計、網頁制作、計算等多個領域都體現(xiàn)出了強大的功能。python和其他指令碼語言如java、R、Perl 一樣,都可以直接在命令列里執(zhí)行指令碼程式。工具/原料
python;CMD命令列;windows作業(yè)系統(tǒng)
方法/步驟
1、首先下載安裝python,建議安裝2.7版本以上,3.0版本以下,由于3.0版本以上不向下相容,體驗較差。
2、開啟文字編輯器,推薦editplus,notepad等,將檔案儲存成 .py格式,editplus和notepad支援識別python語法。
指令碼第一行一定要寫上 #!usr/bin/python
表示該指令碼檔案是可執(zhí)行python指令碼
如果python目錄不在usr/bin目錄下,則替換成當前python執(zhí)行程式的目錄。
3、編寫完指令碼之后注意除錯、可以直接用editplus除錯。除錯方法可自行百度。指令碼寫完之后,開啟CMD命令列,前提是python 已經被加入到環(huán)境變數(shù)中,如果沒有加入到環(huán)境變數(shù),請百度
4、在CMD命令列中,輸入 “python” + “空格”,即 ”python “;將已經寫好的指令碼檔案拖拽到當前游標位置,然后敲回車執(zhí)行即可。
作為一個測試,作為一個測試開發(fā), 全?;?管理 是我們未來的發(fā)展方向。已經掌握了Java、Python、HTML的你,是不是也想了解下最近異?;鸨腉o語言呢?來吧,讓我們一起了解下。
Go 是一個開源的編程語言 ,它能讓構造簡單、可靠且高效的軟件變得容易。
Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時候發(fā)布了Go 1穩(wěn)定版本?,F(xiàn)在Go的開發(fā)已經是完全開放的,并且擁有一個活躍的社區(qū)。這三個人都是計算機界的大神,有的參與了C語言的編寫,有的還是數(shù)學大神,有的還獲得了計算機最高榮譽-圖靈獎。
接下來說說 Go語言的特色 :
簡潔、快速、安全
并行、有趣、開源
內存管理、數(shù)組安全、編譯迅速
Go語言的用途 :
Go 語言被設計成一門應用于搭載 Web 服務器,存儲集群或類似用途的巨型中央服務器的系統(tǒng)編程語言。
對于高性能分布式系統(tǒng)領域而言,Go 語言無疑比大多數(shù)其它語言有著更高的開發(fā)效率。它提供了海量并行的支持,這對于 游戲 服務端的開發(fā)而言是再好不過了。
Go語言的環(huán)境安裝:
建議直接打開 官方地址因為墻的原因打不開
因為我用的是windows系統(tǒng),這里主要講下Windows系統(tǒng)上使用Go語言來編程。
Windows 下可以使用 .msi 后綴(在下載列表中可以找到該文件,如go1.17.2.windows-amd64.msi)的安裝包來安裝。
默認情況下 .msi 文件會安裝在 c:Go 目錄下。你可以將 c:Gobin 目錄添加到 Path 環(huán)境變量中。添加后你需要重啟命令窗口才能生效。個人建議還是安裝到 Program Files文件夾中。
使用什么開發(fā)工具來對Go語言進行編寫:
個人建議用VS code, 也可以用Sublime Text來編輯。如果你之前看了我講的HTML語言的學習,肯定已經下載了VS code. 那么這時你需要在VS code中下載Go語言的擴展插件。
這里有一個巨大的坑,就是在下載Go的插件和依賴包時,會提示一些包沒有。主要是因為下載的依賴包部分被墻了,只能想別的辦法去下載。
建議參考網頁:
解決vscode中golang插件安裝失敗方法
在學習go的過程中,使用的是vscode,但是一直提示安裝相關插件失敗,然后上網查方法,基本上是叫你建立golang.org目錄什么的,結果全是錯的,而且都是抄襲,很煩。無意之中看到一位博主分享的方法,他也是飽受上述的垃圾博文困擾,然后找到了解決方法,這里向他致敬,秉著讓更多人看到正確解決方法的心,我寫下正確的解決方法,希望對你有所幫助,也可以點開原博主鏈接參考:
Go有一個全球模塊代理,設置代理再去安裝golang的插件,就可以安裝成功了。步驟有,首先Windows用戶打開Powershell,一個藍色的界面,注意不是cmd!不知道的直接打開window下面的搜索,然后輸入powershell,搜索出來就可以了。
$env:GO111MODULE=“on”
$env:GOPROXY=“”
go env -w GOPROXY=
go env -w GOPRIVATE=*.corp.example.com
然后我們打開VsCode界面,下面會提示安裝插件,我們選擇Install ALL,就會安裝成功
當你在運行Go語言程序時,提示所有的插件包都已經安裝成功了時,就可以正常使用了,要不然一堆報錯會讓你非常心煩。
好了,今天先到這里,晚安、下班~
go語言web框架beego安裝(go mod方式)_不忘初心,方得始終-CSDN博客
重要:將bee命令放到GOROOT/bin目錄下,這步很關鍵
cp bee /usr/local/go/bin/
注:或者可以將GOPATH/bin設置為環(huán)境變量
echo ’export PATH=" PATH"' ~/.bashrc
source ~/.bashrc
router路由下方法名要大寫,訪問權限
wq保存
生效環(huán)境變量: source /etc/profile
go build -o abc.exe可指定編譯后的文件名
Golang常用環(huán)境變量說明與設置詳解
環(huán)境變量GOBIN表示我們開發(fā)程序編譯后二進制命令的安裝目錄。
當我們使用go install命令編譯和打包應用程序時,該命令會將編譯后二進制程序打包GOBIN目錄,一般我們將GOBIN設置為GOPATH/bin目錄。
export GOBIN=$GOPATH/bin
Go get包管理mod
windows下默認項目路徑在go安裝目錄的src下(beego)