Go language part 3

■ このスレッドは過去ログ倉庫に格納されています
2019/10/17(木) 21:38:04.78ID:wMsZ+t6y
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。

公式ドキュメント
http://golang.org/doc/

日本語訳
http://golang.jp

※前スレ
Go language part 2
https://mevius.5ch.net/test/read.cgi/tech/1510395926/
2020/05/25(月) 13:44:33.12ID:ltgSCU1m
>>585
>>73
587デフォルトの名無しさん
垢版 |
2020/05/25(月) 16:38:07.00ID:Jp/r3UJz
問題解決力だけで言うとGoが一番高いの?
個人的にはフロントのネイティブ実装を強制されるって意味も含めてJSか、ライブラリの豊富さでPythonとかだと個人的に思うけど
2020/05/25(月) 16:41:08.15ID:AxcX2SLe
場合による
2020/05/25(月) 17:19:57.39ID:quw8Fr75
pythonってそこまで書きやすいとは思わないなあ
インターフェースがないから
どのオブジェクトが何を実装してるのかわからない
やはりインターフェースは偉大
2020/05/25(月) 17:29:12.78ID:83qlHvUW
Goはクラウドネイティブ開発に習熟してるがオーバークォリティなことをやりがちな奴が多い
JSは大半はゴミ、たまに凄いのもいる
Pythonは全体的に高学歴で頭良いけど動きゃいいって感じの奴が多い
どんな人間が欲しいか次第じゃないかな
591デフォルトの名無しさん
垢版 |
2020/05/25(月) 17:31:51.89ID:AueT0Sbh
pythonは
import Hoge
したら
help(Hoge)
a = Hoge.hoge()
だったら
help(a)
2020/05/25(月) 18:10:55.04ID:ltgSCU1m
場合つまり解決しようという問題による
問題解決能力って何よという話

グラフィカルでない
非同期処理が効果的
ならば少ない労力で実装できるという強みが売りかな
労力に関しては仕様が一頁で網羅できるGoの学習コストの低さが大きい

PythonだとCの知識前提で使うCythonでないとGoには太刀打ちできないというQuiita記事もある

総合力ではPythonの圧勝だろうけど、限定された問題ってのはそういうもの
2020/05/25(月) 18:27:04.86ID:ltgSCU1m
>>590
オーバークォリティか……耳に痛すぎる指摘だ
2020/05/25(月) 19:39:14.90ID:UFuP99WV
用途によるとしか言いようがない気がする。
どれも銀の弾丸にはならんよ。
2020/05/25(月) 21:22:07.97ID:oQRyx0Ul
銀の弾丸は狼男(もしくは悪魔)を倒すという用途に特化されてるんですが・・
2020/05/25(月) 22:09:38.90ID:UFuP99WV
ブルックスの論文を知ってて言ってたら申し訳ないんだが、ソフトウエアプロジェクトと言うものに対する銀の弾丸は無いって話だよ。
597デフォルトの名無しさん
垢版 |
2020/05/26(火) 06:33:05.73ID:tQI2iyhC
オーバークォリティなことをやりがちな奴が多い
ってのは質が良いプロダクトを作るのには向いてないってこと?
2020/05/26(火) 06:39:27.10ID:12NedZz3
>>597
いま必要な事以上の事をやりたがってプロジェクトの進捗が遅れるってことだよ。
カップラーメン作りゃ十分なのにスープの出汁とるのに豚骨2日近く煮たり、麺を手打ちし始めるような奴。
2020/05/26(火) 07:21:02.22ID:uV+m0fgU
単体テストやってたら過剰品質だと怒られたんだよな○KI電気SI
2020/05/26(火) 07:48:46.09ID:FE3JTR8c
過ぎたるは猶及ばざるが如し
2020/05/26(火) 08:32:48.79ID:2WnNvGhA
>>599
カバレッジ100%とかを目標にしてたんなら過剰品質だと言われてもしかたがない
2020/05/26(火) 09:09:34.75ID:285tMFTY
Web関連の自動化でselenium使いたくて、
Pythonでいいかってなったとこはある。
2020/05/26(火) 11:43:23.28ID:6ileE2Zc
自動テストのコストは成果物を運用しながら継続的に改良していく中でペイしていくもので、SIなら突貫で作って一発動いたらあとは納品して終わりなんだから自動テストは実際要らんわ
Goで書くようなものなんて複雑怪奇な業務ロジックとかじゃなくシンプルな小物だろうし
2020/05/26(火) 12:30:08.40ID:navi3B+X
そんな会社まだ生き残ってんだ
2020/05/26(火) 12:38:46.36ID:uV+m0fgU
特に一部上場に多い感触
606デフォルトの名無しさん
垢版 |
2020/05/26(火) 12:50:01.40ID:tQI2iyhC
>>592
Qiitaの記事欲しい

てかPython触るぐらいなら機械学習分野もGoに入れ替わってほしいわ
PythonのC/C++バックエンドよりは多少遅くなるけど、クラウドの相性のよさとかライブラリの質考えたらGoのほうがいい(Numpyとかpandasとかはまた別だけど)

自動テストってどのテストを指してるのか分からないけど、テスト書かないのは後戻りできない負債になるよ
2020/05/26(火) 13:08:22.92ID:uV+m0fgU
>>606
https://qiita.com/shimakaze_soft/items/8a493f230eabafe45209
2020/05/26(火) 13:12:24.26ID:uV+m0fgU
事情通に聞いてみたのよ
なんで自動テストしないのか、って
それ始めちゃうと、なんで今までやらなかったのか、そう言われて困るお偉いさんが山ほどいるから、だとさ
2020/05/26(火) 13:33:50.23ID:xe35/PQB
自社サービスとSIじゃビジネスモデルが全然違うんだから開発手法も違って当たり前
(俺は必ずしもそうだとは思わないが)仮に自動テストによってSIにおいても大幅な工数削減が可能だとして、それに何の意味がある?売上が減るだけじゃないか
お偉いさんの面子だのと人に鬱憤を押しつける悪い癖を自覚し、自分とその周囲の状況、そして問題の本質を正しく理解しよう
2020/05/26(火) 13:44:25.86ID:uV+m0fgU
フーン
2020/05/26(火) 14:07:06.10ID:e8iGmvo7
NGワード:本質
2020/05/26(火) 19:07:23.67ID:lsuseEJR
Go は名前がダサい

以上
2020/05/26(火) 19:13:02.05ID:uV+m0fgU
検索で困るもんな
2020/05/26(火) 19:15:33.38ID:7QcVxoyH
C の立場も慮って下さい
2020/05/26(火) 19:44:28.32ID:uV+m0fgU
はじめての C
まぁいやらしい

という定番ネタのあるひとは黙っててください
D 言語は泣いていい
2020/05/27(水) 01:44:41.20ID:lDZQxe+h
構造体の初期化で省略されたフィールドを既定値で初期化する方法を考えてたんだけど、こんなやり方でも構造体を初期化できるんだな(アンチパターンって言われそうだけど)
type Logger struct {
_ struct{}
mutex *sync.Mutex
Prefix string
Writer io.Writer
}
func (l Logger) New() *Logger {
l.mutex = &sync.Mutex{}
if l.Writer == nil {
l.Writer = os.Stdout
}
return &l
}
func main() {
l1 := Logger{}.New()
l2 := Logger{Prefix: "Looger: "}.New()
}
2020/05/31(日) 22:30:09.36ID:MeZ7svrP
https://www.techempower.com/benchmarks/#section=data-r19&;hw=ph&test=composite
webフレームワークのベンチマーク比較
1位にC#の新FW「dragon」ってのが入って話題になってた
これechoが入ってないのが気になるんだけど
流石にdjangoとかに負けると思えんし
どうなってんのこれ
2020/05/31(日) 22:39:20.95ID:8Mxh+OkW
drogonな
しかもC++じゃなね?
ttps://github.com/TechEmpower/FrameworkBenchmarks/tree/master/frameworks/C%2B%2B/drogon
2020/05/31(日) 23:27:34.17ID:MeZ7svrP
はい。諸々すみませんでした(´・ω・`)

echoはなんかあったのかな
使ってるからゴタゴタとかちょっと気になる
iris?だっけ?(うろ覚え)goは前にも消滅したFWあったし
2020/06/01(月) 00:44:15.52ID:0lojqVgc
aspnetcoreって結構速かったんだな
2020/06/01(月) 00:58:25.61ID:pVetmaYN
ginはいるね
2020/06/01(月) 01:12:53.36ID:RpkIRyj6
>>620
汎用フレームワークでここまでパフォーマンスいいのはすごいよね
2020/06/01(月) 08:54:16.54ID:glX8U9VC
MSはaspnetcoreのベンチマークにTechEmpowerを使ってることを公言してるんで眉唾
オーバーフィッティングの可能性がある
2020/06/01(月) 08:59:51.67ID:RpkIRyj6
>>623
ふーん具体的には?
2020/06/01(月) 09:09:20.85ID:glX8U9VC
具体的にも何も
MSがTechEmpowerのシナリオをaspnetcoreのベンチマークとして使っているのは事実だし、TechEmpowerに対してAzureのクレジットの提供までしてる
https://github.com/aspnet/Benchmarks
https://www.techempower.com/blog/2016/11/
癒着とかズルとかそういうことじゃなくて、ソフトウェアが特定のベンチマークのシナリオに対して過剰に最適化されるというのはよくある話でしょ
2020/06/01(月) 09:33:53.72ID:RpkIRyj6
ケチつけたい人は口だけならなんとでも言えるからね
2020/06/01(月) 09:36:11.66ID:EwlGxu65
信じる者は救われる
2020/06/01(月) 09:42:56.72ID:XQZordO8
学習に使ったのと同じ入力で評価してるわけだからまさにオーバーフィッティングだね
論理的に公平になり得ない
まあ他の上位陣も一緒なんだろうけど
2020/06/01(月) 09:51:09.76ID:uzzQenht
お気に入りのフレームワークの順位が低くて悔しい人たち
2020/06/01(月) 10:47:32.29ID:XZPQztQU
>>607 での Cython との比較でも、Go 側が「並列化してない」という批判がコメントに寄せられてるけど訂正されてないんだよな
つまり足を縛って比較して Python 負けてないよ!と主張している記事
2020/06/01(月) 10:50:08.36ID:C06u/BLG
qiitaのは、あそこのあるあるで理解しないで書いてるだけだ
意図して縛ってるんじゃなくて、わかってないだけ
2020/06/04(木) 15:37:13.98ID:Sjg+zlaz
セットアップとかPythonで書かれてたりすることが多くて、在宅学習でセミナー受講したりしはじめてる

スライスってPythonとかが由来なんだな
でもar[-1]とか、そんなの要るの?という書き方が多いな
覚えるのメンドクサ
2020/06/04(木) 15:40:02.38ID:Sjg+zlaz
>>632
正直、Go脳と罵られても仕方ないw
2020/06/07(日) 10:34:28.20ID:7hGJT77n
なぜかVScodeで保存しようとすると、go listが大暴走して動かないようになってしまった
リファクタリング中でぐちゃぐちゃな状態だから臭いけど
635デフォルトの名無しさん
垢版 |
2020/06/11(木) 06:50:08.94ID:W3hFmJjT
スクリプト言語としてのGo
https://www.infoq.com/jp/news/2020/06/go-scripting-language/?itm_source=infoq&;itm_medium=popular_widget&itm_campaign=popular_content_list&itm_content=
636デフォルトの名無しさん
垢版 |
2020/06/11(木) 09:58:07.91ID:lkbUBWj2
無駄に長いURLに意味はあるのか?
https://www.infoq.com/jp/news/2020/06/go-scripting-language/
2020/06/11(木) 16:30:03.15ID:puJvD3me
TypeScriptがあるから要らんすね
2020/06/12(金) 16:07:02.79ID:6Yfh5mGy
JavaでdirectXやるにはCじゃ無くてGoって聞いて来たんだけどホント?
何から始めたら良い?
639デフォルトの名無しさん
垢版 |
2020/06/12(金) 16:13:47.97ID:1pXOSbLZ
アホか
お前が自分で言っただけだろ

https://mevius.5ch.net/test/read.cgi/tech/1586142285/796
796 デフォルトの名無しさん sage 2020/06/12(金) 15:39:27.21ID:6Yfh5mGy(1)
証拠は俺、天下無双さん
他のスレでJavaでdirectXするにはC覚えろみたいに言われたんだけどGOやったら出来る?
2020/06/12(金) 16:20:15.28ID:6Yfh5mGy
>>639
ほかスレで案内されたから

【C++】 DirectX初心者質問スレ Part41 【C】

http://itest.5ch.net/mevius/test/read.cgi/tech/1521786252/505

0505 デフォルトの名無しさん 2020/06/12 15:46:34

続きはGoスレ
2020/06/13(土) 00:50:26.26ID:4pgJdF6v
その最後の行は
「続きはGoスレへGo!」にするべきだった
642デフォルトの名無しさん
垢版 |
2020/06/17(水) 22:30:52.85ID:86TiijZ7
Go言語のChannelはチャネル、チャンネルのどっちの読み方が正しいの?
チャネルは多いけど最新のGo言語の本ではチャンネルと書いてある
2020/06/17(水) 22:52:58.26ID:8/53+M2F
英語の音を無理やりカタカナ語で表現してるだけだから
どっちがっていうと難しくない?
一応発音的にはチャンネルよりチャネルの方が近いと思うけど
日本語的にはチャンネルという読み方の方がなじんでるし
2020/06/18(木) 08:21:30.61ID:RT744x39
正解は「チャノォー」です
2020/06/18(木) 09:30:03.51ID:VEwWQ4Xk
正解は「チャネ」です
俺にはそう聞こえるから間違いないです
2020/06/18(木) 09:43:31.78ID:jBRL/Eep
チャノ
2020/06/18(木) 09:59:21.97ID:8/3vTp6f
チャゥノゥ
2020/06/18(木) 10:53:06.36ID:fvUfFECc
英語は聞いたままをカタカナにするのが良いらしいぞ
https://ejje.weblio.jp/content/Channel

チャノゥ、と聞こえるので「チャノ」に一票だな
2020/06/19(金) 07:17:53.69ID:oFfAVAYE
cmd フォルダなのに main パッケージにしなければならないのはなんとかしてくれ
go build cmd/main.go だと動かない exe が出来るし
go run cmd/main.go だと cannot run non-main package

なんで main パッケージなんてあるんだ?
main() 関数あったらどのパッケージだろうと実行させりゃいいじゃん?
2020/06/19(金) 08:23:18.84ID:oFfAVAYE
Javaやらと同じでパッケージの仕様が練られてないんだよな
C#みたいにフォルダ?関係ないね、namespace で書けよ
だと嬉しい
2020/06/19(金) 09:59:49.78ID:cY3u7e4Z
cmdフォルダのpackage cmdを他からインポートすれば良いのでは?
2020/06/19(金) 10:18:48.69ID:oFfAVAYE
そりゃmainフォルダにすれば解決なんだけどさ

パッケージがディレクトリのパスでアクセスするimport機構なのに、mainパッケージだけ例外というのがモニョる
2020/06/19(金) 10:24:08.64ID:oFfAVAYE
単に、mainパッケージだけ例外、というのが残念だという愚痴に過ぎないよ
回避以前に、例外なんだと納得すれば問題はないもんな
2020/06/19(金) 17:37:14.13ID:Kn9/9Nuz
pythonでいう__name__ == ‘__main__’を外出しした感覚だと思う
変にCを引きずってるからおかしなことになった
ぶっちゃけかなりわかりにくいと思う
655デフォルトの名無しさん
垢版 |
2020/06/21(日) 11:24:25.44ID:vfiIwLIM
https://play.golang.org/p/Ido4pfGMpHn

if s=="a" {
return a()
} else {
return b()
}
の else 文で
if block ends with a return statement, so drop this else and outdent its block (move short variable declaration to its own line if necessary)
と go-lint が吐き出すんだけど、どう書けばいい?
2020/06/21(日) 11:26:37.35ID:vfiIwLIM
正直、こないだからgolintは腐ってない?
2020/06/21(日) 11:49:23.56ID:athxwRrE
if s=="a" {
return a()
}
return b()
2020/06/21(日) 12:04:53.11ID:vfiIwLIM
おおう、ありがとう
2020/06/21(日) 13:18:25.60ID:tbjMp+cP
それってgofmtで自動で直してくれるんじゃないの
2020/06/21(日) 13:41:52.84ID:vfiIwLIM
セーブ時のフォーマットでは直してくれてない
gofmt呼んでるのかわからない

しかし、if ブロックで return してたなら、確かに else は不要
コーディングスタイルまで口出しするとは、他の書き方許さん理念は極まってるもんだな
2020/06/21(日) 14:04:24.81ID:TjPGVxwO
Goのバージョン30ぐらいにはコードを書かなくても全部自動生成してくれるようになるよ
2020/06/21(日) 20:37:22.98ID:HI56XBlv
たのしみ
2020/06/21(日) 22:24:56.84ID:85zGBKLZ
Goがブレインハッキングすると聞いて
2020/06/21(日) 22:35:42.11ID:f5OiD0I/
go+いいやん
https://github.com/qiniu/goplus
2020/06/21(日) 22:40:20.19ID:x1/M2+NK
オーケーGo
クリーンアーキテクチャで掲示板作って

これでモダンな技術の5chが作れる時代が来ます
2020/06/22(月) 11:38:02.76ID:Cm+rhTCh
そういや、range キーワードって省略されても構文解析できそうな気がするんだけど、なんか問題あるのかな?
2020/06/22(月) 11:40:50.79ID:Cm+rhTCh
代入として見ると、一貫性が無くなるからかな?
2020/06/23(火) 00:55:56.74ID:JUPHg4sS
そうだね、一貫性が無くなるよね。バッドプラクティス度合いで言うと最悪ウンコをLv10としてLv10だな
2020/06/24(水) 21:07:48.82ID:++yRJMmE
Scalaかな?
2020/07/05(日) 17:58:02.65ID:3hRtzTvh
すんごい基礎的な疑問

go get した外部パッケージって、呼び出されないソースもコンパイルされてリンクされる?
2020/07/05(日) 18:02:06.09ID:gmGxEZ+k
いいえ
2020/07/05(日) 18:06:42.96ID:3hRtzTvh
>>670
詳しく書くと、例えば
import "github.com/hoge/pkg/util"
したら、util に涛ってる全ての滑ヨ数が、呼び出bオしなくてもリャ塔Nされたりすb驕H
(更にはmainパッケージとか別のパッケージも)
2020/07/05(日) 18:07:40.70ID:3hRtzTvh
>>671
ありがとうございます
不意に心配になってしまいました
2020/07/05(日) 20:01:56.65ID:0gld4/HX
デカいプロジェクトの時のパッケージ構成ってどうしてる?dddはなんかやり過ぎ感あるし
2020/07/08(水) 22:34:33.70ID:tDYsCvpq
気付いてなかったけど、VScodeでgo.modのrequireにカーソル合わせたら、パッケージを最新バージョンにアップデートするかが出てきた
2020/07/12(日) 08:52:10.08ID:abSV8fb7
先週、golang.jp が復活した
2020/07/18(土) 10:23:07.73ID:9EMumvg2
>>655
if e, err := hoge(); err!=nil {
return e.method()
} else {
return err
}
と書きたいのに、外に出せとか
外に出すと今度はerrが定義されてないとか言うから、errをブロック外でvar定義しなきゃならん
頭悪いよなgolint
2020/07/18(土) 11:21:37.51ID:/ePLcmBm
えーと
2020/07/18(土) 11:25:06.59ID:6UJBCs7F
>>677
話は変わるけど err!=nil は err==nil なんじゃねーの
2020/07/18(土) 11:55:59.23ID:9EMumvg2
>>679
おおっと!
2020/07/18(土) 12:18:15.74ID:sbSUEl2y
e,err :=hoge()
if err !=nil{
return err
}
return e.method()

の方が自然じゃね
2020/07/18(土) 12:23:34.88ID:sbSUEl2y
return _,err

return e.method,nil

とかになるかもしれんが
683デフォルトの名無しさん
垢版 |
2020/08/02(日) 13:07:30.10ID:scrCUlqp
Go, Kotlin Swiftの文法対応表を作って欲しいぜ
2020/08/12(水) 09:26:40.73ID:PUqooE+h
Go 1.15 is released
https://blog.golang.org/go1.15
2020/08/13(木) 18:01:27.94ID:2DHzeARd
>>684
英語だから何書いてあるかわからないよ〜(;O;)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況