Go language part 4at TECH
Go language part 4 - 暇つぶし2ch1:デフォルトの名無しさん
20/11/16 04:14:40.64 fB5+0hxC.net
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
公式
URLリンク(golang.org)<)
公式外パッケージドキュメント
URLリンク(godoc.org)<)

※前スレ
Go language part 3
スレリンク(tech板)

2:デフォルトの名無しさん
20/11/16 04:15:19.36 fB5+0hxC.net
テンプレは前スレの>>2に変えた

3:デフォルトの名無しさん
20/11/16 04:19:59.26 fB5+0hxC.net
みんな大好きGopherくん
URLリンク(blog.golang.org)

4:デフォルトの名無しさん
20/11/16 06:01:26.56 H10ZFMik.net
Gopherくんキモい

5:デフォルトの名無しさん
20/11/16 06:16:05.43 wSrfsdTD.net
【悲報】.日本人、ステマに.簡単に.洗脳される(笑).幼稚.な.多数決.カルト.信仰の.末路
(1)日本人.の.精神.を.腐敗.・.堕落させ.愚民.化.させろ
(2)日本人.の.女.を.集中的に.狙い.洗脳.しろ!
(3)ネトウヨ.、ヘイト.スピーチ.等の言葉を.浸透させ.、同胞へ.の批判.を.封じろ!
(4)「同性婚・LGBTを全面肯定しない者は差別主義者だ!」という雰囲気を作れ!
(5)中身のないアニメを流行らせ、クールジャパンをオワコン化させろ!
(6)「未だにガラケーの奴は笑い者」という雰囲気を作れ.
(7)「日本人の男VS日本人の女」の対立を煽り、分断しろ!
(8)日本人同士で�


6:、・結婚させない、子供を生ませないよう誘導しろ。 (9)日本同士で結婚していたら離婚させる方向に仕向けろ (10)海外セレブやハーフモデルをもてはやし、「日本人は劣等人種だ!」と植えつけろ。。 (11)イケメンブームを定着化させ、「男は外見が全てだ!」と洗脳しろ. - ソース - 電.通.グループ.会長.成.田.豊.は.朝鮮.半島.生まれ http://ja.wikipedia.org/wiki/成田豊



7:デフォルトの名無しさん
20/11/16 11:02:37.89 2ijHHLJY.net
Go言語がダメな理由
URLリンク(postd.cc)
6年経ちましたがよくなりましたか?

8:デフォルトの名無しさん
20/11/16 11:36:25.10 UybeAEe0.net
キミの頭よりは良くなってる

9:デフォルトの名無しさん
20/11/16 11:40:25.93 sF1WJXNT.net
Goに入ってはGoに従え

10:デフォルトの名無しさん
20/11/16 11:45:33.74 sP+ueWAj.net
Python&MSの最強タッグに勝てるとは思えん
Pythonの生みの親、グイド・ヴァンロッサム氏、「引退は退屈」とMicrosoft入り - ITmedia NEWS
URLリンク(www.itmedia.co.jp)

11:デフォルトの名無しさん
20/11/16 12:43:46.88 Rp0lnyle.net
MSがPythonに力入れる夢見てるやついまだにおるんやなw

12:デフォルトの名無しさん
20/11/16 13:31:29.66 jIfIZ9ed.net
言語には得意分野があることを理解できないニワカが大杉

13:デフォルトの名無しさん
20/11/16 14:38:16.63 oSwqK6E+.net
>>9
pythonは可読性上げるために文法強制するくせに、関数呼び出しばかりで可読性劣悪なのがちょっとなぁ。

14:デフォルトの名無しさん
20/11/16 14:55:37.57 mOY/lFMt.net
Goはその関数呼び出しを1関数あたり5行くらいに分けてダラダラと書いてるだけだろ?
その分Goは情報の密度が低くて楽に読めるから、単位時間あたりに読める行数を可読性と定義するならまあGoの可読性はPythonより高いわな

15:デフォルトの名無しさん
20/11/16 17:22:11.33 8c1QCVK8.net
ダラダラ書いてるってどういう事?

16:デフォルトの名無しさん
20/11/16 17:48:06.60 +ucL5pJy.net
>>12
なんでPythonが関数呼び出しばかりだと思ったの?
なんで関数呼び出しばかりだと可読性が低くなると思ったの?

17:デフォルトの名無しさん
20/11/16 18:14:19.92 x+MSqxF6.net
>>14
err = Hoge()
if err != nil {
 return err
}

18:デフォルトの名無しさん
20/11/16 19:09:23.02 WZgYyPqf.net
>>16
これほんと嫌い

19:デフォルトの名無しさん
20/11/16 19:21:21.05 UjHg6qpi.net
>>16
俺はこれ好き
try-catchよりシンプルで読みやすい

20:デフォルトの名無しさん
20/11/16 19:25:59.64 qg+eeyPj.net
これが読みやすいとか、たぶん1000行程度のプログラムしか書いたことないんだろうな

21:デフォルトの名無しさん
20/11/16 19:30:18.80 2F7AgOwR.net
>>19
ごめん
俺土方じゃないからコード書かないんだ

22:デフォルトの名無しさん
20/11/16 20:03:06.45 zXKn/1df.net
goって、
err = Hoge()
if err {
 return err
}
とは書けないんだっけ?

23:デフォルトの名無しさん
20/11/16 20:19:58.38 UybeAEe0.net
Hoge() の戻り値が boolean じゃないとね

24:デフォルトの名無しさん
20/11/16 20:37:39.21 +ucL5pJy.net
頻繁に出てくる定型コードなんだから言語側は糖衣構文実装しろよ

25:デフォルトの名無しさん
20/11/16 20:40:52.00 i/HDczYO.net
err = Hoge() && return err
俺ならこうする

26:デフォルトの名無しさん
20/11/16 20:57:25.55 4F0bxqx0.net
クソダサい

27:デフォルトの名無しさん
20/11/16 21:00:18.04 5OAOeu6r.net
Rust見倣って
result := Hoge()?
にしとけ

28:デフォルトの名無しさん
20/11/16 21:06:21.03 jIfIZ9ed.net
すまん
if err = Hoge(); err != nil {
 return err
}
以外の書き方したことないわ

29:デフォルトの名無しさん
20/11/16 21:07:03.57 jIfIZ9ed.net
あ、:= に直すの忘れてた

30:デフォルトの名無しさん
20/11/16 21:09:26.85 2ijHHLJY.net
=とか:=とかめんどくせえな

31:デフォルトの名無しさん
20/11/16 21:14:24.95 J0Iniu1t.net
>>27
エラー以外の戻り値のある関数使ったことないの?

32:デフォルトの名無しさん
20/11/16 21:30:40.87 dv0RbCZr.net
Go2の改善は今のところ↓コレが有力なの?
URLリンク(go.googlesource.com)

33:デフォルトの名無しさん
20/11/16 21:37:12.31 UybeAEe0.net
Proposal: A built-in Go error check function, "try" · Issue #32437
URLリンク(github.com)
This proposal has been closed. Thanks, everybody, for your input.

34:デフォルトの名無しさん
20/11/16 22:38:27.44 inzbcPAL.net
>>30
な? これで良いとかおもってるやつなんて
ロクにちゃんとしたコード書いたことすらないのがバレバレ
しょぼいサンプルコードぐらいしか書いたことないんだろう

35:デフォルトの名無しさん
20/11/16 22:46:50.52 dv0RbCZr.net
>>32
で?結局Go2ではどうなるの?

36:デフォルトの名無しさん
20/11/16 23:28:44.33 UybeAEe0.net
>>34
reject されたからどうにもならない

37:デフォルトの名無しさん
20/11/16 23:44:21.27 dv0RbCZr.net
えっ、なんの改善もされないの?
だとするといろんな意味できついね

38:デフォルトの名無しさん
20/11/16 23:48:13.75 DSjP5PPU.net
昔go使ってスレッド同期系の不具合を調査しようとしたが、ログを入れてもスレッドid的なものが一切取得する手段が無くて驚愕した。
そこでmutexをAPI入り口に入れて回避しようとしたが再帰mutexが無くて断念した。
調べたら再帰mutexは使うべきじゃ無いから提供しないらしい。ならば作ろうとしたらスレッドid的な識別子が無いから作れない。
昔のgoは識別子を取れたため再帰mutexライブラリが落ちてたがそれも使えなくなってた。
なんだろうこのクソ言語って思った。

39:デフォルトの名無しさん
20/11/17 00:02:26.25 c7e0OkRz.net
RustはともかくNimとかいう馬の骨にまでコケにされてとてもつらい。
Let's encryptのバグはRustで実装していたら防げたの?
URLリンク(qiita.com)
Let's encryptのバグはNimで実装していたら防げたの?
URLリンク(qiita.com)

40:デフォルトの名無しさん
20/11/17 00:13:23.50 c7e0OkRz.net
Discordに逃げられてつらい…
実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは
URLリンク(www.atmarkit.co.jp)

41:デフォルトの名無しさん
20/11/17 00:59:11.79 1L4goDpB.net
>>16
わかりやすくていいじゃん。
このパターンなら、return Hoge()できないか考えるけど。
>>19
1ファイル1000行は異常だと思うぞ。
>>30
複数の戻り値あるときでも、>>27の書き方はできるぞ。

42:デフォルトの名無しさん
20/11/17 01:00:02.16 1L4goDpB.net
>>33
お前もないんだろ…

43:デフォルトの名無しさん
20/11/17 11:54:27.21 m07xvYc5.net
>>30
その一言で馬脚を現すとはなんという出オチ感
ディスるなら言語仕様くらい勉強して出直してこい
具体的にはGoではタプルで戻り値を返してくるのが一般的
一個の戻り値なんて、普通に使っている人間からしたら特殊な使い方だよ
つまり、使ったことが無い素人さんだね貴方

44:デフォルトの名無しさん
20/11/17 13:20:20.82 H0+H5RuJ.net
全部Gopherくんがキモいのが悪いわ

45:デフォルトの名無しさん
20/11/17 14:21:13.31 m07xvYc5.net
年寄りはオライリー表紙で慣れてるから平気

46:デフォルトの名無しさん
20/11/17 15:14:43.85 TJ9hBTBs.net
>>42
さすがにGoスレで多値返却知らないやつはいないてw
可読性の観点で同じパターンと認識してるのかどうかの違い
ちなみにタプルではないよ

47:デフォルトの名無しさん
20/11/17 15:31:54.39 m07xvYc5.net
>>45
型としてのタプルではないから確かに無いといえば無いね
順序を持って並んだ変数の組、という物は構文としてタプルと表現すべきかと思ったので
タプル型って特に使い道思い付かないし要らんよな?
とか思ってたらissuesの#41148でタプルをチャネルで送りたいとかあったわ
なるほど

48:デフォルトの名無しさん
20/11/17 19:53:06.72 OUvi357j.net
>>35, >>37
これマジ?
GolangやめてRustやります

49:デフォルトの名無しさん
20/11/18 03:18:00.14 8xI/s5G3.net
Rustなんて数年経ったらScalaと同じでただの負債になるだけなのによくやる気になるな
個人で趣味程度にやるなら良いと思うけど

50:デフォルトの名無しさん
20/11/18 03:46:26.68 uoM+CD8t.net
RustはMSが正式採用してから始める、で遅くないと思う

51:デフォルトの名無しさん
20/11/18 08:34:38.41 pNzxwTD4.net
RustはOS寄りな案件に突き進むんじゃないか?
シェルじゃなくカーネル
>>39にあるようにGC不要であるという強みはドライバ記述に最適ということを意味するから

52:デフォルトの名無しさん
20/11/18 10:09:02.25 hkPPdx4I.net
負債になるのはGoだろワロタwwww

53:デフォルトの名無しさん
20/11/18 10:16:42.11 mXWQ9M3+.net
Rustは人類が使いこなすには150年くらい早い

54:デフォルトの名無しさん
20/11/18 11:15:56.54 ynuaTlxN.net
小学生レベルでも読み書きできるGoは負債になりにくいだろ
Rust使ってるやつは奴隷身分の癖にアーティストぶって負債を生むウンコマン

55:デフォルトの名無しさん
20/11/18 12:39:37.96 hzlSiPtI.net
Goはあまり変なフレームワーク使ったりしなくて標準ライブラリが基本なので、その意味では負債化する要因が少ない
廃れるのは言語よりも先にフレームワークだからね

56:デフォルトの名無しさん
20/11/18 15:19:46.84 hkPPdx4I.net
Rubyは廃れたけど
Railsが元気なお陰でバッテリーとして生かされてるじゃん

57:デフォルトの名無しさん
20/11/18 17:00:36.82 tJL+sE6k.net
いいかわるいかは別にして >>53 は真理
たとえば Lua なんて糞言語もいいとこだがいまだに
ゲーム組み込みスクリプトとしてちょこちょこ使ってるケースがある

58:デフォルトの名無しさん
20/11/18 17:31:04.33 vHQTDRO5.net
COBOLが負債化した原因は小学生レベルじゃ読み書きできないからなのか?

59:デフォルトの名無しさん
20/11/18 19:44:02.33 /Jz+NzoF.net
go2でジェネリクス入ったら今のコードは負債になりそうだけどな

60:デフォルトの名無しさん
20/11/18 20:00:40.72 ngyywPmD.net
お前ら負債負債って言ってるけど、そもそも「負債」の定義は?

61:デフォルトの名無しさん
20/11/18 20:07:05.16 /U1Y9I1j.net
その言語のコード資産の価値を(最新の言語だったら発生しないはずの無駄な)維持費が上回り始めた状態だろうな

62:デフォルトの名無しさん
20/11/18 21:12:40.25 pNzxwTD4.net
負債ってヨタ話なんて信用なんねー
損益分岐点越えたら切り替えるのが当然
「政治」的な問題だよくだらない

63:デフォルトの名無しさん
20/11/18 22:27:03.20 vHQTDRO5.net
先週はイテレータ知らんやつばっかりで
今週は技術的負債知らんやつばっかりなの?
既存システムへの機能の追加変更時に
クリーンなシステムであれば必要ないであろう作業が
著しく多く必要になるものを負債と呼んでる
相対的なものだから単一指標で数値化することはできないんだけど
「あのシステムの修正は面倒だからやりたくない」と感じる度合いと正の相関がある

64:デフォルトの名無しさん
20/11/18 23:28:09.15 pNzxwTD4.net
>>62
それが「政治」的問題
技術的な問題じゃないね

65:デフォルトの名無しさん
20/11/19 08:13:34.58 r3/rn3nu.net
wikipediaくらい見ようぜ。
Technical debt (also known as design debt[1] or code debt, but can be also related to other technical endeavors) is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer.[2]

66:デフォルトの名無しさん
20/11/19 11:43:00.50 HmqfGRuh.net
だから技術的な問題じゃないと再度主張
一般的なプロジェクトマネジメントとかのスレに行け

67:デフォルトの名無しさん
20/11/19 15:50:31.22 FmUN+YYe.net
>>65
君が技術的な問題じゃないと思うのは自由だけど自分勝手な定義を人に押し付けるのは止めようや

68:デフォルトの名無しさん
20/11/19 17:43:38.54 HmqfGRuh.net
>>66
こっちこそお返しするよ

69:デフォルトの名無しさん
20/11/19 18:21:20.90 t4OE0bZ/.net
技術選択や設計選択の問題は多分に組織的要素や人的要素を含むものなのにね
その辺りの要素を考慮しなくていいのは末端の作業員だけ

70:デフォルトの名無しさん
20/11/19 19:24:28.21 HmqfGRuh.net
ここが何のスレだか言ってみろ
プロジェクトマネジメントのスレに行けと

71:デフォルトの名無しさん
20/11/19 19:57:06.69 30asaVkd.net
技術的負債をどう返済するかがプロジェクトマネジメントやろ
元々は「Goは他言語と比べてどれだけ負債化しにくいか」という話じゃなかったか?
技術的負債の発生要因はプログラミング言語のバージョンアップ以外にも色々あるけど

72:デフォルトの名無しさん
20/11/19 20:59:58.99 DgF0DEOT.net
プロジェクトマネジメントじゃなくてエンジニアリングマネジメントだろ
自社サービスだと、こういうのを技術的な問題と思ってない奴はまずいない

73:デフォルトの名無しさん
20/11/19 21:34:12.71 aa9bIrjJ.net
おまいらってほんとマネジメントとかそういうの好きだよな

74:デフォルトの名無しさん
20/11/19 22:14:44.29 UQ7DwHyP.net
>>68
末端の作業員にも使われる言語になったということ
日本でも労働者言語としての地位が定着してきたのかな

75:デフォルトの名無しさん
20/11/20 00:57:26.75 6TMCzLQ7.net
で、実際にメインの仕事で使ってるんだろうな?

76:デフォルトの名無しさん
20/11/20 01:38:39.30 kwwa9bjA.net
>>72
単にGoについて話すことがないだけなんだが…

77:デフォルトの名無しさん
20/11/20 02:38:09.83 YhokOqrJ.net
間違った英語で日本人として恥ずかしい…
go getじゃなくてgo to getだろ…

78:デフォルトの名無しさん
20/11/20 09:09:20.30 GA99wsWD.net
>>72
上流工程(キリッ

79:デフォルトの名無しさん
20/11/20 12:49:28.87 27JFXKUI.net
>>71
これは激しく同意する
上流/下流とか関係ない

80:デフォルトの名無しさん
20/11/21 11:02:08.02 7G4VCfLW.net
>>54
Goが負債化する要因は、コードがコピペだらけになって膨らむことだよ。
Goはコードを絞る手段を提供していない。だから俺はGoを使わないことにした。
長期的にメンテナンスする場合にコストが跳ね上がる。
これが顕在化するのはこれからだね。
逆に、動けばいい使い捨て用途の高速版Pythonと見るなら、全く問題ない。
だから完全に廃れるって事もない気もするが、大規模開発向けのメインストリーム言語として使われることもないね。
今もシェアなんて君らが馬鹿にしているRubyと比べてもゴミ以下でしょ。
自分が使っている言語が廃れるのが嫌なだけなら、今一番無難なのはC#だよ。
勿論Goより仕様が大きいから全部勉強するつもりなら時間がかかるけど、
Goが持っている機能だけ使うつもりならGoの修得と手間はほぼ同じ筈だが。

81:デフォルトの名無しさん
20/11/21 11:20:43.86 W0C1PBHz.net
自社サービス系に関して言うと、C#はエンジニアがWin系の人間に限られてしまうために採用活動で苦労することになり、追加の人的コストが発生する
その意味では負債だ
C#は変わりつつあるとはいえ有名なSaaSとかでも開発環境はやっぱりWindowsとVSとIISだったりするので、Web畑のエンジニアには敬遠される
これ実話な

82:デフォルトの名無しさん
20/11/21 12:12:26.36 cuTXIdQY.net
C#ね……w
どういうところで働いてる人がGoを批判してるのかがよくわかったよ

83:デフォルトの名無しさん
20/11/21 13:07:07.90 jkMYYUpW.net
新形のmacでHello Worldできたよ

84:デフォルトの名無しさん
20/11/21 14:25:13.11 7G4VCfLW.net
>>80
俺が言ってるのは純粋に言語についてだ。
ただ現実的に採用で困る、というのは大きな意味があるが、
それ言ったらGoもWebエンジニアにとってはGoは新規に学ばなければならない言語であって、
PHP/JSと比べたらGoなんて話にならんだろ。
Go選ぶ時点で間違いだよ。
あと、Goにもある機能の範囲だけC#を学ぶだけなら労力は同じだよ。
ただしPHP/JSのエンジニアの方がネットワーク周りの「知識」があるから促成はできるが、
「プログラミング」は技能に近く、一朝一夕には上達しない。
だから、「正しくプログラミング出来るGo技術者」を育成するとして、
PHP/JS等Web周りの知識がある奴にプログラミングを教えるのと、
C#/Java/C++等プログラミング出来てる奴にWeb周りの知識を教えるのとでは、
一通り座学してあとはググりながらやれ、で済む後者の方が断然簡単だ。
ただしWeb系の場合はプログラミングが大して難しくない範囲で収まるから、
PHP/JSからの促成組で何とかなるもの事実だとは思うが。
ぶっちゃけ、他言語は多機能すぎて、そこまで必要ないからこそ、簡素版のGoが使われる余地があるわけでさ。
そしてまあ、C#がWindows/VS/IISなのは多分事実だろう。
それでWeb系はLinux/VSCode/Apache/Nginxで、それ以外は絶対に嫌なのか?
ならEmacs/Vimと同じで永久に交わることはないだろうね。

85:デフォルトの名無しさん
20/11/21 14:29:31.55 r9GjlBBW.net
また発作が始まったか

86:デフォルトの名無しさん
20/11/21 15:40:45.57 gJix52fj.net
>>79
コピペだらけになるって、それはその程度のスキルだからじゃないか?

87:デフォルトの名無しさん
20/11/21 15:41:39.64 gJix52fj.net
>>83
論点がブレてるんだけど。
もう少しまとめて話せよ。
雑談はネグれ。

88:デフォルトの名無しさん
20/11/21 18:07:10.42 N6OL6Sv5.net
Gopherは他の言語やったことないから自分の使ってるGoが一番だと思ってるんだよ
つまりGopherには何をいっても馬の耳に念仏だよ

89:デフォルトの名無しさん
20/11/21 18:23:49.86 U5RwLwtV.net
C#バランスいいよね
Windows/IIS縛りがネックだったけどそれがなくなったから徐々にシェア広げていくと思う

90:デフォルトの名無しさん
20/11/21 18:47:30.43 zNfRz+cU.net
Safari, the new IE
Gopher, the new Rubyist

91:デフォルトの名無しさん
20/11/21 18:49:07.04 zNfRz+cU.net
C# Gaiji, the new Ruby Gaiji

92:デフォルトの名無しさん
20/11/21 19:01:54.31 7G4VCfLW.net
>>87
ただそれは最近はどの言語スレもだよ。勿論C#スレでも。
それを俺は信者化と言っている。
当たり前だけど、どの言語にもそれなりに糞な点はある。
もしそれが無く、他と比べて圧倒的に素晴らしければ、簡単に覇権を取ってる。
それは1993頃のC/C++であり、Cで72%、C++で20%だからC/C++で92%だ。
(その頃のC++なんて今のC++から見れば「それはCだよ」と言われる程度でしかない)
URLリンク(www.youtube.com)
今はシェア25%弱の言語が3つ並んでいる状況なのだから、言ってしまえば「どれも大して変わらない」んだよ。
だから他言語に糞な点があれば、同程度には自分のお気に入り言語にも糞な点があるに決まってる。
この単純な論理を認められないのは、信者だからだよ。
ただこれは既に言ったとおり、Goスレだけの話ではなく、C#も他も同じ感じだけど。

93:デフォルトの名無しさん
20/11/21 20:04:41.58 Lvew8AXV.net
どんなにここでC#の良さをアピールしても現実世界じゃ古臭い会社やUnityでしか使われないゴミ言語なんだよ…
今後Goみたいに流行るといいね…

94:デフォルトの名無しさん
20/11/21 20:18:13.34 NFh21L0W.net
Javaよりはいい言語なんだけどねぇ
でもJavaと同じ戦場だから……
GoやRustは狙ったのか利用シーンがズレてるんで居場所がある

95:デフォルトの名無しさん
20/11/21 20:26:30.28 uuh/pdI7.net
それだけcppが好きならずっとcpp使ってろよ。
グリーンスレッドも知らなかった分際で。

96:デフォルトの名無しさん
20/11/21 20:29:37.15 7G4VCfLW.net
>>92
それが信者の観点だよ。
C#の方がGoよりは1000倍以上流行ってる。
それはシェアからもエコシステムからも明らかだ。
もっともお前らはJavaも流行ってないと言い切るくらい信者なのだとは思うが。
Goはそもそも流行る要因がない。他言語を使える奴が、わざわざGoを使う理由がないから。
だから今後とも今までどおり低空飛行だよ。
新規流入は初心者だけで、エコシステムも今までどおり回りもしないまま。
Rustはその点、明らかにピーキーで、Rustじゃないと駄目な理由が明確にある。
だからわざわざ使う理由にもなるし、今後はしばらくは確実にシェアは増えると思うよ。
ただどこまで行くかは謎だ。FFは死んでしまったし。あれRustのせいだと言っている奴がいるけど、俺もそう思うし。

97:デフォルトの名無しさん
20/11/21 20:56:03.41 r9GjlBBW.net
>>95
アンタは C# の信者だなw

98:デフォルトの名無しさん
20/11/21 21:05:41.22 7G4VCfLW.net
>>96
どこがだよ。そもそも俺はC#は使ってないし。
>>91の動画見てみろよ。Goなんて一度も出てこない。
Rubyは最後落ちるが健闘した方だ。少なくともGopherに馬鹿にされる理由はどこにもない。
サーバーシェアでもGoなんてゴミ以下だろ。
CやLispをサーバーに使ってるなんて聞いたこと無いが、Goはそれ以下だぞ。
URLリンク(w3techs.com)

99:デフォルトの名無しさん
20/11/21 21:09:38.97 ymMOmJrr.net
GoはMicroserviseとCLIが主戦場
JVMやCLRに依存したくなくて軽量でサクサクコンパイルしたいユーザー層向け
ただGo2が残念な結果になりそうなのとUSで下火になってきてるのを見ると先は明るくない

100:デフォルトの名無しさん
20/11/21 21:11:54.51 ymMOmJrr.net
>>97
フロントエンドとしては使われないからそこには数字出てこないでしょ

101:デフォルトの名無しさん
20/11/21 21:11:58.30 r9GjlBBW.net
使ってもいないのに1000倍以上流行ってるってよく分かるなぁ〜スゴイスゴイ

102:デフォルトの名無しさん
20/11/21 21:23:42.90 uuh/pdI7.net
他言語も使うしC#も結構書くけど、Go書くことも多いぞ。
何一つ処理系もランタイムもインストールする必要ないから、展開めっちゃ楽だし。1ファイルだし。
デカイって言っても.net coreのscdほどデカくもないし。
というかGoのエコシステムって結構しっかりしてると思うけど。
awesome goとawesome dotnet見比べてがっかりしなければ良いけど。

103:デフォルトの名無しさん
20/11/21 21:24:09.33 7G4VCfLW.net
>>99
いやそれはバックエンド限定の話だぞ。
なおフロントエンドなんて言うまでもなくJSの一強だ。その下をつつけば出てくるが、以下。
URLリンク(w3techs.com)
前も思ったが、お前ら違う世界に生きてるよな。

104:デフォルトの名無しさん
20/11/21 21:29:36.25 r9GjlBBW.net
この辺りを読んでおけばいいんじゃない
Go Case Studies URLリンク(go.dev)
Go Use cases URLリンク(go.dev)

105:デフォルトの名無しさん
20/11/21 21:36:38.77 7G4VCfLW.net
>>103
それはおまえらみたいな初心者は騙されるのかもしれんが、逆なんだよ。
シェアが低いからこそ受注案件を宣伝する必要があるし、
それをやっている時点でまだ数えられるほどしかない、ということなんだよ。
実際、PHPでそんなのやってないだろ。多すぎて無理だし。

106:デフォルトの名無しさん
20/11/21 21:42:04.93 r9GjlBBW.net
中身1文字も読んでないだろw

107:デフォルトの名無しさん
20/11/21 22:03:31.19 uSTcEold.net
>>102
フロントエンドはフロントエンドサーバーのことだよw
クライアントサイドがJSなのは当たり前
こんな話が通じないとは確かに違う世界に生きてるな

108:デフォルトの名無しさん
20/11/21 22:07:14.19 YDtC2x5c.net
ことば遊びしはじめたwww
フロントエンド←→バックエンド
クライアントサイド←→サーバーサイド
はい、では「フロントエンドサーバー」の定義からどうぞ~😆👍➰

109:デフォルトの名無しさん
20/11/21 22:39:09.79 N6OL6Sv5.net
>>95
FFって何?w

110:デフォルトの名無しさん
20/11/21 22:44:11.34 mMQUj5g8.net
>>107
冗談抜きで知らないんだね
フロントエンドってのはアプリのプレゼテーションレイヤーのこと
プレゼンテーションレイヤーを管理するサーバーがフロントエンドサーバー
Webアプリなら基本的にWebのUIを返すサーバー
クライアントサイドとの違いが理解できたかな?

111:デフォルトの名無しさん
20/11/21 22:53:03.99 YDtC2x5c.net
>>109
そういうのは99.99%の人はBFFと言う。
BFFのfor Front-end、これなんのことか分かる?w
クライアントサイド、ブラウザで動くJSのことだよバーカwww
あのさあ、フロントエンド、なんて一般的な英単語なんだから分野によって指すものが違うのは当たり前なわけよw
例えばコンパイラ構成にもフロントエンド/バックエンドって用語は使われるわけ。
コンパイラ構成の文脈で「バックエンド?ああサーバーのことね!」なんて文脈無視した理解する馬鹿はいないわけ。普通。
ところがここにいたわけ。それがお前wwwww
Webの分野ではフロントエンドはクライアントサイドのことなんだよバーーカwwwww
さすがに腹痛ぇわwwwwwwww

112:デフォルトの名無しさん
20/11/21 23:03:16.63 zNfRz+cU.net
BFFで通ってるものを「フロントエンドサーバー」とか言っちゃってたわけ?
オレオレ用語にしてもセンスなさすぎィ…
今IT用語辞典でBFF必死に調べてそうw
恥ずかしいオレオレ用語晒す前にもちょっとは調べりゃよかったのにw

113:デフォルトの名無しさん
20/11/22 00:30:47.49 fxOCHIgd.net
>>110
残念だけどBFFの解釈も間違えてるよ
Webアプリの開発やったことないんだろうけどさすがに少しは勉強したほうがいい

114:デフォルトの名無しさん
20/11/22 00:57:12.00 XUuDe+rV.net
BFFはAPIをホストするところであってUIをホストするところじゃない
クラシックな3階層に当てはめるとアプリケーションサーバーの一部

115:デフォルトの名無しさん
20/11/22 01:09:14.57 ujQ9d+0r.net
ふ、フロントエンドサーバーwww
それバックエンドにあるわけ?w

116:デフォルトの名無しさん
20/11/22 02:14:58.26 x3iNgzKv.net
フロントエンドサーバーっての俺も初めて聞いた。
こうやってオレオレ用語ができていくのか。

117:デフォルトの名無しさん
20/11/22 20:37:18.20 Gg4y3mjc.net
俺はフロントエンドサーバ使ってるけどな
ページにリクエストが来たときフロントエンドサーバでJavaScriptを1から生成してブラウザに返してる
ITの世界でも鮮度は大事だからなるべく出来たてのスクリプトを提供したいんだよね
思いやりの気持ちを持たない現代のガキに足りない精神を維持するためにもフロントエンドサーバは大事だよ

118:デフォルトの名無しさん
20/11/22 20:57:45.11 PbD2huCE.net
その「ページにリクエストを送っているもの」がフロントエンドなんじゃないかなぁ

119:デフォルトの名無しさん
20/11/22 21:01:28.91 Q6nSdh4a.net
>>116
わかる
自分も思いやりの精神を忘れないために画像は全部リクエストが来る度に作ってる
1日10件ぐらいしか対応できないけどリクエストが来たらPhotoShopをすぐに開いて画像を作ってフロントエンドサーバに格納してる
職人の心を忘れちゃダメだよね

120:デフォルトの名無しさん
20/11/23 00:51:47.46 nsFhHMUZ.net
メルカリの人のプレゼンとか見てみなよ
フロントエンドをどういう意味で使ってるか分かるから
URLリンク(youtu.be)

121:デフォルトの名無しさん
20/11/23 11:58:12.66 I/OioR1r.net
イテレータ、技術的負債、フロントエンド/バックエンド
お前ら一般常識知らなすぎ

122:デフォルトの名無しさん
20/11/28 16:04:02.74 QqsJcBJb.net
>>119
バックエンドフォーフロントエンドとか
こんがらかってきてファックって言いかけてるw

123:デフォルトの名無しさん
20/11/28 17:06:17.86 VjX5tYGz.net
>>121
1週間前の無知な自分に気付けて良かったじゃない
Fuck my ignorance! Grazie mille, 5ch amici!!

124:デフォルトの名無しさん
20/11/28 17:27:49.95 P/o6eg3s.net
無知な私め!どうもありがとう、5chの友よ!!
かな?
amiciはイタリア語っぽい
友達の男性複数形かな


125: Grazie milleは何語だろう? 千のありがとう→Thanks a lotみたいな意味だと思うけど…



126:デフォルトの名無しさん
20/11/28 19:40:17.08 /wKXXO7j.net
dataA, err := getDataA()
if err != nil {~
dataB, err := getDataB()
if err != nil {~
ってやりたいんだけど
Bの方のerrが二重定義だから怒られる

var dataB []DataB
dataB, err := getDataB()
if err != nil {~
ってやると、VSCodeに「dataB []DataB declared but not used」って怒られる

こういう場合ってどうするのがセオリー?

127:デフォルトの名無しさん
20/11/28 20:39:03.39 NVwbGZ0v.net
>>124
前半は、そんなエラーにはならない
URLリンク(play.golang.org)
後半はdataBを使用する部分を書いていないだけ

128:デフォルトの名無しさん
20/11/28 20:41:31.11 NVwbGZ0v.net
>>124
よく見ると、後半は二重定義になるから未使用警告にはならない
見直すこと

129:デフォルトの名無しさん
20/11/28 20:45:20.86 /wKXXO7j.net
>>125
大変失礼しました…
仰るとおり、dataB使う処理書いてないで怒られてるだけでした

130:デフォルトの名無しさん
20/11/29 22:16:54.79 QBDMVTbr.net
ここでバイク乗りがこそっとフォークエンドも混ぜておきますね

131:デフォルトの名無しさん
20/12/01 03:32:25.87 kDI+DBO4.net
めちゃくちゃ腹立わ
Go推すまで密林不買だな
AWS、プログラミング言語「Rust」を重視する理由示す--エンジニア採用中 - ZDNet Japan
URLリンク(japan.zdnet.com)

132:デフォルトの名無しさん
20/12/01 06:13:35.60 XaRGN9iL.net
GoとRustは利用分野が違うから関係ないよ

133:デフォルトの名無しさん
20/12/01 19:16:04.40 ti2Ftdsd.net
>>130
どっちも高級C言語という立ち位置だと思ったが違うのか

134:デフォルトの名無しさん
20/12/01 19:42:27.34 i0yB1bMz.net
>>131
RustはモダンC
Goにその役割は無理
別に悪いことでもないと思うが
「なんでもGoでできる!Goサイキョ!!」
とか言ってたらRubyみたいに鼻摘み者になるので注意

135:デフォルトの名無しさん
20/12/01 20:16:43.83 XaRGN9iL.net
>>131
関数呼び出し機構が違うため、Goにはドライバなど低レベル処理が書けない
その代わりにGoは超軽量なgoroutineと可変なスタックを手に入れた
これによりWebAPIなどサーバプログラムで数百万の同時接続でもヘタレない性能を叩き出す
プログラム内プロセスと言えるスレッドに並列処理を頼る他の言語ではメモリ消費の問題で、この性能を求めるのは非現実的
コンテキストもデカけりゃスタックもデカいため

136:デフォルトの名無しさん
20/12/01 20:34:12.24 XaRGN9iL.net
>>131
前にGoからRustにシステムリプレースした会社の話があったが、これはまた話が違う
GoはJavaなどと同じくガベージコレクト(GC)機構を持ってる
時々発生するGCの時にはms単位で他の処理が遅延する



137:アの遅れを嫌ったためGCを使わないRustで処理時間の安定を計ったため RustではGCではなく所有権という特殊な考え方でメモリを管理している



138:デフォルトの名無しさん
20/12/06 23:01:31.14 AwVmewJw.net
>>131
Goはそういう低レイヤーなことは危険だから使えないようにしますって感じの言語

139:デフォルトの名無しさん
20/12/06 23:39:26.16 5daNiVgY.net
ごー言語勉強しようと思うんですがフルスタックだとどのフレームワークがメジャーですか?

140:デフォルトの名無しさん
20/12/07 00:39:23.46 YZYC0EGy.net
俺はecho使ったけど、特にバニラでも問題はない感じ
パラメータの解析とかCORS実装とかで多少は便利になる
テンプレートはこれどこか改善されてる?

141:デフォルトの名無しさん
20/12/07 02:15:31.25 4YXFG9nR.net
>>136
フルスタックなフレームワークを使うこと自体がGoではメジャーではない

142:デフォルトの名無しさん
20/12/07 04:04:40.95 AM6MusHZ.net
>>136
答えとしてはGinかRevelと思うけど
実態は>>138の通り

143:デフォルトの名無しさん
20/12/08 04:39:06.45 VDGXYHkl.net
趣味でプログラミングしてるんだけど今はPythonとc++/C#あたりを触ってる
goも勉強したらPythonの代わりとして使えるのかな?
それとも趣味レベルなら覚えるだけ無駄?

144:デフォルトの名無しさん
20/12/08 07:51:23.78 xomfKp6r.net
>>140
趣味レベルならばオススメできない
Pythonは拡張に拡張を重ねた巨大な仕様で一つのやりたいことに色々な書き方ができるので、初心者でも自由に書ける言語
専業プログラマーでない研究者でも楽に望むままのプログラムを書けるため、利用者が桁違いで膨大なライブラリが日々作られ続けてる

Goは不自由な仕様のかわりに大量の非同期処理などを高速に処理できる
これは使いどころが限られるし、利用者も限られる
ただし使いどころでは驚異的な性能を誇ることが存在意義

145:デフォルトの名無しさん
20/12/08 10:33:58.70 p9ADjhn4.net
ginでオレオレwebアプリを勉強がてら作ってるのだけどtemplateベタ書きなmvcっぽいので参考サイトやリポジトリないですか?
日本語だとjson返すAPIばかりなので英語でもいいので

146:デフォルトの名無しさん
20/12/08 11:22:36.96 xomfKp6r.net
JSON返すWebAPIが大の得意だからwebページの用途に関してはブログを書く気がないんじゃないかな?
webページでは画面遷移は控えめにシングルページ主体で、JavaScriptによってセッションキー付けてWebAPI叩けば用は足りるだろうという推測
これは一般的に聞いた話ではなく、自分がstrutsページ遷移とかでセッションのデータを管理するのが大変なんで、なるべく使いたくないなーと思ってるための希望的妄想なのですまない

147:デフォルトの名無しさん
20/12/08 12:18:51.20 WJUcdgJr.net
>>140
趣味でやるならLISP forth Nimあたりのマクロの強い言語のほうが面白いよ。
飯の種としてはおすすめしないけど。

148:デフォルトの名無しさん
20/12/09 01:20:46.40 WuZTb4kZ.net
ふざけたもん勧めんじゃねえぞゴルァ!!

149:デフォルトの名無しさん
20/12/09 02:36:15.78 1fNUcYVK.net
自鯖で静的なHTML(貧弱なレンタル鯖用のサイト)を生成するスクリプトを走らせてたんだけど
それをGoogle compute engineの無料枠に移行しようと環境構築してたら
cpanm(perlのモジュール管理ツール)のDBIのインストールのテストで、メモリエラーでコケた
goは余計なリソース一切なく単体で動く


150:という点で、弱小サーバをどう使うかという観点でも有望な気がする



151:デフォルトの名無しさん
20/12/09 08:42:06.56 wV8nhMqi.net
>>146
ちゃんと読んでないけどHugo使えば?

152:デフォルトの名無しさん
20/12/09 22:44:22.66 1fNUcYVK.net
>>147
こんなのあったのね…
もうオレオレでデータ入力用の管理サイトと、
構造化してリンクとか全部付与してサイト生成する部分まで作っちゃってる(´・ω・`)
まあ言いたかったのは少なくともPerl(+cpanm)よりも貧弱な環境で動きそうということ

153:デフォルトの名無しさん
20/12/09 22:59:09.61 hK6AFgql.net
>>12,>>145
関数呼び出しを気にするならマクロのある言語使え
というわけで、lispよりも強力なマクロのあるJuliaを使おう

154:デフォルトの名無しさん
20/12/09 23:40:59.80 jODQKuwy.net
> lispよりも強力なマクロのあるJulia
これ本当?

155:デフォルトの名無しさん
20/12/10 07:24:30.41 0VEO1tgk.net
最強のマクロったら gcc の inline ではないだろうか?

156:デフォルトの名無しさん
20/12/10 19:39:54.81 fydmziEi.net
>>150
「JuliaとLispのマクロの比較」っていうタイトルのブログを読んでそう思った。
リンク貼りたかったけど、はてなブログのリンクはNGワードっぽいから自分でググってくれ

157:デフォルトの名無しさん
20/12/10 20:30:53.92 nolBjcag.net
マクロでlispに勝てる言語ってほとんどlispじゃね?

158:デフォルトの名無しさん
20/12/10 20:45:08.50 TmcetjS0.net
強力という言葉の意味次第だろう
そのブログにも書いてあるけど、
何でも出来るという意味ならlispの方に歩がある

159:デフォルトの名無しさん
20/12/10 20:45:22.05 fydmziEi.net
最強のマクロがある言語はどれなのか
C言語とLisp, Julia, Nim, Rustの5言語に精通してる人なら答えられるかもしれない……

160:デフォルトの名無しさん
20/12/10 20:51:55.95 nolBjcag.net
juliaのマクロはschemeの健全マクロみたいなもんなのかな?そうなら健全なマクロでも変数補足しちゃうはずだよ。マクロに関してはastベタ書きするLISP族が一番適してるとおもうけどな

161:デフォルトの名無しさん
20/12/10 21:16:06.92 YXjbRyJb.net
デフォルトで変数捕捉しません。
させたいときはエスケープする。

162:デフォルトの名無しさん
20/12/11 02:56:17.53 /jUQlBbU.net
そんなにマクロつかいたきゃ
ビルドの途中でC/C++のプリプロセッサを間にかませや

163:デフォルトの名無しさん
20/12/11 03:07:10.50 RI9UvvOD.net
そんなオモチャみたいなマクロの話じゃないから黙ってろ
真のマクロの話をしてるんだ

164:デフォルトの名無しさん
20/12/11 06:25:35.96 ki/gtV8Z.net
GO2のリリース日を教えてください
来年にはきましゅか?

165:デフォルトの名無しさん
20/12/11 20:15:55.93 i7+Pb2PU.net
来まちゅよ!

166:デフォルトの名無しさん
20/12/11 20:31:05.80 ozodvswY.net
来てもなぁ
とりたてて困ってない
滅多に使わなくて実感ないから正規表現が遅いと言われてもピンとこないし

167:デフォルトの名無しさん
20/12/13 00:32:21.22 V5v4lW7x.net
int64をuint64に変換する簡単な方法って無い?
当然に収まらないからマイナス値はif文で0にしてあるものとする
何が困ってるかと言うと、ファイルサイズはosパッケージではint64なのに、zipパッケージではuint64なんで
もう面倒なんで、文字列にしてハイフン取っちゃおうかな

168:デフォルトの名無しさん
20/12/13 02:18:12.88 1g8P/X2h.net
GOでRSSリーダー作れましゅか?

169:デフォルトの名無しさん
20/12/13 02:28:39.75 V5v4lW7x.net
httpで読み込んで
URLリンク(qiita.com)
とかXMLパースするだけだろRSS
JSONは要素のコメントなし�


170:ナ読み込む機能はあるけど、XMLはどうだったか知らん 名前空間も



171:デフォルトの名無しさん
20/12/13 02:33:15.75 RtMOGcGM.net
>>163
uint64() じゃダメなん?
URLリンク(play.golang.org)

172:デフォルトの名無しさん
20/12/13 02:48:56.92 V5v4lW7x.net
>>166
orz 組み込み関数見落としかぁ

173:デフォルトの名無しさん
20/12/13 14:24:43.55 RBQoQqxa.net
そういう次元の話じゃない
せめてググろう

174:デフォルトの名無しさん
20/12/13 15:04:34.66 V5v4lW7x.net
Go製のrssリーダーはすでに幾つかあるが、作れるかであって使えるかじゃないから、自作する話だと判断するのが妥当
rssの要素技術はhttpとXML
rssのURLをブラウザで叩けば最低限読めるのだから、他に必要な技術はない
作れるかと聞かれているのだから、要素技術をサポートしているか、という質問だと判断するのが妥当なのでは?

175:デフォルトの名無しさん
20/12/13 15:18:49.96 Nr97RBB7.net
GoでGUIアプリのRSSリーダーを開発できるかという質問なのかな?
QTくらいしか俺は触ったことないけれども

176:デフォルトの名無しさん
20/12/13 16:29:04.67 XiV1m0kj.net
組み込み関数じゃなくて言語の基本仕様レベルだよ
って話じゃないの

177:デフォルトの名無しさん
20/12/18 22:04:00.43 +Wrhvh6s.net
GOってもしかして人気無い?
2~3年前と比べて下火になってる?

178:デフォルトの名無しさん
20/12/19 00:17:10.67 TNlruc2Y.net
go routineって windows APIで言うと単なるファイバーだったのね。何か昔に戻った見たい。
それなら、パフォーマンス気にする処理なら自分でスレッドとメッセージループでしっかり組んだ方が早いし確実だと思った。
初期のgo routineの中でビジーループすると他の処理が全部止まるってのも笑えたし、最新のgoでの改善策はAPI呼び出した時にディスパッチされますって。プリエンティブ無しの初期のRTOS見たいな動き。VBAのdo procだっけ、ループ中に他の処理動かすやつ。あれと同じ。

179:デフォルトの名無しさん
20/12/19 00:39:26.57 x1EY5aRu.net
そう、劣化Erlangなのだ!

180:デフォルトの名無しさん
20/12/19 00:52:20.88 tyWP7Wcq.net
じゃあGo捨ててErlang/Elixirを学び直すんですか?
貴方、正気ですか?

181:デフォルトの名無しさん
20/12/19 08:38:32.21 U4dyNzHj.net
またVScodeでアップデートしたら
go get package failed: err: exit status 1: stderr: template: main:1:9: executing "main" at <.Module.Path>: nil pointer evaluating *modinfo.ModulePublic.Path
とか出てimportできない!とかほざくようになってしまった
Go自体のアップデートを1.14.2で止めてるからだろうか?

182:デフォルトの名無しさん
20/12/19 08:51:06.40 U4dyNzHj.net
>>176
1.14.13まで上げたけどダメ
他のプロジェクトでは問題なし(解せぬ
go env GOPATH ではちゃんとパスが通ってる
setting.jsonは共通

183:デフォルトの名無しさん
20/12/19 08:59:22.58 U4dyNzHj.net
>>176
ほかのプロジェクトと比較
OneDriveとかユーザーディレクトリからcのサブディレクトリに移したら出なくなった
空白入りとか漢字のパスといった国際化への対応が、またダメになったのかもしれない

184:デフォルトの名無しさん
20/12/19 11:09:41.00 /QQvHqFx.net
>>173
goroutineはファイバーじゃなくて(グリーン)スレッドだろ。

185:デフォルトの名無しさん
20/12/19 11:20:53.48 U4dyNzHj.net
大体がスタックを関数呼び出し毎にチェックして拡張する仕様がどうかしてる
これがあるので他と比較するのはあまり意味がないのでは?
そんな変態的な仕様が過去にあったなら、それとは比較できる
勉強不足で知らんから

186:デフォルトの名無しさん
20/12/20 04:52:15.58 sa/VnQLT.net
>>172
JSとPythonに比べたら人気はない
ただしそこそこの速度が出るので実用的

187:デフォルトの名無しさん
20/12/20 05:40:24.66 Udz0+PvH.net
グーグルの秀才たちが内輪向けに作った言語だから一般向けじゃないんだよなあ
変数の宣言~初期値代入の形態が何種類あるかってだけでも初心者を脱落させるに十分

188:デフォルトの名無しさん
20/12/20 06:35:14.49 1LcS4Wc6.net
繰り返しは無理してでもforに集約してるクセになんか片手落ちだよなw

189:デフォルトの名無しさん
20/12/20 11:21:25.65 1+oqFOqA.net
マイクロサービスってログイン認証とかどうやってるんですか?
ログインユーザーのトークンをDBに保持してそれぞれのマイクロサービスでDB情報を共有したりするイメージですか?

190:デフォルトの名無しさん
20/12/20 12:03:40.89 Dsr91pCp.net
>>184
JWTを送る方法もあるというか、どちらかと言えば主流?
俺は認証フレームワークの都合で使ったことないけど

191:デフォルトの名無しさん
20/12/20 12:06:57.91 Dsr91pCp.net
>>185
都合というより明らかに手抜きで

192:デフォルトの名無しさん
20/12/20 14:19:56.97 4RVTKdnj.net
>>179
う~ん、微妙。同じ事言いたいだけかな。複数のファイバーって方がしっくり来る。結局、1万個のgo routineがあったら、動的に5個とか10個とか小数のスレッドが立ち上がり、メッセージループで逐次処理してるだけだから。
まあ関数途中から再開出来たりするのは言語仕様として使いやすくしてるだけ。暗黙的にasync構文が自動挿入されまくっているだけ。

193:デフォルトの名無しさん
20/12/20 14:32:19.95 Gd3F49It.net
普段C#書いてるけどゴルーチン大好きよ
圧倒的に楽

194:デフォルトの名無しさん
20/12/20 14:47:35.49 zWi39lLO.net
普段Rust書いてるけどゴルーチン圧倒的に楽だね
たまに名前が気に入らんだの、ググラビリティ低いだの聞くけど
その辺はCでもGoでもなく、Rustのが辛ぽよ

195:デフォルトの名無しさん
20/12/20 14:47:50.12 A6h0ajNd.net
>>187
プリエンプションするからファイバーじゃなくてグリーンスレッドなの。

196:デフォルトの名無しさん
20/12/20 14:54:10.97 U9jbkkr5.net
n:mでぶん回してタスクのスティールもするし、それをファイバーとは呼ばんと思う。

197:デフォルトの名無しさん
20/12/20 18:12:25.64 sa/VnQLT.net
とはいえスレッド使いたいことはある
重い計算処理を完全に占有させたい時とか

198:デフォルトの名無しさん
20/12/20 20:54:33.91 4RVTKdnj.net
>>190
プリエンプションするの?初期は誰かがループすると他のgo routine呼ばれず、その後、改良されてAPI呼んだタイミングではするけど、純粋な計算とかのループはNGってください記事までは見たけど。最新だとするの?どんどん本物のスレッドに近付けて処理重たくなって最終的に本末転倒な結果にならないのか?

199:デフォルトの名無しさん
20/12/20 21:00:10.73 4RVTKdnj.net
>>188
c# なら taskとgo routineって殆んど同じかなと思ってしまうがどうなの?c#ではスレッド直接使ってたって話し?

200:デフォルトの名無しさん
20/12/20 21:23:39.28 Dsr91pCp.net
for i:=0;i<n;i++ {} というループでも1.2以降ではスタック操作でスイッチングが走るようになったから、for {} と書かない限りは気にすんなという記事を読んだ

201:デフォルトの名無しさん
20/12/20 21:58:32.70 4RVTKdnj.net
>>195
そう言う事なのかぁ。そんな単純ループでも切り替えチェックを毎回実行してるって性能面ではすごいデメリットだな。

202:デフォルトの名無しさん
20/12/20 23:04:35.11 Dsr91pCp.net
>>196
性能では不利だけど、それはGoの優位点でもある
Goはスタックつまり自動変数の領域を初期値2KB(Javaのスレッドの1/500)しか持たず、それを必要時に拡張する
そのため、goroutineを10000個作ってもスタックは初期値なら20MBあれば良い(Javaのスレッドだと10GB)
そんなにgoroutineを使うか?という話だけど、webAPIが同時接続10000とかの場合を想定(昔は10K問題として大問題)
今でも300万同時接続をJavaとかのスレッドで扱おうとすると3TBの仮想メモリが最低限必要になるけど、Goなら最低6GBで済む(スレッドのスタックサイズをデフォルト値で使ったら)
そんなわけでスレッドのメモリ消費を何とかしない限り、webAPIにおいてGoのアドバンテージは無くならない

203:デフォルトの名無しさん
20/12/21 00:48:28.58 LJe505L1.net
>>197
いや、go routineと本物のthread(javaも同じ)で比較するとその通りだと思う。
過去のwebフレームワークが1要求を愚直に1スレッドに割当てして性能限界に至ったのも真実。
だからgo routineを使えば、同じく1要求を愚直に1 go routineに割当したとしてもgo 内部で複数のgo routineを1つのスレッドに割当する事で極力性能、メモリ使用量を抑える事が出来ますって事だけ何だよな。
そして、スレッドのコストが高いってのはある意味常識で、スレッドは最低限に抑えましょうてのは昔から常識。方法としては、古典的なメッセージループ、スレッドプール、ファイバー、タスク、async構文、nodeの全シングルスレッドとあらゆる方法がある中の一つがgo routine。
中身は、まあ他の手法から抜きん出て便利なのか否かは歴史がこれから証明する所。
apacheが歴史的に1要求1プロセスのforkベースだったから、webはプロセスから見たらスレッドの方が軽量って事で性能面は見過ごされて来た歴史がある。組込みシステムはリソース命だからかなり初期からスレッドの高コストはしっかり意識してモノ作りしている。

204:デフォルトの名無しさん
20/12/21 01:00:05.48 y0Qc2EqT.net
わかったから

205:デフォルトの名無しさん
20/12/21 01:21:44.50 k4qTN2iI.net
Unity界隈はどうなんだろ?
基本はC#で部分的にgoroutine使ってるような話を聞いたことあるが正確なところは不明

206:デフォルトの名無しさん
20/12/21 03:21:16.47 56qSn/9L.net
C#のTaskは非同期+スレッドプール(OSスレッド)
>>197
10年くらいまえの認識だね

207:デフォルトの名無しさん
20/12/23 22:22:43.94 O5AY10nM.net
GOはホント話題無いね
いい意味で枯れてきてるのかもしれないけどとにかくトピックが少ない

208:デフォルトの名無しさん
20/12/23 22:48:40.86 LHRvotnC.net
新機能に渇望してないのが大きい
期待の新機能であるジェネリックが欲しい層もあまり数は居なさそうだし
もう、あれば便利だろうし使うけど特に今すぐには要らないよなって
弱点としてよく挙げられる正規表現も、実用性が無いほど遅い訳じゃないし、探せば高速なライブラリもあるんだろなとか思ってる

209:デフォルトの名無しさん
20/12/23 23:55:24.14 GvbKZ216.net
>>203
正規表現そんな遅いんだっけ?
Goだと文字列メソッド使うからあんまり気にしてなかったわ

210:デフォルトの名無しさん
20/12/24 03:36:46.49 ieyHo1hw.net
>>204
アルゴリズムでは決して遅くないが、DFAを再利用するために排他制御するので並列処理で遅くなるとのこと
URLリンク(qiita.com)

211:デフォルトの名無しさん
20/12/24 04:26:45.03 yxJlqEyC.net
そんな排他制御してるのか
本末転倒じゃねえか

212:デフォルトの名無しさん
20/12/24 04:28:11.75 yxJlqEyC.net
>>202
もう出て10年くらい経ってるんだよな
大きな新機能の追加も無さそうだし
パフォーマンスを極めるフェーズになってるから話題ないねえ

213:デフォルトの名無しさん
20/12/24 05:41:11.22 jgmFKpNF.net
例外がないif err言語さん……w

214:デフォルトの名無しさん
20/12/24 07:24:03.78 ieyHo1hw.net
例外キボンという声は聞いたことないから、やはり
今時例外なのプークスクスとみんな思ってると考えていいかな?

215:デフォルトの名無しさん
20/12/24 08:28:54.70 7F4cW8XH.net
いいよ。

216:デフォルトの名無しさん
20/12/24 08:40:06.16 QpUzPsdF.net
コストの高い例外フロー制御はともかく、
例外専用の戻り値は欲しいわ。

217:デフォルトの名無しさん
20/12/24 09:35:28.02 ieyHo1hw.net
Javaのだと、シグネチャに無い例外を返せないからインターフェースとして呼ぶのに困るし
C#のだとガバガバ
結局、実際には何が帰るのか分かりませんとなってカスタムしたExceptionで受ける一択
更にそのため常にメソッド内でカスタムExceptionにラップするためのcatchを書かないとならんし
面倒すぎたよね例外(過去形でかくな

218:デフォルトの名無しさん
20/12/24 16:16:26.58 yxJlqEyC.net
コールスタックを一気にジャンプするとかおぞましいことはいらないよ
単なるgotoだし

219:デフォルトの名無しさん
20/12/24 18:05:24.14 z4h3nURn.net
if err書いて回るのに比べればgotoのほうがマシでしょ
それにコールスタックを一気にジャンプするのは言語による実装の詳細で必須事項じゃないよね

220:デフォルトの名無しさん
20/12/24 18:07:54.69 ieyHo1hw.net
マシとは思わないから文句が出ないんだよねー

221:デフォルトの名無しさん
20/12/24 18:11:34.30 ieyHo1hw.net
文句が出てないという根拠は、そこそこちゃんと使っている人からの不満点として見たことが無い、というもの
反証は受け付ける

222:デフォルトの名無しさん
20/12/24 18:21:35.08 fJ8Afd/q.net
✕Golang
○IfErang

223:デフォルトの名無しさん
20/12/24 19:41:05.61 grZRkp5b.net
deferがあるぞ

224:デフォルトの名無しさん
20/12/24 21:25:43.87 YakLuvNb.net
googleって地図だけの一発屋やな

225:デフォルトの名無しさん
20/12/24 21:30:49.79 ieyHo1hw.net
突っ込み所しかなくて、えー頑張ってね
きっと良いこともあるよ

226:デフォルトの名無しさん
20/12/24 21:59:07.90 NCBnjOT7.net
err頑張ってね

227:デフォルトの名無しさん
20/12/24 21:59:59.67 ieyHo1hw.net
var exp = flag.Bool("exp", true, "export")
で、-exp false しても *exp が false にならん
どこを間違えてるのか

228:デフォルトの名無しさん
20/12/24 22:32:45.42 ieyHo1hw.net
URLリンク(play.golang.org)
exp:true, CommandLine:&{0x4a6ee0 /tmpfs/play true map[exp:0xc000108040] map[exp:0xc000108040] [false] 1 <nil>}

229:デフォルトの名無しさん
20/12/24 22:34:38.12 yxJlqEyC.net
Win32 APIもエラーコードチェックばっかやらなきゃいけない
それと大して変わらんよ
低レイヤーのプログラミングはいつも同じ

230:デフォルトの名無しさん
20/12/24 22:49:24.53 ieyHo1hw.net
判明というか多分バグ
他のフラグは
-cred admin.json
とかの形式で取り込めるけど、
expは(多分flag.Bool()は)
-exp=false
と指定しないと取り込まれない

231:デフォルトの名無しさん
20/12/24 22:54:47.90 ieyHo1hw.net
ああ?go documentで検索したら、non-boolean only
仕様なの?何で?because the meaning of the command?

232:デフォルトの名無しさん
20/12/24 23:00:26.57 ieyHo1hw.net
文字列で取り込んでbooleanに変換しなきゃならんのか
めんどくさい……

233:デフォルトの名無しさん
20/12/28 21:09:09.98 Rt6RXU1L.net
goオワコン?

234:デフォルトの名無しさん
20/12/28 21:15:09.97 1wnarVmc.net
go routine リーク周りはまだ話があるんじゃないの?

235:デフォルトの名無しさん
20/12/28 22:36:34.04 Rt6RXU1L.net
>>222
デフォルトtrueのフラグパラメータって設計が良くない気がするなー
俺なら、-disableExport(デフォルト:false)って引数にするかも。で指定するときは、
go run main.go -disableExport
って感じでtrueとか、falseとかつけないかなー。なぜならフラグ指定してる時点で「true」だから

236:デフォルトの名無しさん
20/12/28 23:28:27.07 w2tkTAcI.net
>>228
必須スキルだよ?

237:デフォルトの名無しさん
20/12/28 23:52:44.50 Rt6RXU1L.net
>>231
だよね
go好きだから.........

238:デフォルトの名無しさん
20/12/29 08:01:29.87 pjgVtImx.net
>>229
URLリンク(qiita.com)
でも筆者が勘違いしていたので、単に一度ヒープから確保したメモリはヒープのプールに入るため取得されたまま、になってただけと訂正入ってる
ヒープが利用終わったら解放されると思い込んだ勘違いという結論になったのでは?

239:デフォルトの名無しさん
20/12/29 08:40:46.55 +jeJmMuS.net
>>233
いやそういうリークじゃなくて、正確にはチャンネル待ちリークというかそういう感じの話。

240:デフォルトの名無しさん
20/12/29 09:02:37.84 pjgVtImx.net
待ちなのにリークなん?
送ったはずのチャネル通信が届かない事案だとしたら、それは通信の問題でリークじゃないよね

241:デフォルトの名無しさん
20/12/29 09:27:45.67 +jeJmMuS.net
いやだから通信の問題で実質リークというかgoroutineが溢れるって話をしてるんだが。。
kube並の大きさのプログラムで発生したらデバッグできんの?って話をしてるんだよ。

242:デフォルトの名無しさん
20/12/29 11:28:39.38 pjgVtImx.net
チャネル送信が送られないなんて報告があるの?
と言ってる

243:デフォルトの名無しさん
20/12/29 18:59:11.37 SyBq36e1.net
…ゴルーチンが溢れるって何や?

244:デフォルトの名無しさん
20/12/29 19:07:08.67 pjgVtImx.net
検索しても233にある誤解が原因だった記事くらいしか見つからなかったから、具体的な記事のリンクを張ってくれるのを待ってる

245:デフォルトの名無しさん
20/12/29 19:42:26.61 LSI+C1uB.net
ゴルが解放されないって話なら永続リソースとかを
掴んだまま離さないとかそういうお行儀の悪いプログラムしてるからだよ
動的言語と同じ感覚でプログラミングするとそういう痛い目にあう

246:デフォルトの名無しさん
21/01/02 23:36:52.65 hnNoCPhn.net
goって終わったよね?

247:デフォルトの名無しさん
21/01/02 23:51:01.94 hutYk629.net
無理に使おうとしなくてもええんやで
ウチはインフラ部分はほぼgoに置き換えてる
でもc#の方がすこや

248:デフォルトの名無しさん
21/01/03 02:43:46.82 965qc4Vx.net
>>241
rustの時代とは言われてる

249:デフォルトの名無しさん
21/01/03 03:00:10.23 Mk7RJK9u.net
終わってないが、始まってもない

250:デフォルトの名無しさん
21/01/03 03:00:59.89 j7drLdmA.net
もっと流行るかと思ったけど全くだよな
やっぱ言語仕様に癖がありすぎる

251:デフォルトの名無しさん
21/01/03 11:13:21.86 9SkeDBIZ.net
癖っていうか糞仕様が多い
いまどきこれ??みたいな

252:デフォルトの名無しさん
21/01/03 11:48:40.90 ez188GTZ.net
国内でのGo普及活動家の母体メルカリのGoエンジニアたち全然情報発信しなくなってて草
2の対立とか、そもそもの言語仕様の酷さとかに気づいたのかな

253:デフォルトの名無しさん
21/01/03 16:34:24.05 j7drLdmA.net
>>247
最近ソフトウェアデザインに記事書いてたよ
レベルがクソ高くてますます初心者置いてけぼりだろうな

254:デフォルトの名無しさん
21/01/03 16:44:28.91 965qc4Vx.net
goって、特定の構造体が目的のインターフェース実装してるか見分けるのむずくない?みんなどうやってるの?

255:デフォルトの名無しさん
21/01/03 17:38:40.24 PgQRe2mf.net
>>249
URLリンク(play.golang.org)
こんな感じでエラーチェックしてるかな
./prog.go:20:2: cannot use &StrE literal (type *StrE) as type IStr in assignment:
*StrE does not implement IStr (missing Func2 method)
./prog.go:21:2: cannot use &StrE2 literal (type *StrE2) as type IStr in assignment:
*StrE2 does not implement IStr (missing Func method)

256:デフォルトの名無しさん
21/01/03 17:46:07.51 PgQRe2mf.net
前スレのこれは対応してほしい……
URLリンク(play.golang.org)
インタフェースAを返すメソッドを持つインタフェースB。
そのメソッド実装がインタフェースAを実装しているポインタを返しても、
./prog.go:34:4: cannot use &Base literal (type *Base) as type IBase in assignment:
*Base does not implement IBase (wrong type for Sub method)
have Sub() *Sub
want Sub() ISub
と、インタフェースAを返しているとは認められない。

257:デフォルトの名無しさん
21/01/03 19:26:43.94 965qc4Vx.net
>>250
え、ビルドするまで分からないってこと?クソ面倒じゃない?
あと、ってことはパッと見ただけじゃやっぱ分からんってことかー。。

258:デフォルトの名無しさん
21/01/03 19:29:01.30 965qc4Vx.net
あ、でもそれなら実装漏れに最低ビルド時に気づけるってことか
たしかにその方法良いですね。真似します。

259:デフォルトの名無しさん
21/01/05 01:56:09.22 RVMSJAuG.net
>>248
気が向いて買って読んでみたけど
たいした内容じゃなかたぞ

260:デフォルトの名無しさん
21/01/06 15:29:01.20 /bMEAqVx.net
GODOTってゲームの開発環境あるんだがGOなのかと思ってたよ

261:デフォルトの名無しさん
21/01/06 15:39:08.43 9b/ixvsd.net
>>253
一番の利点は、メインのないライブラリプロジェクトでメソッドの実装ミスを検知できること
テストでもいいんだけど、漏れとか

262:デフォルトの名無しさん
21/01/06 19:57:45.35 6LFK/57e.net
>>256
外部のパッケージ内で、目的のインターフェースの実装探すときどうしてる?
ideとかで実装済みクラス一覧見れたりできるのかな

263:デフォルトの名無しさん
21/01/06 22:46:22.85 RqNhj0Vs.net
>>255
名前の元ネタはゴドーを待ちながらだよ

264:デフォルトの名無しさん
21/01/08 10:42:43.33 SFYEeLwk.net
VScodeでgo.modがパッケージ更新できなくて悩んだ
結局コマンドラインから go get -u で取得したら GOPATH /pkg/mod/... に最新版が取得できた
VScodeのgo拡張って変な動きとかするなぁ

265:デフォルトの名無しさん
21/01/10 08:45:10.91 tmTVLRQU.net
ubuntuのi386って、もしかして32bit?
goをインストールして動かそうとしたらファイル形式エラーで実行できなかった
i386捨ててamd64でやりなおし

266:デフォルトの名無しさん
21/01/10 10:53:20.77 tmTVLRQU.net
>>260
amd64をインストールし直したら動いた

267:デフォルトの名無しさん
21/01/10 11:16:28.28 tmTVLRQU.net
ものすごい当たり前の落とし穴なんだけど
os.MkdirAll() で os.ModeDir だけ指定してたら、Linux に行ったら権限不足でファイルを読み書きできなかった
アホか自分は!当たり前すぎるわ!orz

268:デフォルトの名無しさん
21/01/13 02:41:40.78 LRQMEOBI.net
goエンジニアって0.5割ぐらいの超人エンジニアがいて、残りはマジでカス未満のエンジニアしかいなくないか?
ライブラリよく作ってるようなエンジニア以外の業務コード見たら吐き気するんだが同士おる?

269:デフォルトの名無しさん
21/01/13 02:44:08.87 atGCk1//.net
>>263
それ何系の会社?
メルカリ界隈じゃないよね?

270:デフォルトの名無しさん
21/01/13 03:39:37.52 uZRkh4HP.net
Ruby/Go の神、Vagrant, Terraform, Packer の作者、
今世紀最大の起業家、HashiCorp のMitchell Hashimoto
皆、彼を参考にしてる

271:デフォルトの名無しさん
21/01/13 05:37:10.83 vmn8olpj.net
>>265
お前KENTAガイジやろ?
ここでクソみたいな宣伝すんなボケ

272:デフォルトの名無しさん
21/01/13 08:37:45.48 5GOPYdWB.net
>>266
KENTAって誰ですか?
貴方のせいで検索して動画を再生してしまいました
貴方のせいでKENTAさんに収益が発生しました

273:デフォルトの名無しさん
21/01/13 08:52:35.47 u6YyMdJS.net
>>263
それ〇〇エンジニアの全てが同じ状況だろ、それとも〇〇言語だと超人が増えるのか?

274:デフォルトの名無しさん
21/01/13 10:02:18.24 edoUNcFJ.net
RubyをNGすればケンタガイジも自然に消えるよ
Go使いならRuby触ること無いから問題無いっしょ

275:デフォルトの名無しさん
21/01/13 12:07:29.42 GhxYbqoB.net
ルビィ/Go の神、Vagrant, Terraform, Packer の作者、
今世紀最大の起業家、HashiCorp のMitchell Hashimoto
皆、彼を参考にしてる

276:デフォルトの名無しさん
21/01/13 22:08:57.53 lYKbR8rO.net
KENTA
HashiCorp
KENTAガイジ対策として上記単語をNGワード設定しておきましょう。
プログラム板で二度と不快な投稿を目にしなくてすみましゅよ。

277:デフォルトの名無しさん
21/01/13 22:49:31.14 mK+3gZUP.net
あとrubyのNG登録が浸透してしまったからか最近ルビィて書いとるぞそいつ。
ルビィもNG登録や。

278:デフォルトの名無しさん
21/01/14 02:30:53.33 4quR9ect.net
Linuxはinotify、WindowsはWMIを使ってディレクトリへの更新を検知してくれるパッケージって出来ないかな
iOSにも同じような機構はあるだろうし

279:デフォルトの名無しさん
21/01/14 06:04:18.90 AIfhUXVU.net
ル・ビぃ/Go の神、Vagrant, Terraform, Packer の作者、
今世紀最大の起業家、ハシCorp のMitchell ハシmoto
皆、彼を参考にしてる

280:デフォルトの名無しさん
21/01/14 07:09:01.73 E+SJr/XS.net
あーあ、意固地になっちゃった
お前らガイジ揶揄うのもほどほどにしとけよ?w

281:デフォルトの名無しさん
21/01/14 07:12:10.46 iNbGwVKU.net
猫シCorp

282:デフォルトの名無しさん
21/01/14 08:03:13.12 mp+NLhBe.net
>>275
元々価値の無い駄文を垂れ流して鬱陶しかったけど、日本語としてすら意味をなさなくなれば目に入ってもスルーしやすいからこれはこれでいいような気がするw

283:デフォルトの名無しさん
21/01/14 08:11:02.02 AIfhUXVU.net
>>277
効いてて草
ル・bi、、、ィ
ル、b・ィ

284:デフォルトの名無しさん
21/01/14 08:11:43.95 1yd08R70.net
>>275
NG出来なくてくやちーねーwwwwww
ruuu!biii最強!!!!wwwwwwwww

285:デフォルトの名無しさん
21/01/14 11:50:14.05 hXZPMCaj.net
推奨NGワード:
の神
起業家
参考にしてる

286:デフォルトの名無しさん
21/01/14 13:53:19.60 Se9utFzt.net
ル・bぃ/G,o のG,od、Vag_rant, Terr_aform, Pac_ker の作者、
今世_紀最大の起_業家、ハシCorp のMitケル ハシmoto
皆・彼を参考にしてる
ル・ビぃ/G,o のG・od、Vagrant, Terr_aform, Pac_ker の作者、
今_世紀最大の起_業_家、ハシCorp のMitchell ハシmoto
皆_彼_を参_考にしてる

287:デフォルトの名無しさん
21/01/14 14:07:06.27 QYOIxwgk.net
もはや出会い系のスパム並みの印象になっちゃってるから、色々逆効果だぞ。

288:デフォルトの名無しさん
21/01/14 14:20:45.98 mp+NLhBe.net
狂人のすることは分からんなw

289:デフォルトの名無しさん
21/01/14 15:27:15.99 neKmd3sr.net
ruby is God

290:デフォルトの名無しさん
21/01/14 19:21:51.56 ToTdZAIR.net
糖質をイジメるな!!

291:デフォルトの名無しさん
21/01/14 20:11:58.10 VN42fcD2.net
R u b y 
   G o  の 神
Vagrant, Terraform, Packer の作者

★今世紀最大�


292:嘯フ★起業家★ HashiCorp のMitchell Hashimoto 皆 、 彼 を 参 考 に し て る



293:デフォルトの名無しさん
21/01/14 22:26:27.13 Bnzn5h4u.net
火病るガイジを虐めて愉しむ冬の夜

294:デフォルトの名無しさん
21/01/14 22:43:56.58 VN42fcD2.net
キモオタプログラマー君はみんなから虐められてるけど……

295:デフォルトの名無しさん
21/01/14 22:47:16.08 VN42fcD2.net
学生の頃、眼鏡かけた気持ち悪いブス虐めて遊んでたけど
大人になるとそういう奴らがネットで暴れるんだな
俺が植え付けたトラウマは大きかったんだな
青葉みたいにはなるなよ……

296:デフォルトの名無しさん
21/01/14 23:28:29.98 mp+NLhBe.net
Ruby君が日本語の文章っぽいものを書いてるのを初めて見た気がする。
中身はともかくとして。

297:デフォルトの名無しさん
21/01/14 23:29:44.90 nxZv0xP1.net
そいつはタダのなりすめし

298:デフォルトの名無しさん
21/01/14 23:42:03.90 X9SM/m5M.net
なりすましじゃないのは最初のやつだけでしょ

299:デフォルトの名無しさん
21/01/15 01:00:12.28 5E/tucpK.net
なりすましという事にしとこうぜw

300:デフォルトの名無しさん
21/01/15 15:42:02.84 uPQddvH2.net
goの文法教えて
if a, b := c.(*d.Foo); b && o.Bar() {
 ・・・
}
これは2つの変数 a, b に代入ってことであってる?
c.(*d.Foo) この部分がよくわからない
セミコロンは単に2つの式を入れるためだけのもの?

301:デフォルトの名無しさん
21/01/15 16:10:06.13 CBMjbZAp.net
>>294
Type assertions ね
URLリンク(golang.org)
こんな感じに使う
URLリンク(play.golang.org)
d はパッケージ名だろうし、o は普通は a のはず

302:デフォルトの名無しさん
21/01/15 16:18:33.58 CBMjbZAp.net
>>294
ざっくり説明すると、これはいわゆる型キャスト
b に型の変換が成功したのか論理値で代える
; 以降が if の判定に使われる論理式
むしろ ; 以前が特殊で、ここで返ってきた変数は {} の中だけで使える
a は Foo へのポインタなので、Foo のメソッドを呼べる

303:デフォルトの名無しさん
21/01/15 21:19:06.47 uPQddvH2.net
ありがとう。他と違う文法はよくわからんw

304:デフォルトの名無しさん
21/01/15 21:57:56.53 CBMjbZAp.net
C や Java とかでも for (int i=0; i<5; i++) {} と作成した i は{}の中だけで有効
それとノリは同じ
C#のusingやら、そういう特殊な構文はどの言語にもある
無理やりキャストするのではなく、キャストできない場合の判定がある分、他の言語よりもいくらか安全
この系統には map のインデックスアクセスがあり
if value, ok := m[key]; ok {
……
}
キーが無ければ ok には false が返る

305:265
21/01/15 22:03:24.03 MomngUWn.net
Vagrant の作者、HashiCorp のMitchell Hashimoto もそうだけど、
皆、Ruby → Go がキャリアパス
メルカリ、カヤック
KENTA、るびきち、mattn
Ruby コミッターが多い、Cookpad、マネーフォワード、Ruby 開発

306:デフォルトの名無しさん
21/01/15 22:13:27.50 Al0jsoYD.net
基地外にレスするつもりはなくて純粋に気になるんだけど、
RubyからGoに乗り換えた奴なんてそんなにいるのか?
俺の知ってるRubyist達はRubyしか知りませんやりませんマイクロサービス何それ食えるのって感じでGoとは遥か遠い連中だわ
GoはJava系かNodeやPythonから来る人が多い印象だな

307:デフォルトの名無しさん
21/01/15 22:39:25.05 v2N1LTYS.net
vscodeでステップ実行してる時に値を見ると+xxx more


308:になるけど全部見たい場合はどうすればいいねん



309:265
21/01/15 23:02:37.95 MomngUWn.net
Ruby on Rails で、スノーボードのサイトを作っていた、
Shopify の時価総額は、今や15兆円
Amazon は150兆円だけど、このままじゃ抜かれると、ライバル視してる
米国年収では、ついに、サーバー構築運用資格がRails を抜いた。
AWS ソリューション・アーキテクトが、1,500万円
VWware が、1,400万円
Rails が、1,300万円
Node.js が、900万円
ただし、Nodeの求人数は、Railsの2倍ある
Rubyでも、Shopifyアプリを作ったり、AWS Lambda, CloudFormation とか、色々な仕事があるけど、
速度重視のものは、Go へ行くだけ

310:デフォルトの名無しさん
21/01/16 01:44:07.71 xzsyPdU6.net
ゴルーチン使いすぎてasync忘れてもうた

311:デフォルトの名無しさん
21/01/16 01:46:47.49 1yiOpWx6.net
GoはPythonからのイメージすっごいある

312:デフォルトの名無しさん
21/01/16 13:44:55.45 D2Bsg9bU.net
go1.16にちょっと興味が出た
ファイル埋め込みをサポートしてくれるのか

313:デフォルトの名無しさん
21/01/16 16:32:55.26 D2Bsg9bU.net
//go:generate って自動でコマンド実行させられるけど、この機能のセキュリティの資料ってどこ?
ビルドはユーザー権限で動かすからサンドボックスとか無し?

314:デフォルトの名無しさん
21/01/16 22:52:44.09 WbzMKQxD.net
セキュリティに対するケアなんか何もないよ
そもそも何のチェックもなくGitHubから直接パッケージを入れる仕様なんだから、
パッケージ作者がその気になればgo:generate云々以前に利用者のビルド成果物のバイナリに対してマルウェアを仕込むことすら造作もない
パッケージを入れるときには作者を全面的に信頼しそういう重大なリスクを受け入れていることを忘れてはいけない

315:デフォルトの名無しさん
21/01/19 22:24:32.58 +d4lPwTs.net
なんか会社のPCで WSL+Ubuntu に Go をインストールしたら、こんなエラーになって使えなかった
$ go version
go version go1.13.8 linux/amd64
$ go get -u golang.org/x/text
go: extracting golang.org/x/text v0.3.5
go get: rename /home/hoge/go/pkg/mod/golang.org/x/text@v0.3.5.tmp-022669236 /home/hoge/go/pkg/mod/golang.org/x/text@v0.3.5: permission denied

316:デフォルトの名無しさん
21/01/20 01:17:35.14 Rdh9isrB.net
ぐぐったらgoのバグみたいね

317:デフォルトの名無しさん
21/01/20 01:39:00.63 sgAeHwon.net
これだからWSLは...

318:デフォルトの名無しさん
21/01/20 01:44:37.61 Rdh9isrB.net
やっぱり出てきたか、デマ吐き

319:デフォルトの名無しさん
21/01/20 10:21:29.47 sOzWFlEJ.net
Windows 10 Home でも出来るようになった、
WSL2 で、Docker でも使えば?

320:デフォルトの名無しさん
21/01/20 23:51:09.81 houPsxKw.net
go1.16 がまだ出てないから statik 使ってるけど、コマンドラインから
go run github.com/rakyll/statik -f -src=static
叩くと、NISが
カテゴリ: 解決したセキュリティリスク
日時,リスク,活動,状態,推奨される処理,パス - ファイル名
2021/01/20 23:38:45,高,statik.exe (SONAR.SuspScript!g3) が SONAR によって検出されました,\
削除しました,解決しました - 処理の必要はありません,c:\Users\hoge\AppData\Local\Temp\go-build742135550\b001\exe\statik.exe
と容赦なく抹殺に来るんでバッチファイルから作成できない
トホホ
VScode からは実行できるんだけどなぁ
何が違うんだろう

321:デフォルトの名無しさん
21/01/21 01:16:44.85 6tk1Snw3.net
あわしろ氏がDockerはオワコン、これからはWSLと言ってる。

322:デフォルトの名無しさん
21/01/21 03:04:48.79 084E4D0G.net
推奨NGワード:あわしろ

323:デフォルトの名無しさん
21/01/21 05:13:54.11 pnbRvl8z.net
推奨NGワード:NGワード

324:デフォルトの名無しさん
21/01/21 05:17:47.11 6tk1Snw3.net
イクヤさんを馬鹿にしてんのか?

325:デフォルトの名無しさん
21/01/21 07:41:51.93 JXSnM7xR.net
>>317
バカにされているのはお前自信だぞw

326:デフォルトの名無しさん
21/01/21 10:36:56.38 9HZQp01R.net
>>301
これ教えてくれや

327:デフォルトの名無しさん
21/01/22 23:26:34.48 vuLukHTi.net
goのパッケージで、全然違う役割で同じパッケージ名つけなくなったときみんなどうしてる?

328:デフォルトの名無しさん
21/01/22 23:47:27.87 clRMgbeK.net
apiwrapper2
apiwrapper3
saigo_no_apiwrapper
apiwrapper_final
こんなかんじで

329:デフォルトの名無しさん
21/01/24 02:37:19.18 49bdBtsk.net
>>321
そうかぁ...なんだかなぁ

330:デフォルトの名無しさん
21/01/24 04:02:02.83 hPeuQsPP.net
イクヤさんはバカじゃないぞ。
ただの嫌な奴だ。

331:デフォルトの名無しさん
21/01/24 19:31:46.17 tQo0lqIt.net
import (
zenzen "xxx.com/omae/package"
chigau "xxx.com/aitsu/package"
)

332:デフォルトの名無しさん
21/01/24 22:40:05.67 49bdBtsk.net
>>324
いや、自分が作ってるアプリ内でパッケージが被りそうな場合ですー

333:デフォルトの名無しさん
21/01/24 23:29:36.37 1VpxryXU.net
>>325
自分でも同じじゃないか?

334:デフォルトの名無しさん
21/01/25 18:17:56.09 d/3tjDJa.net
>>326
たとえば、
package encrypt
っていう、APIの通信を暗号化するパッケージを自分で作ったとして、あとからユーザーがアップロードした画像を暗号化する処理作りたくなったとき、また
package encrypt
ってつけたくなるけど、最初に作ったAPIを暗号化する処理向けにすでに「encrypt」って使われてるからどうしよーってなるって話ですね
package apiencrypt
package userimageencrypt
にするのが普通ですか?

335:デフォルトの名無しさん
21/01/25 18:55:36.51 ViKOXBu7.net
>>327
いや、同時に使用する場合でも>>324さんの言うようにエイリアスで区別してインポートして使えばいい
例えば標準パッケージのnet/httpに対して、サブリポジトリにもgolang.org/x/net/httpがあったりとか、実験的実装でも同じパッケージ名をつけたりしているし

336:デフォルトの名無しさん
21/01/25 19:17:10.86 d/3tjDJa.net
>>328
いや、importするときの話ではなくて、実装する時の話です!
ちょっとあとでサンプルコード用意しますね!!

337:デフォルトの名無しさん
21/01/25 20:10:27.92 ViKOXBu7.net
>>329
だから公式でもやってるから気にするなw

338:デフォルトの名無しさん
21/01/25 21:54:18.14 SeLyUu4E.net
何がそんなに嫌なんだ?

339:デフォルトの名無しさん
21/01/25 22:12:50.28 yfUr2T9s.net
単にエイリアスのことを理解してないだけでは?

340:デフォルトの名無しさん
21/01/25 23:54:29.57 d/3tjDJa.net
すいません、僕のエイリアスの理解が間違ってました。↑でみなさんが言ってることが正しいです。
意味不明な事言って、誠に申し訳ありませんでした😳

341:デフォルトの名無しさん
21/01/26 00:02:10.18 7TBhA+72.net
このスレでgolangのモヤモヤが一つ解消できました。本当にありがとうございました。

342:デフォルトの名無しさん
21/01/26 01:18:09.44 84lZ6EGP.net
別にgolangだけじゃなく他の言語もほぼ同じ仕様だぞ

343:デフォルトの名無しさん
21/01/26 02:03:46.73 wg8lZWjJ.net
意外と素直なやつで気にいった

344:デフォルトの名無しさん
21/01/26 15:48:34.40 7TBhA+72.net
>>335
別ディレクトリの同一パッケージ名つけちゃうと、同じパッケージという扱いになると勘違いしてました。
ディレクトリが違えば、ちゃんと別パッケージ扱いになるんですね

345:デフォルトの名無しさん
21/01/26 19:32:50.53 QK4hy34A.net
公開したアプリの機能追加しようとしたらgolintがまたゴネはじめた
調べるともうdeprecatedが可決されてるんだな
Apiと書くとAPIにしなきゃ絶許とかアホな子なんで困る

346:デフォルトの名無しさん
21/01/26 19:41:08.73 QK4hy34A.net
すなおにgolangci-lintに切り替えた

347:デフォルトの名無しさん
21/01/27 15:46:00.33 dNCRGAZL.net
最近素直な人多いね🤗

348:デフォルトの名無しさん
21/01/27 19:26:08.32 D9j7gzMM.net
素直に尿道オナニーした

349:デフォルトの名無しさん
21/01/27 20:43:24.94 Qr3ry02h.net
>>341
素直やなあ

350:デフォルトの名無しさん
21/01/30 20:27:47.43 Vt3mM499.net
ごー言語ってどんなメリットがあるの?

351:デフォルトの名無しさん
21/01/30 20:40:40.31 qJyO6h8a.net
高速なWebAPIが超楽に作れる
あとは、慣れるとスクリプト代わりに使える

352:デフォルトの名無しさん
21/01/31 00:23:18.15 v0/+r0AQ.net
実行環境側で準備がいらないから、ちょっとしたツールとか作って人に配ったり、サーバーで実行したりしやすい

353:デフォルトの名無しさん
21/01/31 02:08:30.36 sEqffcUE.net
linuxとwindowsで動かすツールにjava使ってたんだけど
少しづつGoに移植してる
かなり良い感触
ついにjavaを捨てられる

354:デフォルトの名無しさん
21/01/31 02:54:28.37 pT/gblY8.net
>>345
それがあったか!
あとgithubからcloneしてこなくても go run できるのは意外と便利

でもこないだ statik を run したらノートンが怒って temp に作成された statik のイメージを問答無用で削除
build して実行したら動くから、temp にある exe がローカルディレクトリのファイルに書き込みするとヒューリスティック検知が危険と判断してるんだな、多分

355:デフォルトの名無しさん
21/02/03 21:45:23.85 CpFR0HHF.net
>>347
> あとgithubからcloneしてこなくても go run できるのは意外と便利
これどゆこと??

356:デフォルトの名無しさん
21/02/03 22:46:07.77 KfiW2k04.net
>>348
この例だと statik を使うとき、go.mod に github.com/rakyll/statik を追加しとくじゃない
ここで、statik でファイルを固めるために statik コマンドをビルドしなくても
$ go run github.com/rakyll/statik -f -src=static
と打つと実行できるの
でもノートン入れてると危険な動作だと判断されるんで、run じゃなく build して実行ファイル作らないとダメだった

357:デフォルトの名無しさん
21/02/03 23:03:33.06 KfiW2k04.net
このテクニックは
URLリンク(qiita.com)
で知った

358:デフォルトの名無しさん
21/02/04 00:47:53.46 J8c7zBiK.net
>>349
ほーー!これ知らなかった。有益な情報ありがとう!

359:デフォルトの名無しさん
21/02/06 07:34:59.64 b91D85Wz.net
importで現在のpackage宣言からの相対パスが使えなくなったのはクソ仕様変更だと思う
おのれ Russ Cox

360:デフォルトの名無しさん
21/02/06 07:40:15.26 b91D85Wz.net
具体的に恨んでることは、あるサイトのコードを使い回して別のサイトのコードを書くとき、import を全部修正しなきゃならん
というかしてる
Linux ならまあ sed で置換すればなんとかなると思うけど、Windows で開発してるし

361:デフォルトの名無しさん
21/02/06 07:42:46.96 b91D85Wz.net
あ、元のサイトの一部のコードは使い回すために go get して import してるから、sed でも面倒だわコレ

362:デフォルトの名無しさん
21/02/06 07:48:05.22 b91D85Wz.net
なんか上手いことやってくれるツールってあるの?

363:デフォルトの名無しさん
21/02/06 10:01:04.65 3JTS0SZe.net
タダで使わせてもらってるくせに糞とか恨むとか
そういう心根だから日本はソフトウェア技術で海外に負けるんだよ

364:デフォルトの名無しさん
21/02/07 03:51:41.73 XZf/W+8m.net
タダで使わせてもらってるじからって大人しくしてるほうが進展しないと思うよw
もちろん活発にフィードバックが最善だが

365:デフォルトの名無しさん
21/02/07 17:49:54.31 7CsMj5zJ.net
趣味でいじってて、検索に使うAPIを作ろうとしてるんだけど
関数の動的な引数について
ぐぐると出てくるFunctional Option Patternってどれくらい使われてるのかね
structをポインタで渡す(nil判定のため)でいいかなと思い始めてるんだけど

366:デフォルトの名無しさん
21/02/07 19:19:28.11 ChxxRz8n.net
>>358
たまに見るけど、エディタのコード補完と相性悪くてどんなオプションがあるのかがクッソ分かりにくい
個人的には大嫌い

367:359
21/02/07 19:21:38.26 ChxxRz8n.net
Functional Optionの話ね
補足

368:デフォルトの名無しさん
21/02/07 19:31:24.83 9kVjsnaW.net
structをポインタで渡すという一文で、わかってるのかな?という疑念が
FOP はざっくりと、アレンジする対象のオブジェクトを受けて内容を好きに設定する関数を、引数として渡す手法
ここでその関数の引数に対象structのポインタじゃなく実体渡しで受けるようにすると、コピーを書き換えちゃう事になるから設定しても動かない
ポインタで渡す以外の話にはならない

369:デフォルトの名無しさん
21/02/07 19:38:47.51 9kVjsnaW.net
もしかしてstructをというのは、FOPではなくオプション用のstructを用意するという話か

370:デフォルトの名無しさん
21/02/07 21:18:42.15 7CsMj5zJ.net
>>359-360
どもども
サンプル見ても、準備する関数とか増えるから
スコープのためにimportのためにディレクトリのネストもう一個深くしないときついかなとか
色々めんどくさそうだった
>>362
そういうことです
手法として
・そもそも関数を別に切ってしまう(一番簡単だけどメンテがめんどい)
・引数を関数のために定義したstructのポインタにする
・FOP
という3つが挙がってた


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch