16/07/27 12:46:23.51 .net
Go言語によるWebアプリケーション開発を語るスレです
公式
URLリンク(golang.org)
公式日本語訳
URLリンク(golang-jp.org)
チュートリアル
URLリンク(go-tour-jp.appspot.com)
2:nobodyさん
16/07/27 12:51:35.66 URwxJb7+.net
主要なWAF一覧
Revel
URLリンク(revel.github.io)
beego
URLリンク(beego.me)
Goji
URLリンク(goji.io)
Gin
URLリンク(github.com)
martini
URLリンク(github.com)
3:nobodyさん
16/07/27 12:55:22.73 URwxJb7+.net
初心者向けGo言語のイ・ロ・ハ!!~Goを採用している2社がノウハウ大公開|ヒカ☆ラボレポート
URLリンク(time.levtech.jp)
Go言語を学びたいエンジニア必見の記事・スライド12選
URLリンク(career.levtech.jp)
4:nobodyさん
16/07/27 23:14:01.78 dHw2cHm7.net
改訂2版 基礎からわかる Go言語、古川昇(エイベル)、2015
翻訳プロジェクト、公式サイトの日本語訳
URLリンク(golang.jp)
5:nobodyさん
16/07/28 00:02:06.48 .net
そういやGoogle Devfest 2010に参加したときに
GopherのTシャツ貰ったな
URLリンク(sites.google.com)
6:nobodyさん
16/07/28 16:50:56.11 .net
golang および go言語の注目度(検索ボリュームの推移)
URLリンク(www.google.co.jp)
7:nobodyさん
16/07/29 07:59:28.63 .net
「メルカリ アッテ」を支える Google App Engine と Golang
URLリンク(speakerdeck.com)
8:nobodyさん
16/07/29 09:43:33.40 .net
GAE/GO専用のフルスタックWebフレームワークってないの
JavaのSlim3みたいなのがいい
9:nobodyさん
16/07/29 11:00:10.21 .net
あとGAE/PythonみたいなGUIワンボタンでデプロイできるツール欲しい
10:nobodyさん
16/07/30 15:36:19.82 .net
URLリンク(seleck.cc)
>MIIDASは新規開発のプロジェクトなので、開発言語をいくつかの候補の中から検討しました。
>正月休みにメジャーな言語をはじめ、RustやElixirなどの新しい言語もさわってみてどれを使うのが良いのか考えました。
>結果としては、MIIDASではGo言語を使うことに決めました。
>自分でさわってみて「これは流行るな」と確信したというのが一番の理由ですね。
11:nobodyさん
16/08/01 16:45:47.13 .net
触ってみたけどオブジェクト指向になれてると違和感あるな
12:nobodyさん
16/08/01 16:51:09.27 .net
class Dog {
13:nobodyさん
16/08/01 16:55:49.59 .net
途中送信してしまった
class Dog {
Name string
func Bark() string{
return "bow-wow"
}
}
どうしてもこう書きたくなる
type Dog struct{
Name strig
}
func (d *Dog) Bark() string{
return "bow-wow"
14:nobodyさん
16/08/01 16:57:00.82 .net
上のgoの書き方だとメソッド定義が離れすぎててもにょる
15:nobodyさん
16/08/03 13:25:46.02 RMh/TBde.net
お
いいタイミングで立ったな
>1 もつ
16:nobodyさん
16/08/03 13:32:47.60 RMh/TBde.net
いいね
URLリンク(developers.eure.jp)
17:nobodyさん
16/08/03 14:13:24.00 .net
LL言語だと負荷が増えた時にボトルネックになりそう
↓
最初からポストC言語と呼ばれる高速なGO言語を使えばいいんじゃね?
↓
資金的余裕がある大手BtoCベンチャー企業での採用例が急増
利用事例が増えスタートアップ企業での採用も急増(寄らば大樹の陰)
RubyやPHPでかかれた既存webアプリの一部分だけをGo言語で書き直す企業が急増
↓
ワイ「Go言語がこれから来る!!」 ←いまここ
18:nobodyさん
16/08/03 14:38:32.83 RMh/TBde.net
おだてたら調子に乗りやがるな
19:nobodyさん
16/08/03 17:35:17.04 .net
go高速なんか。出た当初はjava程度だけど、コンパイルがクソ早いってのがウリだった記憶。
20:nobodyさん
16/08/04 09:45:07.62 .net
gokiburi language
21:nobodyさん
16/08/04 13:58:32.53 83PDY2ZD.net
GO is GOD
22:nobodyさん
16/08/06 13:03:30.96 .net
URLリンク(www.amazon.co.jp)
Kindle Unlimited:読み放題対象
月々980円で技術書読み放題
これはいいな
23:nobodyさん
16/08/07 12:52:05.79 .net
飛行機落ちそう
いやな予感しかしない
24:nobodyさん
16/08/07 13:32:52.73 .net
IT関連は今のところ、ほぼその本出してる翔泳社だけかな?
アメリカの方探してみたけど、そっちはどこも参加してない気がする。
Purpose
Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes.
URLリンク(github.com)
golintのreadmeでは、上のような説明になっていた。
こういう記事を参考にしてみるといいかも。
URLリンク(blog.amedama.jp)
25:nobodyさん
16/08/11 03:57:55.78 .net
Golangを初めて本番投入したぜ!
URLリンク(blog.yusuke.be)
PHPとGoって何が違うの?LIGが自社サービス開発にGo言語を採用したお話
URLリンク(liginc.co.jp)
ここ最近になって急に採用しました記事増えたな
キャズムを超えられたのか
26:nobodyさん
16/08/14 18:01:13.95 .net
昨今のwebサービスはスマホアプリ化する必要がある
スマホアプリだとUXの関係でSPA(SinglePageApplication)にするのが望ましい
バックエンドはAPIサーバとしてJSON吐き出すだけでいいので
この性能が高いGolangが選ばれるようになった
27:nobodyさん
16/08/15 09:42:50.91 85LKtaa1.net
Erlangだろ
28:nobodyさん
16/08/17 13:53:40.26 .net
>>26
JSONならRuby on Railsも得意なんすわ
29:nobodyさん
16/08/17 15:51:44.63 .net
得意(ドヤ)ってあほですか
30:nobodyさん
16/08/17 16:01:59.34 .net
URLリンク(www.techempower.com)
Go 215,078
rails-stripped-jruby 6,765
31:nobodyさん
16/08/17 16:05:01.47 .net
相手が最も得意な分野で勝負を挑んじゃダメでしょ
Railsはチュートリアルの豊富さ、学習コストの低さ、昨今のRailsライクなWAFの原
型となった功績を売りにするべき
32:nobodyさん
16/08/17 19:32:59.55 .net
役目は終わった(ドヤ)
33:nobodyさん
16/08/17 23:15:56.79 .net
>>31
いやいや
てめーらの100倍の速度でコーディングしてサービスをローンチできるから
34:nobodyさん
16/08/21 02:44:59.06 .net
In Go HTTP handlers, why is the ResponseWriter a value but the Request a pointer?
(GoのHTTPハンドラはなぜResponseWriterが値で、Requestがポインタなの?)
URLリンク(stackoverflow.com)
なるほどね
35:nobodyさん
16/08/25 21:02:10.23 .net
>>33
くそわろた
36:nobodyさん
16/08/26 09:18:57.95 .net
AWS Lambda(FaaS)のサポート言語に入ってないのが致命的だな
URLリンク(docs.aws.amazon.com)
>AWS Lambda がサポートするいずれかの言語(現在は Node.js、Java、および Python)でコードを指定するだけです。
URLリンク(cloud.google.com)
>Google Cloud Functions are written in JavaScript, and execute in a Node.js runtime.
今後のトレンドはサーバレスになるの確定してるから、せめてGCFだけでもいいからGolangに対応してもらいたいところだ
37:nobodyさん
16/08/26 09:40:54.45 .net
メルカリの会社がGAE/Go使ってるんだっけ
URLリンク(news.thepedia.co)
>今回「アッテ」でGoとGoogle App Engineを使って非常に良かった。Goは非常に有力なウェブアプリ開発手段だと思う。
>また、Google App Engineに触れて、PaaSの時代が本格的に始まってきたと感じた。
>PaaSエンジンは今までもHerokuなどあったが、その中でGoogle App Engineが突き抜けて優秀だと思う。
>Google App Engineは毎日のようにアップデートもされていて非常に便利。
PaaSも悪くないよ
38:nobodyさん
16/09/19 12:38:04.06 .net
Ruby on railsからこちらへ乗り換えるメリットはありますか?
39:nobodyさん
16/09/19 18:15:43.35 .net
マルチうぜぇ
人に聞かなきゃ判断できないレベルの奴には
メリット一切無いから
おとなしくrails使ってろよ
40:nobodyさん
16/09/21 12:09:55.54 .net
GolangはWAFのデファクトが決まってない&WAFに関連した日本語文献が少ないところが問題
これだとRails使い(PHPerの後輩たち)には扱いきれない
41:nobodyさん
16/09/21 15:27:37.44 g4cWVuO1.net
あっちに貼るのはもったいない
Twitch
URLリンク(postd.cc)
メルカリ アッテ
URLリンク(speakerdeck.com)
Dropbox
URLリンク(blogs.dropbox.com)
42:nobodyさん
16/09/21 19:36:14.62 .net
今からGolang使ってWebアプリケーション作るとしたらGAE/Goがいいの?
PaaSを選択すればインフラ周り丸投げできるしメルカリアッテの実績があるから
是非ともやってみたいのだが、全文検索するだけで課金されるのがモニョっとする
メルカリアッテの検索部分は何をつかってるのだろう
43:nobodyさん
16/09/21 19:45:46.01 .net
資料に書いてあったか
DAU100万で費用200万
そのうち28%がSimple Searches
DAU100万ってことは月間PVは最低でも3000万
広告がビジネスモデルだとCPMはおおよそ100円程度なので
月300万~の売上
ちと厳しい気もする
44:nobodyさん
16/09/23 01:49:03.91 .net
Railsから、Goへ変えるなんてのは、Git Hub みたいな大規模サイトの話だろ
中小企業では、アプリの速さより、開発・保守費用を優先すべし
45:nobodyさん
16/09/23 02:06:38.84 .net
>>44
一日に4000UV
80000PVの俺のRailsサービスではクソおもかった
まぁ日曜プログラマだから
アマチュア同然なんだけどね
46:nobodyさん
16/09/23 02:12:57.37 .net
アプリの速さはAWSインスタンス費用に直結するからなぁ
Golangの開発・運用・保守費用はRailsより安いぞ
シングルバイナリだからデプロイ高速だし
47:nobodyさん
16/09/24 18:38:35.43 .net
GAEのErlangバージョンまだー
ちんちん
48:nobodyさん
16/09/25 04:34:55.52 .net
URLリンク(cloud.google.com)
>App Engine flexible environment で custom runtime を使えば、他の言語でもコードを書くことができます。
もう何でもいけるんじゃね?
49:nobodyさん
16/09/26 15:57:20.01 .net
Google App Engine for Goスレないの?
50:nobodyさん
16/10/10 14:47:18.19 35qD53wX.net
ここでいいんじゃね
51:nobodyさん
16/10/19 04:37:05.49 .net
その辺のレンサバで使える?
52:nobodyさん
16/11/04 11:25:05.31 .net
今時レンサバ使ってる奴いるのか
転送量青天井が怖いからサクラVPS使う奴はいるかもしれんが
大抵はクラウド(AWS)じゃないの
53:nobodyさん
16/11/04 12:14:16.70 .net
GAEです
54:nobodyさん
16/11/15 04:34:21.21 .net
goって後発な割にnull安全じゃないけど
なんか理由あるの?
55:nobodyさん
16/11/16 02:14:36.03 FYPwqhnB.net
Java だって nullpo exception 出すぞ
56:nobodyさん
16/11/16 11:22:31.52 .net
この場合のnull安全というのは
nullが代入不可な変数が作れる言語を指してる。
57:nobodyさん
16/11/23 23:29:08.83 .net
Kotlinの、null許容型 a?、非null型 a とかだろ
自分でそういう関数を書けばいい
if(null == x){
a_? = x;
}else{
a = x;
}
58:nobodyさん
16/12/01 13:15:47.33 .net
go言語で作られたアプリで素晴らしいものを教えあおうではないですか。
とりあえず
micro
peco
hugo
が自分の中でよく使うしいい感じなアプリです。
59:nobodyさん
16/12/16 01:46:08.86 .net
golangのwebフレームワークって何がいいのだろう
どうせならgoogleが作ってくれないかな
泡沫WAFは気がつくとアップデートなくなってたりするから怖い
60:nobodyさん
17/01/03 20:07:41.09 .net
>>52
会社はAWSパートナーで俺も一番簡単な資格持ってるが個人で青天井は怖い&そんなに金出したくない
さくらVPS(1000円弱)とかでGO使ってるの見るからそれでいいんじゃね
61:nobodyさん
17/01/07 15:49:46.44 .net
メルカリアッテの実績あるし
GAE/Goでいいんじゃないの
確か課金予算決められたはず
62:nobodyさん
17/01/10 21:22:30.04 .net
GAE/Goの場合、標準ライブラリ以外でやると即効で詰むんだが何とかならんか
echo使いたくてもエラーでbuildできない
63:nobodyさん
17/01/11 03:16:04.48 .net
ginだと割りとすんなりいけるぞ
64:nobodyさん
17/01/11 13:00:34.85 .net
>>63
どんなエラー出るの?
65:nobodyさん
17/01/11 15:45:11.75 .net
go-app-builder: Failed parsing input: parser: bad import "syscall" in ~
だな
GAEだとsyscall使えないせいかね
66:nobodyさん
17/01/11 17:39:38.39 .net
メルカリアッテのパワポみると
・どんなフレームワークを使う? → net/http
って書いてあるのな
これだと俺々フレームワークになってしまい、再利用性が著しく悪化するのが目に見えてるから
GAE/Goに特化したWAFが欲しいところだな…
67:nobodyさん
17/01/11 19:46:32.65 OnduR/xH.net
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00 ニコニコ生放送
lv286846512
68:nobodyさん
17/01/12 11:17:41.47 .net
>>66
というかechoってsyscall使ってるんか。
gae/goへの対応して欲しいなー。
69:nobodyさん
17/01/12 11:19:34.61 .net
というか echo gae/go で検索すると使ってる例が結構出るんだけど
URLリンク(qiita.com)
とか
なんか間違えてないか?
70:nobodyさん
17/01/12 11:57:14.39 .net
ニコニコ見逃した
71:nobodyさん
17/01/12 12:35:45.73 8tW16mqq.net
勉強会というよりただの発表会だった
たぶん勉強にはならない
72:nobodyさん
17/01/12 14:29:17.24 .net
あらまあ
73:nobodyさん
17/01/12 17:57:42.09 bjYIZ+4u.net
ぷっ
74:nobodyさん
17/01/19 10:14:45.72 .net
URLリンク(chrome.google.com)
75:nobodyさん
17/01/24 02:14:37.27 .net
EDoSが怖いので課金上限設定が出来るGAEで画像掲示板を作ろうと思うんだが
AWSで運営して青天井になるよりこっちのほうがいいよね?
識者の見解求む(今のAWSは上限設定できるよ!などの情報あったらお願いします)
76:nobodyさん
17/01/24 13:29:38.94 iwOh9Bp6.net
yes
77:nobodyさん
17/01/24 14:43:05.14 .net
ありがとうだぜ
しかしEDoSの脆弱性を指摘されながら
未だに課金上限設定が出来ないAWSって何なんだろうな
破産しそうな金額請求されるくらいなら、自動的にサービス停止してくれたほうがいいのに…
78:nobodyさん
17/01/25 19:17:22.99 .net
>>77
普通は監視してるからある程度アクセスがあればわかるっしょ。
79:sage
17/01/27 00:15:55.96 oHVgWmVN.net
GAE/GoでWebpushのサイトを作ってみた。意見を聞かせてくれ。
巡回しているサイトがかたよっているとかいうのは無しで。
URLリンク(matopush.appspot.com)
作ってみた感想。
・goonが便利だった。
80:nobodyさん
17/01/27 21:38:09.58 .net
>>79
もっと一般向けにしてくれないと試す気にもならないよ……
81:nobodyさん
17/01/29 01:44:46.54 6rfbbMuf.net
一般的...。深読みすると利用者がサイトを登録できるようにすればいいのかな
82:nobodyさん
17/01/31 15:12:14.74 .net
>>62
URLリンク(qiita.com)
>追記 2016/11/17
>最新のechoではこの記事の内容は動作しません
URLリンク(github.com)
>Failed parsing input: parser: bad import "syscall" in github.com\mattn\go-colorable\colorable_windows.go from GOPATH
たぶんこれだな
このk2wanko氏とメイン開発者のやりとりで一時はFixされたはずなんだが
他の開発者の大半がGAEのことなど気にかけてるわけもなく
バージョン新しくなった際にまた問題が復活してしまった可能性がある
実際、俺も
83:nobodyさん
17/01/31 15:13:56.05 .net
途中送信すまぬw
実際に俺もecho on appengineをやろうとしたら、例のエラー出て進まなくなった
汎用フレームワークとGAEの相性はかなり悪いので
GAEを諦めるか、GAE専用の俺々フレームワーク作るほうが良いかもしれん
84:nobodyさん
17/01/31 16:02:04.41 .net
>>81
UI/UXデザインのほうだよ
プログラマにデザインセンスを求めるのは酷だから
出来合いのフレームワークを使おう
※BootstrapやFoundation等
URLリンク(foundation.zurb.com)
URLリンク(getbootstrap.com)
85:nobodyさん
17/01/31 16:12:37.90 .net
> 作ってみた感想。
> ・goonが便利だった。
これは俺も同感
というかGAE/Goのデフォルトが使いにくすぎる
86:nobodyさん
17/01/31 23:48:36.92 .net
URLリンク(cloudplatform-jp.googleblog.com)
GAE/Go事例みつけた
>特に最新世代ではベンダーからの薦めもあって、Google App Engine(GAE)/Go 環境に移行しています
>費用的にも「めちゃくちゃ減った(笑)」(中村さん)とのこと。具体的な費用は明かせないものの、最大で約 20 分の 1 程度になっているのではないかと語ってくれました。
すごいな、20分の1…
同じシステムをGAE/PythonやGAE/Javaで組んだら、どのくらい違うのだろうか?
Goだと実行速度早いからコスト削減効果も高い?
87:nobodyさん
17/02/01 19:31:12.89 .net
VPSで動かしてた個人ブログをGAE/Goに変えたら運用コストが0円になった
ドメインもappstore名義のまま運用だから0円
ひたすら放置するサイト運営にはもってこいだな
ただしAdsenseはGoogleのドメイン上では動かせないので、そこだけ残念
88:nobodyさん
17/02/01 22:37:20.85 DOgp9Jb+.net
>84
サンクス。これから勉強するわ
89:nobodyさん
17/02/03 02:05:58.04 .net
GAE/Go上でwebアプリケーションを作る時に参考になる書籍がないなぁ
・ログイン、ログアウト(Googleアカウントに任せる場合、自分で作る場合の2つ)
・認証(JSON Web Token)
・JSONで出力
・テンプレートエンジンを使った出力(デフォルトのでいい?)
・ページング(Cursorと非同期通信を利用して動的に次ページを追加するUIの例)
・CRUD(goonを使う場合と、デフォルトとの比較があるといい)
・画像アップロード処理
・おすすめのWAF(Ginが良さそう?)
・課金額を節約するTips
これらを体系的にまとめた本が欲しい
だれか電子書籍(Kindle)で販売してくれんかね
90:nobodyさん
17/02/03 09:29:17.70 .net
>>83
俺の場合はコッチだったな
go-app-builder: Failed parsing input: parser: bad import "unsafe" in github.com/valyala/fasttemplate/template.go from GOPATH
ちょこっと直せば動くようになったwindows環境とmac環境でも違うのかもね
GAEはいろいろ問題あるんだねー
91:nobodyさん
17/02/03 10:55:47.15 .net
GAEとGinは相性いいぜ!
URLリンク(developers.mobage.jp)
>AndAppにおけるシステム構成概要
URLリンク(static1.squarespace.com)
>これらは、すべてGAE SE上にモジュールを展開しており、開発言語はgolang、
>フレームワークにgin(一部echo)を利用しており、データストアには主にCloud Datastoreを利用しています。
92:nobodyさん
17/02/03 10:57:59.68 .net
CA、DeNA、メルカリアッテ
大手のGolang採用例が増えてきたな
GAEもやっと脚光を浴びるようになってきた
93:nobodyさん
17/02/03 16:54:14.23 .net
goで行列演算ならどのライブラリがおすすめ?
gonum/matrixかな
94:nobodyさん
17/02/03 20:09:24.12 .net
pure go のchainerが欲しいわ
95:nobodyさん
17/02/03 22:23:10.26 .net
Goで機械学習わりと流行っても良さそうなもんだけど何で流行らないんだろう教えてエロい人
96:nobodyさん
17/02/03 23:29:12.00 .net
深層学習やるならpythonになってしまってるね
97:nobodyさん
17/02/04 12:45:48.80 .net
ツールさえ揃ってれば乗り換えるだろ
98:nobodyさん
17/02/04 19:50:29.55 .net
そのツールを揃えようとする動きがないもんな
99:nobodyさん
17/02/05 00:19:59.87 .net
>>86
これ東京リージョン使ってないみたいだけど、その辺はどうなんだろ。
100:nobodyさん
17/02/08 00:30:17.33 .net
URLリンク(github.com)
すまん、Goの質問スレなかったからここで聞かせてくれ。これって何やってんの?
101:nobodyさん
17/02/08 00:54:55.40 .net
外人が作ったライブラリを使うだけの職業プログラマな俺には難しすぎるだ
102:nobodyさん
17/02/08 03:25:30.46 .net
リンクから飛ぶとうまく見えないけどL16からのところのグローバル定数のところが初心者にはよく分からんかった
103:nobodyさん
17/02/08 07:29:49.78 .net
denseがちゃんとinterfaceを実装してる確認じゃないかな?
104:nobodyさん
17/02/08 13:35:53.01 .net
URLリンク(ja.stackoverflow.com)
2chだと質問が埋もれて共有できなくなるから、SOFで質問するとええよ
105:nobodyさん
17/02/08 13:42:42.90 .net
C、C++、C#
Java、PHP、Ruby、Python、Node.jsといろいろ触ってきたけど
Golangに落ち着きそう
web用に整備されたC言語という印象が強い
106:nobodyさん
17/02/08 13:50:09.13 .net
>>103
なるほど?
まだわかってないけどありがとう
>>104
たしかに
ありがとう
107:nobodyさん
17/02/08 16:09:15.90 .net
>>106
goのinterfaceは
javaとかと違ってimplements interfaceみたいな構文が不要で
interfaceの条件を満たすメソッドさえ実装すればいい。
でもそれって逆に言えばコンパイルエラーにならないので
ちゃんと目的のintefaceの条件を満たすメソッドを実装しているか
チェックできないとも言える。
こういう書き方をするとinterfaceを満たさない実装をしていると
コンパイルエラーにしてくれるのでjavaみたくエラーから実装をチェックできるようになる。
108:nobodyさん
17/02/08 16:21:10.55 .net
ためになったわぁ
ありがとう
良スレの予感
109:nobodyさん
17/02/08 16:30:09.30 .net
>>107
詳しくありがとう!
自分で試してみた
URLリンク(play.golang.org)
普段LLばっか書いてると躓くところ多くてなかなかスピーディにコード書けない・・・
110:nobodyさん
17/02/10 23:12:52.03 .net
GAE/goでaetestをつかってdatastore使おうとすると反映されないんだが
実際にtestにおいて実際にデータベースに保存処理したい場合どうすればいいの
111:nobodyさん
17/02/10 23:55:00.13 .net
>>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:nobodyさん
17/02/11 01:29:27.49 .net
GAE/Go専用のフレームワークが欲しい
Scaffoldで雛形作成できるタイプのを頼む
PythonだとFerrisあるじゃん?
URLリンク(ferris-framework.appspot.com)
Golangを手軽に実行できる環境があるならWAFも整備しないとね
113:nobodyさん
17/02/11 04:14:16.03 .net
GAE/Goで全文検索を実装する場合、GoogleのSearch API使うべきなの?
ぶっちゃけこれ、かなりコスト高いよね
GAEで実装されてる大規模サービスを見て回ると
Googleカスタム検索に丸投げしてるから気になった
(つまりSearch API使ってない)
URLリンク(cloud.google.com)
>月間 PV が 1 億 3,000 万、MAU (Monthly Active User) 950 万に達するサイトを、 Google App Engine 上で構築、運用。
114:nobodyさん
17/02/11 04:28:05.18 .net
全文検索以外にもページングする時はCursor使わないとパフォーマンス落ちるから
<<[1][2][3][4][5]>>
こういうページングはご法度だし
GAEのSEは色々縛りあって辛いな…
SPAにしてプログレッシブな動的ページング
(次へを押すと非同期にデータ取ってくるページング)のほうが
UI/UXの観点で言えば優れているからCursorページングでも問題はないけど…
やはりGAEは上級者向けだ
自社サービスで使ってる会社を尊敬する
115:nobodyさん
17/02/13 04:40:45.90 .net
>>112
RevelをGAE/FEで動かせばいいんじゃね?
無料枠あるGAE/SEがいいなら自作するしかないな
116:nobodyさん
17/02/13 04:48:50.33 .net
Golangキャズム超えたか?最近の伸び率が凄い
URLリンク(www.google.co.jp)
中国、香港からの検索が多いのは何でだろう
Golangで何作ってんだ
117:nobodyさん
17/02/13 04:58:32.69 .net
URLリンク(golangtc.com)
URLリンク(studygolang.com)
中国にはGolang専用のコミュニティあるんだな
Why is Golang popular in China?
URLリンク(herman.asia)
>Google App Engine is also way more popular in China than anywhere else
調べによるとGAE/Goも人気らしい
118:nobodyさん
17/02/13 05:04:02.79 .net
URLリンク(beego.me)
中国人が開発したGolangのWAF、Beegoが人気あるみたいね
HuaweiやTencent Gamesで使われてるっぽい
119:nobodyさん
17/02/13 05:06:36.12 .net
GAE/Go対応もしてるな…
URLリンク(github.com)
>beegae is a port of beego intended to be used on Google's AppEngine.
ちょっと調べてみるか
120:nobodyさん
17/02/13 11:02:41.92 .net
昔goconで一緒になった中国人の人に話を聞いたけど
中国のスタートアップは初期の想定アクセス数が日本の10倍だから
1requestあたりのコストが低いgoが好まれるって。
121:nobodyさん
17/02/13 11:46:30.04 .net
なるほど、そういう理由があったのか
122:nobodyさん
17/02/13 16:03:54.80 .net
ここでechoとGAEの組み合わせが使えないって言ってたけど
glideをつかってfasttemplateのバージョンを固定すれば普通に使えるな。
- package: github.com/valyala/fasttemplate
version: 3b874956e03f1636d171bda64b130f9135f42cff
123:nobodyさん
17/02/13 17:25:28.82 .net
外部ライブラリが悪さしてたのか
URLリンク(github.com)
これ見て納得した
124:nobodyさん
17/02/13 18:55:33.78 .net
goonでdatastoreを使ってる人に教えてほしいんだけど
ID int64 `datastore:"-" goon:"id"` もしくは
ID string `datastore:"-" goon:"id"` って設定してる時
指定したIDに対して自動採番ってどうしてます?
goon使わなきゃ自動的に適当なID振られるよね?goonでおまかせする方法を知りたい
125:nobodyさん
17/02/13 19:02:32.95 .net
>>124
すんません自己レスです
ID int64 `datastore:"-" goon:"id"`
を使ってれば自働採番するのね。stringだけ試してエラーになってたから
てっきりgoon使うと自動採番されないのかと。すいません。
126:nobodyさん
17/02/13 19:11:16.66 .net
あやまることはないぞ
Gopher目指して頑張ろう
127:nobodyさん
17/02/14 20:13:03.50 .net
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:nobodyさん
17/02/14 20:20:13.01 .net
Beegoを調査した結果
初心者に優しい学習資料の提供(日本語)
URLリンク(github.com)
★14,018 astaxie/build-web-application-with-golang
ビデオを使ったチュートリアル
URLリンク(beego.me)
Golang関係の資料が少ない中、質の高い教材を提供してくれてるようだ
GolangのデファクトWAFになりそうな予感する
スター数調査でも1位だったしな
129:nobodyさん
17/02/15 09:37:08.31 .net
>>127
スター数の多さがデファクトスタンダードとはいい難いけど。
昔からあるフレームワークだしそのスター数二番目のMartiniはメンテナンスされてない。
ドッチかというとechoじゃないの。新興のプロジェクトだけどスター数順調に増えてるし。
130:nobodyさん
17/02/15 12:13:23.57 .net
echoはGAE/Goと相性悪くね
Glide使ってバージョン固定とか面倒くさい
131:nobodyさん
17/02/15 12:58:06.13 .net
Windows10上でecho/GAE/Goやる場合
colorable_windows.goがsyscall使ってるのでgo-app-builderに弾かれる
対処するにはデフォルトのLoggerを使わないように、echo側に手をいれないといけない(面倒い)
URLリンク(github.com)
Macでは発生しないのでMac使えばいいが、世の中の人間が全員Mac使いではないから
GAE/Goやる人にechoはあんまりおすすめできないな
132:nobodyさん
17/02/15 15:19:10.68 .net
>>131
beegaeでも同じだよ
GAE/GoをWindowsで開発するのは避けるべき
殆どのフレームワークで不具合出る
133:nobodyさん
17/02/15 15:29:55.72 .net
GinだとWindows開発でもエラーが出ない
URLリンク(github.com)
エラーの原因である"github.com/mattn/go-colorable”を使うのをやめて
"github.com/gin-gonic/gin/binding”を使うように修正したようだ
特にこだわりがなければGinでいいと思う
まぁこの機会にMacユーザになってみるのもいいんじゃない?
誇張抜きでweb系エンジニアは8~9割Macだし、今回のような不具合に遭遇する確率減るよ
134:nobodyさん
17/02/15 16:08:20.77 .net
mac買うよりdocker上でGAE/Goの開発環境動かすほうが現実的な気が
135:nobodyさん
17/02/15 16:40:16.21 .net
Docker for WindowsってHome非対応じゃなかったっけ?
場合によっては追加費用発生するな
Mac買うよりは安いけどさ
136:nobodyさん
17/02/15 21:29:37.13 .net
IDEないんけ?
VS並みとは贅沢言わん
137:nobodyさん
17/02/15 23:14:36.36 .net
>>136
おれはVisualStudioCodeにGoのplugin入れてる。
これが一番いい気がする。といってもsublimeとatomくらいしか比較してないけどね。
あとjetbarainsiがgoのideを開発中らしい
URLリンク(www.jetbrains.com)
まだ試してないのでぜひ人柱お願いします
138:nobodyさん
17/02/15 23:31:01.05 .net
VisualStudioCode使ってるよ
非常に快適なり
139:nobodyさん
17/02/16 02:34:51.14 .net
Atom使いにくいのに何故か人気あるよな
VScodeはMSの製品とは思えないほど洗練されてる
140:nobodyさん
17/02/16 03:03:56.05 .net
Vimじゃだめなんか?
141:nobodyさん
17/02/16 03:18:33.10 .net
>>139
プロキシ下でインターネットにつながらないバグはまだ修正されてないけどね
142:nobodyさん
17/02/16 08:51:42.80 .net
phpstormとrubymine使ってるからjetbrainのは楽しみだわ
143:nobodyさん
17/02/16 09:02:57.87 .net
>>141
URLリンク(qiita.com)
これのこと?
144:nobodyさん
17/02/16 11:29:25.16 .net
>>143
いや、0.17.2まではその設定で大丈夫だったんだけど、その後また駄目になったんよ
145:nobodyさん
17/02/16 14:48:09.13 .net
>>140
Vimでもいいけどgoの開発環境が一発で作れるやつ下さい
146:nobodyさん
17/02/16 14:51:48.48 .net
何か凄いの出てきたぞ
GAE/Goでも使いたいな
「もう従来DBかNoSQLか悩まずに済む」、Googleが基幹用RDB「Cloud Spanner」を発表
URLリンク(itpro.nikkeibp.co.jp)
147:nobodyさん
17/02/16 14:56:03.93 .net
>また、分散型トランザクション、スキーマ、DDLステートメント、SQLクエリー、JDBCドライバーなどをサポートし、
>Java、→→ Go ←←、Node.jsといった主要言語に対応したクライアントライブラリーを提供する。
> Cloud Spannerは、企業向けクラウドサービス「Google Cloud Platform(GCP)」のデータベースポートフォリオに加えられる。
GAE/GoのSEでも使えるのかな
とっても気になる
148:nobodyさん
17/02/16 15:10:11.86 .net
やっと正規化しても許される世界に戻れるのね…
長かったわ
149:nobodyさん
17/02/16 17:29:53.02 .net
>>144
あ、1.7.2だ
150:nobodyさん
17/02/17 01:31:49.48 .net
URLリンク(cloud.google.com)
毎時、Cloud Spannerは、プロジェクト内に存在するCloud Spannerノードの数を追跡します。
その時間に存在するノードの最大数に時間単位の料金を掛けた時間ごとに課金されます。
その結果、提供するノードには最低1時間料金が請求されます。
1時間あたりのノードあたりのコスト
$ 0.90
どういうこと?
もしかして1時間に1~2回しかDBアクセスのない低負荷のwebアプリケーションでも
0.9*24*30=648ドルかかる?
151:nobodyさん
17/02/17 01:36:37.40 .net
Twitter界隈の声
URLリンク(twitter.com)
152:nobodyさん
17/02/17 01:45:02.01 .net
URLリンク(twitter.com)
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:nobodyさん
17/02/17 01:47:08.76 .net
結局Datastoreで我慢するしかないのか
154:nobodyさん
17/02/17 01:56:07.99 .net
銀の弾丸はない
155:nobodyさん
17/02/17 10:35:40.67 .net
>>137
IntelliJ ideaのプラグインでGo使ってるけど、コード補完もできるし便利です。
156:nobodyさん
17/02/17 10:36:56.32 .net
>>148
Cloud SQLじゃ駄目なの?
157:nobodyさん
17/02/17 15:18:33.67 .net
試しに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:nobodyさん
17/02/17 15:31:08.68 .net
URLリンク(code.google.com)
159:nobodyさん
17/03/01 14:46:45.96 .net
Go言語でWebアプリを作りかけて辞めた話
URLリンク(b.hatena.ne.jp)
160:nobodyさん
17/03/01 15:55:01.46 .net
Go Web プログラミング
URLリンク(astaxie.gitbooks.io)
161:nobodyさん
17/03/01 23:16:18.42 .net
>>159
シンプルならオレオレでいいと思うけどな
162:nobodyさん
17/03/02 01:10:41.68 .net
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:nobodyさん
17/03/02 10:00:46.27 .net
ちょっとしたバッチツールを作ってcronで実行したいんだけど
前回の情報を記録しておきたい。
かと言ってHome dirに設定ファイル置くほどのツールでもない。
んで、ioutil.TempFileを使おうと思ったんだけど毎回ファイル名が変わるので具合が良くない。いい方法知らないです?
164:nobodyさん
17/03/02 15:56:41.24 SF/dvuxP.net
>>162
googleのサイト見たら充分なのです
165:nobodyさん
17/03/02 19:28:18.58 .net
>>164
だね。
どうせググれ無い人は本なんて買わないからね。
166:nobodyさん
17/03/02 20:50:08.13 .net
8だけに焦点当てたGAE/Go本は欲しいかも
167:nobodyさん
17/03/03 12:37:36.60 0IprNYYI.net
>>163
GAEならstorageあるやろ
168:nobodyさん
17/03/06 16:58:30.90 .net
Go言語って何ででこんなに偏屈なんだろう
URLリンク(pineplanter.moo.jp)
はてブコメントにお前らがいた
169:nobodyさん
17/03/06 17:01:02.98 .net
URLリンク(b.hatena.ne.jp)
まぁこのコメントのほうが正しいんだけどさ
素人のおっさんプログラマーの戯言に熱くなりすぎだぞ
170:nobodyさん
17/03/06 17:50:28.41 .net
>なんで、func int f()じゃなく、func f() intなのか
>
>この順番がコンパイル速度や実行速度に効くとは思えず(だよね?)、であれば、なぜこの順序にしてしまったのかとても不思議です。
寧ろ既存言語がCの仕様を引き継いでるだけ。
ちゃんと意味はある。
Goの宣言構文について」を翻訳してみた
URLリンク(qiita.com)
171:nobodyさん
17/03/06 19:18:45.38 .net
パスカル風でわかりやすいけどな。
そういや、パスカルもnilか。
172:nobodyさん
17/03/06 20:14:17.50 .net
最近使い始めたけど、クセに慣れるのがちょっと大変。
でも面白いので、Webサービス一本作ってみようと思う。
173:nobodyさん
17/03/07 02:52:55.63 .net
URLリンク(www.codeschool.com)
これいいわ
やっぱり理解度高めるには動画だな
全部英語だけど殆どの文章がプログラマの専門用語で構成されてるから聞き取りやすい
174:nobodyさん
17/03/07 03:48:31.01 .net
>>172
フレームワーク使うの?
golangの定番Webフレームワークってあるのかな?
175:nobodyさん
17/03/07 04:06:32.67 .net
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:nobodyさん
17/03/07 04:09:49.60 .net
フルスタックがいいならBeego
薄いラッパーがいいならGin
このあたりかな
標準のnet/httpとtemplate/htmlだけでもいい
フォルダ構成を考えていくと俺々フレームワーク化するけどな
177:nobodyさん
17/03/07 04:12:41.28 .net
martiniはPulse見た限りでは殆どメンテされてないのでやめといたほうがいい
他に良いWAFがあったら紹介してくれ
178:nobodyさん
17/03/07 09:45:28.98 .net
>>175
>>176
>>177
なるほど
どれか1つが飛び抜けてくれれば
選びやすいんだけどなあ
179:nobodyさん
17/03/07 17:24:34.51 .net
URLリンク(twitter.com)
>golangのWAFとしてIrisだけは絶対に選んではいけないと思う.
>技術的にダメなのではなく倫理的に完全にアウトなので.
>Comitt Historyを書き換えて自分だけをContributerにしたりLICENSE消したりIssueを編集したり...
というわけでIrisは無いかな
180:nobodyさん
17/03/07 17:43:08.84 .net
URLリンク(engineer.dena.jp)
>AndAppはスマートフォン向けゲームをPC上でプレイできるプラットフォームで、2017年3月現在、15タイトルが配信されています。
>そのサーバサイドのシステムは、従来のオンプレミス環境のサービスとは異なり、Google App Engine Standard Environment(以下、GAE SE)上で動作しています。
>また、開発言語も従来のPerlとは異なり、GAE SEで利用可能なGo言語が採用されました。
URLリンク(developers.mobage.jp)
>これらは、すべてGAE SE上にモジュールを展開しており、開発言語はgolang、フレームワークにgin(一部echo)を利用しており、
>データストアには主にCloud Datastoreを利用しています。
大手(DeNA)の事例だとGAE SE /GoとGinを使ってるらしい。
参考までに。
181:nobodyさん
17/03/08 00:38:01.37 .net
URLリンク(www.tiobe.com)
2016年中期にGoの普及率が一気に伸びてるけど何かきっかけあったんか?
このスレが立ったのも2016年のど真ん中だし気になってきたわ
182:nobodyさん
17/03/08 09:27:42.22 .net
>>174
酒好きとしてgin使ってます。
183:nobodyさん
17/03/10 02:28:22.97 .net
URLリンク(hack-le.com)
>消費電力を観察してみると、だいたい寝かせているときは10W前後で、なにか作業を始めると15-25W程度といったところです。
>長時間にわたる画像の変換など重い作業をしているときは60Wまで記録しました。
2コアなら余裕で収まりそうだ
184:nobodyさん
17/03/10 02:29:06.49 .net
すまん 誤爆だ
185:nobodyさん
17/03/12 13:25:53.05 .net
日本ではbeego人気無いのかな?
中華の事例が大半じゃあ
186:nobodyさん
17/03/12 13:59:31.33 .net
日本人は中国アレルギーがあるからBeegoは流行らないと思う
どんな便利なソフトウェアでも中国産というだけで避ける人は沢山いる
(Mactypeは絶対使わない、って人も多いよね)
187:nobodyさん
17/03/12 14:35:38.11 .net
その論理で行くとvue.jsも日本ではやらないことになるが。
188:nobodyさん
17/03/12 14:40:33.22 .net
GAE/Goを使いたいWindowsユーザの視点からWAFを評価してみた
(単純なHello Worldが動くかどうか)
Gin
→問題なく動く
Beego
→Beegaeを使う必要がある。例示されてる移行用コマンドはMac用なのでWindowsでは動作しない。
Windowsに適合するように書き換えても、colorable_windows.go問題が発生する。
Echo
→colorable_windows.go問題が発生する。
GAE/GoやるならMac使ったほうが良いね。
189:nobodyさん
17/03/12 14:42:38.04 .net
>>187
vue.jsよりriot.jsのほうがよくね?
190:nobodyさん
17/03/12 14:45:59.59 .net
最近リリースされたVisual Studio 2017のインストーラはElectron&Riot.jsだった
URLリンク(qiita.com)
>印象的だったのはフロントに React とかではなく,riot.js が使われていました,わかる.
191:nobodyさん
17/03/12 14:52:08.61 .net
日本:Revel>Gin=Echo>Beego
異論は認める、というかRevelは今はそんなに使われてないかもしれん
192:nobodyさん
17/03/12 14:59:43.02 .net
RevelはGAE/GoのSEで動かないから最初から選択肢にないな
BeegoはMacで開発するならありだと思う
windows+dockerで開発することもできるけど共有フォルダ周りでトラブルに遭遇するのが落ちだから
最初からMacでやったほうが精神衛生上良い
193:nobodyさん
17/03/12 15:00:18.25 .net
>>189
vue.jsもriot.jsも中途半端なんだよなー
ReactかAngularでいいんじゃね?って感じ
194:nobodyさん
17/03/12 15:41:31.12 .net
GoプログラマーにWindows機しか割り当てない会社なんてあるのか?
ちなみにEcho+Reactがわいの中では最強れす
195:nobodyさん
17/03/12 15:47:06.06 .net
reactから漂うprototype.js臭が苦手
riot.jsからはjQueryの良い香りがする
196:nobodyさん
17/03/12 16:26:43.70 .net
Revel以外のフレームワークはセキュリティ廻りが弱いって誰か言ってた(´・ω・`)
197:nobodyさん
17/03/12 16:35:54.57 .net
>>191
え?日本じゃMartiniが一番だろ??
198:nobodyさん
17/03/12 17:07:47.38 .net
ReactはHTMLとJSの混在感が気にある。
typescriptから使うと補完がめっちゃ効くのが素敵ではあるけど
Angularは学習コストが半端ない。
ということでVue.jsにした。
>>197
>Martini
NOTE: The martini framework is no longer maintained.
ってなってるのを使うの不安ある。
199:nobodyさん
17/03/12 18:04:26.52 .net
>>198
VueもHTML/CSS/JS全部ごちゃまぜじゃね
200:nobodyさん
17/03/12 18:48:51.23 .net
>>199
.vueファイルのこと言ってんだよね。
vue.jsはhtmlを取り込めるからhtmlだけ、独立できるけど、reactはjsxで事実上jsベースにxml構文を追加しただけだから、混在は避けられない。
201:nobodyさん
17/03/12 19:07:44.98 .net
>>200
あー確かにそれはできるねスマン
実際はSPAとかやるならどっちでもいいと感じる
一部のコンポーネントだけreactやvueにしたいとかだとjsxぽいのはHTMLが散らかって見通し悪いよなあ
202:nobodyさん
17/03/12 20:12:42.11 .net
やけに伸びてると思ったらJSの話かよw
203:nobodyさん
17/03/12 22:22:08.04 .net
golangさんはJSON吐き出しマシーンだからな
仕事がルーティングとORMとのやり取りだけになったので
フロントJSさんの話題が出やすい
204:nobodyさん
17/03/12 23:35:50.22 .net
WEBAPI設計する時にできるだけ楽したいんだけど
おすすめの設計ツール的なのある?ドキュメントも自動生成されちゃうようなの
やっぱswaggerとかかな
205:nobodyさん
17/03/13 00:33:34.61 .net
BeegoはSwaggerだったよ
URLリンク(beego.me)
URLリンク(raw.githubusercontent.com)
206:nobodyさん
17/03/13 00:41:56.43 .net
ほほう。それはいいこと聞いた。
207:nobodyさん
17/03/13 10:23:13.71 .net
>>203
まあそういう設計にするよね。
208:nobodyさん
17/03/13 14:49:48.28 .net
Riot.jsが扱いやすくて開発捗るんやが、後でなんか罠があるとかないよな?
普通のHTML感覚で書けるのがほんまにええ
209:nobodyさん
17/03/13 15:58:51.63 .net
riot.jsはQiita界隈でも好評だな
ReactはHTMLタグに直接Style設定しているような気持ち悪さがある(全然分離できてない)から
riot.jsに惹かれるのは仕方ない、というか必然
210:nobodyさん
17/03/13 18:55:06.79 .net
swaggerつながりでgoaというフレームワークもあるそうな
URLリンク(qiita.com)
触ったことないんだけどどうなんでしょうか?
211:nobodyさん
17/03/13 18:59:21.65 .net
goaの話はコッチのほうがいいかな
URLリンク(qiita.com)
ちょっと触ってみる
212:nobodyさん
17/03/13 21:20:55.72 .net
悪いことは言わんからフロントはReact+Reduxにしとけ
スマホアプリに転用できるメリットは想像以上に大きい
213:nobodyさん
17/03/13 22:25:36.33 .net
それ他のSPAライブラリも全部同じ
Cordovaかますだけ
214:nobodyさん
17/03/13 22:52:29.17 .net
GoaとかGizmoとか訳分からなくなってきた
215:nobodyさん
17/03/13 22:58:23.37 .net
>>213
お前Cordova使ったことないだろ?w
216:nobodyさん
17/03/14 03:26:13.80 .net
CordovaはWebView経由だからスマホのスペックによってはもっさりするんだよな
UXが悪いから使わないほうが良いよ
217:nobodyさん
17/03/14 08:32:15.11 .net
Angularはどう?
218:nobodyさん
17/03/14 13:46:16.34 .net
スマホアプリ化を視野に入れるとVue.jsとWeexが良さそうなんだがどうよ
URLリンク(weex-project.io)
219:nobodyさん
17/03/14 14:00:51.57 .net
2chで一番フロントエンドフレームワークの議論が活発なスレになってるなw
役に立つのはいいのだがGopher君が物欲しそうに見てるよ・・・
BeegoもVueもWeexも中国系なんだな
ハードウェア関係だとHuaweiやXiamiなどが有名だし
ソフトウェア関係でも先進国化してる
日本も頑張らねば
220:nobodyさん
17/03/14 15:40:41.11 zv/gt7PD.net
ム板の方でも angular は糞だから vue に乗り換えたって話は良く見かける
221:nobodyさん
17/03/14 17:45:32.81 .net
vueも最初の頃は簡易版angularって感じだったけど、今はbetter reactって感じ。一応reactより軽くて早いってのを売りの一つにしてる。
222:nobodyさん
17/03/14 22:47:51.13 .net
日本人なら、アシアルのMonaca !
Cordova(PhoneGap) + Onsen UI + AngularJS
223:nobodyさん
17/03/16 15:23:52.02 .net
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:nobodyさん
17/03/16 15:58:51.15 .net
自己解決
go get -u github.com/labstack/echo
で治りました
バージョンが古かったみたいです
225:nobodyさん
17/03/17 18:48:29.42 .net
GoogleのCloud Platformが常時無料プランと無料トライアルの両方を拡大してクラウド新人たちがAWSへ傾くのを防ぐ
URLリンク(jp.techcrunch.com)
URLリンク(japan.zdnet.com)
URLリンク(cloud.google.com)
> 新たに追加した製品は「Google Compute Engine」(1カ月あたり1個のf1-microインスタンス(米国リージョンのみ)
ますます使いやすくなったな
GAEだけでなくGCEまで無償で使わせてくれるとは太っ腹過ぎる
226:nobodyさん
17/03/17 19:53:48.48 .net
>>224
へ~windows+GAEで動かない問題は解決したんだねecho
227:nobodyさん
17/03/17 21:57:35.13 .net
MACでやれ、MACで
WindowsはC#、Android専用機れす
228:nobodyさん
17/03/18 14:44:26.18 .net
>>227
AppleがタダでMacに交換するサービスをやれば良いんだよ。
229:nobodyさん
17/03/18 16:31:12.10 .net
ワケワカメ
230:nobodyさん
17/03/18 16:35:06.21 .net
というかlinux環境を作ればいいだけだし。
今ならdockerで一発だろ。
macだけどもlinux環境は結局作ってるし
231:nobodyさん
17/03/18 17:36:20.94 .net
WindowsでDockerは後から色々面倒くさいこと出てくるけどなー
素直にmacでいいんじゃね?
232:nobodyさん
17/03/18 21:09:57.02 .net
>>231
macにすることがすなおかな。
たしかwindowsって標準でubuntu環境乗せられるようになったんじゃなかったけ
詳しい人求む。
233:nobodyさん
17/03/18 22:34:11.34 .net
WindowsのUbuntu環境は使い物にならんよ
docker for windows、kitematicのほうが遥かにいい
ただしWindows pro必須
(Homeの人はDocker Toolbox使うしか無いが、共有フォルダ設定でほぼ100%詰まる)
234:nobodyさん
17/03/19 17:21:21.21 .net
webとはちょっと違うんだが、golangでMac向けのキーリマップアプリケーション作れないかね
KarabinerがSierraから使えなくなって困ってる
HammerSpoonとNaoya設定使ってカーソル移動させてるが、処理落ち、もっさり感が気になって仕方ない
システムプログラミングの知識がないから、とっかかりが掴めない
誰か実力ある人、OSSで作ってくれ
235:nobodyさん
17/03/19 18:26:30.48 .net
>>234
karabinerのスレあるからそっち見なよ。go以前にそうかんたんな話ではないみたいよ
236:nobodyさん
17/03/19 19:37:53.50 .net
難しいのか、なるほどありがとう
237:nobodyさん
17/03/19 21:58:18.27 .net
>>232
Hyper-V使えば余裕
238:nobodyさん
17/03/20 02:00:36.78 .net
GAE/GoとGlideによるvendoring使ってgoapp serve .したら動かなくて焦ったわ
app.yamlの設定が悪かったのな
nobuild_files:
- vendor
skip_files:
- vendor/.*$
GAE/Go初心者の皆様、あなたは大丈夫だと思うが注意してくれ
俺はこれで数十分無駄にした
情報共有のために書き込んどく
239:nobodyさん
17/03/20 02:04:25.74 .net
>colorable_windows.go Fix the build constraints syntax for appengine 7 days ago
なんだ
Echo側がGAEに対応してくれたわけじゃなくてmattnさんが頑張ってくれたお陰だったのか
このスレに報告しても無駄だと思ってたが案外役に立つんだな
俺は君の頑張りをちゃんと見てるよ!
対応してくれてありがとな
240:nobodyさん
17/03/22 17:21:46.28 .net
もしかしてEchoってTemplate周り面倒くさい?
URLリンク(echo.labstack.com)
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:nobodyさん
17/03/22 20:53:47.95 .net
REACT使えばええんやで
242:nobodyさん
17/03/23 10:33:04.59 .net
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:nobodyさん
17/03/27 14:59:32.93 .net
サーバー側テンプレート使う?
244:nobodyさん
17/03/28 07:42:18.50 .net
NO
245:nobodyさん
17/03/29 16:43:24.85 .net
2chのバックエンドってどうなってんの
ここ最近API経由の専ブラの表示がめちゃくちゃ遅いんだが・・・
JIMさん、Golangを使って対処してよ
246:nobodyさん
17/03/29 18:54:31.51 .net
自分の回線を疑う気はないのか
247:nobodyさん
17/03/30 08:30:19.66 .net
>>245
確かに遅い
回線のせいではないと思う
APIの応答がなんか悪い
248:nobodyさん
17/04/03 15:58:37.34 .net
【緊急】2ちゃんねる全体がすっげえ重い [無断転載禁止](c)2ch.net [822935798]
スレリンク(poverty板)
これだな
249:nobodyさん
17/04/08 15:36:44.17 .net
[49選]国内注目のWebサービス・アプリを大調査! プログラミング言語、フレームワーク、アーキテクチャの一覧【2017年 春 ver.】 - エンジニアHub|若手Webエンジニアのキャリアを...
URLリンク(employment.en-japan.com)
250:nobodyさん
17/04/08 15:42:17.72 .net
Golang採用サービス一覧
・メルカリ
・グノシー
・スタンバイ
・クックパッド
・UZOU
・ニュースパス
・Wantedly People
・AWA
・pairs
・Mackerel
・Gyazo
251:nobodyさん
17/04/08 18:27:00.87 .net
過去の産物ばっかやな
252:nobodyさん
17/04/08 18:56:57.32 .net
Golangの利用事例(大規模トラフィック)
・Youtube
・Abema.tv
これで十分だろ
253:nobodyさん
17/04/08 19:06:10.44 .net
クックパッドってGo使ってんの?
254:nobodyさん
17/04/08 20:23:11.24 .net
流行りものが好きでとりあえず使ってみました的なやつだろ。何使ってもけっきょくシステムはできあがるし。
255:nobodyさん
17/04/08 20:49:18.92 .net
一種類の言語、FWだけですべて作ってる方が珍しいよね
クックパッドだってメインはよく知られてるようにRailsだろうし
256:nobodyさん
17/04/08 22:57:57.69 .net
ラズパイみたいな機器でgolangでデカイファイル(mp4とか)のアップロード処理をしたいんだけど単純な実装だと一度メモリに展開しちゃうから
メモリが足りなくて止まってしまいます。
かと言ってtempfile使うとOSが入っているSDを痛めちゃうから
遅延書き込みできる仕組みとか使えないかなと思ってるんですが
そういう実装例ってないですかね?
257:nobodyさん
17/04/09 01:51:50.04 .net
>>256
すんません自己解決しました
258:nobodyさん
17/04/09 08:05:49.29 .net
解決したなら解決方法書いていくぐらいの事できないのかね
書き残しておけば同じ疑問持ってる人の参考になるだろ
質問はするのに自分の知った知識を他の人に提供するのはそんなに嫌かい?
259:nobodyさん
17/04/09 09:36:42.77 .net
すいません。そのうちqiitaに纏めます
260:nobodyさん
17/04/09 09:52:23.79 .net
>>258
io.Pipeを使います。
URLリンク(garbagecollected.org)
261:nobodyさん
17/04/09 12:13:05.70 .net
今まではhatenaブログ等に断片化していた情報がQiitaに集約される流れはいいな
262:nobodyさん
17/04/11 08:30:28.06 .net
今さらながら、Gorilla/muxが使いやすい
EchoもGinもいらんな
263:nobodyさん
17/04/11 17:36:50.44 .net
GinもEchoもフレームワークというよりライブラリに近い
フォルダ構成まできっちり定めてくれると初心者には迷いがなくていいんだが・・・
264:nobodyさん
17/04/20 11:45:04.19 .net
メルカリ・ソウゾウでは、どのようにGoでソフトウェア開発をしているのか聞いてみた
URLリンク(codeiq.jp)
265:nobodyさん
17/04/20 11:48:14.79 .net
Goの流れが加速している今
GAE/GoにフォーカスをあてたWAFの開発と
GAE上で動作するマストドンのようなオープンソースプロダクトが欲しいところだね
266:nobodyさん
17/04/20 14:57:00.25 .net
URLリンク(github.com)
267:nobodyさん
17/04/20 23:03:31.51 .net
>>265
Goで作ればいいんじゃね?
268:nobodyさん
17/04/21 12:37:36.29 .net
>GAE上で動作するマストドン
Mastodonを稼働させるために必要なインフラの知識を
オートスケールなPaaSで吸収しちゃったら乱立が加速してしまうな・・・
あとGAEでリアルタイムサーバープッシュする場合、Firebaseと連携する必要があるからやや面倒だぞ
URLリンク(cloud.google.com)
>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:nobodyさん
17/05/01 22:27:48.53 .net
最近go調べてるんだけど
FW選びすんげー迷うなこれ
雌雄が決するほどの勢いもなさそうだしなぁ
270:nobodyさん
17/05/01 23:42:46.76 .net
このスレで言うことじゃないかもしれんが最近はtypescriptが、良い気がしてる。
結局jsonを変換せずにそのまま使えるのがでかい
271:nobodyさん
17/05/02 04:26:08.94 .net
好きあらばJS
272:nobodyさん
17/05/02 11:40:40.98 .net
>>269
自社開発で息の長いプロジェクトなら薄いラッパーぐらいがいいし、受託とかプロト開発で効率重視ならフルスタックでいいと思う。
273:nobodyさん
17/05/18 11:47:40.96 .net
goaが鼻血が出そうなくらい便利なんだが。
swagger.json吐くから
Swagger Code Generatorでtypescript-fetchのコードはいたら
Goの構造体そのままのinterface定義(typescriptのinterface定義ね)
でapiクライアント吐いてくれるんで
サーバからクライアントまで全体を型付きで扱える。
echoでrestサーバ作ろうとしてたのがアホすぎたわ。
もうgoaでいい。
274:nobodyさん
17/05/18 11:54:27.65 .net
goaのいいところはとにかくルーティングとかバリデーションとか
勝手にもれなく自動実装してくれるところだね。
restの流儀を知らなくても実装してくれるから
後はdb側とのつなぎこみだけ作ればいい。
むしろgoaにrestサーバの作り方を習ってる感じ。
後はコードジェネレートだからinterface{}型を使ってないのがいい
DSL側で事前にここはint型だからって指示しておくから
ちゃんとint型で入ってる。Goはやはりコードジェネレートが正義だな。
メタプログラミングが苦手ならコードジェネレートすればいいじゃない。
db側もxoを使うことにした。
スキーマ設計はDB側だけにする感じで。
goaでdb設計もできるけど、dslを気軽にいじるならdb設計はやらせないほうがいい気がする
275:nobodyさん
17/05/19 20:57:09.66 .net
AppEngineにも対応してるのがええな
goa
276:nobodyさん
17/05/20 02:47:24.51 .net
goでマイクロサービス作るとして
中小企業に提案できるのって
どんなぱたーん?
277:nobodyさん
17/05/20 04:07:04.99 .net
>>276
goaってマイクロサービス向け銘打ってるけど、別に普通にreactなフロントエンドを動かすサーバサイドとして普通に使って良さそうだけどな
278:nobodyさん
17/05/22 01:06:26.25 .net
よくわからんからサンプルプロジェクトをGithubで公開してくれや
goaとgoogle app engine/goのStandard Environmentで動くコードがいい
クライアントはvue.js(またはreact.js)を使ったSPAで
ID、名前、コメント、作成日時、更新日時 をページングあり(20件ごと)で一覧表示する感じでよろ
CRUDも当然できるものとする
279:nobodyさん
17/05/22 01:08:19.86 .net
ページングはCusor使ってインクリメントな動的ページングな
オフセット使うとパフォーマンス問題でるから
<<[1][2][3]>>
こういうのは使えない
280:nobodyさん
17/05/22 17:40:05.45 .net
>>278
URLリンク(github.com)
とかみてみたら。
webapiしかないけど、
DSLにFiles があるからstaticファイルの配信も簡単で
すぐreactで追加実装できる。
あとはgoでSSR出来ればほぼ完璧だなー
281:nobodyさん
17/05/22 17:43:43.31 .net
あと勉強会もあるみたい
URLリンク(istyle.connpass.com)
残り二名だけど
282:nobodyさん
17/05/26 01:51:36.32 .net
久しぶりにgoで開発してたら何かvscでgoの開発作業するとマシンパワーやたら食うんだけどなんでだろ
283:nobodyさん
17/05/27 04:43:19.15 .net
HDD故障の前兆
284:nobodyさん
17/05/27 15:10:26.50 .net
>>282
これ関係あるかな?
VisualStudio Codeスレより
8 名前:デフォルトの名無しさん [sage] :2017/05/16(火) 00:07:55.41 ID:jyI5CijS
久しぶりにgoの開発をこいつで始めたらなんか調子よくないな。
定義を見に行ったり行かなかったりする。
エディターを再起動すると治る気がするけど、定期的に再起動しないとだめ臭い
285:nobodyさん
17/05/27 16:27:38.65 .net
>>284
ごめん。それ俺ですマルチポストすまんですm(_ _)m
issueみてみると皆困ってるみたいだから
何れ解決すると期待したい。
goの開発環境として一番使いやすいと思ってたんだけど
こうなると微妙やなjetbrainの試してみようかな。
286:nobodyさん
17/05/29 22:44:06.21 .net
jetbrainのやつWindowsで使ったら
フォント描画がひどすぎて目が潰れたのでMac版推奨
287:nobodyさん
17/06/16 20:08:48.73 .net
>>281
これ、結局参加できなかった。
結局人数割れ起こしてるみたいね。
goa使ってるんだけど、echoとかより実際のコードの記述量は減る感じだよね。
あとマジックコードがないから生成したコードを追いかければ理解はできるのがいい。
reflectionだらけのコードよりいいわ。
288:nobodyさん
17/06/19 16:48:44.42 .net
なんだ
GAE/GoもPython向けのGUIツール使えるんだな
app.yamlを適切に設定してあればどの言語でもワンボタンでDeploy出来る
今までCUIでコマンド打ってたわ
289:nobodyさん
17/06/19 19:14:32.53 KiQbYgwJ.net
なるほど
290:nobodyさん
17/06/21 09:46:59.10 .net
goでapiサーバ作ってる人多いと思うんだけど
apiのテストってどう書けばいいの?
dbのコードと密結合してるんだけど、、、
291:nobodyさん
17/06/21 11:11:17.99 .net
>>290
テスト系DB作って、まっさらな状態から通しでAPI呼んでいく。
結果としてDBに残る値も担保できるので、普通はこうすると思う。
292:nobodyさん
17/06/21 14:52:29.59 .net
>>291
それが無難か。
そういうのを効率的に実装するヘルパーなライブラリってないでしょうか?
productionから自動的にDBのスキーマだけ拾ってきて
testDBを新規作成してくれるとか。
293:nobodyさん
17/06/21 16:32:15.85 .net
>>292
それじゃ、カラム増やしたときにテスト出来ないよ。
しかし、DBのスキーマだけ拾ってcreate文に落としてくれるのはだいたいのDBにあるのでは?
pgdump然り。
294:nobodyさん
17/06/22 13:23:53.52 .net
goってテスト用のディレクトリを作っちゃうとパッケージ名を
変えることになってパブリックな関数とかしかテストできなくなっちゃいますか?
テストコードと実装が同一階層に並んでいるのがなんとなく気持ち悪いんですが
コレは諦めるしかないんですかね?
295:nobodyさん
17/06/22 16:35:01.97 .net
>>294
なんとなく気持ち悪い程度の理由なら標準に合わせた方がいいよ。
それを気持ち悪いと思わない人達が作った言語なんだから。
296:nobodyさん
17/06/23 09:24:33.39 NkG4Dxg2.net
>>295
割り切りも必要
297:nobodyさん
17/06/23 12:36:17.45 .net
一番聞きたいのはディレクトリ掘っても、パッケージ名を維持する方法
298:nobodyさん
17/06/30 10:33:43.08 .net
制服ミニで脚が細く綺麗なJKが前歩いてて、ウホッとなって顔よく見たらgopher君だった事案が発生
299:nobodyさん
17/07/01 22:36:48.29 .net
可変長引数を複数渡すってできないかな
URLリンク(play.golang.org)
300:nobodyさん
17/07/02 06:25:50.82 .net
>>299
こんなのではだめなんか?
URLリンク(play.golang.org)
301:nobodyさん
17/07/03 14:46:11.05 .net
>>299
やっぱりできないみたいね。
Spread Operatorっていうやつかな。
最後の引数でしか使えないって制約なんとかならんもんかな。
受け側
func (test …string) { }
は無理なのは分かるけど
渡す側
fmt.Println(test…,test2…)はできても問題なさそうなもんだけど。
302:nobodyさん
17/07/13 20:04:43.75 .net
最新人気ランキング
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
URLリンク(www.tiobe.com)
GolangがRubyを抜いた
303:nobodyさん
17/07/13 23:40:21.64 .net
>>302
Delphiなんてまだ生きてるの?
304:nobodyさん
17/07/13 23:51:46.50 .net
最初に就職した会社がDelphi専門
転職した会社でPerl漬け
今趣味でGoやってる
9-11位独占した!やったぜ!(´・ω・`)
305:nobodyさん
17/07/14 01:34:35.80 .net
Golang破竹の勢いで成長してるな
まぁスクリプト言語の可読性と生産性、コンパイラ言語の高速性を兼ね備えた言語だから
人気出るのは当然か
306:nobodyさん
17/07/14 02:32:13.47 .net
borlandってまだ生きてるの?、
307:nobodyさん
17/07/14 08:30:16.75 .net
ヘルスバーク抜けてから何も聞かないな
308:nobodyさん
17/07/14 12:58:10.17 .net
>>305
goって言うほど習得が容易な言語かね?言語仕様がシンプルだからかんたんと言うのは安易だ
309:nobodyさん
17/07/14 15:54:44.66 .net
馬鹿には無理
310:nobodyさん
17/07/14 19:58:16.53 .net
>>308
可読性も生産性もC/C++よりははるかにマシで、C/C++と同等の速度が出せる、というのが正しいよね
さすがにスクリプト言語の生産性は言い過ぎだね
311:nobodyさん
17/07/14 21:26:28.94 .net
>>310
C/C++の代替って言ったらやはりrustになるんじゃないのかな。
特に組み込み分野ではGCがないのはでかい。コンパイラとの対話が大変らしいけど。
Goは最近流行りのoptionalがないのがちょっとつらい。
でも殆ど言語仕様を変化させずに発展させてるのはすごいなと思う。
swiftも見習ってほしいわ。
312:nobodyさん
17/07/14 23:01:28.38 .net
パターンマッチほしい
313:nobodyさん
17/07/23 17:56:12.60 .net
go2どうなることやら
314:nobodyさん
17/07/23 18:52:11.98 .net
某CTOの不倫騒動面白いな
315:nobodyさん
17/07/25 10:10:25.12 .net
まぁ下位互換性は維持するみたいだから
rustのメモリ管理とかnil安全とかは導入できないかもね。
正直もっと関数型によってくれると俺好みなんだけど、
rustだっていいしね
316:nobodyさん
17/07/25 16:02:38.80 .net
URLリンク(github.com)
これってどういうことなん?初心者に助けを・・・
317:nobodyさん
17/07/25 20:29:00.31 .net
>>316
推測だけどそのコードcode genereteされたものだから、
importエラーが出ないように仮として書いてるんじゃないかな。
318:nobodyさん
17/07/26 03:00:55.02 .net
>>317
おーなるほど
auto generated なコードなので一旦特別な意味はなさそうということにしておく
ありがとう!
319:nobodyさん
17/08/03 19:14:04.99 .net
似たメンバを持つ構造体の変換について教えてください
URLリンク(play.golang.org)
完全にメンバが一致すれば変換できるんだけど
メンバが少しでも異なると失敗するのなんとかならないでしょうか?
320:nobodyさん
17/08/03 21:19:57.18 .net
なんとかならなそう
自分で関数なりメソッドなりを定義してやるしかないのではないか
321:nobodyさん
17/08/03 21:56:33.42 .net
>>320
えー?じゃあ
b:=B(a)
みたいな構文の意味って完全にメンバが一致してないと使えないってことです?
この構文の存在意図がわからん。
322:nobodyさん
17/08/03 23:23:58.87 .net
>>321
それを言うとstring(1.0)とかも無理じゃん?
323:nobodyさん
17/08/05 09:48:04.97 .net
>>322
いやいや
構造体の変換の話だけに限定して欲しい
b:=B(a)
上記構文の有用な使いかたの例ってないですかね?
324:nobodyさん
17/08/05 09:59:40.63 .net
>>321
コピーとして存在意義があるじゃん
325:nobodyさん
17/08/05 12:12:58.06 .net
>>324
構造体なんだから代入するだけでコピーになるが
326:nobodyさん
17/08/05 19:16:09.97 .net
GoにおけるDB操作の決定版ってなんだすろう。
結局xoでスキーマに対応する構造体と生成可能なメソッドを作りつつ
足りないものはsquirrelってqueryBuilderで組み立てるって方針でやってる。
けど、なんかxoメンテしてる人やるきなさげ。
327:nobodyさん
17/08/07 15:06:23.83 .net
てs
328:nobodyさん
17/08/10 20:59:08.52 .net
LLから入ったんだけど構造体とかインターフェイスあたりの設計?の勘所みたいなのが分からん
みんなどうやってGo言語(あるいはJavaとか)の設計をいいかんじにできるようになったの?
329:nobodyさん
17/08/10 21:48:13.12 .net
Go言語は真面目に設計する言語じゃない
適当に書く言語
330:nobodyさん
17/08/12 11:41:52.13 .net
>>328
逆にLLの時はどんな設計だったん?
331:nobodyさん
17/08/12 17:21:40.47 .net
>>330
そう聞かれるとうまい答えが見つからぶ「オブジェクト指向っぽい設計」というアホな回答になってしまう
そもそもインターフェイスとかいう概念がなかったので使いこなすのが難しい
インターフェイスの何が嬉しいんだみたいな疑問が定期的にわいてくるんだが
332:nobodyさん
17/08/12 18:24:07.22 .net
動的言語だとダックタイピングだからインターフェースがないってことか。
インタフェースはまんまインターフェースだよ
APIはアプリケーションインターフェースだろ。
つまりオブジェクト間で情報をやり取りするための決まり。
例えばfmt.Fprintfをみてみよう。
URLリンク(golang.org)
第一引数にはio.Writerを満たすインターフェースならなんでも突っ込める
じゃあio.Writerインターフェースって何か?
これはwriteメソッドを備えたもの
例えばhttpのレスポンスだったり、もちろんファイルだったり
それらはとにかくwriteメソッドを実装しているだけなんだ。
自分で作ったオブジェクトもwiteメソッドさえ備えていれば突っ込める。
便利でしょ?
動的言語の場合だって if (typeof xxx.someMethod === ‘function’) みたいなコードを書いたりしたでしょ?
こういうのを一々入れる必要がなくなる。
なぜならインターフェースの条件を満たさないオブジェクトを突っ込むとコンパイルエラーになるから。
333:nobodyさん
17/08/12 18:27:27.82 .net
心地の良い設計の基本はすべてを知らなくても実装できること。
例えばfmt.Fprintfの中の実装を知らなくても
Writeメソッドを実装すればfmt.Printfが使えるでしょ。
そういう風に自作のオブジェクトも基本的にインターフェースを仲介して
各オブジェクトの詳細は知らなくても使えるようにする。
つまり疎結合にしてやる。
334:nobodyさん
17/08/12 18:29:48.82 .net
インタフェースは既存のクラスに手を入れられないのがつらみ
C# みたいな this キーワードいれたりとか Haskell みたいなアドホック多相とかあれば別だけど
335:nobodyさん
17/08/12 18:32:31.26 .net
俺としてはgoaとか勧める。
あれはwebapiを設計してやるとgoのコードを生成する。
webapiの実装例として参考になるし、そのまま開発してもいいし。
336:nobodyさん
17/08/12 18:58:51.25 .net
なるほど色々ありがとう
インターフェースの嬉しいところはなんとなく分かった。
ある型にたいして既存の関数やメソッドを使いたい→インターフェースを満たすようにメソッドを定義という感じの思考のプロセスでいいのかな?
337:nobodyさん
17/08/12 19:31:31.97 .net
>>336
例えばテスト主体で考えてもらえればより便利さがわかると思う。
interfaceを満たすだけのダミーなら簡単に用意できるでしょ。
structを直接引数に取る形にすると本番のstructをテスト書く時に用意しなきゃいけなくなる。
この思考プロセスがやがてDIに結びついていくんだけども。
338:nobodyさん
17/08/12 22:27:32.53 .net
>>337
この話を聞いた上でちょっと色々コード眺めてみるわ
言わんとすることは分かったのであとは自分で書くときにすんなり使えるか…
とにかく参考になったありがとう
339:nobodyさん
17/08/13 09:29:35.58 .net
goにおける配列操作で目的の要素を取り出すのっていちいちループを回さないとだめ?
標準ライブラリになんかないかな
340:nobodyさん
17/08/16 17:33:34.62 .net
メソッドのレシーバにnil pointerを渡して有用な場合ってどういうときなの?
メソッド内でフィールドアクセスする際にpanicになったりして良いことない気がするんだが
341:nobodyさん
17/08/17 02:53:47.65 .net
>>340
別にnilを渡せるのが有用とかいう話は無くて、単にポインタに対してメソッドを呼び出せるとレシーバーがnilになりうるけどどーすんの?って話でしょ
他言語ではメソッドは呼ばれずにNullPointerException的なのが飛ぶようになってるけど
goの場合はメソッド側でnilに対処すれば呼び出し側はレシーバーがnilかどうかを気にしなくてもいいというメリットはある
342:nobodyさん
17/08/17 05:13:20.16 .net
>>341
それメリットだとは思えないんだが
nilに対処するコードを毎回書かなきゃならないのもダルいし忘れててもコンパイルできてしまって実行時にpanicするしで嬉しくなくね?
343:nobodyさん
17/08/17 09:20:51.85 .net
go2でnull安全にならないかな。無理?
344:nobodyさん
17/09/05 00:18:50.69 .net
gaeのdatastoreを勉強できるいい教材ないかな
345:nobodyさん
17/09/06 10:48:27.81 .net
appEngine使ってる人いないのん?
go1.8にも対応しつつあるし期待しとるよ
346:nobodyさん
17/09/08 10:37:14.59 URvmV42V.net
GAE勝手にサービス終了しやがった
347:nobodyさん
17/09/08 19:41:29.06 .net
スレチかもしれないけどGAEってエロあり?
348:nobodyさん
17/09/08 19:51:48.29 .net
>>346
してないよ。何の話?
349:nobodyさん
17/09/10 22:06:52.18 .net
goで配列の定義で
[]*T ってよく見るんですが
[]T でダメなんですかね? []*Tにするメリットを教えて下さい
350:nobodyさん
17/09/15 15:34:05.50 .net
URLリンク(cloudplatform.googleblog.com)
ナニコレ
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:nobodyさん
17/09/15 15:38:04.13 .net
コスト的にかなりいいよな
ついでにドメインも無料化してくれないかな…(チラチラ)
Googleが発行するクレカの特典とかでもいいから
(Googleにはクレカ利用料の数%のインセンティブがあるからそれで賄える)
Googleブランドのクレカが欲しいねん
352:nobodyさん
17/09/15 20:56:49.57 .net
Let's encryptとGAEと自動更新スクリプトで無償SSLは既に実現できてた
それを管理コンソールから簡単に設定出来るようにしたとか、そういうのかね?
353:nobodyさん
17/09/16 00:33:11.03 .net
URLリンク(b.hatena.ne.jp)
はてぶで取り上げられてた
やっぱり無料はデカイよな
354:nobodyさん
17/09/16 16:01:42.07 .net
これでPaaSはGAE一択になったな
今までSSL証明書に払っていたお金をスケールアウト費用に回せるから
コスパぶっちぎりで良い
AWSも追従してくれ
355:nobodyさん
17/09/16 16:06:32.48 .net
すでにあるがな
URLリンク(aws.amazon.com)
356:nobodyさん
17/09/16 16:10:23.10 .net
GAEはAWSと違ってサービスが成長しなければ、ずーっと無料で運営できるのが良いのだよ
失敗時のリスクが低いから挑戦しやすい
ランニングコストがほぼ0円になれば、例え月10万PVしかないサービスでも停止せずに
次の新しいサービスを並列で増やして収益アップできる
月間10万PVのサービスを100個作れば1000万PV、月間150万円の収入が期待できる
資金力がない学生起業にぴったりだわ
357:nobodyさん
17/09/16 16:19:58.98 .net
GAE/Go SE素晴らしいのに採用事例が一部の野心的な会社しかないんだよな
DeNAとサイバーエージェント、メルカリ(の子会社)くらいしかない
358:nobodyさん
17/09/16 16:25:41.59 .net
datastoreの学習コストが問題なのかね
359:nobodyさん
17/09/16 17:22:33.07 .net
HTTPSじゃないとSEO不利だからこれは朗報
趣味サイトに年間1円も掛けたくない
360:nobodyさん
17/09/16 21:41:26.98 .net
レッツエンクリプトなんて今更感しかないだろ
361:nobodyさん
17/09/17 09:43:12.78 .net
>>358
datastoreが使いづらいと言ってもgoコード側でスキーマ設定する感じだし
joinできないからこそ結果的に使いやすいかもしれない
dbの挙動もレプリカありきの挙動だとすれば納得できる
362:nobodyさん
17/09/18 06:17:20.92 .net
いわゆるBtoBの受託開発だと帳票出力があるからjoinないとキツイが
GAE/Goが想定してるのはBtoCのwebサービスだからjoinなくても何とかなる
ページングもカーソル使って次へと戻るだけあればいい
363:nobodyさん
17/09/25 22:11:41.45 .net
handlerのテストってどこまで厳密にやるべきなの?
DBとのやりとりの部分とかは内部で使ってる関数をテストすればもんだいないから様々なパラメタに対して200を返せるかどうかだけでいいのでは?と思うんだけど
364:nobodyさん
17/09/25 23:10:55.96 .net
>>363
バリデーションを網羅できてればいい気がする。
365:nobodyさん
17/09/26 00:17:16.02 .net
>>364
そのバリデーションってどこのことだろう…?
自分の中ではhandlerに対するテストなんかは裏側から取得してきたデータがどういうものかはあまり気にする必要がなくて入力と返ってきたデータの出力の仕方だけが関心点だと思ってるんだけどなかなかそういう記事とか見かけないんだよね
366:nobodyさん
17/09/26 01:14:58.21 .net
postしたデータは、バリデーションせずにdbに、ぶち込んじゃうの?
get系でも入力パラメーターのバリデーションあるよね。
367:nobodyさん
17/09/26 01:23:01.52 .net
>>366
そこでのバリデーションならちゃんとテストケースに含めるべきだと思う
一方でたとえばUsersテーブルからデータをとってくるためのgetUsers内でのバリデーションのようなものはテストケースをいちいち考慮したくないということが言いたかった
368:nobodyさん
17/10/02 23:38:46.87 .net
golangで独自の仮想通貨を作るのって出来る?
gethを改造すればいい感じ?
369:nobodyさん
17/10/08 01:33:45.12 .net
go test とか go build, go install などのコマンドってどこに定義されてるの?
ソースを読んでみたいんだけど見つからなくて困ってる
370:nobodyさん
17/10/08 01:41:36.39 .net
cd ${GOROOT}/src/cmd
371:nobodyさん
17/10/08 02:46:19.38 .net
ありがとう、cmdのinternalにあるの見逃してた
372:nobodyさん
17/10/09 09:32:28.50 .net
>>370
最近はGOROOTもGOPATHも環境設定不要だから
cd ${go env GOROOT}/src/cmd
ってすべき
373:nobodyさん
17/10/17 05:35:21.44 .net
ゲーム作るためにgo-gl/glfw使おうとしてmain関数作って実行しようとしたら、
build constraints exclude all Go files in C:\Users\ユーザ名\Desktop\glfw
って出た。GOOS=windows, GOARCH=386で試したんだけど初心者すぎてわからん
374:nobodyさん
17/10/30 14:57:02.91 .net
予選通過組はGoが半分か。すごいな。
URLリンク(isucon.net)
375:nobodyさん
17/10/30 15:07:30.47 .net
Ruby使いはwebデザイナあがりの意識高い系が多い(もちろんMac)
PHP、Perl使いは大昔にHTMLタグを直打ちしてたHTMLコーダー出身のスパゲッティコードを量産していた老害と、その老害を上司に持つ可哀想な若者が多い
Python使いは科学技術や情報工学系(自然言語処理、機械学習、深層学習等)のアカデミア出身者が多い
Go使いは新進気鋭なBtoC系上場企業の社員が多い
JavaはBtoB系受託IT土方が多い
こういう印象あるわ
376:nobodyさん
17/10/30 15:56:22.62 .net
この結果を受けてweb&スマホアプリのバックエンドはGoが主流になるんだろうな
当社ではGoエンジニア募集中です
377:nobodyさん
17/10/30 16:29:20.54 .net
Goは日本語学習サイトを充実させたほうがいい
PHPerがGoに移行するにはネットで検索>コードをコピペ
この集合でwebアプリケーションが作れないとダメだからな
378:nobodyさん
17/10/30 18:32:44.55 .net
>>374
単純に力ある人がGo使うようになってるだけだと思うんだよなあ
別にGoがすごいとかではなくそこそこ力ある人はRubyでもPythonでも予選突破できる
379:nobodyさん
17/10/30 19:39:18.69 .net
インタプリタとコンパイラ言語で速度比較したらそりゃ
Goのほうが有利だろ
省メモリ性やら単純な速度まで桁が違う
380:nobodyさん
17/10/30 23:19:19.13 wUOmmPOd.net
将来性あるのかね
381:nobodyさん
17/10/31 01:06:44.62 .net
俺もうSPA前提でバックエンドにgoaを使うことでwebアプリ書いてるんだけど、いいよね。なんかgoaはマイクロサービス用のフレームワークと名乗ってるんだけど、別にマイクロサービス関係なしに使いたいんだけど。
つーかGAEで使ってるけど良い。
382:nobodyさん
17/10/31 02:00:30.70 .net
SPAってSEOどうなの?
383:nobodyさん
17/10/31 10:32:10.96 9A6ED9LI.net
仕事でwebサービスをGoで書いてるけど、もっとGo使う会社増えないかなー
Go使ってて転職したいと思う会社が無い
384:nobodyさん
17/10/31 12:18:08.41 .net
>>380
Googleの基幹事業だしDonateで維持してるオープンソースコミュニティ発の言語よりは将来性あるんじゃね
Youtubeのバックエンドで動いてるPythonコードをGolangに変換してパフォーマンス改善してるし
その他にも色々とGolangで動いてるシステムがある
また今の時期にGolangに目をつけてる会社は、経営陣(CTO等)に先見の明がある証拠だから伸びるだろう
385:nobodyさん
17/10/31 22:14:40.01 .net
どうでもいいけどGolangって書き方に違和感ある。
Goかgolangじゃないの?
386:nobodyさん
17/11/01 11:50:17.21 .net
C言語
Clang
URLリンク(ja.wikipedia.org)
Go言語
Golang
この伝統に則って大文字だぞ
○+langのlangはググラビリティを向上させるsuffixでしかない
387:nobodyさん
17/11/01 12:52:44.31 .net
Dlang
Erlang
388:nobodyさん
17/11/01 19:50:44.85 gNO8HPb6.net
あーらんは正式名称じゃん
389:nobodyさん
17/11/02 18:11:22.38 .net
>>386
qiitaのタグだと
Goかgolangだよね
390:nobodyさん
17/11/02 18:25:32.74 .net
タグなんてユーザーが適当につけるものを論拠にされても
391:nobodyさん
17/11/03 10:46:52.23 .net
gopherのみんなはGoのinterfaceについてはどう感じてる?
他の言語のinterfaceについて詳しくないんだけど、interfaceのもつメソッドを実装していれば満たしていることになるというのがどうも分かりなくくて辛い
明示的にこのinterfaceを満たしてますよみたいなのが欲しいのは修行が足りてない?
392:nobodyさん
17/11/03 14:00:58.57 BF7OMi2r.net
Frank
Golang
393:nobodyさん
17/11/03 14:55:44.66 .net
>>392
type T struct{}
var _ I = T{}
でT型がinterface Iを満たすかチェックできる
394:nobodyさん
17/11/03 16:14:51.46 .net
>>393
チェックできるかどうかというより何を満たしてるかパッと見でわからないという意味で辛い
395:nobodyさん
17/11/03 16:24:00.33 .net
Goのinterface面白いと思うよ
何を満たしてるかぱっと見でわからないっていうのはinterfaceの使い方が良くないんだと思う
必要なメソッドを理解しないまま使おうとしてるからわからなくなるんじゃない?
396:nobodyさん
17/11/03 17:18:04.32 .net
>>394
393でコンパイルエラーが出て何の実装が必要かわかるんだから、それで問題ない気がするんだけど。
397:nobodyさん
17/11/03 17:22:11.97 .net
>>395
面白いしJavaとかより柔軟だよね。
もっとinterfaceを拡張してプロパティとか演算子のシンタックスシュガーをもっと付けて欲しいとは思う。
多分上手く拡張できればジェネリクスに近い感じになると思うんだけど
398:nobodyさん
17/11/03 17:37:29.27 .net
>>396
?
そもそもIの存在を知らないような場合にそういうコードでチェックできないと思うんだが
TにReadメソッドが実装されてる→よく読み進めるとIにはReadメソッドをもつ→TはIを満たしてるという思考の流れが気持ち悪い
399:nobodyさん
17/11/03 18:08:43.40 .net
>>398
考え方がおかしい。元々の質問は
>> 明示的にこのinterfaceを満たしてますよみたいなのが欲しい
という話だから当然inteface “I”の存在を知っている前提。
構造体Tを作っていてそいつにinterface Iの実装を行いたいという場合に
type T struct{}
var _ I = T{}
とういう風に書くと実装条件を満たすかをコンパイルエラーでチェックできるから
確実に実装できる。
400:nobodyさん
17/11/03 18:43:50.33 .net
もしかして定義済みの型がどのinterfaceを実装してるのか明示してほしいってことか
でもそれGoのinterfaceの考え方じゃないよ
401:nobodyさん
17/11/04 00:08:40.50 .net
>>400
アンカーつけないとなんに対しての反論かわからんのだが。
interfaceの概念はべつにGo独自とかそういうもんじゃないし
Goのinterfaceの考え方ってなんのことを指してるのかよくわからんな。
基本的にはJavaと変わらんでしょimplementsが不要ってだけ。
402:nobodyさん
17/11/04 00:27:05.59 .net
>>401
>>400は>>391,394,398あたりへの憶測
他言語のinterfaceは、imprementsすることでその型が何であるのかを説明するためのもの
Goのinterfaceはオブジェクトが必要な機能を備えているか調べるためのもの
だから考え方が違う
403:nobodyさん
17/11/04 02:51:54.56 .net
>>402
なんかフワッフワした言い回しすぎて何を説明したいのかがわからんな。
interfaceは、英単語の意味そのものだよ。つまりはメソッド名とパラメーターの並びと、返り値の型の組み合わせそのもの。
それ以上でもそれ以下でもない。
基本的には言語として共通の概念と言える。
goとそれ以外の言語の違いは
型(javaの場合はclass)がinterfaceを満たす条件が違うってだけ。
条件の違いは
java: interfaceを明示的に指定する
go: interfaceと同じメソッドを、実装する
404:nobodyさん
17/11/04 10:03:13.95 .net
どうでもいい言葉あそびを始めちゃった
405:nobodyさん
17/11/04 14:18:28.93 .net
PHPerだらけだったうちの会社もとうとうGoの勢いを感じて次のプロジェクトで使うことになった
ISUCONの結果が地味に効いてる
経営陣はAWSの課金が減ることを期待してるみたいだけど、はたしてどうなることやら
406:nobodyさん
17/11/04 21:52:33.04 .net
>>405
なぜGAE/goを見ない。
407:nobodyさん
17/11/04 22:04:18.44 .net
他人の書いたソースを読んでて特定のinterfaceの実際の実装を見たい場合
どの構造体や型をみればいいのか探すのが面倒なことはまれによくある
408:nobodyさん
17/11/05 09:46:32.93 80U0JgH4.net
> Goのinterfaceはオブジェクトが必要な機能を備えているか調べるためのもの
これって公式にどっかに書いてあるの?
というかGoにオブジェクトって概念あるか
409:nobodyさん
17/11/05 11:30:57.32 .net
>>407
guruが対応してるから簡単に探せるで
vscならcmd+f12で実装を探す
410:nobodyさん
17/11/05 15:24:42.14 .net
>>409
うん
手元にcloneしたソースはguruで探すけど
githubでソース眺めてる時とかがちょっと困る
411:nobodyさん
17/11/05 16:43:33.10 .net
>>406
GAE/GoでgRPC使えるんだっけ?
412:nobodyさん
17/11/05 16:45:44.88 .net
GAE/GoやるならStandardで使いたいんだよね
413:nobodyさん
17/11/05 16:56:45.24 .net
GAE/Go SEとgRPCは色々と苦しい
代替案として挙げられるのはGAE/Goとgoaあたり?
414:nobodyさん
17/11/05 17:23:25.12 .net
GAE/Go Standardでも gRPC は urlfetch でいけるんじゃないの? やったことないからわかんないけど
415:nobodyさん
17/11/06 07:26:19.43 .net
>>410
doxygenみたくinterfaceのコードのところがリンクになってクリックすると
実装一覧が出るようにしてほしいってことね。
416:nobodyさん
17/11/10 18:14:31.71 .net
バックエンドはGAE/Goとgoa
フロントエンドはReactとReactNative(またはVue.jsとWeex)
この構成でwebアプリ、スマホアプリを作りたい
こういう開発者向けにRailsチュートリアル並に詳細かつ丁寧に解説してあるネット文献
あるいはAmazonで買える技術書が欲しい
417:nobodyさん
17/11/11 22:27:28.86 .net
>>416
お前は俺か。俺の場合はreact-nativeだけノータッチだけど
418:nobodyさん
17/11/11 22:56:35.85 .net
ホントはgRPCとGAE/Go使いたいんですぅ…
419:nobodyさん
17/11/14 02:44:35.17 .net
goaのDSL覚えるくらいならproto3やったほうがいいよね
goaのほうがgRPCより優れている点が思い浮かばない
420:nobodyさん
17/11/14 08:02:23.86 .net
普通にweb apiを簡単に作れてswaggerと連携って魅力じゃないので?
421:nobodyさん
17/11/14 17:08:41.07 .net
同じことをgRPCでも出来るがな
422:nobodyさん
17/11/14 17:17:58.72 .net
goaはWebAPI作るのには便利だけどそれ以外のケースであまり融通が聞くとは言い難い
そもそもWebAPIならどのフレームワークで作っても大差はない
423:nobodyさん
17/11/14 17:45:41.20 .net
goaはGo言語で記述するDSLからGo言語の各種ソースコードを自動出力する
gRPCは言語非依存のprotoファイル(IDL)から対応言語(Go言語以外のメジャーな言語に対応)の各種ソースコードを出力できる
汎用性が全然違う
企業目線だとgRPC選ぶのが多いんじゃないかな
実際にメルカリ、DeNA、CA、その他スマホアプリ大手のバックエンドはgRPCだし
424:nobodyさん
17/11/14 18:06:22.59 .net
GAE/Go SEで何の苦労もなくgRPCが使えれば平和になれそう
425:nobodyさん
17/11/14 19:32:53.39 .net
go-json-restはどうなん?正直これぐらいが一番好きなんだが
426:nobodyさん
17/11/14 20:36:25.15 .net
>>422
いやいやwebapiならgoa一択だと思うんだけど。もちろんゼロから構築という前提でですが。
gRPCならprotoを覚えるとGoのサーバーサイドも自動生成って認識で合ってる?DBとのつなぎ込みの部分はどう書くの?
427:nobodyさん
17/11/14 20:37:10.21 .net
goaやgRPCは「定義ファイル→ソースコード&ドキュメント生成」
go-json-restは直接ソース弄る系だからアプローチが全然違うな
428:nobodyさん
17/11/14 20:38:27.66 .net
goaもgRPCもDBまわりのビジネスロジックは手書きです
そこまで忖度はしてくれませんよ
429:nobodyさん
17/11/14 20:53:38.30 .net
>>428
ですね。アホな質問しました。
goaだとフレームワークも含めた形でコード生成するんですが
protoによるgRPCの場合はどうなのかなーと。例えばミドルウェアはサポートしてます?
goaもv2でgRPCをサポートするっぽいんですが、protoでのサーバサイドGoコード生成がいい感じならお役ゴメンもあり得るんですかね。
430:nobodyさん
17/11/14 21:00:21.71 .net
自動生成されたサーバーのハンドラ部分を各種フレームワークに繋ぐだけ
フレームワーク上のミドルウェアとも組み合わせることが出来る