Tips for writing clear, performant, and idiomatic Go code
江添亮 自由ソフトウェア主義者 C++ Evangelist C++標準化委員会の委員 ドワンゴ社員 C++11本を執筆した。 株式会社ドワンゴで働いている。 Mail:boostcpp@gmail.com Twitter:@EzoeRyou GitHub: https://github.com/EzoeRyou 江添亮のマストドン@EzoeRyou 筆者にブログのネタを提供するために、品物をアマゾンお気に入りリスト経由で送りたい場合: Amazon.co.jp: 江添亮: 江添のほしい物リスト 筆者にブログのネタを提供するために、直接に品物を送りたい場合、住所をメールで質問してください。 View my complete profile ► 2020 (31) ► December (2) ► November (2) ► September (2) ► August (4) ► Jul
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Go言語を始めて38日たったので、これからGo言語を始めるプログラマにちょっとでもヒントになるように、どのようにGo言語を始めて、どのような手順で学んできたかまとめておきます。 筆者のバックグランド PHP歴、JavaScript歴10年~ Python 3ヶ月くらい Ruby 1日 静的言語経験ほぼ皆無(Java 3日くらい、Scala 3日くらい、Objective-C 1週間くらい、Cそもそも挫折、C# 1日) 静的言語というと、「コンパイルの一手間が面倒」だとか「環境を作るのが面倒」だとか先入観があり、ほぼ食わず嫌い状態でした。
二日間ほど集中してgo言語でコード書いたので、その間に感じたことをまとめてみます。普段はだいたいPerlやJavaScriptでWebアプリケーションを書いています。 まとめの要約 go言語良い Webアプリケーション書くならPerlとかRubyが良い PerlとかRuby書ける人がミドルウェア書くならgo言語良い 気に入ったところ コンパイルエラーが親切 たとえば気楽な気持ちで以下のようなコードを書くと package main import ("fmt"; "net/http"; "log") func main() { resp := http.Get("http://hatenablog.com/") fmt.Println(math.Pi) } 以下のように丁寧に問題箇所を教えてくれます。 ./hoge.go:6: imported and not used: "log" ./h
Andrew Gerrand and Johan Euphrosine 13 December 2013 Background When we launched Go for App Engine in May 2011 the SDK was just a modified version of the Python SDK. At the time, there was no canonical way to build or organize Go programs, so it made sense to take the Python approach. Since then Go 1.0 was released, including the go tool and a convention for organizing Go programs. In January 2013
The playground service has three parts: A back end that runs on Google’s servers. It receives RPC requests, compiles the user program using the gc tool chain, executes the user program, and returns the program output (or compilation errors) as the RPC response. A front end that runs on Google App Engine. It receives HTTP requests from the client and makes corresponding RPC requests to the back end
Rob Pike 2 December 2013 Introduction From the beginning of the project, Go was designed with tools in mind. Those tools include some of the most iconic pieces of Go technology such as the documentation presentation tool godoc, the code formatting tool gofmt, and the API rewriter gofix. Perhaps most important of all is the go command, the program that automatically installs, builds, and tests Go p
Andrew Gerrand 1 December 2013 We are pleased to announce the release of Go 1.2, the latest stable version of the Go Programming Language. Binary distributions may be downloaded from the usual place or if you prefer to compile from source you should use the release or go1.2 tags. This new release comes nearly seven months after the release of Go 1.1 in May, a much shorter period than the 14 months
This chart shows the growth of Google searches for the term “golang” over the past four years. Notice the knee in the curve around March 2012, when Go 1.0 was released. If these searches are a decent proxy for interest, then it’s clear that interest in Go has grown remarkably since launch, and particularly so in the last 2 years. But where is the interest coming from? The open source community has
Products Docker DesktopContainerize your applicationsDocker HubDiscover and share container imagesDocker ScoutSimplify the software supply chainDocker Build Cloud Speed up your image buildsTestcontainers Desktop Local testing with real dependenciesTestcontainers Cloud Test without limits in the cloud See our product roadmapMORE resources for developers
Go はネットワークアプリケーションを手軽に書ける言語ですが、例えば 80 番ポートなど、 root でしか bind できないアドレスを Listen するアプリケーションを、 root でないユーザーで動かすのは地味に面倒です。 普通はソケットを bind してから setuid/setgid するのですが、 Linux では setuid が呼び出したスレッドしか適用されないという問題があり、 Go との相性が悪いからです。 参考 対処方法として、 Linux では capabilities を使って非 root ユーザーでも 1024 番以下を bind できるようにし、 Mac OS X などでは bind してから setuid するようにする。 先に root で bind したソケットを Go のプログラムに渡す。 2番めの方法を使うサンプルプログラムを書いておきます. $
元ネタ あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずGo言語について知っていることを書いた。 パッケージマネージャ 標準でついてるgoツールを使おう。必要なライブラリはリポジトリから、go getで取ってこよう。 http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies アプリケーションサーバ 標準パッケージのnet/httpパッケージを使えばhttpサーバを動かすことができる。apacheやnginxで動かしたかったら、標準パッケージのnet/http/cgiパッケージやnet/http/fcgiパッケージを使えばいい。 http://golang.or
ちょうど今日から夏休みの @ymmt2005 こと山本泰宇です。こんにちは。 夏休みなのにブログを書いている点は突っ込まないでください。 今回は Go を初めて業務に使ったときに躓いた点をまとめた資料を紹介します。これから使いだそうと考えている方は、これを読めば1日分位の調査は省けるかと思います。 ご存知の方も多いと思いますが、Go は Google で C++ が従来担当していたシステム開発用の言語として開発され、2009 年に公開されたプログラミング言語です。ここ最近広く使われだしたようで、一昨日の Hacker News では Go の記事が乱立していました。 cybozu.com でも Go を開発言語のひとつに採用しようとして、まず Python で書かれていたある TCP のクライアント・サーバープログラムを Go で書き直してみました。型どおりに公式のチュートリアルをこなし、
Web IDEを統合したPaaS「Nirous.io」がオープンβ開始。Ruby、Python、Node.js、Go対応で、友達を紹介すると無料枠の性能が向上 また新しいPaaS型クラウドサービスが登場しました。オープンβを開始したばかりの「Nitrous.io」(動画を見る限り「ナイトラス・アイオー」と発音するらしい)はRuby、Python、Node.jsとGoに対応したPaaS型クラウドサービスで、Webブラウザから利用できる統合開発環境を統合。サーバのプロビジョニングからアプリケーション開発、デプロイまですべてがWebブラウザで完結します。 Nitrous.ioではアプリケーションは「Box」上で実行し、Boxの性能は「N2O」と呼ばれる単位で管理されます。新規のBoxにはユーザー当たりデフォルトで、合計で150N2Oに相当する384MBメモリ、750MBストレージが無料で提供され
Andrew Gerrand 6 February 2013 Introduction One of the most useful data structures in computer science is the hash table. Many hash table implementations exist with varying properties, but in general they offer fast lookups, adds, and deletes. Go provides a built-in map type that implements a hash table. Declaration and initialization A Go map type looks like this: map[KeyType]ValueType where KeyT
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く