Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
公式ドキュメント
http://golang.org/doc/
日本語訳
http://golang.jp
※前スレ
Go language part 2
https://mevius.5ch.net/test/read.cgi/tech/1510395926/
探検
Go language part 3
■ このスレッドは過去ログ倉庫に格納されています
2019/10/17(木) 21:38:04.78ID:wMsZ+t6y
2019/11/23(土) 08:06:54.73ID:5HHeTBXj
2019/11/23(土) 12:27:33.32ID:1tA3t0n1
2019/11/23(土) 14:07:25.44ID:5HHeTBXj
2019/11/23(土) 20:04:06.92ID:1tA3t0n1
2019/11/23(土) 20:37:12.05ID:5HHeTBXj
2019/11/23(土) 21:02:17.64ID:zPKhdy+L
環境変数 GO111MODULE を off にセットしてみたら
2019/11/23(土) 21:13:40.13ID:pGKd1Nh3
言語自体はそれなりに良いんだが開発状況見てるとと将来が不安。rubyに似てる。
2019/11/23(土) 21:21:33.69ID:3Nj772W5
2019/11/23(土) 21:44:02.36ID:zPKhdy+L
>>94
go.mod に
replace internal/config => ./internal/config
と書いておくと
import "internal/config"
と書ける。 ./internal/config ディレクトリ内にも go.mod を作っておく必要があるけど
go.mod に
replace internal/config => ./internal/config
と書いておくと
import "internal/config"
と書ける。 ./internal/config ディレクトリ内にも go.mod を作っておく必要があるけど
2019/11/23(土) 21:57:18.51ID:5HHeTBXj
100デフォルトの名無しさん
2019/11/23(土) 22:02:32.31ID:5HHeTBXj >>95
ん、off?空指定とは違う挙動になるのかな?
ん、off?空指定とは違う挙動になるのかな?
101デフォルトの名無しさん
2019/11/23(土) 22:08:43.74ID:5HHeTBXj >>98
internal以下のパッケージの全てにgo.modを入れるのはちょっと…
internal以下のパッケージの全てにgo.modを入れるのはちょっと…
102デフォルトの名無しさん
2019/11/23(土) 22:12:34.14ID:zPKhdy+L >>100
1.13 からデフォルトは on
1.13 からデフォルトは on
103デフォルトの名無しさん
2019/11/23(土) 22:13:50.79ID:5HHeTBXj シンプルなのはいいんだけど
golintでチェックされる命名規則が嫌すぎる
キャメルでgetJsonDataとかだったか関数定義したら"JSON"と大文字で書けとか怒られた
お前は姑か!
golintでチェックされる命名規則が嫌すぎる
キャメルでgetJsonDataとかだったか関数定義したら"JSON"と大文字で書けとか怒られた
お前は姑か!
104デフォルトの名無しさん
2019/11/23(土) 22:19:49.28ID:5HHeTBXj105デフォルトの名無しさん
2019/11/23(土) 22:22:02.56ID:5HHeTBXj106デフォルトの名無しさん
2019/11/23(土) 22:24:43.43ID:zPKhdy+L off にして modules 捨てたらいいんじゃないかな
107デフォルトの名無しさん
2019/11/23(土) 22:29:30.47ID:zPKhdy+L 後は import "hoge-project/internal/config" って書くとか
これなら go.mod を作ったり弄くらなくて済む
これなら go.mod を作ったり弄くらなくて済む
108デフォルトの名無しさん
2019/11/23(土) 22:40:38.71ID:5HHeTBXj109デフォルトの名無しさん
2019/11/25(月) 21:36:43.85ID:aLYZ9MFJ 初心者なんだがcontextの使い道がいまいちわからん。
cancelとかなんかいいサンプルないかな。
cancelとかなんかいいサンプルないかな。
110デフォルトの名無しさん
2019/11/25(月) 22:24:43.09ID:ELiIkdft >>109
パッケージドキュメントのExampleが、自分としては分かりやすかった
WithCancelしか使ってないけど
あと、go vet がバグっていて親contextのCancel関数があるのに
子供のCancel関数を_で捨てると怒られる
https://github.com/golang/go/issues/29587
暫定的な解決法は一旦変数に取ってから_に代入
パッケージドキュメントのExampleが、自分としては分かりやすかった
WithCancelしか使ってないけど
あと、go vet がバグっていて親contextのCancel関数があるのに
子供のCancel関数を_で捨てると怒られる
https://github.com/golang/go/issues/29587
暫定的な解決法は一旦変数に取ってから_に代入
111デフォルトの名無しさん
2019/11/25(月) 22:34:45.60ID:ELiIkdft >>109
使い方じゃなくて使い道かー
んー、goroutineをポコポコ作る場面で、処理をキャンセルしたい事ってあるけど、作り散らしたgoroutineに通知しないとキャンセルできない
そんなとき自前で仕掛けを作らなくてもcontextを使えばいい
あとは、そういった処理にタイムアウトを実装したい時にも、タイマーが組み込まれてるcontextがある
Valueは使ったこと無い
使い方じゃなくて使い道かー
んー、goroutineをポコポコ作る場面で、処理をキャンセルしたい事ってあるけど、作り散らしたgoroutineに通知しないとキャンセルできない
そんなとき自前で仕掛けを作らなくてもcontextを使えばいい
あとは、そういった処理にタイムアウトを実装したい時にも、タイマーが組み込まれてるcontextがある
Valueは使ったこと無い
112デフォルトの名無しさん
2019/11/25(月) 22:57:11.50ID:0VXwuJZP ありがちなのはsigintしたときにすぐにプログラムを止めずに子のゴルーチンの処理が一区切りついてから止める場合とかかな🤔
113デフォルトの名無しさん
2019/11/26(火) 02:26:32.95ID:RC9c8z2p 改訂2版 みんなのGo言語、2019/8/1
買ってきた。
これは、文法以外の開発に関する本
買ってきた。
これは、文法以外の開発に関する本
114デフォルトの名無しさん
2019/11/26(火) 07:37:44.38ID:wNKG8xXd >>112
んだね、自分はちゃんと後始末していることを保証するためにWaitGroupと組み合わせてる
んだね、自分はちゃんと後始末していることを保証するためにWaitGroupと組み合わせてる
115デフォルトの名無しさん
2019/11/26(火) 15:25:52.87ID:+MieSoC5116デフォルトの名無しさん
2019/11/26(火) 15:27:45.16ID:+MieSoC5117デフォルトの名無しさん
2019/11/26(火) 15:32:27.05ID:+MieSoC5 >>110
パッケージドキュメントだと、やはり基本的にループ待受なのね
なんかイメージ的に、その文脈から派生した処理を上手いことその派生分だけ切り上げる、みたいな感じだったけど、contextWithCancel使う=ループ処理がある、なのかな
パッケージドキュメントだと、やはり基本的にループ待受なのね
なんかイメージ的に、その文脈から派生した処理を上手いことその派生分だけ切り上げる、みたいな感じだったけど、contextWithCancel使う=ループ処理がある、なのかな
118デフォルトの名無しさん
2019/11/26(火) 18:34:43.56ID:8XlTLgEr119デフォルトの名無しさん
2019/11/26(火) 20:40:53.47ID:+MieSoC5 >>118
なるほど。参考になる。
channel読むの前提ってことは、やっぱり汚くなるよね。
selectで終了待受したいなら、中でさらにgoroutine生成してselectまで進めておく、しかないと
なんかこう、WithCancelで生成したcontext渡してcancelしたらなにも考えることなく終わってほしいなー。
なるほど。参考になる。
channel読むの前提ってことは、やっぱり汚くなるよね。
selectで終了待受したいなら、中でさらにgoroutine生成してselectまで進めておく、しかないと
なんかこう、WithCancelで生成したcontext渡してcancelしたらなにも考えることなく終わってほしいなー。
120デフォルトの名無しさん
2019/11/26(火) 21:33:38.25ID:+iLBHaU9 >>114
便乗して更に質問で申し訳ないが聞きたい。waitgroupって、個人的にはworkerの数が決まってるなら使うべき?
wg使わずにキャパシティ付きchannelに放り込む、クロージャでdefer closeしてその後channelをrangeで回す。というのもソースコードではよく見る。
ここら辺なにが正解なのかわからんのよね
便乗して更に質問で申し訳ないが聞きたい。waitgroupって、個人的にはworkerの数が決まってるなら使うべき?
wg使わずにキャパシティ付きchannelに放り込む、クロージャでdefer closeしてその後channelをrangeで回す。というのもソースコードではよく見る。
ここら辺なにが正解なのかわからんのよね
121デフォルトの名無しさん
2019/11/26(火) 22:53:16.65ID:wNKG8xXd >>120
workerの数が決まらないほど、使うべきなんじゃない?
要するに全部のgoroutineが終わったかどうか判断する仕組みだから
ちなみに自分はgoroutineを二段構えで呼んでて、WaitGroupは隠してる
https://github.com/XORveRCOM/util/blob/master/pkg/easywork/easywork.go
workerの数が決まらないほど、使うべきなんじゃない?
要するに全部のgoroutineが終わったかどうか判断する仕組みだから
ちなみに自分はgoroutineを二段構えで呼んでて、WaitGroupは隠してる
https://github.com/XORveRCOM/util/blob/master/pkg/easywork/easywork.go
122デフォルトの名無しさん
2019/11/26(火) 22:57:07.00ID:eptCat3v workerの数決まっていないでチャンネル使うとキャパシティ以上にワーカーできたとき詰まって死にそう🤔
123デフォルトの名無しさん
2019/11/26(火) 23:23:09.81ID:Gw3sx8bp >>121
回答とサンプルありがとう。
質問の日本語がおかしかった。。
なるほど、こうすればchannelで送受信しなくても逐次的に処理できるということか。
ちなみにworkerの数が決まらないケースって、どんな場面で遭遇する?
常駐してて死なないアプリ以外にあんまり思いつかず
回答とサンプルありがとう。
質問の日本語がおかしかった。。
なるほど、こうすればchannelで送受信しなくても逐次的に処理できるということか。
ちなみにworkerの数が決まらないケースって、どんな場面で遭遇する?
常駐してて死なないアプリ以外にあんまり思いつかず
124デフォルトの名無しさん
2019/11/26(火) 23:23:41.57ID:wNKG8xXd >>122
WaitGroupのソースを参照
WaitGroupのソースを参照
125デフォルトの名無しさん
2019/11/26(火) 23:29:52.93ID:Gw3sx8bp >>122
受信側は無限に待ち受ける想定だとどうかな?というか、waitgroupを使わないユースケースがそれぐらいしか思いつかないんだよね
waitgroupが有効なケース、だけどwaitgroupを使わないケースってどんなんがあるのかな。
受信側は無限に待ち受ける想定だとどうかな?というか、waitgroupを使わないユースケースがそれぐらいしか思いつかないんだよね
waitgroupが有効なケース、だけどwaitgroupを使わないケースってどんなんがあるのかな。
126デフォルトの名無しさん
2019/11/26(火) 23:36:45.35ID:wNKG8xXd127デフォルトの名無しさん
2019/11/26(火) 23:46:52.62ID:+iLBHaU9 >>126
そうか、パッと見ダウンロード処理を開始する時にwg.Add(len())すれば、とおもったけど、よく考えたら何をダウンロードするのかを取得する処理自体が並列化してる場合は、ソースみたいに自分でAdd(1)しないと並列化できないね。
とても勉強になった。ありがとう。
そうか、パッと見ダウンロード処理を開始する時にwg.Add(len())すれば、とおもったけど、よく考えたら何をダウンロードするのかを取得する処理自体が並列化してる場合は、ソースみたいに自分でAdd(1)しないと並列化できないね。
とても勉強になった。ありがとう。
128デフォルトの名無しさん
2019/11/26(火) 23:59:49.88ID:eptCat3v >>124
WaitGroupのソース見る限りAddされた数と待っている数を保持していてチャンネルを使っていないっぽいけど…
チャンネルを使うと詰まることあるけどWaitGroupならないんじゃないかな
https://golang.org/src/sync/waitgroup.go?s=574:929
WaitGroupのソース見る限りAddされた数と待っている数を保持していてチャンネルを使っていないっぽいけど…
チャンネルを使うと詰まることあるけどWaitGroupならないんじゃないかな
https://golang.org/src/sync/waitgroup.go?s=574:929
129113
2019/12/02(月) 22:40:03.04ID:H5nAExhM >>113
改訂2版 みんなのGo言語、2019/8/1
半分ぐらい読んだけど、これは、文法以外の開発に関する本で、
テスト・デザインパターンなど、
各言語の中級者向け「Effective 何々」に相当する本
改訂2版 みんなのGo言語、2019/8/1
半分ぐらい読んだけど、これは、文法以外の開発に関する本で、
テスト・デザインパターンなど、
各言語の中級者向け「Effective 何々」に相当する本
130デフォルトの名無しさん
2019/12/03(火) 08:47:37.15ID:+IyagjW2 effective goは無料で読めるけど全然似てない。適当こくでねぇ。
131デフォルトの名無しさん
2019/12/05(木) 11:52:28.33ID:a2pVpta0 シマンテックのSEPがgolintを誤検知してさくっと削除
132デフォルトの名無しさん
2019/12/06(金) 09:12:39.72ID:f1K6IxOi 誤検知じゃないかも
133デフォルトの名無しさん
2019/12/08(日) 01:05:14.90ID:XpO05MF4 ジェネリクスとnnbdは入ったの?
134デフォルトの名無しさん
2019/12/12(木) 01:16:12.28ID:8N8BhmJA135デフォルトの名無しさん
2019/12/14(土) 02:29:56.08ID:yWRsmPzk ジェネリックよりインターフェースのメソッド名をリファクタリングする機能が欲しい
それとファイル内に閉じたスコープの新設
それとファイル内に閉じたスコープの新設
136デフォルトの名無しさん
2019/12/14(土) 12:20:22.72ID:txh4qI7o サクッとwebサーバー建てる時お前らエコー使うだろ?
後輩がジン一択言って譲らんのよ
後輩がジン一択言って譲らんのよ
137デフォルトの名無しさん
2019/12/14(土) 12:25:23.49ID:yWRsmPzk ごめんnet/http一択
138デフォルトの名無しさん
2019/12/14(土) 18:57:44.23ID:SoAE2obC サクッと立てたい時にフレームワークは使わない
139デフォルトの名無しさん
2019/12/14(土) 21:25:16.45ID:yWRsmPzk140デフォルトの名無しさん
2019/12/14(土) 21:32:58.33ID:b2AnHSwF >>139
お、イイネ!
お、イイネ!
141デフォルトの名無しさん
2019/12/16(月) 01:49:06.93ID:tdYdVSGI go初心者です。
田中、佐藤、加藤からランダム(重複なし)で3つ抽出するにはどうすればいいでしょうか?
田中、佐藤、加藤からランダム(重複なし)で3つ抽出するにはどうすればいいでしょうか?
142デフォルトの名無しさん
2019/12/16(月) 01:56:43.58ID:oBdKFKCd 取り出す数が配列の大きさと同じならシャッフルすれば良さそう
https://golang.org/pkg/math/rand/#Shuffle
https://golang.org/pkg/math/rand/#Shuffle
143デフォルトの名無しさん
2019/12/16(月) 02:11:32.44ID:tdYdVSGI144デフォルトの名無しさん
2019/12/16(月) 02:29:03.91ID:oBdKFKCd >>143
重複なしならシャッフルして前から5個取れば良さそう
重複なしならシャッフルして前から5個取れば良さそう
145デフォルトの名無しさん
2019/12/16(月) 02:37:03.68ID:tdYdVSGI >>144
すみません、前から5個取るにはどうすればいいのでしょうか?
すみません、前から5個取るにはどうすればいいのでしょうか?
146デフォルトの名無しさん
2019/12/16(月) 02:44:37.15ID:F1oitXIE147デフォルトの名無しさん
2019/12/16(月) 02:50:18.86ID:tdYdVSGI148デフォルトの名無しさん
2019/12/16(月) 18:22:41.60ID:e0hK5sZz おんぶに抱っこやんけ
149デフォルトの名無しさん
2019/12/16(月) 20:24:54.73ID:4cesp02J interfaceをに包まれた2つ以上の変数が持つ型が一致してるか判定できる構文てある?
こういうのはできないみたいだし…
var x interface{} = int(12)
var y interface{} = int(25)
if (a, ok1), (b, ok2) := x.(int), y.(int); ok1 && ok2 {
fmt.Println(a, b)
}
こういうのはできないみたいだし…
var x interface{} = int(12)
var y interface{} = int(25)
if (a, ok1), (b, ok2) := x.(int), y.(int); ok1 && ok2 {
fmt.Println(a, b)
}
150デフォルトの名無しさん
2019/12/16(月) 20:25:53.67ID:4cesp02J リフレクション使えば判別出来るのは知ってる
151デフォルトの名無しさん
2019/12/16(月) 20:35:08.46ID:F1oitXIE まぁ、こんなんかなぁ…
if a, ok1 := x.(int); ok1 {
if b, ok2 := y.(int); ok2 {
fmt.Println(a, b)
}
}
if a, ok1 := x.(int); ok1 {
if b, ok2 := y.(int); ok2 {
fmt.Println(a, b)
}
}
152デフォルトの名無しさん
2019/12/16(月) 20:41:01.13ID:F1oitXIE reflection ならこうかな
import "reflect"
if reflect.ValueOf(x).Type() == reflect.ValueOf(y).Type() {
fmt.Println(x, y)
}
import "reflect"
if reflect.ValueOf(x).Type() == reflect.ValueOf(y).Type() {
fmt.Println(x, y)
}
153デフォルトの名無しさん
2019/12/16(月) 23:14:32.24ID:xtOX+BoM 型アサーション使っていいなら、型スイッチという手段も
154デフォルトの名無しさん
2019/12/18(水) 18:41:56.85ID:q6G7SevV golang関係ないんだが、50000番台ポートをlistenで開きまくるアプリ書いてるんだが、テスト実行毎にデバッグexeのパスが変わってWindowsDefenderがブロックしましたダイアログ出してきてウザいよぅ
うちはSEPなんでお呼びじゃないし、更にブロックされてると主張してるがテストコードはガンガン通ってるからブロックしてねーし
ともかく、デバッグexeの一時フォルダを固定する設定ってある?そうすりゃ例外設定書ける
うちはSEPなんでお呼びじゃないし、更にブロックされてると主張してるがテストコードはガンガン通ってるからブロックしてねーし
ともかく、デバッグexeの一時フォルダを固定する設定ってある?そうすりゃ例外設定書ける
155デフォルトの名無しさん
2019/12/19(木) 17:58:01.30ID:E0rD8pHx156デフォルトの名無しさん
2019/12/19(木) 18:04:48.44ID:E0rD8pHx157デフォルトの名無しさん
2019/12/21(土) 20:16:12.25ID:YQ48l2e3 ep8 ー ep7で雑に投げられた謎を雑に処理、端から解決する気無し。既存キャラの大幅劣化に加え、ローズ、紫バァ、暗号破りの新キャラ3人がヘイトの対象に(主にローズ)
ep9 ー ep8の出来事はほぼ無かったことに…。大味極まりないが逆にそれが功を奏し、SWファンからの評価は概ね高い。興収でエンドゲームを超えられるか注目
ep9 ー ep8の出来事はほぼ無かったことに…。大味極まりないが逆にそれが功を奏し、SWファンからの評価は概ね高い。興収でエンドゲームを超えられるか注目
158デフォルトの名無しさん
2019/12/21(土) 20:17:39.18ID:YQ48l2e3 ごめん、完全誤爆
159デフォルトの名無しさん
2019/12/26(木) 23:28:38.63ID:mrZiX212160デフォルトの名無しさん
2019/12/26(木) 23:57:38.99ID:oc05wxay >>159
知らんのでググって、最初にヒットした奴の方が良いな
具体的にはオプションはそれぞれ対象の構造体ポインタを受けとるシグネチャを持つ関数
そのメソッドのスライスを順に呼ぶと、関数が特定フィールドに値をセットするという作り
まず、その方式だと型switchがいらない
オプションを増やしたければセット用の関数を増やす
他の利点として、設定する関数では他のフィールドも参照できるから、矛盾のある設定を防ぐとか柔軟な設定もできそう
ぱっと見、visitパターンっぽいアイデアに見えた
(個人的な初見の感想なんで深く考えて言ってる訳じゃない
なんだっけ、二重呼び出し?
知らんのでググって、最初にヒットした奴の方が良いな
具体的にはオプションはそれぞれ対象の構造体ポインタを受けとるシグネチャを持つ関数
そのメソッドのスライスを順に呼ぶと、関数が特定フィールドに値をセットするという作り
まず、その方式だと型switchがいらない
オプションを増やしたければセット用の関数を増やす
他の利点として、設定する関数では他のフィールドも参照できるから、矛盾のある設定を防ぐとか柔軟な設定もできそう
ぱっと見、visitパターンっぽいアイデアに見えた
(個人的な初見の感想なんで深く考えて言ってる訳じゃない
なんだっけ、二重呼び出し?
161デフォルトの名無しさん
2019/12/26(木) 23:58:56.08ID:uIk/XshQ162デフォルトの名無しさん
2019/12/27(金) 00:43:24.50ID:3vrV+39v163デフォルトの名無しさん
2019/12/27(金) 18:28:35.28ID:Ppw19SXV ひさしぶりにGO触ったら仕様変更の真っ最中なのね...
暫く冬眠しとくわ
暫く冬眠しとくわ
164デフォルトの名無しさん
2019/12/27(金) 18:35:37.18ID:DR+ZCW3w いつでも仕様変更
ジェネリックス欲しがってる層って、何のクラスタの人なんだろ
ジェネリックス欲しがってる層って、何のクラスタの人なんだろ
165デフォルトの名無しさん
2019/12/27(金) 20:14:12.67ID:MjAsf7uH Java
166デフォルトの名無しさん
2019/12/27(金) 20:24:26.71ID:ttsY8Nqp Java 原人、生きていたのか
167デフォルトの名無しさん
2019/12/28(土) 00:46:09.91ID:zIP3TdeH ていうか Java のジェネリクスもおもくそ後付けやん
168デフォルトの名無しさん
2019/12/28(土) 13:38:22.34ID:bI9Nn/0L golangのゆるふわなinterface機構の上でジェネリックスの出番なんてそうそうあるものなのかな?
169デフォルトの名無しさん
2019/12/28(土) 13:43:53.42ID:c5TG1bir ちょっと凝ったことをしようとすると interface{} まみれになるところが改善できれば。
170デフォルトの名無しさん
2019/12/28(土) 13:46:40.71ID:FraGl0GS ジェネリクスはGo教において諸悪の根源とされる「利用しようとする前に利用される方を設計する行為」の最たるものだからなあ
171デフォルトの名無しさん
2019/12/28(土) 14:04:34.89ID:bI9Nn/0L 自分としてはgolangの形式で動的にリンクできるライブラリ手法が欲しいな
dllみたいなcgoなライブラリじゃなくgolangネイティブな形で
interface定義とインスタンスをロードするビルダだけ静的リンクするスタイルを想定
これがあるとDIとかプラグインが捗るから
知らないだけで存在してたりする?
それともdotnetのactivexみたいにdllに皮かぶせれば行けたりする?
dllみたいなcgoなライブラリじゃなくgolangネイティブな形で
interface定義とインスタンスをロードするビルダだけ静的リンクするスタイルを想定
これがあるとDIとかプラグインが捗るから
知らないだけで存在してたりする?
それともdotnetのactivexみたいにdllに皮かぶせれば行けたりする?
172デフォルトの名無しさん
2019/12/28(土) 15:05:05.51ID:R0mqAcCR ドラフトに挙がっている Go の generics(contract ベース)が採用されれば、
>>169
> ちょっと凝ったことをしようとすると interface{} まみれになるところが改善できれば。
inteface{} を使わなくてもよくなるんじゃないか、って期待してる。
まぁ、最終的にどうなるかは分からんけど…
>>169
> ちょっと凝ったことをしようとすると interface{} まみれになるところが改善できれば。
inteface{} を使わなくてもよくなるんじゃないか、って期待してる。
まぁ、最終的にどうなるかは分からんけど…
173デフォルトの名無しさん
2019/12/28(土) 18:09:17.61ID:euZyKjoi ジェネリクスは大体ライブラリとかそっちの方が実装してて普通は使うだけ
他の言語でジェネリクスないときはいちいち型キャストと型チェックしてたから
そういうのが無くなって嬉しかったんだけどなあ
他の言語でジェネリクスないときはいちいち型キャストと型チェックしてたから
そういうのが無くなって嬉しかったんだけどなあ
174デフォルトの名無しさん
2019/12/28(土) 18:18:35.27ID:7CupGRjm goでapiサーバーを構築したいんだけど、参考になるサイトとかないですか?
175デフォルトの名無しさん
2019/12/28(土) 18:23:32.21ID:euZyKjoi 本買え
176デフォルトの名無しさん
2019/12/28(土) 19:01:41.80ID:bI9Nn/0L 状態を変化させるAPIだと、API作るよりCORSとかCSRF周りの勉強がめんどくさい
177デフォルトの名無しさん
2019/12/29(日) 14:50:10.22ID:J2Lmqp1K WebAPIサーバーなんて、Qiitaとかそこらへんに転がってるような「GoでWeb APIを作ってみた」
程度の簡単なものが実際に本当にプロダクションで運用されてるもんだ。
ただしその前方や足元にはALBやらKubernetesやらがあって、信頼性やスケーラビリティはGoではなくそういったクラウドインフラの層で担保するんだよ。
Goをプロダクション運用したいなら、GoよりAWSの知識の方がずっと重要だ。
程度の簡単なものが実際に本当にプロダクションで運用されてるもんだ。
ただしその前方や足元にはALBやらKubernetesやらがあって、信頼性やスケーラビリティはGoではなくそういったクラウドインフラの層で担保するんだよ。
Goをプロダクション運用したいなら、GoよりAWSの知識の方がずっと重要だ。
178デフォルトの名無しさん
2019/12/29(日) 18:17:57.65ID:rmxnHa0h >>177
アホ
アホ
179デフォルトの名無しさん
2019/12/30(月) 09:38:05.31ID:QVGDKUrk 標準パッケージのjsonのUnmarshal
なんでReaderインターフェースでなくてバイト配列を引数にしたんだろ?
DecoderはSAXみたいなトークナイザだしなぁ
なんでReaderインターフェースでなくてバイト配列を引数にしたんだろ?
DecoderはSAXみたいなトークナイザだしなぁ
180デフォルトの名無しさん
2019/12/30(月) 09:50:44.52ID:QVGDKUrk181デフォルトの名無しさん
2019/12/30(月) 10:12:03.12ID:5236BLqU だったらQiitaのコピペ記事で十分だな
182デフォルトの名無しさん
2019/12/30(月) 13:50:14.69ID:vvSvem59 >>179
いやNewDecoder(r).Decodeでいいだろ
いやNewDecoder(r).Decodeでいいだろ
183デフォルトの名無しさん
2019/12/30(月) 14:37:33.59ID:QVGDKUrk184デフォルトの名無しさん
2019/12/30(月) 14:40:19.65ID:wDUvJCMS 一見落着
185デフォルトの名無しさん
2020/01/01(水) 23:38:38.47ID:N0k15467 goルーチンってプログラム終了前に全部終了させる必要ありますか?
186デフォルトの名無しさん
2020/01/02(木) 02:53:52.42ID:YsIrUWNq >>185
必要かと言えば、必要はない
goroutineが終わらなくてもプロセスは終わる
でも、goroutineのdeferルーチンは呼ばれない
https://play.golang.org/p/Tt1Hbxzbr8v
つまり後始末とかはされない
後始末したければ、
1. context使って終了を通知
2. WaitGroup使ってgoroutineの終了を待つ
必要かと言えば、必要はない
goroutineが終わらなくてもプロセスは終わる
でも、goroutineのdeferルーチンは呼ばれない
https://play.golang.org/p/Tt1Hbxzbr8v
つまり後始末とかはされない
後始末したければ、
1. context使って終了を通知
2. WaitGroup使ってgoroutineの終了を待つ
187デフォルトの名無しさん
2020/01/02(木) 04:32:00.19ID:DNldEsUw ありがとう
188デフォルトの名無しさん
2020/01/08(水) 00:07:12.80ID:xIk/A1LK golangはgoroutineでNAMESPACEを適切にコントロールする手段がないのでDockerコンテナを記述するには適していない、という記事を読んだんだけど
これって対策とかロードマップとか何か打ち出されてない?
これって対策とかロードマップとか何か打ち出されてない?
189デフォルトの名無しさん
2020/01/12(日) 02:20:29.72ID:/FVSphLE >>188
記事はどこ?
記事はどこ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” ★2 [ぐれ★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は ★2 [蚤の市★]
- オイルマッサージ施術中20代女性にわいせつ行為か セラピストの男(30)を再逮捕 余罪複数とみて警視庁が捜査 [どどん★]
- 内閣支持、微減59.9% 5割超が補正予算評価 時事通信世論調査 [どどん★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★3 [七波羅探題★]
- 高市内閣の支持率、下落wwwwwwwwwww [834922174]
- Vtuber「人気アニメとコラボします!」←これでVが叩かれるの謎じゃね
- Xでフォローしてきた人をフォロバして相手のフォロー解除するのが趣味なんだが
- 愛国者「徴兵されるのは嫌。でも敵が侵略してきたら考えます」 [834922174]
- (´・ω・`)おみゃんりゃ〜
- 【悲報】日中戦争5割が賛成、高市キッズたち徴兵へ [834922174]
