X



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

0393nobodyさん
垢版 |
2017/11/03(金) 14:55:44.66ID:???
>>392
type T struct{}
var _ I = T{}
でT型がinterface Iを満たすかチェックできる
0394nobodyさん
垢版 |
2017/11/03(金) 16:14:51.46ID:???
>>393
チェックできるかどうかというより何を満たしてるかパッと見でわからないという意味で辛い
0395nobodyさん
垢版 |
2017/11/03(金) 16:24:00.33ID:???
Goのinterface面白いと思うよ
何を満たしてるかぱっと見でわからないっていうのはinterfaceの使い方が良くないんだと思う
必要なメソッドを理解しないまま使おうとしてるからわからなくなるんじゃない?
0396nobodyさん
垢版 |
2017/11/03(金) 17:18:04.32ID:???
>>394
393でコンパイルエラーが出て何の実装が必要かわかるんだから、それで問題ない気がするんだけど。
0397nobodyさん
垢版 |
2017/11/03(金) 17:22:11.97ID:???
>>395
面白いしJavaとかより柔軟だよね。
もっとinterfaceを拡張してプロパティとか演算子のシンタックスシュガーをもっと付けて欲しいとは思う。
多分上手く拡張できればジェネリクスに近い感じになると思うんだけど
0398nobodyさん
垢版 |
2017/11/03(金) 17:37:29.27ID:???
>>396

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

TにReadメソッドが実装されてる→よく読み進めるとIにはReadメソッドをもつ→TはIを満たしてるという思考の流れが気持ち悪い
0399nobodyさん
垢版 |
2017/11/03(金) 18:08:43.40ID:???
>>398
考え方がおかしい。元々の質問は
>> 明示的にこのinterfaceを満たしてますよみたいなのが欲しい
という話だから当然inteface “I”の存在を知っている前提。
構造体Tを作っていてそいつにinterface Iの実装を行いたいという場合に

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

とういう風に書くと実装条件を満たすかをコンパイルエラーでチェックできるから
確実に実装できる。
0400nobodyさん
垢版 |
2017/11/03(金) 18:43:50.33ID:???
もしかして定義済みの型がどのinterfaceを実装してるのか明示してほしいってことか
でもそれGoのinterfaceの考え方じゃないよ
0401nobodyさん
垢版 |
2017/11/04(土) 00:08:40.50ID:???
>>400
アンカーつけないとなんに対しての反論かわからんのだが。
interfaceの概念はべつにGo独自とかそういうもんじゃないし
Goのinterfaceの考え方ってなんのことを指してるのかよくわからんな。
基本的にはJavaと変わらんでしょimplementsが不要ってだけ。
0402nobodyさん
垢版 |
2017/11/04(土) 00:27:05.59ID:???
>>401
>>400>>391,394,398あたりへの憶測

他言語のinterfaceは、imprementsすることでその型が何であるのかを説明するためのもの
Goのinterfaceはオブジェクトが必要な機能を備えているか調べるためのもの
だから考え方が違う
0403nobodyさん
垢版 |
2017/11/04(土) 02:51:54.56ID:???
>>402
なんかフワッフワした言い回しすぎて何を説明したいのかがわからんな。

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

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

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

条件の違いは
java: interfaceを明示的に指定する
go: interfaceと同じメソッドを、実装する
0404nobodyさん
垢版 |
2017/11/04(土) 10:03:13.95ID:???
どうでもいい言葉あそびを始めちゃった
0405nobodyさん
垢版 |
2017/11/04(土) 14:18:28.93ID:???
PHPerだらけだったうちの会社もとうとうGoの勢いを感じて次のプロジェクトで使うことになった
ISUCONの結果が地味に効いてる
経営陣はAWSの課金が減ることを期待してるみたいだけど、はたしてどうなることやら
0407nobodyさん
垢版 |
2017/11/04(土) 22:04:18.44ID:???
他人の書いたソースを読んでて特定のinterfaceの実際の実装を見たい場合
どの構造体や型をみればいいのか探すのが面倒なことはまれによくある
0408nobodyさん
垢版 |
2017/11/05(日) 09:46:32.93ID:80U0JgH4
> Goのinterfaceはオブジェクトが必要な機能を備えているか調べるためのもの

これって公式にどっかに書いてあるの?
というかGoにオブジェクトって概念あるか
0409nobodyさん
垢版 |
2017/11/05(日) 11:30:57.32ID:???
>>407
guruが対応してるから簡単に探せるで
vscならcmd+f12で実装を探す
0410nobodyさん
垢版 |
2017/11/05(日) 15:24:42.14ID:???
>>409
うん
手元にcloneしたソースはguruで探すけど
githubでソース眺めてる時とかがちょっと困る
0412nobodyさん
垢版 |
2017/11/05(日) 16:45:44.88ID:???
GAE/GoやるならStandardで使いたいんだよね
0413nobodyさん
垢版 |
2017/11/05(日) 16:56:45.24ID:???
GAE/Go SEとgRPCは色々と苦しい
代替案として挙げられるのはGAE/Goとgoaあたり?
0414nobodyさん
垢版 |
2017/11/05(日) 17:23:25.12ID:???
GAE/Go Standardでも gRPC は urlfetch でいけるんじゃないの? やったことないからわかんないけど
0415nobodyさん
垢版 |
2017/11/06(月) 07:26:19.43ID:???
>>410
doxygenみたくinterfaceのコードのところがリンクになってクリックすると
実装一覧が出るようにしてほしいってことね。
0416nobodyさん
垢版 |
2017/11/10(金) 18:14:31.71ID:???
バックエンドはGAE/Goとgoa
フロントエンドはReactとReactNative(またはVue.jsとWeex)
この構成でwebアプリ、スマホアプリを作りたい

こういう開発者向けにRailsチュートリアル並に詳細かつ丁寧に解説してあるネット文献
あるいはAmazonで買える技術書が欲しい
0417nobodyさん
垢版 |
2017/11/11(土) 22:27:28.86ID:???
>>416
お前は俺か。俺の場合はreact-nativeだけノータッチだけど
0418nobodyさん
垢版 |
2017/11/11(土) 22:56:35.85ID:???
ホントはgRPCとGAE/Go使いたいんですぅ…
0419nobodyさん
垢版 |
2017/11/14(火) 02:44:35.17ID:???
goaのDSL覚えるくらいならproto3やったほうがいいよね
goaのほうがgRPCより優れている点が思い浮かばない
0420nobodyさん
垢版 |
2017/11/14(火) 08:02:23.86ID:???
普通にweb apiを簡単に作れてswaggerと連携って魅力じゃないので?
0421nobodyさん
垢版 |
2017/11/14(火) 17:08:41.07ID:???
同じことをgRPCでも出来るがな
0422nobodyさん
垢版 |
2017/11/14(火) 17:17:58.72ID:???
goaはWebAPI作るのには便利だけどそれ以外のケースであまり融通が聞くとは言い難い
そもそもWebAPIならどのフレームワークで作っても大差はない
0423nobodyさん
垢版 |
2017/11/14(火) 17:45:41.20ID:???
goaはGo言語で記述するDSLからGo言語の各種ソースコードを自動出力する
gRPCは言語非依存のprotoファイル(IDL)から対応言語(Go言語以外のメジャーな言語に対応)の各種ソースコードを出力できる
汎用性が全然違う

企業目線だとgRPC選ぶのが多いんじゃないかな
実際にメルカリ、DeNA、CA、その他スマホアプリ大手のバックエンドはgRPCだし
0424nobodyさん
垢版 |
2017/11/14(火) 18:06:22.59ID:???
GAE/Go SEで何の苦労もなくgRPCが使えれば平和になれそう
0425nobodyさん
垢版 |
2017/11/14(火) 19:32:53.39ID:???
go-json-restはどうなん?正直これぐらいが一番好きなんだが
0426nobodyさん
垢版 |
2017/11/14(火) 20:36:25.15ID:???
>>422
いやいやwebapiならgoa一択だと思うんだけど。もちろんゼロから構築という前提でですが。

gRPCならprotoを覚えるとGoのサーバーサイドも自動生成って認識で合ってる?DBとのつなぎ込みの部分はどう書くの?
0427nobodyさん
垢版 |
2017/11/14(火) 20:37:10.21ID:???
goaやgRPCは「定義ファイル→ソースコード&ドキュメント生成」
go-json-restは直接ソース弄る系だからアプローチが全然違うな
0428nobodyさん
垢版 |
2017/11/14(火) 20:38:27.66ID:???
goaもgRPCもDBまわりのビジネスロジックは手書きです
そこまで忖度はしてくれませんよ
0429nobodyさん
垢版 |
2017/11/14(火) 20:53:38.30ID:???
>>428
ですね。アホな質問しました。
goaだとフレームワークも含めた形でコード生成するんですが
protoによるgRPCの場合はどうなのかなーと。例えばミドルウェアはサポートしてます?


goaもv2でgRPCをサポートするっぽいんですが、protoでのサーバサイドGoコード生成がいい感じならお役ゴメンもあり得るんですかね。
0430nobodyさん
垢版 |
2017/11/14(火) 21:00:21.71ID:???
自動生成されたサーバーのハンドラ部分を各種フレームワークに繋ぐだけ
フレームワーク上のミドルウェアとも組み合わせることが出来る
0431nobodyさん
垢版 |
2017/11/14(火) 21:21:37.83ID:???
ちなみにちょっとググったらjsからgRPCは使えないみたいですね。
reactNativeからは使えるんですかね。
jsから使えないのは痛い
0433nobodyさん
垢版 |
2017/11/15(水) 03:09:29.01ID:???
なんか知らんけど急に役立つスレ化する時あるよな
ここでEchoがGAE/Goで動かない報告(>>223)したら
瞬時にパッチ当ててくれたり(>>239)
Go言語界の実力者が見てるっぽい
0434nobodyさん
垢版 |
2017/11/15(水) 07:55:27.68ID:Ug7fN5jj
mattnさんgoのコントリビュータだし古参の2chねらーだからなあ
0435nobodyさん
垢版 |
2017/11/15(水) 13:23:56.88ID:???
>>432
えー。これってrestAPIに変換してるってだけでは?
それってjsから使えるって言っていいんすか。
0436nobodyさん
垢版 |
2017/11/15(水) 13:24:32.08ID:???
slackだとあんましアホなこと言えないしね
0438nobodyさん
垢版 |
2017/11/15(水) 14:02:20.11ID:???
Qiitaでよく見かける人だらけやw
ISCON参加者もいるだろ絶対
レベルたけぇわこのスレ
0439nobodyさん
垢版 |
2017/11/15(水) 15:20:14.26ID:???
>>435
grpc-webみたいなのなかったっけ?
0440nobodyさん
垢版 |
2017/11/15(水) 18:47:17.60ID:???
goa使ってたらv2になったタイミングで勝手にgRPC対応してついでにGAE対応になってたらよい
0441nobodyさん
垢版 |
2017/11/16(木) 04:08:53.06ID:???
>>438
でも俺1人でスレのレベルを大きく下げてるからな
油断すんなよ
0443nobodyさん
垢版 |
2017/11/16(木) 11:37:06.77ID:???
俺も俺も。正直slackは怖くて書き込めない。匿名だとクソな意見も言えるから大事
0445nobodyさん
垢版 |
2017/11/16(木) 20:11:18.78ID:???
>>444
これやってみたけどgen.shがWindowsだとエラー吐きまくるなぁ…
やっぱりみんなMac上でしか動作確認してないのか
周りもMacかUbuntuだらけだしweb系はMac買ったほうがいいのだろうか
0446nobodyさん
垢版 |
2017/11/16(木) 21:00:59.36ID:???
>>445
普通にエラー報告したら?
やってくれる人いると思うし知っていれば難易度が低い作業。ほぼワンライナーコマンドみたいだし。

protoコマンドがwin対応してないなら詰むけど
0447nobodyさん
垢版 |
2017/11/16(木) 22:33:55.17ID:???
ドッカーでドカドカやればええんや!
0448nobodyさん
垢版 |
2017/11/16(木) 23:07:20.11ID:???
docker+windowsは相性が悪くて
ファイルパスが¥と/で違うから
共有フォルダ設定が上手く行かず苦労した記憶ある
おとなしくmacかlinux上でやったほうがいい
0449nobodyさん
垢版 |
2017/11/17(金) 00:37:11.42ID:???
個人的にWindows上で開発するのつらい
Windows用のアプリ作るときもLinuxで作ってクロスコンパイル
Goはその点すばらしいよね

(ただWindowsにしか対応してないpackageがある時は辛いけど)
0450nobodyさん
垢版 |
2017/11/17(金) 01:13:37.80ID:???
>>449
winにしか対応してないパッケージがあるの?
そんなんあるんだ。逆じゃなくて?

でもコントリビュートするチャンスじゃん
0452nobodyさん
垢版 |
2017/11/17(金) 14:19:54.06ID:???
A Windows GUI toolkitだから当たり前じゃね
0455nobodyさん
垢版 |
2017/12/11(月) 22:05:33.86ID:???
インフラエンジニア分の人件費を完全にカットできるからROE高そうだな
10人くらいのチーム規模で月商5億くらいのサービス支えられそう
少数精鋭でいけるのが大きい
0456nobodyさん
垢版 |
2017/12/12(火) 07:10:14.14ID:???
goon と gosto を統一したようなパッケージなのか
便利そうだな
俺も使ってみよう
0458nobodyさん
垢版 |
2017/12/17(日) 06:40:28.92ID:???
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だと本筋とは関係のないエラーに遭遇しまくりで萎えてしまう
0459nobodyさん
垢版 |
2017/12/17(日) 07:51:55.80ID:???
'.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

あぁ謎…

古いMacbookでテストしたら普通に動作しました…
Windowsで開発はやめときます
0460nobodyさん
垢版 |
2017/12/30(土) 12:18:41.21ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

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

6BTU26N0P5
0461nobodyさん
垢版 |
2017/12/30(土) 15:35:17.77ID:2y5gVFlY
保守
0462nobodyさん
垢版 |
2018/01/19(金) 16:39:42.00ID:???
twitchtv/twirp いいよね
0463nobodyさん
垢版 |
2018/02/19(月) 21:43:19.14ID:???
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0464nobodyさん
垢版 |
2018/02/24(土) 16:29:29.06ID:yDuxzv7b
web系じゃなくてすまんが仮想通貨業界ってGoの存在感大きいんだな
東大発のベンチャーAIxブロックチェーン企業の求人がGo言語エンジニア直指定だった
0466nobodyさん
垢版 |
2018/02/24(土) 19:16:14.65ID:???
イーサリアムがgoで実装されてるから。(C++とpythonもあるが)
0467nobodyさん
垢版 |
2018/02/24(土) 21:18:55.55ID:yDuxzv7b
skycoinもgolangだった
フィンテック系にも浸透してきてるね
0468nobodyさん
垢版 |
2018/06/20(水) 22:17:41.57ID:UnZq46Ab
プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。

2C3G9
0469nobodyさん
垢版 |
2018/07/06(金) 22:21:00.60ID:???
progateにメルカリ監修でgoの講座できてる
0471nobodyさん
垢版 |
2018/07/10(火) 06:57:39.36ID:h1d+jc/+
>GCP の採用においては、エンジニア側の熱意も大きかったようです。
>「GAE と Datastore、Go 言語でやりたいという思いがエンジニアにすごくあったんです。
お前らがいたぞ
0472nobodyさん
垢版 |
2018/07/11(水) 03:24:20.83ID:???
progateのgo初級編やってみたけどドットインストールと大差ないな
出来ればGAE/Goで作られたカウルをフルスクラッチで作れるくらいの内容を中〜上級編として公開して欲しい
0474nobodyさん
垢版 |
2018/07/11(水) 07:40:55.40ID:???
>>473
http://ascii.jp/elem/000/001/499/1499741/
>現在、メルカリ(中略)新規事業として(中略)本やCDなどに特化した「メルカリカウル」を提供している。
>メルカリカウルにおいては、すべてGAEで構築している。
0475nobodyさん
垢版 |
2018/07/11(水) 08:03:33.99ID:???
>>474
何だ。専門用語かと思ったが略称なのね
0478nobodyさん
垢版 |
2018/07/14(土) 21:47:15.51ID:???
仕事でgoでgRPC使ってるけどさ、正直何がいいのかわからない
JSON返しゃよくねと思ってしまう
0479nobodyさん
垢版 |
2018/07/14(土) 22:36:12.19ID:???
本当に仕事で使ってたらその発想は出ないはずだが・・・
webの相手しかしてないの?スマホアプリのバックエンドとして普通使うよね?
0480nobodyさん
垢版 |
2018/07/14(土) 22:48:12.16ID:???
WebView使った側ネイティブアプリだとJSONしか使えなくね
0481nobodyさん
垢版 |
2018/07/14(土) 22:58:27.70ID:hj0eDv5j
マイクロサービス間の通信にgRPC
フロントエンドにはGraphQL
0482nobodyさん
垢版 |
2018/07/15(日) 00:09:42.15ID:???
別にサーバとクライアント間ではjsonでも困らんと思うが。
どっちかというとクライアント内のデータ構造がjsonのままはきつい。
0483nobodyさん
垢版 |
2018/07/15(日) 04:17:17.60ID:???
OpenAPI(Swagger)とgoa使ってる人いる?
webアプリにしか使わないならこっちのほうがいいよね?
0484nobodyさん
垢版 |
2018/07/15(日) 07:23:26.79ID:???
俺は普通のwebアプリでも使ってるけどね。spaなら全然行ける
0485nobodyさん
垢版 |
2018/07/15(日) 10:04:52.67ID:???
>>483
使ってると言いたかった。
マイクロサービスとか言うけど、結局webサーバーとして使えるから
0486nobodyさん
垢版 |
2018/07/18(水) 01:42:16.47ID:???
gRPCあきらめてTwirp使おうぜ
0487nobodyさん
垢版 |
2018/07/18(水) 02:46:51.88ID:???
Twirp良さそうだな
HTTP1.1→2.0の過渡期限定だけどさ
.protoが同じなら生産性も学習コストも同じだし
0488nobodyさん
垢版 |
2018/07/18(水) 07:56:48.33ID:???
Twichもgolang使ってたのか
覇権確定だな…
邪悪なOracleの支配下になったJavaを捨ててgolangに来たかいがあった
技術選定を見誤ると数年以上の遅れに繋がる
0490nobodyさん
垢版 |
2018/07/25(水) 12:06:57.03ID:???
Googleが用意したGoのライブラリを使うだけで
GCPやAWS等のクラウドプラットフォームを自由に切り替えできる
ポータビリティの高いwebアプリケーションが開発できる、ってことかな?
これは良いね
0492nobodyさん
垢版 |
2018/07/27(金) 17:05:13.99ID:???
goでwebサーバ建てる場合ってwebapiサーバだよね。
普通のwebアプリ。html返すようなのにgoを使うメリットってあるかな?
0493nobodyさん
垢版 |
2018/07/27(金) 17:05:41.88ID:???
というか向いてるgoのフレームワークある?
レスを投稿する


ニューススポーツなんでも実況