【Go言語】 webapp GO Part1 【Golang】 [無断転載禁止]©2ch.net
>>392
type T struct{}
var _ I = T{}
でT型がinterface Iを満たすかチェックできる >>393
チェックできるかどうかというより何を満たしてるかパッと見でわからないという意味で辛い Goのinterface面白いと思うよ
何を満たしてるかぱっと見でわからないっていうのはinterfaceの使い方が良くないんだと思う
必要なメソッドを理解しないまま使おうとしてるからわからなくなるんじゃない? >>394
393でコンパイルエラーが出て何の実装が必要かわかるんだから、それで問題ない気がするんだけど。 >>395
面白いしJavaとかより柔軟だよね。
もっとinterfaceを拡張してプロパティとか演算子のシンタックスシュガーをもっと付けて欲しいとは思う。
多分上手く拡張できればジェネリクスに近い感じになると思うんだけど >>396
?
そもそもIの存在を知らないような場合にそういうコードでチェックできないと思うんだが
TにReadメソッドが実装されてる→よく読み進めるとIにはReadメソッドをもつ→TはIを満たしてるという思考の流れが気持ち悪い >>398
考え方がおかしい。元々の質問は
>> 明示的にこのinterfaceを満たしてますよみたいなのが欲しい
という話だから当然inteface “I”の存在を知っている前提。
構造体Tを作っていてそいつにinterface Iの実装を行いたいという場合に
type T struct{}
var _ I = T{}
とういう風に書くと実装条件を満たすかをコンパイルエラーでチェックできるから
確実に実装できる。 もしかして定義済みの型がどのinterfaceを実装してるのか明示してほしいってことか
でもそれGoのinterfaceの考え方じゃないよ >>400
アンカーつけないとなんに対しての反論かわからんのだが。
interfaceの概念はべつにGo独自とかそういうもんじゃないし
Goのinterfaceの考え方ってなんのことを指してるのかよくわからんな。
基本的にはJavaと変わらんでしょimplementsが不要ってだけ。 >>401
>>400は>>391,394,398あたりへの憶測
他言語のinterfaceは、imprementsすることでその型が何であるのかを説明するためのもの
Goのinterfaceはオブジェクトが必要な機能を備えているか調べるためのもの
だから考え方が違う >>402
なんかフワッフワした言い回しすぎて何を説明したいのかがわからんな。
interfaceは、英単語の意味そのものだよ。つまりはメソッド名とパラメーターの並びと、返り値の型の組み合わせそのもの。
それ以上でもそれ以下でもない。
基本的には言語として共通の概念と言える。
goとそれ以外の言語の違いは
型(javaの場合はclass)がinterfaceを満たす条件が違うってだけ。
条件の違いは
java: interfaceを明示的に指定する
go: interfaceと同じメソッドを、実装する PHPerだらけだったうちの会社もとうとうGoの勢いを感じて次のプロジェクトで使うことになった
ISUCONの結果が地味に効いてる
経営陣はAWSの課金が減ることを期待してるみたいだけど、はたしてどうなることやら 他人の書いたソースを読んでて特定のinterfaceの実際の実装を見たい場合
どの構造体や型をみればいいのか探すのが面倒なことはまれによくある > Goのinterfaceはオブジェクトが必要な機能を備えているか調べるためのもの
これって公式にどっかに書いてあるの?
というかGoにオブジェクトって概念あるか >>407
guruが対応してるから簡単に探せるで
vscならcmd+f12で実装を探す >>409
うん
手元にcloneしたソースはguruで探すけど
githubでソース眺めてる時とかがちょっと困る >>406
GAE/GoでgRPC使えるんだっけ? GAE/GoやるならStandardで使いたいんだよね GAE/Go SEとgRPCは色々と苦しい
代替案として挙げられるのはGAE/Goとgoaあたり? GAE/Go Standardでも gRPC は urlfetch でいけるんじゃないの? やったことないからわかんないけど >>410
doxygenみたくinterfaceのコードのところがリンクになってクリックすると
実装一覧が出るようにしてほしいってことね。 バックエンドはGAE/Goとgoa
フロントエンドはReactとReactNative(またはVue.jsとWeex)
この構成でwebアプリ、スマホアプリを作りたい
こういう開発者向けにRailsチュートリアル並に詳細かつ丁寧に解説してあるネット文献
あるいはAmazonで買える技術書が欲しい >>416
お前は俺か。俺の場合はreact-nativeだけノータッチだけど goaのDSL覚えるくらいならproto3やったほうがいいよね
goaのほうがgRPCより優れている点が思い浮かばない 普通にweb apiを簡単に作れてswaggerと連携って魅力じゃないので? goaはWebAPI作るのには便利だけどそれ以外のケースであまり融通が聞くとは言い難い
そもそもWebAPIならどのフレームワークで作っても大差はない goaはGo言語で記述するDSLからGo言語の各種ソースコードを自動出力する
gRPCは言語非依存のprotoファイル(IDL)から対応言語(Go言語以外のメジャーな言語に対応)の各種ソースコードを出力できる
汎用性が全然違う
企業目線だとgRPC選ぶのが多いんじゃないかな
実際にメルカリ、DeNA、CA、その他スマホアプリ大手のバックエンドはgRPCだし GAE/Go SEで何の苦労もなくgRPCが使えれば平和になれそう go-json-restはどうなん?正直これぐらいが一番好きなんだが >>422
いやいやwebapiならgoa一択だと思うんだけど。もちろんゼロから構築という前提でですが。
gRPCならprotoを覚えるとGoのサーバーサイドも自動生成って認識で合ってる?DBとのつなぎ込みの部分はどう書くの? goaやgRPCは「定義ファイル→ソースコード&ドキュメント生成」
go-json-restは直接ソース弄る系だからアプローチが全然違うな goaもgRPCもDBまわりのビジネスロジックは手書きです
そこまで忖度はしてくれませんよ >>428
ですね。アホな質問しました。
goaだとフレームワークも含めた形でコード生成するんですが
protoによるgRPCの場合はどうなのかなーと。例えばミドルウェアはサポートしてます?
goaもv2でgRPCをサポートするっぽいんですが、protoでのサーバサイドGoコード生成がいい感じならお役ゴメンもあり得るんですかね。 自動生成されたサーバーのハンドラ部分を各種フレームワークに繋ぐだけ
フレームワーク上のミドルウェアとも組み合わせることが出来る ちなみにちょっとググったらjsからgRPCは使えないみたいですね。
reactNativeからは使えるんですかね。
jsから使えないのは痛い なんか知らんけど急に役立つスレ化する時あるよな
ここでEchoがGAE/Goで動かない報告(>>223)したら
瞬時にパッチ当ててくれたり(>>239)
Go言語界の実力者が見てるっぽい mattnさんgoのコントリビュータだし古参の2chねらーだからなあ >>432
えー。これってrestAPIに変換してるってだけでは?
それってjsから使えるって言っていいんすか。 https://twitter.com/search?f=tweets&vertical=default&q=GAE%20gRPC&src=typd&lang=ja
TwitterでGAE gRPCを検索したらお前らがいたw Qiitaでよく見かける人だらけやw
ISCON参加者もいるだろ絶対
レベルたけぇわこのスレ >>435
grpc-webみたいなのなかったっけ? goa使ってたらv2になったタイミングで勝手にgRPC対応してついでにGAE対応になってたらよい >>438
でも俺1人でスレのレベルを大きく下げてるからな
油断すんなよ 俺も俺も。正直slackは怖くて書き込めない。匿名だとクソな意見も言えるから大事 >>444
これやってみたけどgen.shがWindowsだとエラー吐きまくるなぁ…
やっぱりみんなMac上でしか動作確認してないのか
周りもMacかUbuntuだらけだしweb系はMac買ったほうがいいのだろうか >>445
普通にエラー報告したら?
やってくれる人いると思うし知っていれば難易度が低い作業。ほぼワンライナーコマンドみたいだし。
protoコマンドがwin対応してないなら詰むけど docker+windowsは相性が悪くて
ファイルパスが¥と/で違うから
共有フォルダ設定が上手く行かず苦労した記憶ある
おとなしくmacかlinux上でやったほうがいい 個人的にWindows上で開発するのつらい
Windows用のアプリ作るときもLinuxで作ってクロスコンパイル
Goはその点すばらしいよね
(ただWindowsにしか対応してないpackageがある時は辛いけど) >>449
winにしか対応してないパッケージがあるの?
そんなんあるんだ。逆じゃなくて?
でもコントリビュートするチャンスじゃん A Windows GUI toolkitだから当たり前じゃね インフラエンジニア分の人件費を完全にカットできるからROE高そうだな
10人くらいのチーム規模で月商5億くらいのサービス支えられそう
少数精鋭でいけるのが大きい goon と gosto を統一したようなパッケージなのか
便利そうだな
俺も使ってみよう 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だと本筋とは関係のないエラーに遭遇しまくりで萎えてしまう '.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
あぁ謎…
古いMacbookでテストしたら普通に動作しました…
Windowsで開発はやめときます 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
6BTU26N0P5 ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ web系じゃなくてすまんが仮想通貨業界ってGoの存在感大きいんだな
東大発のベンチャーAIxブロックチェーン企業の求人がGo言語エンジニア直指定だった ちなみにこれな
https://en-gage.net/daisy_hr/work_60316/
<必須要件>
> プログラミング言語
・Go (半年以上の実務経験) イーサリアムがgoで実装されてるから。(C++とpythonもあるが) skycoinもgolangだった
フィンテック系にも浸透してきてるね プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。
2C3G9 >GCP の採用においては、エンジニア側の熱意も大きかったようです。
>「GAE と Datastore、Go 言語でやりたいという思いがエンジニアにすごくあったんです。
お前らがいたぞ progateのgo初級編やってみたけどドットインストールと大差ないな
出来ればGAE/Goで作られたカウルをフルスクラッチで作れるくらいの内容を中〜上級編として公開して欲しい >>473
http://ascii.jp/elem/000/001/499/1499741/
>現在、メルカリ(中略)新規事業として(中略)本やCDなどに特化した「メルカリカウル」を提供している。
>メルカリカウルにおいては、すべてGAEで構築している。 http://nodir.io/post/138899670556/prpc
pRPC: gRPC on Classic AppEngine today
こういうのもあるんだな
色々調べてみるか 仕事でgoでgRPC使ってるけどさ、正直何がいいのかわからない
JSON返しゃよくねと思ってしまう 本当に仕事で使ってたらその発想は出ないはずだが・・・
webの相手しかしてないの?スマホアプリのバックエンドとして普通使うよね? WebView使った側ネイティブアプリだとJSONしか使えなくね マイクロサービス間の通信にgRPC
フロントエンドにはGraphQL 別にサーバとクライアント間ではjsonでも困らんと思うが。
どっちかというとクライアント内のデータ構造がjsonのままはきつい。 OpenAPI(Swagger)とgoa使ってる人いる?
webアプリにしか使わないならこっちのほうがいいよね? 俺は普通のwebアプリでも使ってるけどね。spaなら全然行ける >>483
使ってると言いたかった。
マイクロサービスとか言うけど、結局webサーバーとして使えるから Twirp良さそうだな
HTTP1.1→2.0の過渡期限定だけどさ
.protoが同じなら生産性も学習コストも同じだし Twichもgolang使ってたのか
覇権確定だな…
邪悪なOracleの支配下になったJavaを捨ててgolangに来たかいがあった
技術選定を見誤ると数年以上の遅れに繋がる Googleが用意したGoのライブラリを使うだけで
GCPやAWS等のクラウドプラットフォームを自由に切り替えできる
ポータビリティの高いwebアプリケーションが開発できる、ってことかな?
これは良いね goでwebサーバ建てる場合ってwebapiサーバだよね。
普通のwebアプリ。html返すようなのにgoを使うメリットってあるかな?