[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/22 10:01 / Filesize : 319 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Go language part 4



1 名前:デフォルトの名無しさん mailto:sage [2020/11/16(月) 04:14:40.64 ID:fB5+0hxC.net]
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。

公式
https://golang.org

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

公式外パッケージドキュメント
https://godoc.org

ブラウザ上で試し書き
https://play.golang.org


※前スレ
Go language part 3
https://mevius.5ch.net/test/read.cgi/tech/1571315884/

103 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 21:24:09.33 ID:7G4VCfLW.net]
>>99
いやそれはバックエンド限定の話だぞ。
なおフロントエンドなんて言うまでもなくJSの一強だ。その下をつつけば出てくるが、以下。
https://w3techs.com/technologies/overview/client_side_language

前も思ったが、お前ら違う世界に生きてるよな。

104 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 21:29:36.25 ID:r9GjlBBW.net]
この辺りを読んでおけばいいんじゃない

Go Case Studies https://go.dev/solutions#case-studies
Go Use cases https://go.dev/solutions#use-cases

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

実際、PHPでそんなのやってないだろ。多すぎて無理だし。

106 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 21:42:04.93 ID:r9GjlBBW.net]
中身1文字も読んでないだろw

107 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 22:03:31.19 ID:uSTcEold.net]
>>102
フロントエンドはフロントエンドサーバーのことだよw

クライアントサイドがJSなのは当たり前
こんな話が通じないとは確かに違う世界に生きてるな

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

109 名前:デフォルトの名無しさん [2020/11/21(土) 22:39:09.79 ID:N6OL6Sv5.net]
>>95
FFって何?w

110 名前:デフォルトの名無しさん mailto:sage [2020/11/21(土) 22:44:11.34 ID:mMQUj5g8.net]
>>107
冗談抜きで知らないんだね

フロントエンドってのはアプリのプレゼテーションレイヤーのこと
プレゼンテーションレイヤーを管理するサーバーがフロントエンドサーバー
Webアプリなら基本的にWebのUIを返すサーバー

クライアントサイドとの違いが理解できたかな?

111 名前:デフォルトの名無しさん [2020/11/21(土) 22:53:03.99 ID:YDtC2x5c.net]
>>109
そういうのは99.99%の人はBFFと言う。
BFFのfor Front-end、これなんのことか分かる?w
クライアントサイド、ブラウザで動くJSのことだよバーカwww

あのさあ、フロントエンド、なんて一般的な英単語なんだから分野によって指すものが違うのは当たり前なわけよw
例えばコンパイラ構成にもフロントエンド/バックエンドって用語は使われるわけ。
コンパイラ構成の文脈で「バックエンド?ああサーバーのことね!」なんて文脈無視した理解する馬鹿はいないわけ。普通。
ところがここにいたわけ。それがお前wwwww
Webの分野ではフロントエンドはクライアントサイドのことなんだよバーーカwwwww
さすがに腹痛ぇわwwwwwwww



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

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

114 名前:デフォルトの名無しさん mailto:sage [2020/11/22(日) 00:57:12.00 ID:XUuDe+rV.net]
BFFはAPIをホストするところであってUIをホストするところじゃない

クラシックな3階層に当てはめるとアプリケーションサーバーの一部

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

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

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

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

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

120 名前:デフォルトの名無しさん mailto:sage [2020/11/23(月) 00:51:47.46 ID:nsFhHMUZ.net]
メルカリの人のプレゼンとか見てみなよ
フロントエンドをどういう意味で使ってるか分かるから
https://youtu.be/zYAt569F9qA?t=1057

121 名前:デフォルトの名無しさん mailto:sage [2020/11/23(月) 11:58:12.66 ID:I/OioR1r.net]
イテレータ、技術的負債、フロントエンド/バックエンド

お前ら一般常識知らなすぎ



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

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

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

125 名前:
Grazie milleは何語だろう?
千のありがとう→Thanks a lotみたいな意味だと思うけど…
[]
[ここ壊れてます]

126 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 19:40:17.08 ID:/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 名前:デフォルトの名無しさん mailto:sage [2020/11/28(土) 20:39:03.39 ID:NVwbGZ0v.net]
>>124
前半は、そんなエラーにはならない
https://play.golang.org/p/A3Qg-byXg0p

後半はdataBを使用する部分を書いていないだけ

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

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

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

131 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 03:32:25.87 ID:kDI+DBO4.net]
めちゃくちゃ腹立わ
Go推すまで密林不買だな

AWS、プログラミング言語「Rust」を重視する理由示す--エンジニア採用中 - ZDNet Japan
https://japan.zdnet.com/article/35163089/



132 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 06:13:35.60 ID:XaRGN9iL.net]
GoとRustは利用分野が違うから関係ないよ

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

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

135 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 20:16:43.83 ID:XaRGN9iL.net]
>>131
関数呼び出し機構が違うため、Goにはドライバなど低レベル処理が書けない
その代わりにGoは超軽量なgoroutineと可変なスタックを手に入れた

これによりWebAPIなどサーバプログラムで数百万の同時接続でもヘタレない性能を叩き出す
プログラム内プロセスと言えるスレッドに並列処理を頼る他の言語ではメモリ消費の問題で、この性能を求めるのは非現実的
コンテキストもデカけりゃスタックもデカいため

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


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

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

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

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

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



142 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 04:04:40.95 ID:AM6MusHZ.net]
>>136
答えとしてはGinかRevelと思うけど
実態は>>138の通り

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

144 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 07:51:23.78 ID:xomfKp6r.net]
>>140
趣味レベルならばオススメできない

Pythonは拡張に拡張を重ねた巨大な仕様で一つのやりたいことに色々な書き方ができるので、初心者でも自由に書ける言語
専業プログラマーでない研究者でも楽に望むままのプログラムを書けるため、利用者が桁違いで膨大なライブラリが日々作られ続けてる


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

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

146 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 11:22:36.96 ID:xomfKp6r.net]
JSON返すWebAPIが大の得意だからwebページの用途に関してはブログを書く気がないんじゃないかな?
webページでは画面遷移は控えめにシングルページ主体で、JavaScriptによってセッションキー付けてWebAPI叩けば用は足りるだろうという推測

これは一般的に聞いた話ではなく、自分がstrutsページ遷移とかでセッションのデータを管理するのが大変なんで、なるべく使いたくないなーと思ってるための希望的妄想なのですまない

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

148 名前:デフォルトの名無しさん mailto:sage [2020/12/09(水) 01:20:46.40 ID:WuZTb4kZ.net]
ふざけたもん勧めんじゃねえぞゴルァ!!

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

150 名前:という点で、弱小サーバをどう使うかという観点でも有望な気がする []
[ここ壊れてます]

151 名前:デフォルトの名無しさん mailto:sage [2020/12/09(水) 08:42:06.56 ID:wV8nhMqi.net]
>>146
ちゃんと読んでないけどHugo使えば?



152 名前:デフォルトの名無しさん mailto:sage [2020/12/09(水) 22:44:22.66 ID:1fNUcYVK.net]
>>147
こんなのあったのね…
もうオレオレでデータ入力用の管理サイトと、
構造化してリンクとか全部付与してサイト生成する部分まで作っちゃってる(´・ω・`)

まあ言いたかったのは少なくともPerl(+cpanm)よりも貧弱な環境で動きそうということ

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

154 名前:デフォルトの名無しさん mailto:sage [2020/12/09(水) 23:40:59.80 ID:jODQKuwy.net]
> lispよりも強力なマクロのあるJulia

これ本当?

155 名前:デフォルトの名無しさん mailto:sage [2020/12/10(木) 07:24:30.41 ID:0VEO1tgk.net]
最強のマクロったら gcc の inline ではないだろうか?

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

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

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

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

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

161 名前:デフォルトの名無しさん mailto:sage [2020/12/10(木) 21:16:06.92 ID:YXjbRyJb.net]
デフォルトで変数捕捉しません。
させたいときはエスケープする。



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

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

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

165 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 20:15:55.93 ID:i7+Pb2PU.net]
来まちゅよ!

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

167 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 00:32:21.22 ID:V5v4lW7x.net]
int64をuint64に変換する簡単な方法って無い?
当然に収まらないからマイナス値はif文で0にしてあるものとする

何が困ってるかと言うと、ファイルサイズはosパッケージではint64なのに、zipパッケージではuint64なんで

もう面倒なんで、文字列にしてハイフン取っちゃおうかな

168 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 02:18:12.88 ID:1g8P/X2h.net]
GOでRSSリーダー作れましゅか?

169 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 02:28:39.75 ID:V5v4lW7x.net]
httpで読み込んで
https://qiita.com/ytkhs/items/948f516ec82c82eaa882
とかXMLパースするだけだろRSS

JSONは要素のコメントなし

170 名前:ナ読み込む機能はあるけど、XMLはどうだったか知らん
名前空間も
[]
[ここ壊れてます]

171 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 02:33:15.75 ID:RtMOGcGM.net]
>>163
uint64() じゃダメなん?
https://play.golang.org/p/hwbSw8-k3Fn



172 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 02:48:56.92 ID:V5v4lW7x.net]
>>166
orz 組み込み関数見落としかぁ

173 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 14:24:43.55 ID:RBQoQqxa.net]
そういう次元の話じゃない
せめてググろう

174 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 15:04:34.66 ID:V5v4lW7x.net]
Go製のrssリーダーはすでに幾つかあるが、作れるかであって使えるかじゃないから、自作する話だと判断するのが妥当

rssの要素技術はhttpとXML
rssのURLをブラウザで叩けば最低限読めるのだから、他に必要な技術はない
作れるかと聞かれているのだから、要素技術をサポートしているか、という質問だと判断するのが妥当なのでは?

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

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

177 名前:デフォルトの名無しさん mailto:sage [2020/12/18(金) 22:04:00.43 ID:+Wrhvh6s.net]
GOってもしかして人気無い?
2〜3年前と比べて下火になってる?

178 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 00:17:10.67 ID:TNlruc2Y.net]
go routineって windows APIで言うと単なるファイバーだったのね。何か昔に戻った見たい。
それなら、パフォーマンス気にする処理なら自分でスレッドとメッセージループでしっかり組んだ方が早いし確実だと思った。

初期のgo routineの中でビジーループすると他の処理が全部止まるってのも笑えたし、最新のgoでの改善策はAPI呼び出した時にディスパッチされますって。プリエンティブ無しの初期のRTOS見たいな動き。VBAのdo procだっけ、ループ中に他の処理動かすやつ。あれと同じ。

179 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 00:39:26.57 ID:x1EY5aRu.net]
そう、劣化Erlangなのだ!

180 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 00:52:20.88 ID:tyWP7Wcq.net]
じゃあGo捨ててErlang/Elixirを学び直すんですか?
貴方、正気ですか?

181 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 08:38:32.21 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/12/19(土) 08:51:06.40 ID:U4dyNzHj.net]
>>176
1.14.13まで上げたけどダメ
他のプロジェクトでは問題なし(解せぬ
go env GOPATH ではちゃんとパスが通ってる
setting.jsonは共通

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

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

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

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

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

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

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

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

191 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 12:06:57.91 ID:Dsr91pCp.net]
>>185
都合というより明らかに手抜きで



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

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

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

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

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

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

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

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

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

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



202 名前:デフォルトの名無しさん mailto:sage [2020/12/20(日) 23:04:35.11 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/12/21(月) 00:48:28.58 ID: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はプロセスから見たらスレッドの方が軽量って事で性能面は見過ごされて来た歴史がある。組込みシステムはリソース命だからかなり初期からスレッドの高コストはしっかり意識してモノ作りしている。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<319KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef