Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
公式ドキュメント
http://golang.org/doc/
日本語訳
http://golang.jp
※前スレ
Go language part 1
http://mevius.5ch.net/test/read.cgi/tech/1381374291/
探検
Go language part 2
■ このスレッドは過去ログ倉庫に格納されています
1あ
2017/11/11(土) 19:25:26.19ID:X8lWnCzG2あ
2017/11/11(土) 19:49:11.79ID:X8lWnCzG 書き込み待って読んでから8時まで待つべきだったかな。
不要なら立て直してね。
一応言い訳すると、スレタイも変わったしそっから長いから普通に二スレ目だと思っとったわ。
もっかい書いとくと、APIが不足してることはない。
995 あ sage 2017/11/11(土) 19:23:54.10 ID:X8lWnCzG
まあ、要らないカラムが多すぎるだけなら、
row,err:=sql.Queryで、
column,err:=row.Columns()
vals:=Make([]sql.RawBytes,len(column))
args:=Make([]interface,len(column))
for i:= range values {
args[i]=&vals[i]
}
でvalsとargsつくって、
Scanに(args...)で渡せば、
使うときにvals[i]をstring(vals[i])とかよしなにしちゃえるんじゃないの?
不要なら立て直してね。
一応言い訳すると、スレタイも変わったしそっから長いから普通に二スレ目だと思っとったわ。
もっかい書いとくと、APIが不足してることはない。
995 あ sage 2017/11/11(土) 19:23:54.10 ID:X8lWnCzG
まあ、要らないカラムが多すぎるだけなら、
row,err:=sql.Queryで、
column,err:=row.Columns()
vals:=Make([]sql.RawBytes,len(column))
args:=Make([]interface,len(column))
for i:= range values {
args[i]=&vals[i]
}
でvalsとargsつくって、
Scanに(args...)で渡せば、
使うときにvals[i]をstring(vals[i])とかよしなにしちゃえるんじゃないの?
2017/11/11(土) 19:52:22.20ID:proXGFSN
4あ
2017/11/11(土) 19:54:54.11ID:X8lWnCzG5あ
2017/11/11(土) 19:57:12.37ID:X8lWnCzG >>2
あ、これrangeでvals受ける所をvalues受けてる。あとからargsが4文字だからvaluesもvalsにしよう、とか文字数とか調整してはいかんかったな。
あ、これrangeでvals受ける所をvalues受けてる。あとからargsが4文字だからvaluesもvalsにしよう、とか文字数とか調整してはいかんかったな。
2017/11/11(土) 23:47:05.71ID:LLMRc4SD
(前スレ)>>984
> 同意する。Goでデータベース操作の決定版がでないのが物語ってる。
>
> 逆にGAE/goのdatastoreを使うときはGoとの相性の良さを感じる。
> スキーマがGo側に設定することが決まっているから。
再度調べて、また考えて、大体理解した。
RDBはKVSと比較されるからKeyValueではないと勘違いしていたが、実はKeyValueそのものだ。
一方、静的言語は基本的にValueだけの世界で、Keyはコンパイル時に落ちてしまい、リフレクションするしかない。
ここが絶望的に相性が悪い。これはGoの問題ではなく、静的言語一般の問題だ。
だったらもうORMにしてしまえ、ということで、GAE/Goのdatastoreは見る限りそれに近い(と思う)
というか、静的言語でDB操作の決定版って、ORMじゃないと無理だろ。
自前のリフレクションはかなり死ねるし、そこを隠蔽してくれないと意味がない。
ただ、ORMまで持ち出すのなら「速度の為に」わざわざ静的言語を選ぶ理由がなくなってしまう。
DBで律速するのなら、動的言語でも大して変わらないはずだし、
管理も楽なら、もう動的言語で組んでしまえ、ってことになる。
(型の問題を回避する為にmapを使っても、同様に速度優位性のない無駄なシステムに成り下がってしまう)
意識したことはなかったが、静的言語では「型」を通じてプログラム全体がゆるく密結合してる。
これは「自分のみ」の世界では全く問題ないのだが、
JSON/RDB等「KeyValue前提の他人」と組み合わせる時にはかなり最悪だ。
PHPが糞言語なのは事実として、何だかんだで他を圧倒して生き残っているのには当然理由があり、
この相性問題はかなり大きい。
また、PHPerやJavaScripterが馬鹿にされる割には何とかなってるのにもこれが寄与してる気がする。
Java鹿が「オブジェクト指向で粗結合化(キリッ」してるのは割とミクロな粗結合化で、実はあまり意味がない。
今回のようにReadとWriteを丸ごと粗結合化することは静的言語(の優位性を保ったまま)では基本的に出来ない。
動的言語では速度は最初から捨ててて、組みやすさだけを取っており、割り切り感がいい。
この点、Goは若干中途半端なポジションだが、
Go = C+GC+型システム+リフレクションかな?
C++がリフレクションしたらかなり被るね。
> 同意する。Goでデータベース操作の決定版がでないのが物語ってる。
>
> 逆にGAE/goのdatastoreを使うときはGoとの相性の良さを感じる。
> スキーマがGo側に設定することが決まっているから。
再度調べて、また考えて、大体理解した。
RDBはKVSと比較されるからKeyValueではないと勘違いしていたが、実はKeyValueそのものだ。
一方、静的言語は基本的にValueだけの世界で、Keyはコンパイル時に落ちてしまい、リフレクションするしかない。
ここが絶望的に相性が悪い。これはGoの問題ではなく、静的言語一般の問題だ。
だったらもうORMにしてしまえ、ということで、GAE/Goのdatastoreは見る限りそれに近い(と思う)
というか、静的言語でDB操作の決定版って、ORMじゃないと無理だろ。
自前のリフレクションはかなり死ねるし、そこを隠蔽してくれないと意味がない。
ただ、ORMまで持ち出すのなら「速度の為に」わざわざ静的言語を選ぶ理由がなくなってしまう。
DBで律速するのなら、動的言語でも大して変わらないはずだし、
管理も楽なら、もう動的言語で組んでしまえ、ってことになる。
(型の問題を回避する為にmapを使っても、同様に速度優位性のない無駄なシステムに成り下がってしまう)
意識したことはなかったが、静的言語では「型」を通じてプログラム全体がゆるく密結合してる。
これは「自分のみ」の世界では全く問題ないのだが、
JSON/RDB等「KeyValue前提の他人」と組み合わせる時にはかなり最悪だ。
PHPが糞言語なのは事実として、何だかんだで他を圧倒して生き残っているのには当然理由があり、
この相性問題はかなり大きい。
また、PHPerやJavaScripterが馬鹿にされる割には何とかなってるのにもこれが寄与してる気がする。
Java鹿が「オブジェクト指向で粗結合化(キリッ」してるのは割とミクロな粗結合化で、実はあまり意味がない。
今回のようにReadとWriteを丸ごと粗結合化することは静的言語(の優位性を保ったまま)では基本的に出来ない。
動的言語では速度は最初から捨ててて、組みやすさだけを取っており、割り切り感がいい。
この点、Goは若干中途半端なポジションだが、
Go = C+GC+型システム+リフレクションかな?
C++がリフレクションしたらかなり被るね。
7あ
2017/11/12(日) 00:34:07.92ID:nCH5w166 リフレクションせんでも、アサーションで十分じゃないの?
プリミティブ以外が入ってる事もほぼ無いだろうし、
型無しのinterfaceから、特定のinterfaceへアサーションした方が幸せになれるだろ。
Stringerであれば良いとか。
プリミティブ以外が入ってる事もほぼ無いだろうし、
型無しのinterfaceから、特定のinterfaceへアサーションした方が幸せになれるだろ。
Stringerであれば良いとか。
8あ
2017/11/12(日) 00:42:26.80ID:nCH5w166 まずORMって何か考えれば良いと思うが、Object Relational Mappingだ。
リレーショナルデータベースに入れないのであれば、ORMじゃない。
ORMを、単にデータベースにオブジェクトを入れる道具の代名詞にしてるが、全然違う。
DatastoreはRDBではない。
CouchやMongoみたいなオブジェクトを放り込めるDB。そういう部分には向いてなくはない。
リレーショナルデータベースに入れないのであれば、ORMじゃない。
ORMを、単にデータベースにオブジェクトを入れる道具の代名詞にしてるが、全然違う。
DatastoreはRDBではない。
CouchやMongoみたいなオブジェクトを放り込めるDB。そういう部分には向いてなくはない。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★2 [ぐれ★]
- 京都のホテル大幅値下げ 訪日中国人客、年1000万人目前で急ブレーキ [蚤の市★]
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★3 [蚤の市★]
- 現場からは悲鳴、母親からは「高い」「性犯罪が怖い」の声も…高市総理がどうしても実現したい政策「ベビーシッターの利用促進」 [ぐれ★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★3 [蚤の市★]
- 【野球】ソフトバンク、デュプランティエ獲得が決定的! 阪神で今季6勝、リーグV貢献も自由契約 残留望む阪神などNPB他球団に断り [冬月記者★]
- 【高市朗報】トランプ「これからはG7に代わって『Core 5 (C5)』で世界を仕切る。米国中国インド日本ロシアの5大国がメンバーだ」 [517459952]
- 土曜日の午前中からお酒飲んじゃうおじさんいるでしょ
- 議員定数削減法案、廃案へwmwmwmmwmwmwmw [834922174]
- 【悲報】男「セックスしなくなったら彼女のことだんだん許せなくなったわ」→炎上wwwwwwwwwwwwwwwwwwww [802034645]
- 【高市悲報】NHKニュース「発狂している中国に対して、日本は至って冷静」😳 [762037879]
- おかゆ、紙面を飾るなとあれほど言ったのに飾ってしまう🏡
