回答編集履歴
1
文章を校正してちょっと読みやすく改良
answer
CHANGED
@@ -1,23 +1,25 @@
|
|
1
|
-
そうだねぇ、スマホを使った質問者さんにとって分かりやすそうな例を
|
1
|
+
そうだねぇ、スマホを使った質問者さんにとって分かりやすそうな例を考えてみよう。
|
2
2
|
|
3
3
|
例えばSwiftを使ってパズルゲームを作るとするじゃん?
|
4
4
|
そのパズルゲームは早く正確に解けば高いスコアが出てスマホ内に保存される。
|
5
5
|
|
6
|
+
でも、折角ハイスコアが保存されるんだから皆で見せあって自慢したいじゃない?
|
6
|
-
|
7
|
+
だからプレイヤー達のスコアを集計、ランキングにして表示して、
|
7
8
|
上位入賞者には豪華景品…なんてサービスにしたら面白そうじゃない?
|
8
9
|
|
9
10
|
---
|
10
11
|
|
11
|
-
でも、各スマホのデータを`何処`に、`どうやって`集計するか。
|
12
|
+
でも、各スマホの中にあるハイスコアのデータを`何処`に、`どうやって`集計するか。
|
12
13
|
|
13
14
|
各スマホはインターネットには接続出来るけど、他のスマホの情報を吸い上げる事は出来ない。
|
14
15
|
そんなこと出来たら、私はあなたのスマホを簡単に乗っ取れることになるからね。
|
15
16
|
|
17
|
+
そこで一般的にはこんな手段を使う。
|
16
|
-
|
18
|
+
インターネット上の特定のマシンを情報置き場として広く公開する。
|
17
|
-
|
19
|
+
そしてその特定マシンへのアクセス情報はパズルゲーム内に埋め込むから「ハイスコア送信」ボタンを押すとそのマシンに保存するという仕組みを作る。
|
18
|
-
[クライアントサーバモデル](https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%82%B5%E3%83%BC%E3%83%90%E3%83%A2%E3%83%87%E3%83%AB)(通称クラサバ)と呼ばれる手法があるの。
|
19
20
|
|
21
|
+
これは[クライアントサーバモデル](https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%82%B5%E3%83%BC%E3%83%90%E3%83%A2%E3%83%87%E3%83%AB)(クラサバ)と呼ばれる手法。
|
20
|
-
より具体的に言えば、[Webサーバー](https://ja.wikipedia.org/wiki/Web%E3%82%B5%E3%83%BC%E3%83%90)とか[APIサーバー](http://qiita.com/busyoumono99/items/9b5ffd35dd521bafce47)呼ばれる
|
22
|
+
より具体的に言えば、[Webサーバー](https://ja.wikipedia.org/wiki/Web%E3%82%B5%E3%83%BC%E3%83%90)とか[APIサーバー](http://qiita.com/busyoumono99/items/9b5ffd35dd521bafce47)と呼ばれる仕組み。
|
21
23
|
|
22
24
|
---
|
23
25
|
|
@@ -25,15 +27,16 @@
|
|
25
27
|
|
26
28
|
> サーバーサイドのプログラミングはできますか
|
27
29
|
|
28
|
-
他の質問者さんが見当をつけているように、サーバーサイドのプログラミングといえば
|
30
|
+
他の質問者さんが見当をつけているように、サーバーサイドのプログラミングといえば……
|
29
|
-
クラサバの特にWebサーバーを指す事が多い。
|
31
|
+
クラサバの、特にWebサーバーを指す事が多い。
|
30
|
-
技術的には[HTTP](https://ja.wikipedia.org/wiki/Hypertext_Transfer_Protocol)という規格に準拠した通信を待ち受ける
|
32
|
+
技術的には[HTTP](https://ja.wikipedia.org/wiki/Hypertext_Transfer_Protocol)という規格に準拠した通信を待ち受けるプログラムを動作させるマシンを構築する。
|
31
33
|
|
32
34
|
このHTTPはインターネットの仕様でがっちり規格化されている。
|
33
35
|
iPhoneでSafari等のブラウザを立ち上げて他のWebサイトを閲覧するような場合、裏では全てこのHTTP通信を利用して通信している。
|
34
36
|
|
37
|
+
他の手法や技術でやってやれない事はないけれど、
|
35
|
-
スマホアプリのデータを共有するためにはWebサーバーを構築する技術が必要。
|
38
|
+
一般的にはスマホアプリのデータを共有するためにはWebサーバーを構築する技術が必要。
|
36
|
-
学生なら「出来ますか?」の問いにはNoと答えるかも
|
39
|
+
学生なら「出来ますか?」の問いにはNoと答えることになるかも知れないけど、親和性が高くて夢が広がるから積極的に勉強してみたうえで「興味がありますので是非作ってみたいです!」と答えられると良いかもしれないね。
|
37
40
|
|
38
41
|
> どの言語を使ってサーバーをいじれば良いのでしょうか
|
39
42
|
|
@@ -51,7 +54,9 @@
|
|
51
54
|
それくらいHTTP通信は出来て当然の世界になってるわけだ。
|
52
55
|
|
53
56
|
例えばニコニコ動画は多数のユーザーがアクセスしてくる為に、速度が必要だからC++で書かれてるんだったはず。
|
54
|
-
去年の勉強会だったかで見知ったけど、ドワンゴが別の言語(
|
57
|
+
去年の勉強会だったかで見知ったけど、ドワンゴが別の言語(ScalaやElixir)での負荷を検証してたりしてたね。
|
55
58
|
|
56
|
-
とにかく、気になった言語を見つけてWebサーバー
|
59
|
+
とにかく、気になった言語を見つけてWebサーバーを作ってみる事をオススメするよ。
|
57
|
-
言語はマジで何でもいいから、
|
60
|
+
言語はマジで何でもいいから、有名どころの内から適当に選ぶ程度でいいと思う。
|
61
|
+
実際の業務は様々な要因で、サービスに適した言語を選択せざるを得ないから、○○以外触れませんってのと、
|
62
|
+
一つの言語がそれなりに触れれば、他の言語も簡単にそれなりのレベルまで上達するから。
|