go語言管理軟件 go 軟件

consul入門篇

consul是google開源的一個使用go語言開發(fā)的服務發(fā)現、配置管理中心服務。內置了服務注冊與發(fā)現框架(類似zookeeper)、分布一致性協議實現、健康檢查、Key/Value存儲、多數據中心方案。服務部署簡單,只有一個可運行的二進制的包。每個節(jié)點都需要運行agent,他有兩種運行模式server和client。每個節(jié)點為以下三種狀態(tài)的一種:

目前創(chuàng)新互聯已為上1000家的企業(yè)提供了網站建設、域名、網絡空間、網站改版維護、企業(yè)網站設計、南山網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發(fā)展。

上圖來源于 Consul 官網,很好的解釋了 Consul 的工作原理。consul是一個服務管理軟件,主要功能如下:

有些人可能對服務注冊和發(fā)現還沒有概念,有些人可能使用過其他服務發(fā)現的工具,比如 ZooKeeper,etcd,會有一些先入為主的經驗。本文談一下 Consul 做服務發(fā)現的實踐和原理。

下面這張圖描述了服務發(fā)現的完整流程,先大致看一下:

首先需要有一個正常的 Consul 集群,有 Server,有 Leader。這里在服務器 Server1、Server2、Server3 上分別部署了 Consul Server。

假設他們選舉了 Server2 上的 Consul Server 節(jié)點為 Leader。這些服務器上最好只部署 Consul 程序,以盡量維護 Consul Server 的穩(wěn)定。

然后在服務器 Server4 和 Server5 上通過 Consul Client 分別注冊 Service A、B、C,這里每個 Service 分別部署在了兩個服務器上,這樣可以避免 Service 的單點問題。

服務注冊到 Consul 可以通過 HTTP API(8500 端口)的方式,也可以通過 Consul 配置文件的方式。

Consul Client 可以認為是無狀態(tài)的,它將注冊信息通過 RPC 轉發(fā)到 Consul Server,服務信息保存在 Server 的各個節(jié)點中,并且通過 Raft 實現了強一致性。

最后在服務器 Server6 中 Program D 需要訪問 Service B,這時候 Program D 首先訪問本機 Consul Client 提供的 HTTP API,本機 Client 會將請求轉發(fā)到 Consul Server。

Consul Server 查詢到 Service B 當前的信息返回,最終 Program D 拿到了 Service B 的所有部署的 IP 和端口,然后就可以選擇 Service B 的其中一個部署并向其發(fā)起請求了。

如果服務發(fā)現采用的是 DNS 方式,則 Program D 中直接使用 Service B 的服務發(fā)現域名,域名解析請求首先到達本機 DNS 代理,然后轉發(fā)到本機 Consul Client,本機 Client 會將請求轉發(fā)到 Consul Server。

Consul Server 查詢到 Service B 當前的信息返回,最終 Program D 拿到了 Service B 的某個部署的 IP 和端口。

圖中描述的部署架構筆者認為是最普適最簡單的方案,從某些默認配置或設計上看也是官方希望使用者采用的方案,比如 8500 端口默認監(jiān)聽 127.0.0.1,當然有些同學不贊同,后邊會提到其他方案。

consul必須啟動agent才能使用,有兩種啟動模式server和client,還有一個官方自帶的web ui。server用與持久化服務信息,集群官方建議3或5個節(jié)點。client只用與于server交互。ui可以查看集群情況的。

server模式啟動如下:

參數解釋:

client啟動如下:

client節(jié)點可以有多個,自己根據服務指定即可。

ui啟動如下:

參數解釋:

集群創(chuàng)建完成后:

使用一些常用的命令檢查集群的狀態(tài):

可以在raft:stat看到此節(jié)點的狀態(tài)是Fllower或者leader

新加入一個節(jié)點有幾種方式;

訪問ui:

端口:

8300:consul agent服務relplaction、rpc(client-server)

8301:lan gossip

8302:wan gossip

8500:http api端口

8600:DNS服務端口

輸入 consul agent -dev

在瀏覽器中輸入 就可以啟動web查看

consul注冊服務,有三種方式,

方式一:通過配置文件的方式靜態(tài)注冊

創(chuàng)建文件夾/etc/consul.d

.d代表有許多配置文件在里面

vim /etc/consul.d/jetty.json 內容如下:

重啟consul,并將配置文件的路徑給consul(指定參數:-config-dir /etc/consul.d)

方式二:通過HTTP API接口來動態(tài)注冊

直接調用/v1/agent/service/register接口注冊即可,需要注意的是:http method為PUT提交方式。如:

注意,這種方式,和上面的注冊方式有一點不一樣,body的參數,是上面service的值,這點需要注意

方式三:使用程序實現服務的注冊和發(fā)現(Java)

首先加入consul client的依賴

服務發(fā)現

consul支持兩種方式實現服務發(fā)現,一種是通過http API來查詢有哪些服務,另外一種是通過consul agent 自帶的DNS(8600端口),域名是以NAME.service.consul的形式給出,NAME即在定義的服務配置文件中,服務的名稱。DNS方式可以通過check的方式檢查服務。

服務間的通信協議

Consul使用gossip協議管理成員關系、廣播消息到整個集群,他有兩個gossip pool(LAN pool和WAN pool),LAN pool是同一個數據中心內部通信的,WAN pool是多個數據中心通信的,LAN pool有多個,WAN pool只有一個。

;utm_campaign=client_sharewxshare_count=1timestamp=1546144777app=news_articleutm_source=weixiniid=55667270026utm_medium=toutiao_androidgroup_id=6639493728086000142

Go語言有什么好用的IDE嗎

我喜歡jetbrains系列的IDE+go插件。不過我要說的是這個問題主要看你的觀點如何。

說eclipse:

構建方式是使用go install 命令,每一次編譯運行都是go install。這樣的好處就是如果你有很多的包,下載下來并沒有編譯,這樣每次編譯速度是很快的。而且(?。ゞo install 符合go官方的項目結構,官方說過了,一個go的項目應該是以個gopath,包含src,pkg,bin三個主要目錄。所以說go install個人認為才是主要的go編譯方式。

說eclipse的缺點:

其實eclipse插件的go編譯方式,還有目錄結構,項目結構,都是非常完美的?。。?!真的很完美!可是,他的代碼提示,太差件!大括號都不能自動補全,gdb 32bit 64bit兼容問題,eclipseC++ 沒有html js插件,需要手動安裝,幾乎不能開箱即用。不過如果你是開發(fā)算法,數據處理,還是推薦eclipse的,畢竟其他都無關緊要。

說jetbrains:

說先說clione肯定不適合,新建項目沒有向導,導致改成go項目各種不開心,比如圖標對于我來說就無法接受go lib 不是小耗子~這是次要的,重要的是各個文件都是灰色的(沒有在cmake中包含的結果),然后說剩下的,phpstorm這個不說了,估計很少有人插件按在這里,webstorm,體驗也不是很好,idea?體驗很好,可是畢竟比較重,尤其是現在加入了自家的K啥玩意(無意冒犯,沒記住單詞)~可是話說回來,go跟C系列IDE配合才是最佳,跟java系列一點不搭關系,用idea似乎有點格格不入,但是!idea支持新建項目向導,lib的圖標也很清晰,最后還是選擇idea吧,期待clion的強大起來!

再說jetbrains系列缺點:

插件的構建方式是go buiild 這個讓人很不爽,我們幾乎不確定會構建到什么地方去,還要每次設置一下run配置。這個可能無關緊要,畢竟不是什么大的毛病,可是go build不能緩存.a文件,直接構建的結果就是很多第三方包的情況下很慢!所以建議安裝包的時候手動install 一下解決這個問題。自帶代碼格式化,這個格式化跟go 格格不入,總的來說就是蛋疼,心碎,菊花癢。

最后說liteIDE:

輕量級IDE,我可以說是國人GO偉大作品典范,然而默認構建也是go build,項目管理方式不符合go官方標準。代碼提示不能自動導入(eclipse也不能),不過如果你的項目是以包為單位的,那么另當別論。一定很不錯,畢竟是輕量級專門針對GO的IDE!

說這些,其實還有很大一部分取決于你的項目是用vendor機制管理,還是godeps機制管理依賴關系。go不像java擁有強大的幾乎天下一統的maven(無意冒犯,暫不評價其他構建套件)。

go沒有官方包倉庫。

go沒有官方包管理工具。

go沒有官方自動化構建套件。

上面三個沒有是致命要害。導致民間各種百花齊放。

說說我的項目怎么管理

gpm 一個shell工具(windows下你可以用git的bash,或者cygwin~)

我是嚴格艷照官方推薦方式管理go項目,一個go項目一個gopath。系統的gopath只是為了安裝go命令,我沒有配置gobin,意義不大。

項目的依賴跟我的代碼包都在src下(非vendor)

vendor用來存放包的特殊依賴,發(fā)布項目直接把依賴包發(fā)布上去(公網管理則只上傳依賴關系文件 godeps文件)

資源文件等都放在src目錄同級,編譯文件放在bin,引用直接../引用。

GO語言(二十五):管理依賴項(上)-

當您的代碼使用外部包時,這些包(作為模塊分發(fā))成為依賴項。隨著時間的推移,您可能需要升級或更換它們。Go 提供了依賴管理工具,可幫助您在合并外部依賴項時確保 Go 應用程序的安全。

本主題介紹如何執(zhí)行任務以管理您在代碼中承擔的依賴項。您可以使用 Go 工具執(zhí)行其中的大部分操作。本主題還介紹了如何執(zhí)行其他一些您可能會覺得有用的依賴相關任務。

您可以通過 Go 工具獲取和使用有用的包。在 pkg.go.dev 上,您可以搜索您可能覺得有用的包,然后使用go命令將這些包導入您自己的代碼中以調用它們的功能。

下面列出了最常見的依賴項管理步驟。

在 Go 中,您將依賴項作為包含您導入的包的模塊來管理。此過程由以下機構支持:

您可以搜索pkg.go.dev以查找具有您可能覺得有用的功能的軟件包。

找到要在代碼中使用的包后,在頁面頂部找到包路徑,然后單擊復制路徑按鈕將路徑復制到剪貼板。在您自己的代碼中,將路徑粘貼到導入語句中,如下例所示:

在您的代碼導入包后,啟用依賴項跟蹤并獲取包的代碼進行編譯。

要跟蹤和管理您添加的依賴項,您首先要將代碼放入其自己的模塊中。這會在源代碼樹的根目錄創(chuàng)建一個 go.mod 文件。您添加的依賴項將列在該文件中。

要將您的代碼添加到它自己的模塊中,請使用 go mod init命令。例如,從命令行切換到代碼的根目錄,然后按照以下示例運行命令:

該go mod init命令的參數是您的模塊的模塊路徑。如果可能,模塊路徑應該是源代碼的存儲庫位置。

如果一開始您不知道模塊的最終存儲庫位置,請使用安全的替代品。這可能是您擁有的域的名稱或您控制的另一個名稱(例如您的公司名稱),以及來自模塊名稱或源目錄的路徑。

當您使用 Go 工具管理依賴項時,這些工具會更新 go.mod 文件,以便它維護您的依賴項的當前列表。

添加依賴項時,Go 工具還會創(chuàng)建一個 go.sum 文件,其中包含您所依賴的模塊的校驗和。Go 使用它來驗證下載的模塊文件的完整性,特別是對于在您的項目上工作的其他開發(fā)人員。

在代碼中包含存儲庫中的 go.mod 和 go.sum 文件。

當您運行go mod init創(chuàng)建用于跟蹤依賴項的模塊時,您指定一個模塊路徑作為模塊的名稱。模塊路徑成為模塊中包的導入路徑前綴。一定要指定一個不會與其他模塊的模塊路徑沖突的模塊路徑。

至少,一個模塊路徑只需要表明它的來源,例如公司或作者或所有者名稱。但是路徑也可能更能描述模塊是什么或做什么。

模塊路徑通常采用以下形式:

1、Go 工具可以在其中找到模塊源代碼的存儲庫的位置。

例如,它可能是github.com/ /.

如果您認為您可能會發(fā)布模塊供其他人使用,請使用此最佳實踐。

2、一個你控制的名字。

如果您不使用存儲庫名稱,請務必選擇一個您確信不會被其他人使用的前綴。一個不錯的選擇是您公司的名稱。避免使用常用術語,例如widgets、utilities或 app。

Go 保證以下字符串不會在包名稱中使用。

1、test– 您可以將test用作模塊路徑前綴以便代碼用于在另一個模塊中本地測試功能進行測試。

使用test作為模塊路徑前綴是測試的一部分。例如,您的測試本身可能會運行go mod init test,然后以某種特定方式設置該模塊,以便使用 Go 源代碼分析工具進行測試。

2、example– 在某些 Go 文檔中用作模塊路徑前綴,例如在創(chuàng)建模塊以跟蹤依賴關系的教程中。

請注意,Go 文檔還用于example.com說明示例何時可能是已發(fā)布的模塊。

作為程序員的你,常用的軟件有哪些?

這個就非常多了,下面我以常見的編程開發(fā)軟件和數據庫管理軟件為例,簡單介紹幾種,感興趣的朋友可以嘗試一下:

01 編程開發(fā)軟件

這個要看具體編程語言了,不同語言開發(fā)工具自然不同,這里以常見的C/C++、Java和Python為例,簡單介紹3種比較常用的軟件:

這是Windows平臺下一個非常專業(yè)的集成開發(fā)工具,號稱宇宙第一IDE環(huán)境,不僅僅只是C/C++,常見的C#、VB等編程語言,這個軟件都能很好支持,智能補全、代碼高亮、語法檢查等功能非常不錯,除此之外,還支持單元測試、代碼重構和分析等高級功能,因此非常適合大型項目開發(fā)和維護:

這是一個非常專業(yè)智能的Java開發(fā)工具,在企業(yè)和個人桌面中,有著非常高的使用率和歡迎度,自動補全、語法提示、代碼高亮等功能非常不錯,除此之外,還支持JUnit、CVS整合、代碼重構等高級功能,自帶有Maven和Gradle構建工具,因此更適合Java項目開發(fā)和維護,個人使用起來非常不錯:

這是一個非常專業(yè)的Python開發(fā)軟件,和IntelliJ IDEA一樣,Jetbrains公司的產品,在業(yè)界非常流行、受歡迎,智能補全、代碼高亮、語法提示等功能非常不錯,除此之外,還支持代碼重構和分析、單元測試等高級功能,因此更適合大型項目,個人使用來說,也非常簡單,很容易上手和掌握:

02 數據庫管理軟件

這個就非常多了,不同數據庫都有專門的管理軟件和工具,這里簡單介紹3個比較通用的數據庫管理軟件,分別是HeidiSQL、DBeaver和DataGrip,對于日常使用來說,非常不錯:

這是Windows平臺下一個非常輕巧靈活的數據庫管理軟件,基于Delphi開發(fā)而來,目前支持MySQL、MariaDB、MSSQL、PostgreSQL等主流數據庫,常見的建庫建表、視圖索引、觸發(fā)器等基本功能,這個軟件都能很好兼容,除此之外,還支持SQL腳本導入導出、數據備份恢復等功能,對于日常數據庫管理來說,非常不錯:

這是一個基于Java開發(fā)的數據庫管理軟件,免費、開源、跨平臺,目前支持Oracle、MySQL、PostgreSQL、SQL Server等十幾種主流數據庫開發(fā),建庫建表、視圖索引、觸發(fā)器、存儲過程等基本功能 都 可輕松查看和設計,數據庫導入導出、數據 恢復 備份等功能也都非常不錯,對于日常數據庫管理和維護來說,是一個非常不錯的工具:

這也是一個通用的數據庫管理軟件,Jetbrains公司的產品,支持跨平臺,但原則上針對個人不免費,常見的PostgreSQL、MySQL、Oracle等數據庫,這個軟件都能很好支持, 數據導入導出( 恢復備份 )、 智能代碼填充、版本 集成 控制等功能非常不錯,對于日常數據庫管理來說,也是一個不錯的工具:

每天常用開發(fā)工具:

0.Git:分布式版本控制系統;

1.IntelliJ IDEA:java語言開發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認為最好的java開發(fā)工具之一;

2.Sublime Text:不只是代碼編輯器;

3.Postman:Http請求模擬工具和功能強大的網頁調試工具;

4.DataGrip:支持幾乎所有主流的關系數據庫、多功能的數據庫操作工具;

5.Vagrant:用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境,配合虛擬機使用;

6.Gradle:自動化構建工具;

7.JIRA:項目與事務跟蹤工具;

8.iTerm2:Mac上的終端工具;

9.Jenkins:持續(xù)集成工具。

做了一個寫代碼用了十幾年的人,很多編程的習慣已經養(yǎng)成了,現在就羅列下每天必用的軟件:

直接安裝的linux系統,因為幾乎所有的代碼都是在linux下完成

java開發(fā)環(huán)境

C/C++代碼編輯工具

linux下虛擬windows系統virtualBox

軟件提交工具git

不同的開發(fā)語言,每天要用到的軟件可能不一樣。

我是開發(fā)java web的,電腦安裝了很多工具,但是說每天要用到的好像就幾個。

作為程序員使用最多的軟件,莫過于編程開發(fā)所用到的軟件編輯器,但是編輯器的種類有很多。我們需要做到的是,找到你最喜歡的編輯器然后熟練的使用它。

同時掌握常見的一些快捷鍵的操作方式,從而來提升我們的工作效率,而不是以軟件而論軟件,什么都去接觸使用。畢竟軟件是工具是幫助我們提升開發(fā)效率。

下面我就列舉我們PHP經常使用的軟件

IDE工具類軟件

這一類是開發(fā)軟件編寫代碼用的。這一類的軟件非常多,我就推薦一個經常使用的PHPStorm,因為太多的話大家也用不到,也沒有那么多的精力去熟練每一個編輯器。

PHPStorm是 JetBrains 公司開發(fā)的一款商業(yè)的 PHP 集成開發(fā)工具,旨在提高用戶效率,可深刻理解用戶的編碼,提供智能代碼補全,快速導航以及即時錯誤檢查。可以說是PHP開發(fā)程序員必備的神器。

常用快捷鍵如下:

1.復制快捷方式

F5 復制文件/文件夾

CTRL+C 復制

CTRL+V 粘貼

CTRL+X 剪 切,刪除行

CTRL+D 復制行

CTRL+SHIFT+V 可以復制多個文本

2.自動代碼

ALT+回車 導入包,自動修正

CTRL+ALT+L 格式化代

碼CTRL+ALT+I 自動縮進

CTRL+ALT+O 優(yōu)化導入的類和包

CTRL+SHIFT+SPACE 切換窗口

CTRL+SPACE空格 代碼自動完成,代碼提示,一般與輸入法沖突

CTRL+ALT+SPACE 類 名或接口名提示(與系統沖突)

CTRL+P 方法參數提示,顯示默認參數

CTRL+J 自動代碼提示,自動補全

CTRL+ALT+T 把選中的代碼放在 TRY{} IF{} ELSE{} 里ALT+INSERT 生成代碼(如GET,SET方法,構造函數等)

3.運行

Alt + Shift + F10 選擇的配置和運行

Alt + Shift + F9 選擇配置和調試

Shift + F10 運行

Shift + F9調試

Ctrl + Shift + F10運行范圍內配置編輯器

Ctrl + Shift + X運行命令行

4.其他快捷方式

CTRL+Z 倒退(代碼后悔)

CTRL+SHIFT+Z 向前

CTRL+H 顯 示類結構圖

Ctrl +F12 文件結構彈出

CTRL+O 魔術方法

CTRL+/ 注釋//取消注釋

CTRL+SHIFT+/ 注釋/*...*/

ctrl + '.': 折疊選中的代碼的代碼

ALT+ / 切換代碼視圖,標簽切換

5.其他快捷方式

CTRL+Z 倒退(代碼后悔)

CTRL+SHIFT+Z 向前

CTRL+H 顯 示類結構圖

Ctrl +F12 文件結構彈出

CTRL+O 魔術方法CTRL+/ 注釋//取消注釋

CTRL+SHIFT+/ 注釋/*...*/

ctrl + '.': 折疊選中的代碼的代碼

ALT+ / 切換代碼視圖,

數據庫相關常用的工具

Navicat for MySQL是管理數據庫的操作工具,都是可以連接遠程的云數據庫。方便簡化開發(fā),還可以手動備份、可視化的sql分析。

常用快捷鍵:

ctrl+q 打開查詢窗口

ctrl+/ 注釋sql語句

ctrl+shift +/ 解除注釋

ctrl+r 運行查詢窗口的sql語句

ctrl+shift+r 只運行選中的sql語句

F6 打開一個mysql命令行窗口

ctrl+d (1):查看表結構詳情,包括索引 觸發(fā)器,存儲過程,外鍵,唯一鍵;(2):復制一行

ctrl+l 刪除一行

ctrl+n 打開一個新的查詢窗口

ctrl+w 關閉一個查詢窗口

ctrl+tab 多窗口切換

服務器連接軟件

XShell6是非常強大的SSH遠程終端客戶端,幫助我們連接遠程的Linux服務器來進行操作。

粘貼:Shift+Insert

歷史 命令編輯ctrl + p 返回上一次輸入命令字符

alt + 返回上一次執(zhí)行命令

其它

ctrl + s 鎖住終端

ctrl + q 解鎖終端

ctrl + l 清屏相當于命令clear

Tab鍵,快速補全命令

輕量級文本編輯器

Notepad++。這個很輕量,打開一下文本非常的方便。

常用快捷鍵

Ctrl+C 復制

Ctrl+X 剪切

Ctrl+V 粘貼

Ctrl+Z 撤消

Ctrl+Y 恢復

Ctrl+A 全選

Ctrl+F 鍵查找對話框啟動

Ctrl+H 查找/替換對話框

Ctrl+D 復制并粘貼當行

Ctrl+F2 切換書簽

F2 轉到下一個書簽Shift+F2 轉到上一個書簽

F11 全屏模式

綜上所述,軟件只是一個工具,我們需要找到自己喜歡使用的,然后熟練一些常用的快捷方式即可,而并不是在于數量多。

前端 :

visual studio code

后端:

pycharm

IDEA

安卓:

android studio

瀏覽器:

谷歌

火狐

數據庫管理:

navicat

遠端鏈接:

fileZilla

xshell

electerm(mac上使用)

流程圖設計:

xmind

processOn

筆記:

為知筆記(付費一年60)

有道云筆記

虛擬機(容器)

VMware Fusion(mac上)

docker

其他:

postman

jmeter

作為一個12年開發(fā)經驗的前端程序員,我來聊聊每天必用的幾個軟件。

寫代碼自然離不開 編輯器 。目前我主要使用的是微軟的 Visual Studio Code 。VS Code比較輕量,功能足夠應付日常開發(fā)所需,跨平臺,而且完全免費 。因為之前長期使用Visual Studio在Windows平臺上做開發(fā),后來技術棧變化,經常需要在Linux和MacOS上做開發(fā),VS Code就成了我順理成章的選擇。后來干脆在Windows上也用VS Code了。目前整個團隊都已經被VS Code圈粉了。其它類似的如Sublime Text(需要付費)和Atom也有不少人使用。

因為是團隊開發(fā), 源代碼管理工具 自然必不可少,而 git 是目前最熱門的一個。我們公司也不例外,幾年前從Perforce遷移到了 GitHub企業(yè)版 (和公眾版本UI完全相同)。平時的代碼審查也都是在GitHub企業(yè)版上完成的,不再使用單獨的代碼審查工具。有些不習慣使用命令行方式的同事使用 SourceTree 完成日常的代碼分支管理和提交,而我則比較熱衷于命令行方式。VS Code也提供了比較完善的git集成,但因為習慣的原因,除了直觀比較不同代碼版本的差異,我一般也不用VS Code執(zhí)行git操作。

作為一個Web前端, 瀏覽器及前端調試工具 自然不可或缺, Google Chrome + Developer Tools (F12) 自然是首選。使用Developer Tools,可以對JavaScript進行調試,監(jiān)控HTTP請求/響應,分析CSS計算問題和JS性能問題。 Chrome下還有很多功能強大的插件,個人比較常用的包括React Developer Tools、PostMan、Proxy SwitchOmega和AdBlock。當然,因為經常面對瀏覽器兼容性問題,Firefox、IE、Edge、Apple Safari以及各自的Developer Tools都是免不了要用的。

團隊目前使用Scrum模型,自然需要一個做 任務規(guī)劃和質量管理 的工具。我們采用了 JIRA , 每天的站會(daily standup meeting)都會對scrum看板(board)進行更新。

遇到技術問題,自然免不了要上網查找資料。 Google 的使用頻率非常高(需要科學上網)。大部分問題都能在 StackOveflow 上找到線索,但有時候也不得不跑到大名鼎鼎的同性交友網站 GitHub 上看源碼。 MDN (Mozilla Developer Network)對于前端開發(fā)也是不可或缺(此處鄙視一下w3cschool,上面到處是錯誤知識)。

其它如node.js/npm、docker等,因為和具體的技術棧相關,就不具體展開講了。

作為一個開發(fā)人員,你每天使用什么軟件呢,歡迎說說看。

盡管我是后端出身的,不過也經常寫前端代碼,甚至還用C#/C++參與過一些客戶端開發(fā),自認為也算是一個Web全棧工程師。隨著前端技術的不斷進步,現在的前端已經不再是寫寫頁面這么簡單了,很多邏輯在前端就寫了,我建議每一個出色的開發(fā)者應該盡可能對前后端都能有不錯的掌握。

今天給大家推薦一些我認為前端和后端開發(fā)都需要經常用到的一些軟件,這里面包括了查詢資料工具、原型工具、文本編輯器、版本管理工具。

原型工具

不管前端還是后端,尤其是前端程序員,在跟產品經歷溝通之后肯定會要查看原型的,方便自己在開發(fā)過程中使用,基本上大公司輸出的原型都比較規(guī)范,除非你遇到張小龍這種級別的大神,哥們兒直接盯著你做了。

目前主流的原型工具主要有Axure、MockPlus、墨刀等,其中Axure依然是應用最為廣泛的原型工具,大多數開發(fā)者也都應該用來看原型。

文本編輯器

不管是前端還是后端程序員,當然前端程序員就不說了,在WebStorm出現之前,沒有一款真正可以叫做IDE的前端開發(fā)工具,那么基本上文本編輯器就是前端程序員最重要的編程工具。同樣后端程序員即使不需要寫前端代碼,文本編輯器也是必備的,您不需要每次看代碼都打開龐大的集成開發(fā)環(huán)境,像IDEA這種比較耗費資源的,平時查看代碼啥的完全沒有必要,何況你還經常要看一些前端代碼。

當然你比較習慣Linux/Unix下開發(fā),Emacs/Vim可能是你用得比較多的文本編輯器,還有UltraEdit、Sublime Text、EditPlus、Atom這些老牌的文本編輯器,不過現在我覺得每個程序員都應該下載一個Visual Studio Code,支持的語言比較多,而且插件非常豐富,是微軟官方支持的開發(fā)者工具,開源免費而且顏值非常高。

查詢資料、版本管理工具

不用多說,每個程序員都要學會很好的使用Google、Stack Overflow兩個工具,可以說你日常開發(fā)當中可能遇到的問題,通過這兩個工具你全都能找到解決方案。

另外一個是Dash文檔管理工具,Dash是一個非常好的開發(fā)者幫助文檔工具,這個工具的好處是給所有的開發(fā)文檔做了一個整合,C/C++、Java、PHP、Python、Latex、Emacs Lisp、Haskell、JavaScript、Go語言等文檔都能夠在這個工具當中下載使用。

最后一個就是版本管理了,SVN和Git依然是目前使用最為廣泛的版本管理工具,不過就使用來說我還是推薦Git版本控制系統,可以說這個時代Git就是最好的版本管理工具了,尤其是開源時代、互聯網時代,Git已經成為了最重要的版本管理工具,不管是命令行管理還是使用Github等客戶端工具,堪稱完美。

入行十一年,現在主要做一些管理和架構方面的工作,也會做一些Coding,主要是一些新技術的研究和“踩坑”。

編輯器

首先是EditPlus,這是一個文本編輯器。最常用的兩個功能:正則表達式查詢和文件夾內所有文件內容搜索。

平時經常需要看一些系統日志,甚至要從好幾天幾十個日志文件中找到內容,這個軟件很好用。(原諒我們沒有上日志平臺)

然后就是IDE啦,我還是喜歡用Eclipse,有時候會用STS(Spring Tool Suite),它也是一個被包裝過的Eclipse,方便做一些Spring框架的研究。

數據庫工具

一個是DbVisualizer,凡是具有JDBC數據庫接口的數據庫都可以管理,什么數據庫都能連。

還有一個是SQLyog,這是一個快速而簡潔的圖形化管理MYSQL數據庫的工具,我只用里面一個功能,就是數據的導入導出,效率非常高!

接口測試工具

大部分項目只對外提供接口服務,所以接口測試工具少不了,我一般使用SoapUI,WebService/Rest都可以進行測試。

其他

每天肯定會用的肯定不止上面幾個,還有版本控制工具svn和git,都會用到是因為單位svn現在開始往git遷移。

因為用的Scrum敏捷開發(fā)流程,所以JIRA、Sonar、Fisheye這些也是都會用到的。

Maven也不用說了,幾個項目基本都是基于Maven構建的。

必用的基本就是這些,只要電腦開著,這幾個軟件基本都是打開狀態(tài)。

如何配置go語言開發(fā)環(huán)境

1.1 Go 安裝

Go的三種安裝方式

Go有多種安裝方式,你可以選擇自己喜歡的。這里我們介紹三種最常見的安裝方式:

Go源碼安裝:這是一種標準的軟件安裝方式。對于經常使用Unix類系統的用戶,尤其對于開發(fā)者來說,從源碼安裝可以自己定制。

Go標準包安裝:Go提供了方便的安裝包,支持Windows、Linux、Mac等系統。這種方式適合快速安裝,可根據自己的系統位數下載好相應的安裝包,一路next就可以輕松安裝了。**推薦這種方式**

第三方工具安裝:目前有很多方便的第三方軟件包工具,例如Ubuntu的apt-get、Mac的homebrew等。這種安裝方式適合那些熟悉相應系統的用戶。

最后,如果你想在同一個系統中安裝多個版本的Go,你可以參考第三方工具GVM,這是目前在這方面做得最好的工具,除非你知道怎么處理。

Go源碼安裝

在Go的源代碼中,有些部分是用Plan 9 C和ATT匯編寫的,因此假如你要想從源碼安裝,就必須安裝C的編譯工具。

在Mac系統中,只要你安裝了Xcode,就已經包含了相應的編譯工具。

在類Unix系統中,需要安裝gcc等工具。例如Ubuntu系統可通過在終端中執(zhí)行sudo apt-get install gcc

libc6-dev來安裝編譯工具。

在Windows系統中,你需要安裝MinGW,然后通過MinGW安裝gcc,并設置相應的環(huán)境變量。

你可以直接去官網下載源碼,找相應的goVERSION.src.tar.gz的文件下載,下載之后解壓縮到$HOME目錄,執(zhí)行如下代碼:

cd go/src

./all.bash

運行all.bash后出現"ALL TESTS PASSED"字樣時才算安裝成功。

上面是Unix風格的命令,Windows下的安裝方式類似,只不過是運行all.bat,調用的編譯器是MinGW的gcc。

如果是Mac或者Unix用戶需要設置幾個環(huán)境變量,如果想重啟之后也能生效的話把下面的命令寫到.bashrc或者.zshrc里面,

export GOPATH=$HOME/gopath

export PATH=$PATH:$HOME/go/bin:$GOPATH/bin

如果你是寫入文件的,記得執(zhí)行bash .bashrc或者bash

.zshrc使得設置立馬生效。

如果是window系統,就需要設置環(huán)境變量,在path里面增加相應的go所在的目錄,設置gopath變量。

當你設置完畢之后在命令行里面輸入go,看到如下圖片即說明你已經安裝成功

圖1.1 源碼安裝之后執(zhí)行Go命令的圖

如果出現Go的Usage信息,那么說明Go已經安裝成功了;如果出現該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了Go的安裝目錄。

關于上面的GOPATH將在下面小節(jié)詳細講解

Go標準包安裝

Go提供了每個平臺打好包的一鍵安裝,這些包默認會安裝到如下目錄:/usr/local/go

(Windows系統:c:\Go),當然你可以改變他們的安裝位置,但是改變之后你必須在你的環(huán)境變量中設置如下信息:

export GOROOT=$HOME/go

export GOPATH=$HOME/gopath

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

上面這些命令對于Mac和Unix用戶來說最好是寫入.bashrc或者.zshrc文件,對于windows用戶來說當然是寫入環(huán)境變量。

如何判斷自己的操作系統是32位還是64位?

我們接下來的Go安裝需要判斷操作系統的位數,所以這小節(jié)我們先確定自己的系統類型。

Windows系統用戶請按Win+R運行cmd,輸入systeminfo后回車,稍等片刻,會出現一些系統信息。在“系統類型”一行中,若顯示“x64-based

PC”,即為64位系統;若顯示“X86-based PC”,則為32位系統。

Mac系統用戶建議直接使用64位的,因為Go所支持的Mac OS X版本已經不支持純32位處理器了。

Linux系統用戶可通過在Terminal中執(zhí)行命令arch(即uname

-m)來查看系統信息:

64位系統顯示

x86_64

32位系統顯示

i386

Mac 安裝

訪問下載地址,32位系統下載go1.4.2.darwin-386-osx10.8.pkg,64位系統下載go1.4.2.darwin-amd64-osx10.8.pkg,雙擊下載文件,一路默認安裝點擊下一步,這個時候go已經安裝到你的系統中,默認已經在PATH中增加了相應的~/go/bin,這個時候打開終端,輸入go

看到類似上面源碼安裝成功的圖片說明已經安裝成功

如果出現go的Usage信息,那么說明go已經安裝成功了;如果出現該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了go的安裝目錄。

Linux 安裝

訪問下載地址,32位系統下載go1.4.2.linux-386.tar.gz,64位系統下載go1.4.2.linux-amd64.tar.gz,

假定你想要安裝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

然后執(zhí)行go

圖1.2 Linux系統下安裝成功之后執(zhí)行go顯示的信息

如果出現go的Usage信息,那么說明go已經安裝成功了;如果出現該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了go的安裝目錄。

Windows 安裝

訪問Google Code 下載頁,32

位請選擇名稱中包含 windows-386 的 msi 安裝包,64 位請選擇名稱中包含 windows-amd64 的。下載好后運行,不要修改默認安裝目錄

C:\Go\,若安裝到其他位置會導致不能執(zhí)行自己所編寫的 Go 代碼。安裝完成后默認會在環(huán)境變量 Path 后添加 Go 安裝目錄下的 bin 目錄

C:\Go\bin\,并添加環(huán)境變量 GOROOT,值為 Go 安裝根目錄 C:\Go\ 。

驗證是否安裝成功

在運行中輸入 cmd 打開命令行工具,在提示符下輸入 go,檢查是否能看到 Usage 信息。輸入

cd %GOROOT%,看是否能進入 Go 安裝目錄。若都成功,說明安裝成功。

不能的話請檢查上述環(huán)境變量 Path 和 GOROOT 的值。若不存在請卸載后重新安裝,存在請重啟計算機后重試以上步驟。

第三方工具安裝

GVM

gvm是第三方開發(fā)的Go多版本管理工具,類似ruby里面的rvm工具。使用起來相當的方便,安裝gvm使用如下命令:

bash (curl -s -S -L )

安裝完成后我們就可以安裝go了:

gvm install go1.4.2

gvm use go1.4.2

也可以使用下面的命令,省去每次調用gvm use的麻煩: gvm use go1.4.2 --default

執(zhí)行完上面的命令之后GOPATH、GOROOT等環(huán)境變量會自動設置好,這樣就可以直接使用了。

apt-get

Ubuntu是目前使用最多的Linux桌面系統,使用apt-get命令來管理軟件包,我們可以通過下面的命令來安裝Go,為了以后方便,應該把

git mercurial 也安裝上:

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:gophers/go

sudo apt-get update

sudo apt-get install golang-stable git-core mercurial

homebrew

homebrew是Mac系統下面目前使用最多的管理軟件的工具,目前已支持Go,可以通過命令直接安裝Go,為了以后方便,應該把

git mercurial 也安裝上:

brew update brew upgrade

brew install go

brew install git

brew install mercurial

標題名稱:go語言管理軟件 go 軟件
轉載注明:http://muchs.cn/article28/docdojp.html

成都網站建設公司_創(chuàng)新互聯,為您提供域名注冊、全網營銷推廣、Google網站策劃、靜態(tài)網站、企業(yè)網站制作

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

小程序開發(fā)