【Go言語】 webapp GO Part1 【Golang】 [無断転載禁止]©2ch.net

1nobodyさん2016/07/27(水) 12:46:23.51ID:???
Go言語によるWebアプリケーション開発を語るスレです

公式
https://golang.org/
公式日本語訳
http://golang-jp.org/

チュートリアル
https://go-tour-jp.appspot.com/welcome/1

529nobodyさん2018/11/21(水) 00:41:26.97ID:???
go modulesめっちゃ便利やな
GOPATH関係なく動くのが本当にいい、開発時に嫌だった制限がとうとう無くなってハッピー

530nobodyさん2018/11/21(水) 13:18:13.86ID:???
>>529
確かに便利だわ。

531nobodyさん2018/11/25(日) 08:45:28.23ID:???
GAEのstandardも1.11からurlfetchとかが消えてハッピー
ベータとれたらやっと人に勧められるわ

532nobodyさん2018/11/25(日) 17:46:50.73ID:FjjYMFcI
すれち

533nobodyさん2018/11/29(木) 19:57:53.03ID:???
ええねん

534nobodyさん2018/12/05(水) 21:37:33.96ID:???
GAE/SEのGo言語でgRPCするためのベストプラクティスってある?
それをまとめたWAFがあると理想なんだがなぁ

プロジェクト
└ サービスA: GAE/SE Node.js Nuxt.jsでSSR
└ サービスB: GAE/SE Go言語 サービスAからのリクエストを処理するAPIサーバ
   gRPC(Twirp)を使いたい

535nobodyさん2018/12/06(木) 16:18:01.66ID:???
TwirpってことはHTTP/1.1なREST使いたいんだろ?
双方向通信やストリームを使わないのであればgRPCよりも
GraphQLのほうがいいと思う

nuxt.jsとGraphQLを組み合わせてサービスAに統一するほうがいいぞ
nuxt.jsのserverMiddlewareでフックしてGraphQLのエンドポイント出すだけ
https://qiita.com/takanorip/items/d1e8618800d951780f4b

536nobodyさん2018/12/06(木) 16:35:59.11ID:???

537nobodyさん2018/12/07(金) 16:45:10.06ID:???
それならサービスBにプレーンなApollo-server(graphqlサーバ)デプロイして
サービスA(nuxt.js側)からクエリ投げてJSON取得する構成のほうがよくないか

せっかく境界つくるんだから疎結合にしとこうぜ
Microservice化して作業担当者の責任を明確にしたほうがいい
負荷に応じてインスタンスのグレードやインスタンス数を上げたり下げたり出来るメリットも生まれる

フロントエンド(SSR)担当のサービスA
バックエンド(GraphQL)担当のサービスB

スッキリするじゃん

538nobodyさん2018/12/07(金) 16:47:47.49ID:???
まぁ例のQiita記事はApollo-clientとNuxt.jsのやり方だから、Serverには触れてないけどな
>nuxt.jsのserverMiddlewareでフックしてGraphQLのエンドポイント出すだけ
これに対しての意見な
serverまでnuxt.jsに密結合させる必要はない

539nobodyさん2018/12/13(木) 19:15:46.58ID:???
GoでGraphQL(GAE)
https://outcrawl.com/graphql-server-go-google-app-engine
https://qiita.com/trrrrrys/items/44e839134af1a0155be2
https://tech.mercari.com/entry/2018/10/24/111227
https://github.com/99designs/gqlgen
>まず個人的な理由から。 筆者はGoogle App Engine/Standard Environmentの信者であり、
>それ以外のプラットフォームを使う気は今の所ありません。

いま日本企業で一番、エンジニアの採用に力入れまくってる
最先端ベンチャー企業の社員がここまで言い切るってことは
今後はGAE/Go注目かもしれんな

540nobodyさん2018/12/13(木) 20:10:22.56ID:???
俺もGAE/Go信者やで
実はその他のPaaSやIaaSクラウドにはない魅力がGAE/SEにはある。
それは「1日の予算設定」だ。
GAE/SEだけ、EDDoS(エコノミックDDoS)で予期せぬ損害を被るリスクが低いのである。
予算使い果たしたらOver Quotaエラーでて終わり。サービスは停止するが破産は免れる。
他のサービスは予算ライン超えても警告メール出すだけで止まらない。
パケ・ホーダイのないスマホでYoutube動画を見るくらい恐ろしい行為なのだ。
資金力のない零細ベンチャーが、悪意ある競合他者から身を護るために有効な選択である。

541nobodyさん2018/12/13(木) 20:15:00.51ID:???
GAE/Node.jsとGAE/Goってどっちがスピンアップ早いのだろう?と思って調べたらこうなった

https://www.bunkei-programmer.net/entry/2018/06/13/232912
Go 平均0.495秒
Node.js 平均0.6516秒

Javaは問題外だな

542nobodyさん2018/12/15(土) 02:50:44.55ID:???
JavaScript界隈のエコシステムが羨ましくなってきた…
Nuxt.jsでSSR出来るのNode.js環境だけだし
パッケージマネージャーのYarnは高速かつ進捗表示が親切だし
(go get だと-vオプション付けても分かりにくい…)
GraphQLもApollo Server楽ちんだしドキュメントもわかりやすい

Go言語だとスキーマ定義が冗長だったり(graphql-go)
プレーンで可読性の高い定義ファイルから自動作成できる便利なgqlgenは
gqlgenコマンドバイナリが何かトラブってdeplicatedになってるし
いまいちすっきりしない

543nobodyさん2018/12/18(火) 09:20:26.43ID:???
jsみたいなコンパイラ通さない言語はテストが大変すぎて使いたくない
ほんのちょっとしたものを作るのはいいけど規模がでかくなると苦痛のほうが遥かに大きくなると感じてる

544nobodyさん2018/12/18(火) 11:36:20.02ID:JJQIQpAB
巨大なプログラムを書けない人はセンスが無いだけ
そういう人はコンパイラ使っても破綻する

545nobodyさん2018/12/18(火) 14:35:53.36ID:???
頭悪そうなレスだな
出来る出来ない論じゃなくて?

546nobodyさん2018/12/18(火) 14:44:00.82ID:6hLBEu5w
くゃしぃのぅ

547nobodyさん2018/12/19(水) 08:10:03.07ID:???
>>543
Typescriptあるやん

GoにはGoの良いところがあるから心配するな

548nobodyさん2018/12/19(水) 08:26:43.93ID:???
https://github.com/prisma/prisma/issues/1708

prisma/prismaはいつGoogle Cloud Datastoreに対応してくれるんだい?

549nobodyさん2018/12/19(水) 13:01:57.24ID:???
何事も適材適所

550nobodyさん2018/12/21(金) 17:40:38.03ID:???
(1)Google App Engine Datastore
 import "google.golang.org/appengine/datastore"

(2)Google Cloud Datastore
 import "cloud.google.com/go/datastore"

(3)Google Cloud Firestore
 import firebase "firebase.google.com/go"

この関係が複雑で分かりにくい
将来的には(3)からbetaが取れて本流になるんでしょ?
あとgo111の第二世代GAE/SEと旧世代のコードが分散してて辛いな
最新の情報はここを見て!という道標が欲しい
公式ドキュメントは散らかりすぎてて訳わからない

551nobodyさん2018/12/21(金) 18:27:37.09ID:???
(3)Google Cloud Firestoreは、betaなので東京リージョンが存在しない。
(2)Google Cloud Datastoreは2019年中に自動で(3)にアップグレードされる
おそらく(1)も?

Firestoreの裏側にはSpanner(単独で使うとめっちゃ高い)がある。
またDatastoreモードとNativeモードがある。

Datastoreの裏側にはBigtableがある。旧世代の制約はここから来てる。

FirestoreがGAになったらDatastoreは用済み。
Firestore Native Modeのほうがいいならbetaであること、東京リージョンがないことを覚悟して使うべし。

552nobodyさん2018/12/21(金) 20:39:50.45ID:???
spanner使ってるけどつらみがある

553nobodyさん2018/12/21(金) 20:45:16.43ID:???
それは課金額が原因?

554nobodyさん2018/12/21(金) 22:10:40.26ID:???
原因不明のabortが多いのよね

555nobodyさん2018/12/21(金) 22:17:09.89ID:???
なるほど

556nobodyさん2019/01/17(木) 09:46:08.24ID:???
Get Go-ing with Cloud Functions: Go 1.11 is now a supported language | Google Cloud Blog https://cloud.google.com/blog/products/application-development/cloud-functions-go-1-11-is-now-a-supported-language
いいぞ!

557nobodyさん2019/01/18(金) 04:30:31.82ID:???
GraphQLの定義ファイル書いてCUIでコマンド打つだけで
Google App Engine / SEで動作するwebアプリケーションが
完成するシステムを開発して欲しい

誰か頼むよ
マッツン、わかめ氏よろしく

558nobodyさん2019/01/20(日) 04:49:21.26ID:???
Golangの魅力って結局なーに?

559nobodyさん2019/01/20(日) 06:39:51.80ID:???
Go! Go! Go!
And goes on!

560nobodyさん2019/01/21(月) 14:55:52.56ID:???
>>558
GAE/SEで動かせる言語の中でスピンアップが一番高速
これが最大のメリット

Java→クソ遅い、10秒かかる
PHP、Python→普通
Node.js→やや早い
Golang→チョッパヤ

スピンアップが早いのでインスタンス寝かせておいてもすぐ反応できる
(課金節約)

○○砲などのアクセス殺到スパイクが来てもスピンアップが早いので瞬時にスケールする
他のIaaS、PaaSは割と遅い

561nobodyさん2019/02/13(水) 22:23:43.04ID:???
gaeでgo動かしてるんですが、jsonpayload形式でログって出せないですか?

562nobodyさん2019/02/16(土) 11:33:48.92ID:???
くさあっ

563nobodyさん2019/02/25(月) 18:12:34.48ID:???
Goのwebasmって最小でも2MBって馬鹿なの死ぬの?
この大きさってなんの意図があるんだろう

564nobodyさん2019/02/26(火) 08:12:51.23ID:???
ランタイム込みだからじゃないの?

565nobodyさん2019/03/15(金) 12:55:04.13ID:???
Go失速したのかissueマネージメントやら方向性の意思決定に難があるようだな
このまま使い続けて大丈夫だろうか

566nobodyさん2019/04/12(金) 19:50:46.69ID:???
112の話題ないのか。

567nobodyさん2019/06/13(木) 17:13:44.89ID:???
Goって流行ってるのか流行ってないのか分からん

568nobodyさん2019/06/13(木) 19:00:58.72ID:sNO2gI7W
Dよりはhot

569nobodyさん2019/06/15(土) 00:09:41.59ID:???
>>565 氏が難が無いようにしてくれれば、このまま使い続けても大丈夫ですよ!

570nobodyさん2019/06/22(土) 12:11:01.71ID:???
いわゆる声の大きいstaticおじさんたちにissue占拠されて進化しなくなったな…マジで何とかしてくれ!

571nobodyさん2019/06/25(火) 11:17:31.68ID:???
みんなのGo言語改訂されるのか。
Goの書籍少ないから買う。

572nobodyさん2019/06/27(木) 16:31:49.18ID:???
GraphQLとGo言語をテーマにした専門書が欲しいわ
今は学習ソースへのアクセスのしやすさでNode.jsを選びがちになってる
SSRはNode.jsしか出来ないのでそのアドバンテージもデカイ

573nobodyさん2019/07/02(火) 14:26:18.83ID:???
macでgoenvを使って最新の1.12.xをインストールしようと思ったら一覧に出てこないのですが何か理由はあるのでしょうか?
goenvは1.23.3です。

574nobodyさん2019/07/03(水) 11:39:33.06ID:???
>>573
goenv v2 で対応される予定だけど、まだそれがβだね。
https://github.com/syndbg/goenv/releases

急ぎの場合はHomebrewとかじゃなくて、直接masterをチェックアウトすると良いよ。

575nobodyさん2019/07/03(水) 18:17:34.42ID:???
>>574
なるほど、ベータか、、、
無理に最新を追いかけないのがいいかな。
ありがとうございます。

576nobodyさん2019/07/30(火) 20:33:33.54ID:???

577nobodyさん2019/07/31(水) 09:49:28.21ID:???
>>574
試しに入れてみた。
やっと1.12で開発できるぞ。

578nobodyさん2019/08/01(木) 10:54:45.06ID:???
あのエラーハンドリングDraftが提案されてからもう1年くらい経つが
結局どうなったのかGitHub覗いたら話がまとまるどころか別提案が乱立してた!

えぇ・・・

579nobodyさん2019/08/03(土) 13:13:58.46ID:???
アクティブなErrHandling提案を分類すると4つくらいかな?類似提案多すぎで追いきれん他にもありそう

a. 公式draftみたいなHandler独立定義タイプ
b. try等の制御キーワード導入で関数コール前に置くタイプ
c. @や!や?等の制御記号をerr変数前後に付与して処理に繋ぐタイプ
d. val := func() onerror(err Error) { ... }みたいな後置ブロックタイプ

aにはそもそも何だったかの不備があって提案が乱立した経緯があるけど
bは他言語の失敗から見ても今更感で大多数が反対
cの記号導入はperl等々のスクリプト言語みたいにsigil,twigilと複雑化していずれ初見殺しになるからGo wayじゃないという反応
dは次の行にif err != nilを書くのと大差なくてerr戻り値が末尾側に固定されるデメリットが増えてるだけと指摘

フロー制御とは別にError型のほうも雲行き怪しいね

新着レスの表示
レスを投稿する