TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
ソース表示禁止
【PHP】フレームワークPharonスレ
PHP+MySQL掲示板作ろうぜ
ソース表示禁止
PHP を流行らせるには
オマエラPHPで掲示板つくれませんか?
WordPress(ワードプレス)でWebProg 質疑応答スレ 01
Perlなんですが・・・
ファイルメーカーでどこまでできるウェブアプリ!
GoogleAPIってどうよ?

【Go言語】 webapp GO Part1 【Golang】


1 :2016/07/27 〜 最終レス :2019/11/30
Go言語によるWebアプリケーション開発を語るスレです

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

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

2 :
主要なWAF一覧

Revel
https://revel.github.io/

beego
http://beego.me/

Goji
https://goji.io/

Gin
https://github.com/gin-gonic/gin

martini
https://github.com/go-martini/martini/blob/master/translations/README_ja_JP.md

3 :
初心者向けGo言語のイ・ロ・ハ!!〜Goを採用している2社がノウハウ大公開|ヒカ☆ラボレポート
http://time.levtech.jp/article/a-report-intelligence_talknote_20150831/

Go言語を学びたいエンジニア必見の記事・スライド12選
https://career.levtech.jp/guide/knowhow/article/65/

4 :
改訂2版 基礎からわかる Go言語、古川昇(エイベル)、2015

翻訳プロジェクト、公式サイトの日本語訳
http://golang.jp/

5 :
そういやGoogle Devfest 2010に参加したときに
GopherのTシャツ貰ったな

https://sites.google.com/site/devfest2010japan/

6 :
golang および go言語の注目度(検索ボリュームの推移)
https://www.google.co.jp/trends/explore#q=golang%2C%20go%E8%A8%80%E8%AA%9E

7 :
「メルカリ アッテ」を支える Google App Engine と Golang
https://speakerdeck.com/ttsuruoka/merukari-atute-wozhi-eru-google-app-engine-to-golang

8 :
GAE/GO専用のフルスタックWebフレームワークってないの
JavaのSlim3みたいなのがいい

9 :
あとGAE/PythonみたいなGUIワンボタンでデプロイできるツール欲しい

10 :
https://seleck.cc/article/363
>MIIDASは新規開発のプロジェクトなので、開発言語をいくつかの候補の中から検討しました。
>正月休みにメジャーな言語をはじめ、RustやElixirなどの新しい言語もさわってみてどれを使うのが良いのか考えました。
>結果としては、MIIDASではGo言語を使うことに決めました。
>自分でさわってみて「これは流行るな」と確信したというのが一番の理由ですね。

11 :
触ってみたけどオブジェクト指向になれてると違和感あるな

12 :
class Dog {

13 :
途中送信してしまった

class Dog {
 Name string
 func Bark() string{
  return "bow-wow"
 }
}

どうしてもこう書きたくなる

type Dog struct{
 Name strig


func (d *Dog) Bark() string{
 return "bow-wow"

14 :
上のgoの書き方だとメソッド定義が離れすぎててもにょる

15 :

いいタイミングで立ったな
>1 もつ

16 :
いいね
https://developers.eure.jp/tech/go-appengine-sql-waf/

17 :
LL言語だと負荷が増えた時にボトルネックになりそう

最初からポストC言語と呼ばれる高速なGO言語を使えばいいんじゃね?

資金的余裕がある大手BtoCベンチャー企業での採用例が急増
利用事例が増えスタートアップ企業での採用も急増(寄らば大樹の陰)
RubyやPHPでかかれた既存webアプリの一部分だけをGo言語で書き直す企業が急増

ワイ「Go言語がこれから来る!!」 ←いまここ

18 :
おだてたら調子に乗りやがるな

19 :
go高速なんか。出た当初はjava程度だけど、コンパイルがクソ早いってのがウリだった記憶。

20 :
gokiburi language

21 :
GO is GOD

22 :
https://www.amazon.co.jp/dp/B01FH3KRTI
Kindle Unlimited:読み放題対象

月々980円で技術書読み放題
これはいいな

23 :
飛行機落ちそう
いやな予感しかしない

24 :
IT関連は今のところ、ほぼその本出してる翔泳社だけかな?
アメリカの方探してみたけど、そっちはどこも参加してない気がする。

Purpose
Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes.

https://github.com/golang/lint/blob/master/README.md

golintのreadmeでは、上のような説明になっていた。

こういう記事を参考にしてみるといいかも。
http://blog.amedama.jp/entry/2016/03/31/222050

25 :
Golangを初めて本番投入したぜ!
http://blog.yusuke.be/entry/2016/01/18/111838

PHPとGoって何が違うの?LIGが自社サービス開発にGo言語を採用したお話
http://liginc.co.jp/284306

ここ最近になって急に採用しました記事増えたな
キャズムを超えられたのか

26 :
昨今のwebサービスはスマホアプリ化する必要がある
スマホアプリだとUXの関係でSPA(SinglePageApplication)にするのが望ましい
バックエンドはAPIサーバとしてJSON吐き出すだけでいいので
この性能が高いGolangが選ばれるようになった

27 :
Erlangだろ

28 :
>>26
JSONならRuby on Railsも得意なんすわ

29 :
得意(ドヤ)ってあほですか

30 :
http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=json
Go 215,078
rails-stripped-jruby 6,765

31 :
相手が最も得意な分野で勝負を挑んじゃダメでしょ
Railsはチュートリアルの豊富さ、学習コストの低さ、昨今のRailsライクなWAFの原
型となった功績を売りにするべき

32 :
役目は終わった(ドヤ)

33 :
>>31
いやいや

てめーらの100倍の速度でコーディングしてサービスをローンチできるから

34 :
In Go HTTP handlers, why is the ResponseWriter a value but the Request a pointer?
(GoのHTTPハンドラはなぜResponseWriterが値で、Requestがポインタなの?)
http://stackoverflow.com/questions/13255907/in-go-http-handlers-why-is-the-responsewriter-a-value-but-the-request-a-pointer

なるほどね

35 :
>>33
くそわろた

36 :
AWS Lambda(FaaS)のサポート言語に入ってないのが致命的だな

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html
>AWS Lambda がサポートするいずれかの言語(現在は Node.js、Java、および Python)でコードを指定するだけです。

https://cloud.google.com/functions/docs/writing/
>Google Cloud Functions are written in JavaScript, and execute in a Node.js runtime.

今後のトレンドはサーバレスになるの確定してるから、せめてGCFだけでもいいからGolangに対応してもらいたいところだ

37 :
メルカリの会社がGAE/Go使ってるんだっけ
https://news.thepedia.co/article/400/
>今回「アッテ」でGoとGoogle App Engineを使って非常に良かった。Goは非常に有力なウェブアプリ開発手段だと思う。
>また、Google App Engineに触れて、PaaSの時代が本格的に始まってきたと感じた。
>PaaSエンジンは今までもHerokuなどあったが、その中でGoogle App Engineが突き抜けて優秀だと思う。
>Google App Engineは毎日のようにアップデートもされていて非常に便利。

PaaSも悪くないよ

38 :
Ruby on railsからこちらへ乗り換えるメリットはありますか?

39 :
マルチうぜぇ
人に聞かなきゃ判断できないレベルの奴には
メリット一切無いから
おとなしくrails使ってろよ

40 :
GolangはWAFのデファクトが決まってない&WAFに関連した日本語文献が少ないところが問題
これだとRails使い(PHPerの後輩たち)には扱いきれない

41 :
あっちに貼るのはもったいない

Twitch
http://postd.cc/gos-march-to-low-latency-gc/
メルカリ アッテ
https://speakerdeck.com/ttsuruoka/merukari-atute-wozhi-eru-google-app-engine-to-golang?1465432438114=1
Dropbox
https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/

42 :
今からGolang使ってWebアプリケーション作るとしたらGAE/Goがいいの?
PaaSを選択すればインフラ周り丸投げできるしメルカリアッテの実績があるから
是非ともやってみたいのだが、全文検索するだけで課金されるのがモニョっとする

メルカリアッテの検索部分は何をつかってるのだろう

43 :
資料に書いてあったか
DAU100万で費用200万
そのうち28%がSimple Searches

DAU100万ってことは月間PVは最低でも3000万
広告がビジネスモデルだとCPMはおおよそ100円程度なので
月300万〜の売上

ちと厳しい気もする

44 :
Railsから、Goへ変えるなんてのは、Git Hub みたいな大規模サイトの話だろ

中小企業では、アプリの速さより、開発・保守費用を優先すべし

45 :
>>44
一日に4000UV
80000PVの俺のRailsサービスではクソおもかった
まぁ日曜プログラマだから
アマチュア同然なんだけどね

46 :
アプリの速さはAWSインスタンス費用に直結するからなぁ
Golangの開発・運用・保守費用はRailsより安いぞ
シングルバイナリだからデプロイ高速だし

47 :
GAEのErlangバージョンまだー
ちんちん

48 :
https://cloud.google.com/appengine/docs/flexible/custom-runtimes/
>App Engine flexible environment で custom runtime を使えば、他の言語でもコードを書くことができます。
もう何でもいけるんじゃね?

49 :
Google App Engine for Goスレないの?

50 :
ここでいいんじゃね

51 :
その辺のレンサバで使える?

52 :
今時レンサバ使ってる奴いるのか
転送量青天井が怖いからサクラVPS使う奴はいるかもしれんが
大抵はクラウド(AWS)じゃないの

53 :
GAEです

54 :
goって後発な割にnull安全じゃないけど
なんか理由あるの?

55 :
Java だって nullpo exception 出すぞ

56 :
この場合のnull安全というのは
nullが代入不可な変数が作れる言語を指してる。

57 :
Kotlinの、null許容型 a?、非null型 a とかだろ

自分でそういう関数を書けばいい
if(null == x){
a_? = x;
}else{
a = x;
}

58 :
go言語で作られたアプリで素晴らしいものを教えあおうではないですか。
とりあえず

micro
peco
hugo

が自分の中でよく使うしいい感じなアプリです。

59 :
golangのwebフレームワークって何がいいのだろう
どうせならgoogleが作ってくれないかな
泡沫WAFは気がつくとアップデートなくなってたりするから怖い

60 :
>>52
会社はAWSパートナーで俺も一番簡単な資格持ってるが個人で青天井は怖い&そんなに金出したくない
さくらVPS(1000円弱)とかでGO使ってるの見るからそれでいいんじゃね

61 :
メルカリアッテの実績あるし
GAE/Goでいいんじゃないの
確か課金予算決められたはず

62 :
GAE/Goの場合、標準ライブラリ以外でやると即効で詰むんだが何とかならんか
echo使いたくてもエラーでbuildできない

63 :
ginだと割りとすんなりいけるぞ

64 :
>>63
どんなエラー出るの?

65 :
go-app-builder: Failed parsing input: parser: bad import "syscall" in 〜
だな
GAEだとsyscall使えないせいかね

66 :
メルカリアッテのパワポみると
・どんなフレームワークを使う? → net/http
って書いてあるのな
これだと俺々フレームワークになってしまい、再利用性が著しく悪化するのが目に見えてるから
GAE/Goに特化したWAFが欲しいところだな…

67 :
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00  ニコニコ生放送
lv286846512

68 :
>>66
というかechoってsyscall使ってるんか。
gae/goへの対応して欲しいなー。

69 :
というか echo gae/go で検索すると使ってる例が結構出るんだけど

http://qiita.com/naoki_koreeda/items/8c818a3e9f6138ddbb87
とか
なんか間違えてないか?

70 :
ニコニコ見逃した

71 :
勉強会というよりただの発表会だった
たぶん勉強にはならない

72 :
あらまあ

73 :
ぷっ

74 :
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja

75 :
EDoSが怖いので課金上限設定が出来るGAEで画像掲示板を作ろうと思うんだが
AWSで運営して青天井になるよりこっちのほうがいいよね?
識者の見解求む(今のAWSは上限設定できるよ!などの情報あったらお願いします)

76 :
yes

77 :
ありがとうだぜ
しかしEDoSの脆弱性を指摘されながら
未だに課金上限設定が出来ないAWSって何なんだろうな

破産しそうな金額請求されるくらいなら、自動的にサービス停止してくれたほうがいいのに…

78 :
>>77
普通は監視してるからある程度アクセスがあればわかるっしょ。

79 :
GAE/GoでWebpushのサイトを作ってみた。意見を聞かせてくれ。
巡回しているサイトがかたよっているとかいうのは無しで。

https://matopush.appspot.com/

作ってみた感想。
・goonが便利だった。

80 :
>>79
もっと一般向けにしてくれないと試す気にもならないよ……

81 :
一般的...。深読みすると利用者がサイトを登録できるようにすればいいのかな

82 :
>>62
http://qiita.com/koki_cheese/items/9d1c2e4e41281f4ab440
>追記 2016/11/17
>最新のechoではこの記事の内容は動作しません

https://github.com/labstack/echo/issues/616
>Failed parsing input: parser: bad import "syscall" in github.com\mattn\go-colorable\colorable_windows.go from GOPATH

たぶんこれだな
このk2wanko氏とメイン開発者のやりとりで一時はFixされたはずなんだが
他の開発者の大半がGAEのことなど気にかけてるわけもなく
バージョン新しくなった際にまた問題が復活してしまった可能性がある

実際、俺も

83 :
途中送信すまぬw
実際に俺もecho on appengineをやろうとしたら、例のエラー出て進まなくなった
汎用フレームワークとGAEの相性はかなり悪いので
GAEを諦めるか、GAE専用の俺々フレームワーク作るほうが良いかもしれん

84 :
>>81
UI/UXデザインのほうだよ
プログラマにデザインセンスを求めるのは酷だから
出来合いのフレームワークを使おう
※BootstrapやFoundation等

http://foundation.zurb.com/
http://getbootstrap.com/

85 :
> 作ってみた感想。
> ・goonが便利だった。
これは俺も同感
というかGAE/Goのデフォルトが使いにくすぎる

86 :
https://cloudplatform-jp.googleblog.com/2017/01/tv-asahi-favclip-google-app-engine.html
GAE/Go事例みつけた
>特に最新世代ではベンダーからの薦めもあって、Google App Engine(GAE)/Go 環境に移行しています
>費用的にも「めちゃくちゃ減った(笑)」(中村さん)とのこと。具体的な費用は明かせないものの、最大で約 20 分の 1 程度になっているのではないかと語ってくれました。

すごいな、20分の1…
同じシステムをGAE/PythonやGAE/Javaで組んだら、どのくらい違うのだろうか?
Goだと実行速度早いからコスト削減効果も高い?

87 :
VPSで動かしてた個人ブログをGAE/Goに変えたら運用コストが0円になった
ドメインもappstore名義のまま運用だから0円
ひたすら放置するサイト運営にはもってこいだな
ただしAdsenseはGoogleのドメイン上では動かせないので、そこだけ残念

88 :
>84

サンクス。これから勉強するわ

89 :
GAE/Go上でwebアプリケーションを作る時に参考になる書籍がないなぁ
・ログイン、ログアウト(Googleアカウントに任せる場合、自分で作る場合の2つ)
・認証(JSON Web Token)
・JSONで出力
・テンプレートエンジンを使った出力(デフォルトのでいい?)
・ページング(Cursorと非同期通信を利用して動的に次ページを追加するUIの例)
・CRUD(goonを使う場合と、デフォルトとの比較があるといい)
・画像アップロード処理
・おすすめのWAF(Ginが良さそう?)
・課金額を節約するTips

これらを体系的にまとめた本が欲しい
だれか電子書籍(Kindle)で販売してくれんかね

90 :
>>83
俺の場合はコッチだったな
go-app-builder: Failed parsing input: parser: bad import "unsafe" in github.com/valyala/fasttemplate/template.go from GOPATH

ちょこっと直せば動くようになったwindows環境とmac環境でも違うのかもね

GAEはいろいろ問題あるんだねー

91 :
GAEとGinは相性いいぜ!
http://developers.mobage.jp/blog/gcp-next
>AndAppにおけるシステム構成概要
https://static1.squarespace.com/static/52aa8827e4b04dd8c2598a98/t/57da14685016e169d71da5c7/1473909874308/?format=750w
>これらは、すべてGAE SE上にモジュールを展開しており、開発言語はgolang、
>フレームワークにgin(一部echo)を利用しており、データストアには主にCloud Datastoreを利用しています。

92 :
CA、DeNA、メルカリアッテ
大手のGolang採用例が増えてきたな
GAEもやっと脚光を浴びるようになってきた

93 :
goで行列演算ならどのライブラリがおすすめ?
gonum/matrixかな

94 :
pure go のchainerが欲しいわ

95 :
Goで機械学習わりと流行っても良さそうなもんだけど何で流行らないんだろう教えてエロい人

96 :
深層学習やるならpythonになってしまってるね

97 :
ツールさえ揃ってれば乗り換えるだろ

98 :
そのツールを揃えようとする動きがないもんな

99 :
>>86
これ東京リージョン使ってないみたいだけど、その辺はどうなんだろ。

100 :
https://github.com/gonum/matrix/blob/master/mat64/dense.go#L16
すまん、Goの質問スレなかったからここで聞かせてくれ。これって何やってんの?

101 :
外人が作ったライブラリを使うだけの職業プログラマな俺には難しすぎるだ

102 :
リンクから飛ぶとうまく見えないけどL16からのところのグローバル定数のところが初心者にはよく分からんかった

103 :
denseがちゃんとinterfaceを実装してる確認じゃないかな?

104 :
http://ja.stackoverflow.com/questions/tagged/go
2chだと質問が埋もれて共有できなくなるから、SOFで質問するとええよ

105 :
C、C++、C#
Java、PHP、Ruby、Python、Node.jsといろいろ触ってきたけど
Golangに落ち着きそう

web用に整備されたC言語という印象が強い

106 :
>>103
なるほど?
まだわかってないけどありがとう

>>104
たしかに
ありがとう

107 :
>>106
goのinterfaceは
javaとかと違ってimplements interfaceみたいな構文が不要で
interfaceの条件を満たすメソッドさえ実装すればいい。
でもそれって逆に言えばコンパイルエラーにならないので
ちゃんと目的のintefaceの条件を満たすメソッドを実装しているか
チェックできないとも言える。

こういう書き方をするとinterfaceを満たさない実装をしていると
コンパイルエラーにしてくれるのでjavaみたくエラーから実装をチェックできるようになる。

108 :
ためになったわぁ
ありがとう
良スレの予感

109 :
>>107
詳しくありがとう!
自分で試してみた
https://play.golang.org/p/ysOxDFLINo

普段LLばっか書いてると躓くところ多くてなかなかスピーディにコード書けない・・・

110 :
GAE/goでaetestをつかってdatastore使おうとすると反映されないんだが
実際にtestにおいて実際にデータベースに保存処理したい場合どうすればいいの

111 :
>>110
自己レスです
このインスタンス使えば解決する模様

opt := aetest.Options{StronglyConsistentDatastore: true}
instance, err := aetest.NewInstance(&opt)
if err != nil {
t.Fatalf("NewInstance is failed.[%v]", err)
}
defer instance.Close()

112 :
GAE/Go専用のフレームワークが欲しい
Scaffoldで雛形作成できるタイプのを頼む
PythonだとFerrisあるじゃん?
http://ferris-framework.appspot.com/

Golangを手軽に実行できる環境があるならWAFも整備しないとね

113 :
GAE/Goで全文検索を実装する場合、GoogleのSearch API使うべきなの?
ぶっちゃけこれ、かなりコスト高いよね
GAEで実装されてる大規模サービスを見て回ると
Googleカスタム検索に丸投げしてるから気になった
(つまりSearch API使ってない)

https://cloud.google.com/customers/dopr/
>月間 PV が 1 億 3,000 万、MAU (Monthly Active User) 950 万に達するサイトを、 Google App Engine 上で構築、運用。

114 :
全文検索以外にもページングする時はCursor使わないとパフォーマンス落ちるから

<<[1][2][3][4][5]>>

こういうページングはご法度だし
GAEのSEは色々縛りあって辛いな…
SPAにしてプログレッシブな動的ページング
(次へを押すと非同期にデータ取ってくるページング)のほうが
UI/UXの観点で言えば優れているからCursorページングでも問題はないけど…
やはりGAEは上級者向けだ
自社サービスで使ってる会社を尊敬する

115 :
>>112
RevelをGAE/FEで動かせばいいんじゃね?
無料枠あるGAE/SEがいいなら自作するしかないな

116 :
Golangキャズム超えたか?最近の伸び率が凄い
https://www.google.co.jp/trends/explore?date=all&q=golang
中国、香港からの検索が多いのは何でだろう
Golangで何作ってんだ

117 :
http://golangtc.com/
http://studygolang.com/
中国にはGolang専用のコミュニティあるんだな

Why is Golang popular in China?
http://herman.asia/why-is-go-popular-in-china
>Google App Engine is also way more popular in China than anywhere else

調べによるとGAE/Goも人気らしい

118 :
https://beego.me/
中国人が開発したGolangのWAF、Beegoが人気あるみたいね
HuaweiやTencent Gamesで使われてるっぽい

119 :
GAE/Go対応もしてるな…
https://github.com/astaxie/beegae
>beegae is a port of beego intended to be used on Google's AppEngine.

ちょっと調べてみるか

120 :
昔goconで一緒になった中国人の人に話を聞いたけど
中国のスタートアップは初期の想定アクセス数が日本の10倍だから
1requestあたりのコストが低いgoが好まれるって。

121 :
なるほど、そういう理由があったのか

122 :
ここでechoとGAEの組み合わせが使えないって言ってたけど
glideをつかってfasttemplateのバージョンを固定すれば普通に使えるな。

- package: github.com/valyala/fasttemplate
version: 3b874956e03f1636d171bda64b130f9135f42cff

123 :
外部ライブラリが悪さしてたのか
https://github.com/labstack/echo/issues/824
これ見て納得した

124 :
goonでdatastoreを使ってる人に教えてほしいんだけど
ID int64 `datastore:"-" goon:"id"` もしくは
ID string `datastore:"-" goon:"id"` って設定してる時
指定したIDに対して自動採番ってどうしてます?
goon使わなきゃ自動的に適当なID振られるよね?goonでおまかせする方法を知りたい

125 :
>>124
すんません自己レスです
ID int64 `datastore:"-" goon:"id"`
を使ってれば自働採番するのね。stringだけ試してエラーになってたから
てっきりgoon使うと自動採番されないのかと。すいません。

126 :
あやまることはないぞ
Gopher目指して頑張ろう

127 :
2017年2月度
Golang WAFランキング(githubスター数基準)

01位 ★9,681 astaxie/beego
02位 ★9,098 go-martini/martini
03位 ★8,872 gin-gonic/gin
04位 ★7,887 revel/revel
05位 ★6,434 labstack/echo
06位 ★6,221 kataras/iris
07位 ★3,219 zenazn/goji
08位 ★2,799 hoisie/web
09位 ★1,403 go-macaron/macaron
10位 ★1,022 gobuffalo/buffalo

128 :
Beegoを調査した結果

初心者に優しい学習資料の提供(日本語)
https://github.com/astaxie/build-web-application-with-golang/blob/master/ja/preface.md
★14,018 astaxie/build-web-application-with-golang

ビデオを使ったチュートリアル
https://beego.me/video

Golang関係の資料が少ない中、質の高い教材を提供してくれてるようだ
GolangのデファクトWAFになりそうな予感する
スター数調査でも1位だったしな

129 :
>>127
スター数の多さがデファクトスタンダードとはいい難いけど。
昔からあるフレームワークだしそのスター数二番目のMartiniはメンテナンスされてない。

ドッチかというとechoじゃないの。新興のプロジェクトだけどスター数順調に増えてるし。

130 :
echoはGAE/Goと相性悪くね
Glide使ってバージョン固定とか面倒くさい

131 :
Windows10上でecho/GAE/Goやる場合
colorable_windows.goがsyscall使ってるのでgo-app-builderに弾かれる

対処するにはデフォルトのLoggerを使わないように、echo側に手をいれないといけない(面倒い)
https://github.com/labstack/echo/compare/master...k2wanko:fix-logger-for-gae

Macでは発生しないのでMac使えばいいが、世の中の人間が全員Mac使いではないから
GAE/Goやる人にechoはあんまりおすすめできないな

132 :
>>131
beegaeでも同じだよ
GAE/GoをWindowsで開発するのは避けるべき
殆どのフレームワークで不具合出る

133 :
GinだとWindows開発でもエラーが出ない
https://github.com/gin-gonic/gin/commit/60f66918f8a68dc817665cc7a38ba380d00a297c
エラーの原因である"github.com/mattn/go-colorable”を使うのをやめて
"github.com/gin-gonic/gin/binding”を使うように修正したようだ
特にこだわりがなければGinでいいと思う

まぁこの機会にMacユーザになってみるのもいいんじゃない?
誇張抜きでweb系エンジニアは8〜9割Macだし、今回のような不具合に遭遇する確率減るよ

134 :
mac買うよりdocker上でGAE/Goの開発環境動かすほうが現実的な気が

135 :
Docker for WindowsってHome非対応じゃなかったっけ?
場合によっては追加費用発生するな
Mac買うよりは安いけどさ

136 :
IDEないんけ?
VS並みとは贅沢言わん

137 :
>>136
おれはVisualStudioCodeにGoのplugin入れてる。
これが一番いい気がする。といってもsublimeとatomくらいしか比較してないけどね。
あとjetbarainsiがgoのideを開発中らしい
https://www.jetbrains.com/go/
まだ試してないのでぜひ人柱お願いします

138 :
VisualStudioCode使ってるよ
非常に快適なり

139 :
Atom使いにくいのに何故か人気あるよな
VScodeはMSの製品とは思えないほど洗練されてる

140 :
Vimじゃだめなんか?

141 :
>>139
プロキシ下でインターネットにつながらないバグはまだ修正されてないけどね

142 :
phpstormとrubymine使ってるからjetbrainのは楽しみだわ

143 :
>>141
http://qiita.com/cha2maru/items/427ea605e9518c347bb8
これのこと?

144 :
>>143
いや、0.17.2まではその設定で大丈夫だったんだけど、その後また駄目になったんよ

145 :
>>140
Vimでもいいけどgoの開発環境が一発で作れるやつ下さい

146 :
何か凄いの出てきたぞ
GAE/Goでも使いたいな

「もう従来DBかNoSQLか悩まずに済む」、Googleが基幹用RDB「Cloud Spanner」を発表
http://itpro.nikkeibp.co.jp/atcl/news/17/021500489/

147 :
>また、分散型トランザクション、スキーマ、DDLステートメント、SQLクエリー、JDBCドライバーなどをサポートし、
>Java、→→ Go ←←、Node.jsといった主要言語に対応したクライアントライブラリーを提供する。

> Cloud Spannerは、企業向けクラウドサービス「Google Cloud Platform(GCP)」のデータベースポートフォリオに加えられる。

GAE/GoのSEでも使えるのかな
とっても気になる

148 :
やっと正規化しても許される世界に戻れるのね…
長かったわ

149 :
>>144
あ、1.7.2だ

150 :
https://cloud.google.com/spanner/pricing?hl=ja

毎時、Cloud Spannerは、プロジェクト内に存在するCloud Spannerノードの数を追跡します。
その時間に存在するノードの最大数に時間単位の料金を掛けた時間ごとに課金されます。
その結果、提供するノードには最低1時間料金が請求されます。

1時間あたりのノードあたりのコスト
$ 0.90

どういうこと?
もしかして1時間に1~2回しかDBアクセスのない低負荷のwebアプリケーションでも
0.9*24*30=648ドルかかる?

151 :
Twitter界隈の声
https://twitter.com/search?q=Cloud%20Spanner%20&src=typd&lang=ja

152 :
https://twitter.com/domdorn/status/831996946973880320

not sure why everyone is so excited about @google #cloud #spanner ...
700$ / month for a single node is anything but cost effective

(意訳)みんなSpannerに興奮してるけど俺は理解できんわ
シングルノードに月700ドルは決して費用対効果が高い数字ではない

153 :
結局Datastoreで我慢するしかないのか

154 :
銀の弾丸はない

155 :
>>137
IntelliJ ideaのプラグインでGo使ってるけど、コード補完もできるし便利です。

156 :
>>148
Cloud SQLじゃ駄目なの?

157 :
試しにGAEでデプロイしようとしたら
google.golang.org/appengine/aetest/instance_classic.go:5: can't find import: "appengine/aetest"

ってエラーが出るんですけどどうすればいいんです?
とりあえず該当するファイルを弄って
import: "appengine/aetest" を取り除いたらデプロイできたんですが
今度はtestが動かなくなりました。

goapp test
2017/02/17 15:17:19 appengine: not running under devappserver2; using some default configuration
runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow

158 :
https://code.google.com/p/googleappengine/issues/detail?id=12346

159 :
Go言語でWebアプリを作りかけて辞めた話
http://b.hatena.ne.jp/entry/kannokanno.hatenablog.com/entry/2017/02/28/011159

160 :
Go Web プログラミング
https://astaxie.gitbooks.io/build-web-application-with-golang/content/ja/

161 :
>>159
シンプルならオレオレでいいと思うけどな

162 :
Google App Engine /Goの専用技術書が欲しいわ
誰かKindle出版で頼むわ

1)開発環境構築(Mac向けだけでいい)
2)net/httpを使ったルーティング(Controller)
3)datastoreを使ったデータのCRUD(Model)
4)template/htmlを用いた古典的なwebアプリケーションと、RESTのためのJSON出力サンプル(View)
5)ページング(Pagination)サンプル
 →オフセットを使うとパフォーマンスが低下することの説明
 →カーソルを使ったサンプル(Javascriptを駆使した動的なページング)
6)自前実装のログイン、ログアウトのサンプル(簡単なGoogle認証もついでに解説)
 →メールが実在するのかしっかり送信して確かめる実用的なもの
7)全文検索の実装(Search APIサンプル)
 →独自に形態素解析ライブラリを用いて全文検索対象を分かち書きにし
  インデックスを作ってDatastoreから該当するエンティティを探し出す仕組みを構築する解説もあると良い
8)標準ライブラリをラップした、各種WAFや3rdパーティライブラリの紹介
 →GAE/GoのSEで動作するものをリスト化
 →標準ライブラリを使った2〜7の処理が、このWAFを使うことでどう変化するのか比較
9)運営について
 →Datastoreからデータの吸い出し、またはアップロードする方法
 →バッチ処理について
 →コストを抑えるテクニック
10)JSON Web Tokenを使った認証が必要なAPIサーバの設計など

163 :
ちょっとしたバッチツールを作ってcronで実行したいんだけど
前回の情報を記録しておきたい。
かと言ってHome dirに設定ファイル置くほどのツールでもない。

んで、ioutil.TempFileを使おうと思ったんだけど毎回ファイル名が変わるので具合が良くない。いい方法知らないです?

164 :
>>162
googleのサイト見たら充分なのです

165 :
>>164
だね。
どうせググれ無い人は本なんて買わないからね。

166 :
8だけに焦点当てたGAE/Go本は欲しいかも

167 :
>>163
GAEならstorageあるやろ

168 :
Go言語って何ででこんなに偏屈なんだろう
http://pineplanter.moo.jp/non-it-salaryman/2017/02/24/go-strange/

はてブコメントにお前らがいた

169 :
http://b.hatena.ne.jp/entry/pineplanter.moo.jp/non-it-salaryman/2017/02/24/go-strange/

まぁこのコメントのほうが正しいんだけどさ
素人のおっさんプログラマーの戯言に熱くなりすぎだぞ

170 :
>なんで、func int f()じゃなく、func f() intなのか
>
>この順番がコンパイル速度や実行速度に効くとは思えず(だよね?)、であれば、なぜこの順序にしてしまったのかとても不思議です。

寧ろ既存言語がCの仕様を引き継いでるだけ。
ちゃんと意味はある。

Goの宣言構文について」を翻訳してみた
http://qiita.com/m0a/items/2b03b189d746ae231756

171 :
パスカル風でわかりやすいけどな。
そういや、パスカルもnilか。

172 :
最近使い始めたけど、クセに慣れるのがちょっと大変。
でも面白いので、Webサービス一本作ってみようと思う。

173 :
https://www.codeschool.com/courses/on-track-with-golang
これいいわ
やっぱり理解度高めるには動画だな
全部英語だけど殆どの文章がプログラマの専門用語で構成されてるから聞き取りやすい

174 :
>>172
フレームワーク使うの?
golangの定番Webフレームワークってあるのかな?

175 :
2017年3月度
Golang WAFランキング(githubスター数基準)

01位 ★9,926 astaxie/beego 
   6 Active Pull Requests/16 Active Issues
02位 ★9,165 go-martini/martini 
   0 Active Pull Requests/0 Active Issues
03位 ★9,151 gin-gonic/gin
   4 Active Pull Requests/7 Active Issues
04位 ★7,956 revel/revel
   2 Active Pull Requests/19 Active Issues
05位 ★6,652 labstack/echo
   2 Active Pull Requests/9 Active Issues

176 :
フルスタックがいいならBeego
薄いラッパーがいいならGin
このあたりかな

標準のnet/httpとtemplate/htmlだけでもいい
フォルダ構成を考えていくと俺々フレームワーク化するけどな

177 :
martiniはPulse見た限りでは殆どメンテされてないのでやめといたほうがいい
他に良いWAFがあったら紹介してくれ

178 :
>>175
>>176
>>177
なるほど
どれか1つが飛び抜けてくれれば
選びやすいんだけどなあ

179 :
https://twitter.com/deeeet/status/807487726358405120
>golangのWAFとしてIrisだけは絶対に選んではいけないと思う.
>技術的にダメなのではなく倫理的に完全にアウトなので.
>Comitt Historyを書き換えて自分だけをContributerにしたりLICENSE消したりIssueを編集したり...

というわけでIrisは無いかな

180 :
http://engineer.dena.jp/
>AndAppはスマートフォン向けゲームをPC上でプレイできるプラットフォームで、2017年3月現在、15タイトルが配信されています。
>そのサーバサイドのシステムは、従来のオンプレミス環境のサービスとは異なり、Google App Engine Standard Environment(以下、GAE SE)上で動作しています。
>また、開発言語も従来のPerlとは異なり、GAE SEで利用可能なGo言語が採用されました。

http://developers.mobage.jp/blog/gcp-next
>これらは、すべてGAE SE上にモジュールを展開しており、開発言語はgolang、フレームワークにgin(一部echo)を利用しており、
>データストアには主にCloud Datastoreを利用しています。

大手(DeNA)の事例だとGAE SE /GoとGinを使ってるらしい。
参考までに。

181 :
http://www.tiobe.com/tiobe-index/go/
2016年中期にGoの普及率が一気に伸びてるけど何かきっかけあったんか?
このスレが立ったのも2016年のど真ん中だし気になってきたわ

182 :
>>174
酒好きとしてgin使ってます。

183 :
https://hack-le.com/44753647-2/
>消費電力を観察してみると、だいたい寝かせているときは10W前後で、なにか作業を始めると15-25W程度といったところです。
>長時間にわたる画像の変換など重い作業をしているときは60Wまで記録しました。

2コアなら余裕で収まりそうだ

184 :
すまん 誤爆だ

185 :
日本ではbeego人気無いのかな?
中華の事例が大半じゃあ

186 :
日本人は中国アレルギーがあるからBeegoは流行らないと思う
どんな便利なソフトウェアでも中国産というだけで避ける人は沢山いる
(Mactypeは絶対使わない、って人も多いよね)

187 :
その論理で行くとvue.jsも日本ではやらないことになるが。

188 :
GAE/Goを使いたいWindowsユーザの視点からWAFを評価してみた
(単純なHello Worldが動くかどうか)

Gin 
→問題なく動く

Beego 
→Beegaeを使う必要がある。例示されてる移行用コマンドはMac用なのでWindowsでは動作しない。
 Windowsに適合するように書き換えても、colorable_windows.go問題が発生する。

Echo
→colorable_windows.go問題が発生する。

GAE/GoやるならMac使ったほうが良いね。

189 :
>>187
vue.jsよりriot.jsのほうがよくね?

190 :
最近リリースされたVisual Studio 2017のインストーラはElectron&Riot.jsだった
http://qiita.com/yamachu/items/07dbcfaa2268f8aea866
>印象的だったのはフロントに React とかではなく,riot.js が使われていました,わかる.

191 :
日本:Revel>Gin=Echo>Beego
異論は認める、というかRevelは今はそんなに使われてないかもしれん

192 :
RevelはGAE/GoのSEで動かないから最初から選択肢にないな
BeegoはMacで開発するならありだと思う
windows+dockerで開発することもできるけど共有フォルダ周りでトラブルに遭遇するのが落ちだから
最初からMacでやったほうが精神衛生上良い

193 :
>>189
vue.jsもriot.jsも中途半端なんだよなー
ReactかAngularでいいんじゃね?って感じ

194 :
GoプログラマーにWindows機しか割り当てない会社なんてあるのか?
ちなみにEcho+Reactがわいの中では最強れす

195 :
reactから漂うprototype.js臭が苦手
riot.jsからはjQueryの良い香りがする

196 :
Revel以外のフレームワークはセキュリティ廻りが弱いって誰か言ってた(´・ω・`)

197 :
>>191
え?日本じゃMartiniが一番だろ??

198 :
ReactはHTMLとJSの混在感が気にある。
typescriptから使うと補完がめっちゃ効くのが素敵ではあるけど

Angularは学習コストが半端ない。
ということでVue.jsにした。

>>197
>Martini
NOTE: The martini framework is no longer maintained.
ってなってるのを使うの不安ある。

199 :
>>198
VueもHTML/CSS/JS全部ごちゃまぜじゃね

200 :
>>199
.vueファイルのこと言ってんだよね。

vue.jsはhtmlを取り込めるからhtmlだけ、独立できるけど、reactはjsxで事実上jsベースにxml構文を追加しただけだから、混在は避けられない。

201 :
>>200
あー確かにそれはできるねスマン
実際はSPAとかやるならどっちでもいいと感じる
一部のコンポーネントだけreactやvueにしたいとかだとjsxぽいのはHTMLが散らかって見通し悪いよなあ

202 :
やけに伸びてると思ったらJSの話かよw

203 :
golangさんはJSON吐き出しマシーンだからな
仕事がルーティングとORMとのやり取りだけになったので
フロントJSさんの話題が出やすい

204 :
WEBAPI設計する時にできるだけ楽したいんだけど
おすすめの設計ツール的なのある?ドキュメントも自動生成されちゃうようなの
やっぱswaggerとかかな

205 :
BeegoはSwaggerだったよ
https://beego.me/blog/beego_api
https://raw.githubusercontent.com/beego/beeblog/master/en-US/images/docs.png

206 :
ほほう。それはいいこと聞いた。

207 :
>>203
まあそういう設計にするよね。

208 :
Riot.jsが扱いやすくて開発捗るんやが、後でなんか罠があるとかないよな?
普通のHTML感覚で書けるのがほんまにええ

209 :
riot.jsはQiita界隈でも好評だな
ReactはHTMLタグに直接Style設定しているような気持ち悪さがある(全然分離できてない)から
riot.jsに惹かれるのは仕方ない、というか必然

210 :
swaggerつながりでgoaというフレームワークもあるそうな
http://qiita.com/y_matsuwitter/items/1298adfcd26c84f7d20b
触ったことないんだけどどうなんでしょうか?

211 :
goaの話はコッチのほうがいいかな
http://qiita.com/ikawaha/items/6638ee8b6978aef50d65#_reference-1585e09173db4b55de96

ちょっと触ってみる

212 :
悪いことは言わんからフロントはReact+Reduxにしとけ
スマホアプリに転用できるメリットは想像以上に大きい

213 :
それ他のSPAライブラリも全部同じ
Cordovaかますだけ

214 :
GoaとかGizmoとか訳分からなくなってきた

215 :
>>213
お前Cordova使ったことないだろ?w

216 :
CordovaはWebView経由だからスマホのスペックによってはもっさりするんだよな
UXが悪いから使わないほうが良いよ

217 :
Angularはどう?

218 :
スマホアプリ化を視野に入れるとVue.jsとWeexが良さそうなんだがどうよ
https://weex-project.io/

219 :
2chで一番フロントエンドフレームワークの議論が活発なスレになってるなw
役に立つのはいいのだがGopher君が物欲しそうに見てるよ・・・

BeegoもVueもWeexも中国系なんだな
ハードウェア関係だとHuaweiやXiamiなどが有名だし
ソフトウェア関係でも先進国化してる

日本も頑張らねば

220 :
ム板の方でも angular は糞だから vue に乗り換えたって話は良く見かける

221 :
vueも最初の頃は簡易版angularって感じだったけど、今はbetter reactって感じ。一応reactより軽くて早いってのを売りの一つにしてる。

222 :
日本人なら、アシアルのMonaca !

Cordova(PhoneGap) + Onsen UI + AngularJS

223 :
Failed parsing input: parser: bad import "syscall" in github.com\mattn\go-colorable\colorable_
windows.go from GOPATH

フレームワークEchoを使ったAppEngineアプリケーション開発をしようと思ったのですが、上記のエラーが出て動きません。
解決策はありますか?

環境
 Windows10 Home
 Visual Studio Code
 Powershell

224 :
自己解決
go get -u github.com/labstack/echo
で治りました
バージョンが古かったみたいです

225 :
GoogleのCloud Platformが常時無料プランと無料トライアルの両方を拡大してクラウド新人たちがAWSへ傾くのを防ぐ
http://jp.techcrunch.com/2017/03/10/20170309googles-cloud-platform-improves-its-free-tier-and-adds-always-free-compute-and-storage-services/
https://japan.zdnet.com/article/35097973/
https://cloud.google.com/free/docs/always-free-usage-limits
> 新たに追加した製品は「Google Compute Engine」(1カ月あたり1個のf1-microインスタンス(米国リージョンのみ)
ますます使いやすくなったな
GAEだけでなくGCEまで無償で使わせてくれるとは太っ腹過ぎる

226 :
>>224
へ〜windows+GAEで動かない問題は解決したんだねecho

227 :
MACでやれ、MACで
WindowsはC#、Android専用機れす

228 :
>>227
AppleがタダでMacに交換するサービスをやれば良いんだよ。

229 :
ワケワカメ

230 :
というかlinux環境を作ればいいだけだし。
今ならdockerで一発だろ。
macだけどもlinux環境は結局作ってるし

231 :
WindowsでDockerは後から色々面倒くさいこと出てくるけどなー
素直にmacでいいんじゃね?

232 :
>>231
macにすることがすなおかな。
たしかwindowsって標準でubuntu環境乗せられるようになったんじゃなかったけ
詳しい人求む。

233 :
WindowsのUbuntu環境は使い物にならんよ
docker for windows、kitematicのほうが遥かにいい
ただしWindows pro必須
(Homeの人はDocker Toolbox使うしか無いが、共有フォルダ設定でほぼ100%詰まる)

234 :
webとはちょっと違うんだが、golangでMac向けのキーリマップアプリケーション作れないかね
KarabinerがSierraから使えなくなって困ってる
HammerSpoonとNaoya設定使ってカーソル移動させてるが、処理落ち、もっさり感が気になって仕方ない
システムプログラミングの知識がないから、とっかかりが掴めない
誰か実力ある人、OSSで作ってくれ

235 :
>>234
karabinerのスレあるからそっち見なよ。go以前にそうかんたんな話ではないみたいよ

236 :
難しいのか、なるほどありがとう

237 :
>>232
Hyper-V使えば余裕

238 :
GAE/GoとGlideによるvendoring使ってgoapp serve .したら動かなくて焦ったわ
app.yamlの設定が悪かったのな

nobuild_files:
- vendor
skip_files:
- vendor/.*$

GAE/Go初心者の皆様、あなたは大丈夫だと思うが注意してくれ
俺はこれで数十分無駄にした
情報共有のために書き込んどく

239 :
>colorable_windows.go Fix the build constraints syntax for appengine  7 days ago
なんだ
Echo側がGAEに対応してくれたわけじゃなくてmattnさんが頑張ってくれたお陰だったのか
このスレに報告しても無駄だと思ってたが案外役に立つんだな
俺は君の頑張りをちゃんと見てるよ!
対応してくれてありがとな

240 :
もしかしてEchoってTemplate周り面倒くさい?
https://echo.labstack.com/guide/templates

type Template struct {
templates *template.Template
}
func (t *Template) Render(w io.Writer, name string, data interface{}, c echo.Context) error {
return t.templates.ExecuteTemplate(w, name, data)
}
t := &Template{
templates: template.Must(template.ParseGlob("public/views/*.html")),
}
e := echo.New()
e.Renderer = t

Ginならたった2行、こう書くだけなんだが・・・
EchoのStarがいまいち伸びない理由が分かってきたわ
g := gin.Default()
g.LoadHTMLGlob("public/views/*.html")

241 :
REACT使えばええんやで

242 :
ginだってmultitemplate使う時はEchoみたいに長くなるからおあいこさ!

package main

import (
"github.com/gin-contrib/multitemplate"
"github.com/gin-gonic/gin"
)

func createMyRender() multitemplate.Render {
r := multitemplate.New()
r.AddFromFiles("index", "templates/base.html", "templates/index.html")
r.AddFromFiles("article", "templates/base.html", "templates/index.html", "templates/article.html")

return r
}

func main() {
router := gin.Default()
router.HTMLRender = createMyRender()
router.GET("/", func(c *gin.Context) {
c.HTML(200, "index", gin.H{
"title": "Html5 Template Engine",
})
})
router.GET("/article", func(c *gin.Context) {
c.HTML(200, "article", gin.H{
"title": "Html5 Article Engine",
})
})
router.Run(":8080")
}

243 :
サーバー側テンプレート使う?

244 :
NO

245 :
2chのバックエンドってどうなってんの
ここ最近API経由の専ブラの表示がめちゃくちゃ遅いんだが・・・
JIMさん、Golangを使って対処してよ

246 :
自分の回線を疑う気はないのか

247 :
>>245
確かに遅い
回線のせいではないと思う
APIの応答がなんか悪い

248 :
【緊急】2ちゃんねる全体がすっげえ重い [無断転載禁止](c)2ch.sc [822935798]
http://hitomi.2ch.sc/test/read.cgi/poverty/1490781907/
これだな

249 :
[49選]国内注目のWebサービス・アプリを大調査! プログラミング言語、フレームワーク、アーキテクチャの一覧【2017年 春 ver.】 - エンジニアHub|若手Webエンジニアのキャリアを...
https://employment.en-japan.com/engineerhub/entry/2017/04/07/110000

250 :
Golang採用サービス一覧
・メルカリ
・グノシー
・スタンバイ
・クックパッド
・UZOU
・ニュースパス
・Wantedly People
・AWA
・pairs
・Mackerel
・Gyazo

251 :
過去の産物ばっかやな

252 :
Golangの利用事例(大規模トラフィック)
・Youtube
・Abema.tv

これで十分だろ

253 :
クックパッドってGo使ってんの?

254 :
流行りものが好きでとりあえず使ってみました的なやつだろ。何使ってもけっきょくシステムはできあがるし。

255 :
一種類の言語、FWだけですべて作ってる方が珍しいよね
クックパッドだってメインはよく知られてるようにRailsだろうし

256 :
ラズパイみたいな機器でgolangでデカイファイル(mp4とか)のアップロード処理をしたいんだけど単純な実装だと一度メモリに展開しちゃうから
メモリが足りなくて止まってしまいます。

かと言ってtempfile使うとOSが入っているSDを痛めちゃうから
遅延書き込みできる仕組みとか使えないかなと思ってるんですが
そういう実装例ってないですかね?

257 :
>>256
すんません自己解決しました

258 :
解決したなら解決方法書いていくぐらいの事できないのかね
書き残しておけば同じ疑問持ってる人の参考になるだろ
質問はするのに自分の知った知識を他の人に提供するのはそんなに嫌かい?

259 :
すいません。そのうちqiitaに纏めます

260 :
>>258
io.Pipeを使います。
https://garbagecollected.org/2015/05/30/io-with-go-io-pipe/

261 :
今まではhatenaブログ等に断片化していた情報がQiitaに集約される流れはいいな

262 :
今さらながら、Gorilla/muxが使いやすい
EchoもGinもいらんな

263 :
GinもEchoもフレームワークというよりライブラリに近い
フォルダ構成まできっちり定めてくれると初心者には迷いがなくていいんだが・・・

264 :
メルカリ・ソウゾウでは、どのようにGoでソフトウェア開発をしているのか聞いてみた
https://codeiq.jp/magazine/2017/04/50250/

265 :
Goの流れが加速している今
GAE/GoにフォーカスをあてたWAFの開発と
GAE上で動作するマストドンのようなオープンソースプロダクトが欲しいところだね

266 :
https://github.com/deoxxa/don

267 :
>>265
Goで作ればいいんじゃね?

268 :
>GAE上で動作するマストドン
Mastodonを稼働させるために必要なインフラの知識を
オートスケールなPaaSで吸収しちゃったら乱立が加速してしまうな・・・
あとGAEでリアルタイムサーバープッシュする場合、Firebaseと連携する必要があるからやや面倒だぞ

https://cloud.google.com/appengine/docs/deprecations/channel
>The Channel API did not scale well enough for the workloads it was intended for and so did not find wide adoption.
>Accordingly, support for the Channel API will be turned off on October 31, 2017.
>You can use the Firebase Realtime Database to achieve superior realtime functionality in your application.

269 :
最近go調べてるんだけど
FW選びすんげー迷うなこれ
雌雄が決するほどの勢いもなさそうだしなぁ

270 :
このスレで言うことじゃないかもしれんが最近はtypescriptが、良い気がしてる。
結局jsonを変換せずにそのまま使えるのがでかい

271 :
好きあらばJS

272 :
>>269
自社開発で息の長いプロジェクトなら薄いラッパーぐらいがいいし、受託とかプロト開発で効率重視ならフルスタックでいいと思う。

273 :
goaが鼻血が出そうなくらい便利なんだが。
swagger.json吐くから
Swagger Code Generatorでtypescript-fetchのコードはいたら
Goの構造体そのままのinterface定義(typescriptのinterface定義ね)
でapiクライアント吐いてくれるんで
サーバからクライアントまで全体を型付きで扱える。
echoでrestサーバ作ろうとしてたのがアホすぎたわ。
もうgoaでいい。

274 :
goaのいいところはとにかくルーティングとかバリデーションとか
勝手にもれなく自動実装してくれるところだね。
restの流儀を知らなくても実装してくれるから
後はdb側とのつなぎこみだけ作ればいい。
むしろgoaにrestサーバの作り方を習ってる感じ。

後はコードジェネレートだからinterface{}型を使ってないのがいい
DSL側で事前にここはint型だからって指示しておくから
ちゃんとint型で入ってる。Goはやはりコードジェネレートが正義だな。
メタプログラミングが苦手ならコードジェネレートすればいいじゃない。

db側もxoを使うことにした。
スキーマ設計はDB側だけにする感じで。
goaでdb設計もできるけど、dslを気軽にいじるならdb設計はやらせないほうがいい気がする

275 :
AppEngineにも対応してるのがええな
goa

276 :
goでマイクロサービス作るとして
中小企業に提案できるのって
どんなぱたーん?

277 :
>>276
goaってマイクロサービス向け銘打ってるけど、別に普通にreactなフロントエンドを動かすサーバサイドとして普通に使って良さそうだけどな

278 :
よくわからんからサンプルプロジェクトをGithubで公開してくれや
goaとgoogle app engine/goのStandard Environmentで動くコードがいい

クライアントはvue.js(またはreact.js)を使ったSPAで
ID、名前、コメント、作成日時、更新日時 をページングあり(20件ごと)で一覧表示する感じでよろ
CRUDも当然できるものとする

279 :
ページングはCusor使ってインクリメントな動的ページングな
オフセット使うとパフォーマンス問題でるから
<<[1][2][3]>>
こういうのは使えない

280 :
>>278
https://github.com/goadesign/goa-cellar
とかみてみたら。
webapiしかないけど、
DSLにFiles があるからstaticファイルの配信も簡単で
すぐreactで追加実装できる。

あとはgoでSSR出来ればほぼ完璧だなー

281 :
あと勉強会もあるみたい
https://istyle.connpass.com/event/57455/
残り二名だけど

282 :
久しぶりにgoで開発してたら何かvscでgoの開発作業するとマシンパワーやたら食うんだけどなんでだろ

283 :
HDD故障の前兆

284 :
>>282
これ関係あるかな?
VisualStudio Codeスレより

8 名前:デフォルトの名無しさん [sage] :2017/05/16(火) 00:07:55.41 ID:jyI5CijS
久しぶりにgoの開発をこいつで始めたらなんか調子よくないな。
定義を見に行ったり行かなかったりする。
エディターを再起動すると治る気がするけど、定期的に再起動しないとだめ臭い

285 :
>>284
ごめん。それ俺ですマルチポストすまんですm(_ _)m
issueみてみると皆困ってるみたいだから
何れ解決すると期待したい。

goの開発環境として一番使いやすいと思ってたんだけど
こうなると微妙やなjetbrainの試してみようかな。

286 :
jetbrainのやつWindowsで使ったら
フォント描画がひどすぎて目が潰れたのでMac版推奨

287 :
>>281
これ、結局参加できなかった。
結局人数割れ起こしてるみたいね。
goa使ってるんだけど、echoとかより実際のコードの記述量は減る感じだよね。
あとマジックコードがないから生成したコードを追いかければ理解はできるのがいい。
reflectionだらけのコードよりいいわ。

288 :
なんだ
GAE/GoもPython向けのGUIツール使えるんだな
app.yamlを適切に設定してあればどの言語でもワンボタンでDeploy出来る
今までCUIでコマンド打ってたわ

289 :
なるほど

290 :
goでapiサーバ作ってる人多いと思うんだけど
apiのテストってどう書けばいいの?
dbのコードと密結合してるんだけど、、、

291 :
>>290
テスト系DB作って、まっさらな状態から通しでAPI呼んでいく。
結果としてDBに残る値も担保できるので、普通はこうすると思う。

292 :
>>291
それが無難か。
そういうのを効率的に実装するヘルパーなライブラリってないでしょうか?
productionから自動的にDBのスキーマだけ拾ってきて
testDBを新規作成してくれるとか。

293 :
>>292
それじゃ、カラム増やしたときにテスト出来ないよ。

しかし、DBのスキーマだけ拾ってcreate文に落としてくれるのはだいたいのDBにあるのでは?
pgdump然り。

294 :
goってテスト用のディレクトリを作っちゃうとパッケージ名を
変えることになってパブリックな関数とかしかテストできなくなっちゃいますか?
テストコードと実装が同一階層に並んでいるのがなんとなく気持ち悪いんですが
コレは諦めるしかないんですかね?

295 :
>>294
なんとなく気持ち悪い程度の理由なら標準に合わせた方がいいよ。
それを気持ち悪いと思わない人達が作った言語なんだから。

296 :
>>295
割り切りも必要

297 :
一番聞きたいのはディレクトリ掘っても、パッケージ名を維持する方法

298 :
制服ミニで脚が細く綺麗なJKが前歩いてて、ウホッとなって顔よく見たらgopher君だった事案が発生

299 :
可変長引数を複数渡すってできないかな
https://play.golang.org/p/JsPUosxjz2

300 :
>>299
こんなのではだめなんか?
https://play.golang.org/p/HhgfXeFJIT

301 :
>>299
やっぱりできないみたいね。
Spread Operatorっていうやつかな。
最後の引数でしか使えないって制約なんとかならんもんかな。
受け側
func (test …string) { }
は無理なのは分かるけど
渡す側
fmt.Println(test…,test2…)はできても問題なさそうなもんだけど。

302 :
最新人気ランキング
1位 Java
2位 C
3位 C++
4位 Python
5位 C#
6位 PHP
7位 Visual Basic .NET
8位 JavaScript
9位 Delphi/Object Pascal
10位 Go
11位 Perl
12位 Swift
13位 Ruby
14位 Assembly language
15位 R
16位 Visual Basic
17位 MATLAB
18位 Objective-C
19位 Scratch
20位 PL/SQL

https://www.tiobe.com/tiobe-index/

GolangがRubyを抜いた

303 :
>>302
Delphiなんてまだ生きてるの?

304 :
最初に就職した会社がDelphi専門
転職した会社でPerl漬け
今趣味でGoやってる
9-11位独占した!やったぜ!(´・ω・`)

305 :
Golang破竹の勢いで成長してるな
まぁスクリプト言語の可読性と生産性、コンパイラ言語の高速性を兼ね備えた言語だから
人気出るのは当然か

306 :
borlandってまだ生きてるの?、

307 :
ヘルスバーク抜けてから何も聞かないな

308 :
>>305
goって言うほど習得が容易な言語かね?言語仕様がシンプルだからかんたんと言うのは安易だ

309 :
馬鹿には無理

310 :
>>308
可読性も生産性もC/C++よりははるかにマシで、C/C++と同等の速度が出せる、というのが正しいよね
さすがにスクリプト言語の生産性は言い過ぎだね

311 :
>>310
C/C++の代替って言ったらやはりrustになるんじゃないのかな。
特に組み込み分野ではGCがないのはでかい。コンパイラとの対話が大変らしいけど。

Goは最近流行りのoptionalがないのがちょっとつらい。
でも殆ど言語仕様を変化させずに発展させてるのはすごいなと思う。
swiftも見習ってほしいわ。

312 :
パターンマッチほしい

313 :
go2どうなることやら

314 :
某CTOの不倫騒動面白いな

315 :
まぁ下位互換性は維持するみたいだから
rustのメモリ管理とかnil安全とかは導入できないかもね。
正直もっと関数型によってくれると俺好みなんだけど、
rustだっていいしね

316 :
https://github.com/lestrrat/go-slack/blob/master/rtm.go#L14
これってどういうことなん?初心者に助けを・・・

317 :
>>316
推測だけどそのコードcode genereteされたものだから、
importエラーが出ないように仮として書いてるんじゃないかな。

318 :
>>317
おーなるほど
auto generated なコードなので一旦特別な意味はなさそうということにしておく
ありがとう!

319 :
似たメンバを持つ構造体の変換について教えてください
https://play.golang.org/p/1ir9HN8yDG
完全にメンバが一致すれば変換できるんだけど
メンバが少しでも異なると失敗するのなんとかならないでしょうか?

320 :
なんとかならなそう
自分で関数なりメソッドなりを定義してやるしかないのではないか

321 :
>>320
えー?じゃあ
b:=B(a)
みたいな構文の意味って完全にメンバが一致してないと使えないってことです?
この構文の存在意図がわからん。

322 :
>>321
それを言うとstring(1.0)とかも無理じゃん?

323 :
>>322
いやいや
構造体の変換の話だけに限定して欲しい
b:=B(a)
上記構文の有用な使いかたの例ってないですかね?

324 :
>>321
コピーとして存在意義があるじゃん

325 :
>>324
構造体なんだから代入するだけでコピーになるが

326 :
GoにおけるDB操作の決定版ってなんだすろう。
結局xoでスキーマに対応する構造体と生成可能なメソッドを作りつつ
足りないものはsquirrelってqueryBuilderで組み立てるって方針でやってる。
けど、なんかxoメンテしてる人やるきなさげ。

327 :
てs

328 :
LLから入ったんだけど構造体とかインターフェイスあたりの設計?の勘所みたいなのが分からん
みんなどうやってGo言語(あるいはJavaとか)の設計をいいかんじにできるようになったの?

329 :
Go言語は真面目に設計する言語じゃない
適当に書く言語

330 :
>>328
逆にLLの時はどんな設計だったん?

331 :
>>330
そう聞かれるとうまい答えが見つからぶ「オブジェクト指向っぽい設計」というアホな回答になってしまう
そもそもインターフェイスとかいう概念がなかったので使いこなすのが難しい
インターフェイスの何が嬉しいんだみたいな疑問が定期的にわいてくるんだが

332 :
動的言語だとダックタイピングだからインターフェースがないってことか。

インタフェースはまんまインターフェースだよ
APIはアプリケーションインターフェースだろ。
つまりオブジェクト間で情報をやり取りするための決まり。

例えばfmt.Fprintfをみてみよう。
https://golang.org/pkg/fmt/#Fprintf
第一引数にはio.Writerを満たすインターフェースならなんでも突っ込める
じゃあio.Writerインターフェースって何か?
これはwriteメソッドを備えたもの

例えばhttpのレスポンスだったり、もちろんファイルだったり
それらはとにかくwriteメソッドを実装しているだけなんだ。
自分で作ったオブジェクトもwiteメソッドさえ備えていれば突っ込める。
便利でしょ?

動的言語の場合だって if (typeof xxx.someMethod === ‘function’) みたいなコードを書いたりしたでしょ?
こういうのを一々入れる必要がなくなる。
なぜならインターフェースの条件を満たさないオブジェクトを突っ込むとコンパイルエラーになるから。

333 :
心地の良い設計の基本はすべてを知らなくても実装できること。
例えばfmt.Fprintfの中の実装を知らなくても
Writeメソッドを実装すればfmt.Printfが使えるでしょ。
そういう風に自作のオブジェクトも基本的にインターフェースを仲介して
各オブジェクトの詳細は知らなくても使えるようにする。
つまり疎結合にしてやる。

334 :
インタフェースは既存のクラスに手を入れられないのがつらみ
C# みたいな this キーワードいれたりとか Haskell みたいなアドホック多相とかあれば別だけど

335 :
俺としてはgoaとか勧める。
あれはwebapiを設計してやるとgoのコードを生成する。
webapiの実装例として参考になるし、そのまま開発してもいいし。

336 :
なるほど色々ありがとう
インターフェースの嬉しいところはなんとなく分かった。
ある型にたいして既存の関数やメソッドを使いたい→インターフェースを満たすようにメソッドを定義という感じの思考のプロセスでいいのかな?

337 :
>>336
例えばテスト主体で考えてもらえればより便利さがわかると思う。
interfaceを満たすだけのダミーなら簡単に用意できるでしょ。
structを直接引数に取る形にすると本番のstructをテスト書く時に用意しなきゃいけなくなる。
この思考プロセスがやがてDIに結びついていくんだけども。

338 :
>>337
この話を聞いた上でちょっと色々コード眺めてみるわ
言わんとすることは分かったのであとは自分で書くときにすんなり使えるか…
とにかく参考になったありがとう

339 :
goにおける配列操作で目的の要素を取り出すのっていちいちループを回さないとだめ?

標準ライブラリになんかないかな

340 :
メソッドのレシーバにnil pointerを渡して有用な場合ってどういうときなの?
メソッド内でフィールドアクセスする際にpanicになったりして良いことない気がするんだが

341 :
>>340
別にnilを渡せるのが有用とかいう話は無くて、単にポインタに対してメソッドを呼び出せるとレシーバーがnilになりうるけどどーすんの?って話でしょ

他言語ではメソッドは呼ばれずにNullPointerException的なのが飛ぶようになってるけど
goの場合はメソッド側でnilに対処すれば呼び出し側はレシーバーがnilかどうかを気にしなくてもいいというメリットはある

342 :
>>341
それメリットだとは思えないんだが
nilに対処するコードを毎回書かなきゃならないのもダルいし忘れててもコンパイルできてしまって実行時にpanicするしで嬉しくなくね?

343 :
go2でnull安全にならないかな。無理?

344 :
gaeのdatastoreを勉強できるいい教材ないかな

345 :
appEngine使ってる人いないのん?
go1.8にも対応しつつあるし期待しとるよ

346 :
GAE勝手にサービス終了しやがった

347 :
スレチかもしれないけどGAEってエロあり?

348 :
>>346
してないよ。何の話?

349 :
goで配列の定義で

[]*T ってよく見るんですが
[]T でダメなんですかね? []*Tにするメリットを教えて下さい

350 :
https://cloudplatform.googleblog.com/2017/09/introducing-managed-SSL-for-Google-App-Engine.html?m=1
ナニコレ
GAE使えばSSL無料で使えるっていう意味?
これはいいな

>We’re excited to announce the beta release of managed SSL certificates at no charge for applications built on Google App Engine.

351 :
コスト的にかなりいいよな
ついでにドメインも無料化してくれないかな…(チラチラ)
Googleが発行するクレカの特典とかでもいいから
(Googleにはクレカ利用料の数%のインセンティブがあるからそれで賄える)

Googleブランドのクレカが欲しいねん

352 :
Let's encryptとGAEと自動更新スクリプトで無償SSLは既に実現できてた
それを管理コンソールから簡単に設定出来るようにしたとか、そういうのかね?

353 :
http://b.hatena.ne.jp/entry/s/cloudplatform.googleblog.com/2017/09/introducing-managed-SSL-for-Google-App-Engine.html
はてぶで取り上げられてた
やっぱり無料はデカイよな

354 :
これでPaaSはGAE一択になったな
今までSSL証明書に払っていたお金をスケールアウト費用に回せるから
コスパぶっちぎりで良い

AWSも追従してくれ

355 :
すでにあるがな
https://aws.amazon.com/jp/certificate-manager/pricing/

356 :
GAEはAWSと違ってサービスが成長しなければ、ずーっと無料で運営できるのが良いのだよ
失敗時のリスクが低いから挑戦しやすい
ランニングコストがほぼ0円になれば、例え月10万PVしかないサービスでも停止せずに
次の新しいサービスを並列で増やして収益アップできる
月間10万PVのサービスを100個作れば1000万PV、月間150万円の収入が期待できる
資金力がない学生起業にぴったりだわ

357 :
GAE/Go SE素晴らしいのに採用事例が一部の野心的な会社しかないんだよな
DeNAとサイバーエージェント、メルカリ(の子会社)くらいしかない

358 :
datastoreの学習コストが問題なのかね

359 :
HTTPSじゃないとSEO不利だからこれは朗報
趣味サイトに年間1円も掛けたくない

360 :
レッツエンクリプトなんて今更感しかないだろ

361 :
>>358
datastoreが使いづらいと言ってもgoコード側でスキーマ設定する感じだし
joinできないからこそ結果的に使いやすいかもしれない
dbの挙動もレプリカありきの挙動だとすれば納得できる

362 :
いわゆるBtoBの受託開発だと帳票出力があるからjoinないとキツイが
GAE/Goが想定してるのはBtoCのwebサービスだからjoinなくても何とかなる
ページングもカーソル使って次へと戻るだけあればいい

363 :
handlerのテストってどこまで厳密にやるべきなの?
DBとのやりとりの部分とかは内部で使ってる関数をテストすればもんだいないから様々なパラメタに対して200を返せるかどうかだけでいいのでは?と思うんだけど

364 :
>>363
バリデーションを網羅できてればいい気がする。

365 :
>>364
そのバリデーションってどこのことだろう…?
自分の中ではhandlerに対するテストなんかは裏側から取得してきたデータがどういうものかはあまり気にする必要がなくて入力と返ってきたデータの出力の仕方だけが関心点だと思ってるんだけどなかなかそういう記事とか見かけないんだよね

366 :
postしたデータは、バリデーションせずにdbに、ぶち込んじゃうの?
get系でも入力パラメーターのバリデーションあるよね。

367 :
>>366
そこでのバリデーションならちゃんとテストケースに含めるべきだと思う
一方でたとえばUsersテーブルからデータをとってくるためのgetUsers内でのバリデーションのようなものはテストケースをいちいち考慮したくないということが言いたかった

368 :
golangで独自の仮想通貨を作るのって出来る?
gethを改造すればいい感じ?

369 :
go test とか go build, go install などのコマンドってどこに定義されてるの?
ソースを読んでみたいんだけど見つからなくて困ってる

370 :
cd ${GOROOT}/src/cmd

371 :
ありがとう、cmdのinternalにあるの見逃してた

372 :
>>370
最近はGOROOTもGOPATHも環境設定不要だから
cd ${go env GOROOT}/src/cmd
ってすべき

373 :
ゲーム作るためにgo-gl/glfw使おうとしてmain関数作って実行しようとしたら、
build constraints exclude all Go files in C:\Users\ユーザ名\Desktop\glfw

って出た。GOOS=windows, GOARCH=386で試したんだけど初心者すぎてわからん

374 :
予選通過組はGoが半分か。すごいな。
http://isucon.net/archives/51000131.html

375 :
Ruby使いはwebデザイナあがりの意識高い系が多い(もちろんMac)
PHP、Perl使いは大昔にHTMLタグを直打ちしてたHTMLコーダー出身のスパゲッティコードを量産していた老害と、その老害を上司に持つ可哀想な若者が多い
Python使いは科学技術や情報工学系(自然言語処理、機械学習、深層学習等)のアカデミア出身者が多い
Go使いは新進気鋭なBtoC系上場企業の社員が多い
JavaはBtoB系受託IT土方が多い

こういう印象あるわ

376 :
この結果を受けてweb&スマホアプリのバックエンドはGoが主流になるんだろうな
当社ではGoエンジニア募集中です

377 :
Goは日本語学習サイトを充実させたほうがいい
PHPerがGoに移行するにはネットで検索>コードをコピペ
この集合でwebアプリケーションが作れないとダメだからな

378 :
>>374
単純に力ある人がGo使うようになってるだけだと思うんだよなあ
別にGoがすごいとかではなくそこそこ力ある人はRubyでもPythonでも予選突破できる

379 :
インタプリタとコンパイラ言語で速度比較したらそりゃ
Goのほうが有利だろ
省メモリ性やら単純な速度まで桁が違う

380 :
将来性あるのかね

381 :
俺もうSPA前提でバックエンドにgoaを使うことでwebアプリ書いてるんだけど、いいよね。なんかgoaはマイクロサービス用のフレームワークと名乗ってるんだけど、別にマイクロサービス関係なしに使いたいんだけど。
つーかGAEで使ってるけど良い。

382 :
SPAってSEOどうなの?

383 :
仕事でwebサービスをGoで書いてるけど、もっとGo使う会社増えないかなー
Go使ってて転職したいと思う会社が無い

384 :
>>380
Googleの基幹事業だしDonateで維持してるオープンソースコミュニティ発の言語よりは将来性あるんじゃね
Youtubeのバックエンドで動いてるPythonコードをGolangに変換してパフォーマンス改善してるし
その他にも色々とGolangで動いてるシステムがある

また今の時期にGolangに目をつけてる会社は、経営陣(CTO等)に先見の明がある証拠だから伸びるだろう

385 :
どうでもいいけどGolangって書き方に違和感ある。
Goかgolangじゃないの?

386 :
C言語
Clang
https://ja.wikipedia.org/wiki/Clang

Go言語
Golang

この伝統に則って大文字だぞ
○+langのlangはググラビリティを向上させるsuffixでしかない

387 :
Dlang
Erlang

388 :
あーらんは正式名称じゃん

389 :
>>386
qiitaのタグだと
Goかgolangだよね

390 :
タグなんてユーザーが適当につけるものを論拠にされても

391 :
gopherのみんなはGoのinterfaceについてはどう感じてる?
他の言語のinterfaceについて詳しくないんだけど、interfaceのもつメソッドを実装していれば満たしていることになるというのがどうも分かりなくくて辛い
明示的にこのinterfaceを満たしてますよみたいなのが欲しいのは修行が足りてない?

392 :
Frank
Golang

393 :
>>392
type T struct{}
var _ I = T{}
でT型がinterface Iを満たすかチェックできる

394 :
>>393
チェックできるかどうかというより何を満たしてるかパッと見でわからないという意味で辛い

395 :
Goのinterface面白いと思うよ
何を満たしてるかぱっと見でわからないっていうのはinterfaceの使い方が良くないんだと思う
必要なメソッドを理解しないまま使おうとしてるからわからなくなるんじゃない?

396 :
>>394
393でコンパイルエラーが出て何の実装が必要かわかるんだから、それで問題ない気がするんだけど。

397 :
>>395
面白いしJavaとかより柔軟だよね。
もっとinterfaceを拡張してプロパティとか演算子のシンタックスシュガーをもっと付けて欲しいとは思う。
多分上手く拡張できればジェネリクスに近い感じになると思うんだけど

398 :
>>396

そもそもIの存在を知らないような場合にそういうコードでチェックできないと思うんだが

TにReadメソッドが実装されてる→よく読み進めるとIにはReadメソッドをもつ→TはIを満たしてるという思考の流れが気持ち悪い

399 :
>>398
考え方がおかしい。元々の質問は
>> 明示的にこのinterfaceを満たしてますよみたいなのが欲しい
という話だから当然inteface “I”の存在を知っている前提。
構造体Tを作っていてそいつにinterface Iの実装を行いたいという場合に

type T struct{}
var _ I = T{}

とういう風に書くと実装条件を満たすかをコンパイルエラーでチェックできるから
確実に実装できる。

400 :
もしかして定義済みの型がどのinterfaceを実装してるのか明示してほしいってことか
でもそれGoのinterfaceの考え方じゃないよ

401 :
>>400
アンカーつけないとなんに対しての反論かわからんのだが。
interfaceの概念はべつにGo独自とかそういうもんじゃないし
Goのinterfaceの考え方ってなんのことを指してるのかよくわからんな。
基本的にはJavaと変わらんでしょimplementsが不要ってだけ。

402 :
>>401
>>400>>391,394,398あたりへの憶測

他言語のinterfaceは、imprementsすることでその型が何であるのかを説明するためのもの
Goのinterfaceはオブジェクトが必要な機能を備えているか調べるためのもの
だから考え方が違う

403 :
>>402
なんかフワッフワした言い回しすぎて何を説明したいのかがわからんな。

interfaceは、英単語の意味そのものだよ。つまりはメソッド名とパラメーターの並びと、返り値の型の組み合わせそのもの。

それ以上でもそれ以下でもない。
基本的には言語として共通の概念と言える。

goとそれ以外の言語の違いは
型(javaの場合はclass)がinterfaceを満たす条件が違うってだけ。

条件の違いは
java: interfaceを明示的に指定する
go: interfaceと同じメソッドを、実装する

404 :
どうでもいい言葉あそびを始めちゃった

405 :
PHPerだらけだったうちの会社もとうとうGoの勢いを感じて次のプロジェクトで使うことになった
ISUCONの結果が地味に効いてる
経営陣はAWSの課金が減ることを期待してるみたいだけど、はたしてどうなることやら

406 :
>>405
なぜGAE/goを見ない。

407 :
他人の書いたソースを読んでて特定のinterfaceの実際の実装を見たい場合
どの構造体や型をみればいいのか探すのが面倒なことはまれによくある

408 :
> Goのinterfaceはオブジェクトが必要な機能を備えているか調べるためのもの

これって公式にどっかに書いてあるの?
というかGoにオブジェクトって概念あるか

409 :
>>407
guruが対応してるから簡単に探せるで
vscならcmd+f12で実装を探す

410 :
>>409
うん
手元にcloneしたソースはguruで探すけど
githubでソース眺めてる時とかがちょっと困る

411 :
>>406
GAE/GoでgRPC使えるんだっけ?

412 :
GAE/GoやるならStandardで使いたいんだよね

413 :
GAE/Go SEとgRPCは色々と苦しい
代替案として挙げられるのはGAE/Goとgoaあたり?

414 :
GAE/Go Standardでも gRPC は urlfetch でいけるんじゃないの? やったことないからわかんないけど

415 :
>>410
doxygenみたくinterfaceのコードのところがリンクになってクリックすると
実装一覧が出るようにしてほしいってことね。

416 :
バックエンドはGAE/Goとgoa
フロントエンドはReactとReactNative(またはVue.jsとWeex)
この構成でwebアプリ、スマホアプリを作りたい

こういう開発者向けにRailsチュートリアル並に詳細かつ丁寧に解説してあるネット文献
あるいはAmazonで買える技術書が欲しい

417 :
>>416
お前は俺か。俺の場合はreact-nativeだけノータッチだけど

418 :
ホントはgRPCとGAE/Go使いたいんですぅ…

419 :
goaのDSL覚えるくらいならproto3やったほうがいいよね
goaのほうがgRPCより優れている点が思い浮かばない

420 :
普通にweb apiを簡単に作れてswaggerと連携って魅力じゃないので?

421 :
同じことをgRPCでも出来るがな

422 :
goaはWebAPI作るのには便利だけどそれ以外のケースであまり融通が聞くとは言い難い
そもそもWebAPIならどのフレームワークで作っても大差はない

423 :
goaはGo言語で記述するDSLからGo言語の各種ソースコードを自動出力する
gRPCは言語非依存のprotoファイル(IDL)から対応言語(Go言語以外のメジャーな言語に対応)の各種ソースコードを出力できる
汎用性が全然違う

企業目線だとgRPC選ぶのが多いんじゃないかな
実際にメルカリ、DeNA、CA、その他スマホアプリ大手のバックエンドはgRPCだし

424 :
GAE/Go SEで何の苦労もなくgRPCが使えれば平和になれそう

425 :
go-json-restはどうなん?正直これぐらいが一番好きなんだが

426 :
>>422
いやいやwebapiならgoa一択だと思うんだけど。もちろんゼロから構築という前提でですが。

gRPCならprotoを覚えるとGoのサーバーサイドも自動生成って認識で合ってる?DBとのつなぎ込みの部分はどう書くの?

427 :
goaやgRPCは「定義ファイル→ソースコード&ドキュメント生成」
go-json-restは直接ソース弄る系だからアプローチが全然違うな

428 :
goaもgRPCもDBまわりのビジネスロジックは手書きです
そこまで忖度はしてくれませんよ

429 :
>>428
ですね。アホな質問しました。
goaだとフレームワークも含めた形でコード生成するんですが
protoによるgRPCの場合はどうなのかなーと。例えばミドルウェアはサポートしてます?


goaもv2でgRPCをサポートするっぽいんですが、protoでのサーバサイドGoコード生成がいい感じならお役ゴメンもあり得るんですかね。

430 :
自動生成されたサーバーのハンドラ部分を各種フレームワークに繋ぐだけ
フレームワーク上のミドルウェアとも組み合わせることが出来る

431 :
ちなみにちょっとググったらjsからgRPCは使えないみたいですね。
reactNativeからは使えるんですかね。
jsから使えないのは痛い

432 :
いや使えるよ
https://github.com/grpc-ecosystem/grpc-gateway

433 :
なんか知らんけど急に役立つスレ化する時あるよな
ここでEchoがGAE/Goで動かない報告(>>223)したら
瞬時にパッチ当ててくれたり(>>239)
Go言語界の実力者が見てるっぽい

434 :
mattnさんgoのコントリビュータだし古参の2chねらーだからなあ

435 :
>>432
えー。これってrestAPIに変換してるってだけでは?
それってjsから使えるって言っていいんすか。

436 :
slackだとあんましアホなこと言えないしね

437 :
https://twitter.com/search?f=tweets&vertical=default&q=GAE%20gRPC&src=typd&lang=ja
TwitterでGAE gRPCを検索したらお前らがいたw

438 :
Qiitaでよく見かける人だらけやw
ISCON参加者もいるだろ絶対
レベルたけぇわこのスレ

439 :
>>435
grpc-webみたいなのなかったっけ?

440 :
goa使ってたらv2になったタイミングで勝手にgRPC対応してついでにGAE対応になってたらよい

441 :
>>438
でも俺1人でスレのレベルを大きく下げてるからな
油断すんなよ

442 :
>>441
ふざけんな俺もだわ

443 :
俺も俺も。正直slackは怖くて書き込めない。匿名だとクソな意見も言えるから大事

444 :
>>439
grpc-web-clientをGAE/Goで動かしてみた
https://qiita.com/koki_cheese/items/f2a1a1bc58b7ed881374
これでいいんじゃね

445 :
>>444
これやってみたけどgen.shがWindowsだとエラー吐きまくるなぁ…
やっぱりみんなMac上でしか動作確認してないのか
周りもMacかUbuntuだらけだしweb系はMac買ったほうがいいのだろうか

446 :
>>445
普通にエラー報告したら?
やってくれる人いると思うし知っていれば難易度が低い作業。ほぼワンライナーコマンドみたいだし。

protoコマンドがwin対応してないなら詰むけど

447 :
ドッカーでドカドカやればええんや!

448 :
docker+windowsは相性が悪くて
ファイルパスが¥と/で違うから
共有フォルダ設定が上手く行かず苦労した記憶ある
おとなしくmacかlinux上でやったほうがいい

449 :
個人的にWindows上で開発するのつらい
Windows用のアプリ作るときもLinuxで作ってクロスコンパイル
Goはその点すばらしいよね

(ただWindowsにしか対応してないpackageがある時は辛いけど)

450 :
>>449
winにしか対応してないパッケージがあるの?
そんなんあるんだ。逆じゃなくて?

でもコントリビュートするチャンスじゃん

451 :
例えばコレとか
https://github.com/lxn/walk

452 :
A Windows GUI toolkitだから当たり前じゃね

453 :
GAE/Go Datastoreライブラリ
https://speakerdeck.com/vvakame/golang-dot-tokyo-number-11
https://medium.com/@timakin/mercari-datastore%E5%AE%9F%E6%88%A6%E6%8A%95%E5%85%A5-a7211c56b77a

良いな
GAE/Goの発展に寄与してくれるメルカリに感謝

454 :
Using GopherJS with gRPC-Web
https://blog.gopheracademy.com/advent-2017/gopherjs-grpc-web/
これもいいな

455 :
インフラエンジニア分の人件費を完全にカットできるからROE高そうだな
10人くらいのチーム規模で月商5億くらいのサービス支えられそう
少数精鋭でいけるのが大きい

456 :
goon と gosto を統一したようなパッケージなのか
便利そうだな
俺も使ってみよう

457 :
インフルエンザ

458 :
https://qiita.com/koki_cheese/items/369cdfc6e3250185ccdb
この記事を見ながらGoogle App Engine上でgRPCを動かすテストをしているのですが
Windows環境だとproto_gen.shが動きません
https://github.com/k2wanko/gae-grpc-web/blob/master/build/proto_gen.sh

--plugin=protoc-gen-go=${GOPATH}/bin/protoc-gen-go \
この部分で指定されたファイルが見つからないエラーが出ているみたいですが
その場所にちゃんとprotoc-gen-go.exeは存在していますし、環境変数にGOPATHもしっかり設定されていました

やっぱりMac買ったほうが良いんでしょうか…
windowsだと本筋とは関係のないエラーに遭遇しまくりで萎えてしまう

459 :
'.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

あぁ謎…

古いMacbookでテストしたら普通に動作しました…
Windowsで開発はやめときます

460 :
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

6BTU26N0P5

461 :
保守

462 :
twitchtv/twirp いいよね

463 :
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

464 :
web系じゃなくてすまんが仮想通貨業界ってGoの存在感大きいんだな
東大発のベンチャーAIxブロックチェーン企業の求人がGo言語エンジニア直指定だった

465 :
ちなみにこれな
https://en-gage.net/daisy_hr/work_60316/
<必須要件>
> プログラミング言語
・Go (半年以上の実務経験)

466 :
イーサリアムがgoで実装されてるから。(C++とpythonもあるが)

467 :
skycoinもgolangだった
フィンテック系にも浸透してきてるね

468 :
プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。

2C3G9

469 :
progateにメルカリ監修でgoの講座できてる

470 :
>>469
メルカリ相当力入れてるよな

ついでにバンナム&スマホアプリの採用例も置いておく

https://cloudplatform-jp.googleblog.com/2018/07/google-app-engine-bandainamcostudios.html

471 :
>GCP の採用においては、エンジニア側の熱意も大きかったようです。
>「GAE と Datastore、Go 言語でやりたいという思いがエンジニアにすごくあったんです。
お前らがいたぞ

472 :
progateのgo初級編やってみたけどドットインストールと大差ないな
出来ればGAE/Goで作られたカウルをフルスクラッチで作れるくらいの内容を中〜上級編として公開して欲しい

473 :
>>472
カウルって何?

474 :
>>473
http://ascii.jp/elem/000/001/499/1499741/
>現在、メルカリ(中略)新規事業として(中略)本やCDなどに特化した「メルカリカウル」を提供している。
>メルカリカウルにおいては、すべてGAEで構築している。

475 :
>>474
何だ。専門用語かと思ったが略称なのね

476 :
gRPCをGAE/Goで使いたい。

この本の中身ってさ
https://techbooster.booth.pm/items/715936
第3章 Google App EngineでgRPC Webを使う
@k2wanko

この記事とほぼ一緒?
https://qiita.com/koki_cheese/items/369cdfc6e3250185ccdb

477 :
http://nodir.io/post/138899670556/prpc
pRPC: gRPC on Classic AppEngine today

こういうのもあるんだな
色々調べてみるか

478 :
仕事でgoでgRPC使ってるけどさ、正直何がいいのかわからない
JSON返しゃよくねと思ってしまう

479 :
本当に仕事で使ってたらその発想は出ないはずだが・・・
webの相手しかしてないの?スマホアプリのバックエンドとして普通使うよね?

480 :
WebView使った側ネイティブアプリだとJSONしか使えなくね

481 :
マイクロサービス間の通信にgRPC
フロントエンドにはGraphQL

482 :
別にサーバとクライアント間ではjsonでも困らんと思うが。
どっちかというとクライアント内のデータ構造がjsonのままはきつい。

483 :
OpenAPI(Swagger)とgoa使ってる人いる?
webアプリにしか使わないならこっちのほうがいいよね?

484 :
俺は普通のwebアプリでも使ってるけどね。spaなら全然行ける

485 :
>>483
使ってると言いたかった。
マイクロサービスとか言うけど、結局webサーバーとして使えるから

486 :
gRPCあきらめてTwirp使おうぜ

487 :
Twirp良さそうだな
HTTP1.1→2.0の過渡期限定だけどさ
.protoが同じなら生産性も学習コストも同じだし

488 :
Twichもgolang使ってたのか
覇権確定だな…
邪悪なOracleの支配下になったJavaを捨ててgolangに来たかいがあった
技術選定を見誤ると数年以上の遅れに繋がる

489 :
Google、Go Cloudを発表――クラウド開発ツールでGo言語の普及加速を目指す
https://jp.techcrunch.com/2018/07/25/2018-07-24-google-wants-go-to-become-the-go-to-language-for-writing-cloud-apps/

490 :
Googleが用意したGoのライブラリを使うだけで
GCPやAWS等のクラウドプラットフォームを自由に切り替えできる
ポータビリティの高いwebアプリケーションが開発できる、ってことかな?
これは良いね

491 :
ksk

492 :
goでwebサーバ建てる場合ってwebapiサーバだよね。
普通のwebアプリ。html返すようなのにgoを使うメリットってあるかな?

493 :
というか向いてるgoのフレームワークある?

494 :
goでhtmlはやめたほうがいい

495 :
今どきhtml吐き出し系のwebしか見てない設計を選択するのはやめたほうが良いと思うけどな
RESTないしgRPCないしTwirpにしてプラットフォーム共通にすべき
ネイティブスマホアプリ対応が二度手間になる

496 :
>>492
動作が高速

497 :
>>495
俺も最初はそう思ったけど、クライアントサイドのバグ対応を考慮すると、
必ずしもSPAが正解とは言えない気がする。
インスタンスの生存期間が短いほうがシンプル何だよね

498 :
うちはgoやめてrustに移った
えーん

499 :
>>497
requestに対するresponseのみの構成。
ぶっちゃけSSRな方式のほうが

500 :
うちはgoのプロジェクトだらけになってきた。
ちなみに時価総額数千億の大手。

501 :
メルカリか

502 :
ストックオプションうらやましい
俺ならヤングリタイアするわ

503 :
ヤングリタイアならいいけど
仲間数人雇って独立はやめとけよ
人件費だけであっという間に数千万飛んでいくから…
まともに稼げるプロダクトがないのに見切り発車で起業して
自殺してしまった人を知ってる…

1人でも起業できるのがITの良いところなので
自称ニートしながらPeingみたいな小粒サービスを何個も作ってたほうがいい

504 :
>>503
いいね。

505 :
一つ聞きたいんだけどgoでweb apiサーバ建てるとしてwebクライアントはどうしてる?
spaってインスタンスの生存時間が長くなりがちだし、バグったときに全体が止まるから好かんのだけど、どう作るのが一番手軽?

506 :
API次第

507 :
goaを使う

508 :
Twirpを使う

509 :
Visual Studio Code使ってるんだけどさ
ビルドタスクのtasks.jsonの記述冗長すぎないか?
結局make使ってるわ
シンプルで理解しやすいし
やりたいことはprotocくらいだしいいよね?

510 :
goはmakeしか使ったことないわ

511 :
鯖は全部jsonで返して
クライアント側はVueかRiot

512 :
reactっていったい何だったんだろうな
最終的にvue.jsの天下になった

513 :
anguler

514 :
VueよりRiotの方が簡単でシンプルで再利用性が高いと思うの

515 :
https://m-fetishism.com/vr/
https://m-fetishism.com/puke/
https://m-fetishism.com/joi_mania/

516 :
reactの方が単価高いけどな

517 :
Vueは結局jQueryと同じになりそうだが...
githubのissueもreactよりずっと少ないし、
npmの週刊ダウンロード数見ても数倍差がある...

結局単価高いのはtypescriptでreact書いてるところだし

518 :
Vueは結局jQueryと同じになりそうだが...
githubのissueもreactよりずっと少ないし、
npmの週刊ダウンロード数見ても数倍差がある...

結局単価高いのはtypescriptでreact書いてるところだし

519 :
vueだとどうしても型で固めきれないよね。
reactはflowとか型付言語と合わせて使うのがほぼ前提になってるから。

520 :
Go言語チームとGoogleが「Go Cloud」プロジェクト発表。同一コードでAWSやGoogle Cloudなどに対応できるポータブルなクラウドアプリの実現へ
https://www.publickey1.jp/blog/18/gogooglego_cloudawsgoogle_cloud.html

521 :
やっときたか

gRPC-Webが正式リリース。WebブラウザからgRPCを直接呼び出し可能に
https://www.publickey1.jp/blog/18/grpc-webwebgrpc.html

522 :
関数の引数にstringを渡しているときは常に値渡しで、
文字列をコピーしているって公式の記載で書いてあるところどこにありますか?
探しているんですが見つからず。arrayは値渡しなのは書いてあるんだけど、、、

523 :
えっと、その情報のソースはどこにあるの?
ソースください(公式に記載があることを断定していることからするとソースがあるんだと思いますが)。

そして、文字列のコピーってのは何を言っているんですか。

Go の文字列は immutable だから、中身のバイト配列をコピーする必要ない。
https://golang.org/ref/spec#String_types
ただ Go の文字列は、配列というよりスライスに近くて、
実際のバイト配列へのポインタをそのサイズを持った構造体である。
https://golang.org/pkg/reflect/#StringHeader

この StringHeader についてはコピー(値渡し)される。
でも中身の Data はコピーされない。
別に、Data もコピーすると思い込みたければ思い込んでもいいけど、
immutable だからコピーしてもしなくても変わらない。

実際に試してみれば:
https://play.golang.org/p/qsaq4AET8ac

524 :
>>523
おーありがとうございます。
https://blog.golang.org/go-slices-usage-and-internals
見ながら文字列=arrayなのかと想像していたんですが
実際には文字列=sliceだったんですね
そのへんの記述が見当たらなくて悩んでたんですが、公式のドキュメントには書いてないんですかね。実験で確かめるしかない感じ?

525 :
>>523
そのページの Related articles に書かれてますよん。
https://blog.golang.org/slices

> Now a brief section about strings in Go in the context of slices.
> Strings are actually very simple: they are just read-only slices of bytes
> with a bit of extra syntactic support from the language.

> An important consequence of this slice-like design for strings is
> that creating a substring is very efficient.
> All that needs to happen is the creation of a two-word string header.
> Since the string is read-only, the original string and
> the string resulting from the slice operation can share the same array safely.

526 :
>>525
亀レスですがありがとうございます。
ところでStringHeaderで言語内部のデータ構造にアクセスできることに感銘を受けたんですが同じようにsliceにもアクセス可能なSliceHeader的なのもあったりしますか?
とおもったらStringHeaderの上にもあったw

527 :
Hugoいい

528 :
【自衛隊内闇組織、別班】 安倍晋三・田茂神俊雄によるクーデター未遂事件、大垣新幹線ボルト抜き事件
http://rosie.2ch.sc/test/read.cgi/liveplus/1541727683/l50

529 :
go modulesめっちゃ便利やな
GOPATH関係なく動くのが本当にいい、開発時に嫌だった制限がとうとう無くなってハッピー

530 :
>>529
確かに便利だわ。

531 :
GAEのstandardも1.11からurlfetchとかが消えてハッピー
ベータとれたらやっと人に勧められるわ

532 :
すれち

533 :
ええねん

534 :
GAE/SEのGo言語でgRPCするためのベストプラクティスってある?
それをまとめたWAFがあると理想なんだがなぁ

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

535 :
TwirpってことはHTTP/1.1なREST使いたいんだろ?
双方向通信やストリームを使わないのであればgRPCよりも
GraphQLのほうがいいと思う

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

536 :
https://twitter.com/ydnjp/status/1066529802142674945
参考までに
(deleted an unsolicited ad)

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

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

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

スッキリするじゃん

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

539 :
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注目かもしれんな

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

541 :
GAE/Node.jsとGAE/Goってどっちがスピンアップ早いのだろう?と思って調べたらこうなった

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

Javaは問題外だな

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

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

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

544 :
巨大なプログラムを書けない人はセンスが無いだけ
そういう人はコンパイラ使っても破綻する

545 :
頭悪そうなレスだな
出来る出来ない論じゃなくて?

546 :
くゃしぃのぅ

547 :
>>543
Typescriptあるやん

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

548 :
https://github.com/prisma/prisma/issues/1708

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

549 :
何事も適材適所

550 :
(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と旧世代のコードが分散してて辛いな
最新の情報はここを見て!という道標が欲しい
公式ドキュメントは散らかりすぎてて訳わからない

551 :
(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であること、東京リージョンがないことを覚悟して使うべし。

552 :
spanner使ってるけどつらみがある

553 :
それは課金額が原因?

554 :
原因不明のabortが多いのよね

555 :
なるほど

556 :
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
いいぞ!

557 :
GraphQLの定義ファイル書いてCUIでコマンド打つだけで
Google App Engine / SEで動作するwebアプリケーションが
完成するシステムを開発して欲しい

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

558 :
Golangの魅力って結局なーに?

559 :
Go! Go! Go!
And goes on!

560 :
>>558
GAE/SEで動かせる言語の中でスピンアップが一番高速
これが最大のメリット

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

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

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

561 :
gaeでgo動かしてるんですが、jsonpayload形式でログって出せないですか?

562 :
くさあっ

563 :
Goのwebasmって最小でも2MBって馬鹿なの死ぬの?
この大きさってなんの意図があるんだろう

564 :
ランタイム込みだからじゃないの?

565 :
Go失速したのかissueマネージメントやら方向性の意思決定に難があるようだな
このまま使い続けて大丈夫だろうか

566 :
112の話題ないのか。

567 :
Goって流行ってるのか流行ってないのか分からん

568 :
Dよりはhot

569 :
>>565 氏が難が無いようにしてくれれば、このまま使い続けても大丈夫ですよ!

570 :
いわゆる声の大きいstaticおじさんたちにissue占拠されて進化しなくなったな…マジで何とかしてくれ!

571 :
みんなのGo言語改訂されるのか。
Goの書籍少ないから買う。

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

573 :
macでgoenvを使って最新の1.12.xをインストールしようと思ったら一覧に出てこないのですが何か理由はあるのでしょうか?
goenvは1.23.3です。

574 :
>>573
goenv v2 で対応される予定だけど、まだそれがβだね。
https://github.com/syndbg/goenv/releases

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

575 :
>>574
なるほど、ベータか、、、
無理に最新を追いかけないのがいいかな。
ありがとうございます。

576 :
https://i.imgur.com/YiwIqnW.jpg

577 :
>>574
試しに入れてみた。
やっと1.12で開発できるぞ。

578 :
あのエラーハンドリングDraftが提案されてからもう1年くらい経つが
結局どうなったのかGitHub覗いたら話がまとまるどころか別提案が乱立してた!

えぇ・・・

579 :
アクティブな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型のほうも雲行き怪しいね

580 :
Go失速したっけ?むしろ上がり調子な気がする。
案件はある。

581 :
V言語がこのまま成長したらGoは完全にお役目終了にならんか少し心配ではある
TypeScriptが出たときのDartを思い出す

582 :
C言語にトランスパイルするだけの言語だから
V言語ソース→トランスパイル→C言語→コンパイル→実行バイナリになるので
C言語の弱点(コンパイルが遅い)を強化する糞言語にしかみえないけどな

583 :
V言語とか完全にネタ枠じゃん

584 :2019/11/30
初期のC++と同じCへのトランスパイル方式なのかVは
Goの文法にRust等のmatchとか?制御とか追加してあったりコンパイルもサイトの説明通り速いな
ホント毎年あたらしい言語増えるの楽しい中学生のやつも

DBの絡んだWEB制作の相場
PHPにもJSPのEL式とかtaglibとか標準で用意しろよ
MySQL vs PostgreSQL
ファイルメーカーでどこまでできるウェブアプリ!
コンテンツとデザインの分離
☆ブラクラの製造方法を教えてください。
RSS/RDF
++++FF ADVENTURE++++
WebProg板出席簿(寂)
PHPでOOP
--------------------
若手にとって、上司との飲み会はパワハラ part2
「なぜ逮捕しない!」辺野古の警備員が勤務中に反基地活動家を批判するツイート 不適切だと問題に
まだガラケー使ってる喪女★13
試用期間での退職 第74日目
首吊りチョンコ(笑)
路線バスで寄り道の旅2系統【徳光田中】
【2050財務省】上念司30【百兆円=日本人4千万人】
【PS4/PS3/PSV】英雄伝説 閃の軌跡総合 part 732
【イナズマイレブンGO】神童の嫁投票所【蘭丸・茜・お勝】
【富士フイルムファーマ】TJマサヤD
普通の人達が普通に語る日月神示 第一巻
【韓国メディア】「買い占めのない国」…多くの海外メディアは韓国人の市民意識を高く評価している[3/22]
亀田より酷い奴なんて他のスポーツ界にいるの?
*オークションに出してとおながいするスレッド*
【外交の天災】韓国政府、米軍基地返還問題は韓国が米国を相手に攻勢的に使える「カード」である
【ハイパー肛門ドリル】吉木ゆんヲチスレ2【虚言癖】
【高津区】溝の口ってどんなイメージ? [451864516]
安倍首相、ノーベル賞の吉野さんに電話で祝意 「おめでとう。日本人として誇りに思う。」
【中央日報】 私たち(韓国人)には被害者の情緒があるのか[04/19]
【野党】消費増税に一斉反発 枝野氏「不況の中で暴挙」
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼