【Go言語】 webapp GO Part1 【Golang】 [無断転載禁止]©2ch.net (609レス)
1-

327: 2017/08/07(月)15:06 ID:??? AAS
てs
328
(1): 2017/08/10(木)20:59 ID:??? AAS
LLから入ったんだけど構造体とかインターフェイスあたりの設計?の勘所みたいなのが分からん
みんなどうやってGo言語(あるいはJavaとか)の設計をいいかんじにできるようになったの?
329: 2017/08/10(木)21:48 ID:??? AAS
Go言語は真面目に設計する言語じゃない
適当に書く言語
330
(1): 2017/08/12(土)11:41 ID:??? AAS
>>328
逆にLLの時はどんな設計だったん?
331: 2017/08/12(土)17:21 ID:??? AAS
>>330
そう聞かれるとうまい答えが見つからぶ「オブジェクト指向っぽい設計」というアホな回答になってしまう
そもそもインターフェイスとかいう概念がなかったので使いこなすのが難しい
インターフェイスの何が嬉しいんだみたいな疑問が定期的にわいてくるんだが
332: 2017/08/12(土)18:24 ID:??? AAS
動的言語だとダックタイピングだからインターフェースがないってことか。

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

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

例えばhttpのレスポンスだったり、もちろんファイルだったり
省6
333: 2017/08/12(土)18:27 ID:??? AAS
心地の良い設計の基本はすべてを知らなくても実装できること。
例えばfmt.Fprintfの中の実装を知らなくても
Writeメソッドを実装すればfmt.Printfが使えるでしょ。
そういう風に自作のオブジェクトも基本的にインターフェースを仲介して
各オブジェクトの詳細は知らなくても使えるようにする。
つまり疎結合にしてやる。
334: 2017/08/12(土)18:29 ID:??? AAS
インタフェースは既存のクラスに手を入れられないのがつらみ
C# みたいな this キーワードいれたりとか Haskell みたいなアドホック多相とかあれば別だけど
335: 2017/08/12(土)18:32 ID:??? AAS
俺としてはgoaとか勧める。
あれはwebapiを設計してやるとgoのコードを生成する。
webapiの実装例として参考になるし、そのまま開発してもいいし。
336
(1): 2017/08/12(土)18:58 ID:??? AAS
なるほど色々ありがとう
インターフェースの嬉しいところはなんとなく分かった。
ある型にたいして既存の関数やメソッドを使いたい→インターフェースを満たすようにメソッドを定義という感じの思考のプロセスでいいのかな?
337
(1): 2017/08/12(土)19:31 ID:??? AAS
>>336
例えばテスト主体で考えてもらえればより便利さがわかると思う。
interfaceを満たすだけのダミーなら簡単に用意できるでしょ。
structを直接引数に取る形にすると本番のstructをテスト書く時に用意しなきゃいけなくなる。
この思考プロセスがやがてDIに結びついていくんだけども。
338: 2017/08/12(土)22:27 ID:??? AAS
>>337
この話を聞いた上でちょっと色々コード眺めてみるわ
言わんとすることは分かったのであとは自分で書くときにすんなり使えるか…
とにかく参考になったありがとう
339: 2017/08/13(日)09:29 ID:??? AAS
goにおける配列操作で目的の要素を取り出すのっていちいちループを回さないとだめ?

標準ライブラリになんかないかな
340
(1): 2017/08/16(水)17:33 ID:??? AAS
メソッドのレシーバにnil pointerを渡して有用な場合ってどういうときなの?
メソッド内でフィールドアクセスする際にpanicになったりして良いことない気がするんだが
341
(1): 2017/08/17(木)02:53 ID:??? AAS
>>340
別にnilを渡せるのが有用とかいう話は無くて、単にポインタに対してメソッドを呼び出せるとレシーバーがnilになりうるけどどーすんの?って話でしょ

他言語ではメソッドは呼ばれずにNullPointerException的なのが飛ぶようになってるけど
goの場合はメソッド側でnilに対処すれば呼び出し側はレシーバーがnilかどうかを気にしなくてもいいというメリットはある
342: 2017/08/17(木)05:13 ID:??? AAS
>>341
それメリットだとは思えないんだが
nilに対処するコードを毎回書かなきゃならないのもダルいし忘れててもコンパイルできてしまって実行時にpanicするしで嬉しくなくね?
343: 2017/08/17(木)09:20 ID:??? AAS
go2でnull安全にならないかな。無理?
344: 2017/09/05(火)00:18 ID:??? AAS
gaeのdatastoreを勉強できるいい教材ないかな
345: 2017/09/06(水)10:48 ID:??? AAS
appEngine使ってる人いないのん?
go1.8にも対応しつつあるし期待しとるよ
346
(1): 2017/09/08(金)10:37 ID:URvmV42V(1) AAS
GAE勝手にサービス終了しやがった
1-
あと 263 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.008s