#author("2019-08-04T08:53:52+00:00","default:admin","admin")
#author("2019-08-04T14:24:17+00:00","default:admin","admin")
-[[グーグル、C/C++に代わる新言語「Go」をOSSで公開:http://www.atmarkit.co.jp/news/200911/11/go.html]]
-[[Google の新プログラミング言語 Go をMac OSX にインストール - おっとおれは骨付き肉!:http://d.hatena.ne.jp/masibonge/20091111/1257919052]]
-[[新世代の並列処理言語Google Goをひもとく:http://www.atmarkit.co.jp/fcoding/index/go.html]]
-[[仕事の言語に飽きてきた人はGoを使ってみてほしい――『スターティングGo言語』著者が語るGoのパワー:https://codezine.jp/article/detail/9359]]

-[[Goならわかるシステムプログラミング:http://ascii.jp/elem/000/001/235/1235262/]]

-[[GoでAPIサーバを開発する:https://qiita.com/zakiry/items/728872598c546eefb4df]]
-[[GoでとあるAPIサーバを実装し直した話:https://tech.mercari.com/entry/2016/12/19/180000]]
-[[Go で API サーバーを開発してきて1年が過ぎました:http://aial.shiroyagi.co.jp/2016/07/golang-api-server-developing/]]
-[[グーグルのプログラミング言語「Go」--開発者が明かした好む理由と好まない理由:https://japan.techrepublic.com/article/35135644.htm]]

-[[[golang]goaを使ってAPIの設計・開発し、OpenAPIドキュメントを自動生成する:https://kuroeveryday.blogspot.com/2018/05/goa-design-first-api-generation.html]]

*概要 [#ga33e462]
-言語機能や文法などの要素を極限まで削ったコンパクトなプログラミング言語
-改良されたC
--厳密に定義された多数の基本型
--パッケージによる名前空間の導入
--ガベージコレクタによるメモリ管理

-コンパイル言語
-コンパイル速度が速い ... コードの修正→テスト実行のサイクルを快適に回すことに貢献

-マルチプラットフォームで動作
-OSへの非依存
--OSの標準的なライブラリに依存しない実行ファイルを生成
--OSが提供する共有ライブラリを使わない代わりに、自前で相当する機能をすべて保持する必要があるため、実行ファイルサイズは大きくなる
-ガーベジコレクタ機能を備える
-並行処理に強い
--goroutine
--channel

-ポインタ型はあるが、ポインタ演算機能はない

-簡潔性を目指して、以下の機能を外した
--オブジェクト指向
--例外機構
--ジェネリクス


-[[なぜGo言語はエラー返却に例外機構を使わないのか:https://tmrtmhr.info/tech/why-does-golang-not-have-exceptions/]]
-[[Go にジェネリクスがなくても構わない人たちに対する批判について:https://methane.hatenablog.jp/entry/2017/09/19/Go_%E3%81%AB%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AA%E3%82%AF%E3%82%B9%E3%81%8C%E3%81%AA%E3%81%8F%E3%81%A6%E3%82%82%E6%A7%8B%E3%82%8F%E3%81%AA%E3%81%84%E4%BA%BA%E3%81%9F%E3%81%A1%E3%81%AB%E5%AF%BE%E3%81%99]]
-[[Re: Go にジェネリクスがなくても構わない人たちに対する批判について:http://kmizu.hatenablog.com/entry/2017/09/21/221433]]


*環境構築 [#i277875a]
**オンライン [#p47956e5]
-[[Go言語フレームワークRevelとPaizaCloudを使って10分でWebサービスを作る方法:https://proxy-paiza-hatenablog-com.paiza.cloud/entry/2018/03/23/paizacloud_golang_revel]]

**Windows [#xb3e9aad]
-[[WindowsのVisual Studio CodeでGo言語の開発環境を作る(2017年7月版):https://blog.shibata.tech/entry/2017/07/20/211442]]
-[[[Visual Studio Code][Golang][Windows] VSCodeでGoの開発環境を作成する方法まとめ:https://qiita.com/koara-local/items/8642d847831b6268d23e]]

**Chrome OS [#h2bb6cf9]
-[[https://github.com/golang/go/wiki/ChromeOS]]

**基本設定 [#i9a31bc9]
***GOPATHの設定 [#wa59726a]
 export GOPATH=$(go env GOPATH)
 export PATH=$GOPATH/bin:$PATH

*ツール [#t1465101]
**gore, gocode, pp [#r006cdf9]
 $ go get github.com/motemen/gore/cmd/gore
 $ go get github.com/mdempsky/gocode
 $ go get github.com/k0kubun/pp

**ghq [#j7614917]
-[[Ubuntuのgoのバージョンを上げて、ghqをインストールする:https://reetok99709.github.io/Ubuntu-In-ghq/]]
-[[GO言語 1.12をインストール@Ubuntu 18.04:https://www.mazn.net/blog/2019/02/03/1704.html]]

**goimports [#c0048ec2]
 $ go get golang.org/x/tools/cmd/goimports

**golint [#lbbd74db]
-静的解析ツール

 $ go get golang.org/x/lint/golint


*フレームワーク [#g9a7b2de]
**Revel [#kadb88bb]
-[[GoのフレームワークRevelを使ってみる(インストール編):https://qiita.com/m1ul24/items/bbe5aeef2811c1446471]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS