質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.11%

フロントエンドだけでは出来ないこと

解決済

回答 6

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 917

H40831

score 796

HTML、CSS、JavaScriptやJSライブラリなど、今までフロントエンドだけ学んできた者です。

次のステップとしてサーバーサイドの言語やサービスを学び始めてるのですが、それで何が出来るのか具体的にイメージすることでモチベーションをあげたいので、ご意見いただければ幸いです!

たとえばGithub pagesとJavascriptを組み合わせるだけでも、ある程度ロジカルなものは作れると思うのですが、
それをさらにAWSやサーバーサイド言語の知識身につけることによって、どのようなものが作れるようになるのでしょうか??

ググってみたのですが、サーバーサイドは仕組み作りやデータベースをつくる言語みたいなイメージの答えが多く、それってJavaScriptでもできるのでは?と思いました。
あとはWEBに公開することができるってことは分かるのですが、それはGithub pagesでも出来そうだし、オープンソースじゃなくなるってだけでは学習のモチベーションは上がりません…。

こんな質問をしちゃうくらい、フロントの事しか分からないので、とっかかりになる検索ワードだけでも、嬉しいです!
もちろん詳しく教えてくれたら、もっと嬉しいです!

(サーバーサイドについてはAWS EC2へのSSH接続がやっとできるようになったり、PHPの書き方を勉強中だけどJavaScriptとの違いを見出せていないくらいのレベルです。セキュリティ上の違いとかは当然あるとは思うのですが、逆にそれくらいしかイメージできてないです。)

追記

僕の言うJavaScriptで作れる「ロジカルなもの」とは、条件分岐や、ユーザからの値の受け取り、ローカルストレージへのデータの保存を活用するような、アプリ的なものです!
具体的にはTODOリストや高機能なメモや計算機、経験を積めばブラウザ上でオフラインゲームまでできるという認識です。

JSを習得する際、フロントエンドの先生から「JSはブラウザ上ならオフラインの事は何でもできる」と教わった際に、サーバーサイド言語の処理ってオフラインで作れるデータをサーバーと送受信するだけなの??という疑問が起きたのが、この質問の発端でした。

ベストアンサー

みなさん、沢山のご意見をどうもありがとうございます!
お陰様で、ふわっとしていた学習意欲がいい感じに固まってきました。
皆様の意見ひとつひとつがとても参考になったので、ベストアンサーを決めるのが難しかったのですが、
たくさん高評価を押されていて、コメントでも更に詳しくお返事くださったdyoshikawa様にしました!
今後も沢山手を動かして、皆様に頂いたお言葉を、より具体的に実感できるように頑張ります。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • gentaro

    2019/07/25 21:01

    > あとはWEBに公開することができるってことは分かるのですが、それはGithub pagesでも出来そうだし、オープンソースじゃなくなるってだけでは学習のモチベーションは上がりません…。

    ここの意味が最も理解しづらいんですが、GitHub Pagesを「使う側」じゃなく「作る側」に立ったら「何ができるか(何が必要か)」は想像できないでしょうか?

    キャンセル

  • m.ts10806

    2019/07/26 09:43

    アドバイスは色々と集まっていますが「ロジカルなもの」を質問者さんがどう定義されているか明示されたほうが良いかと思います。
    質問に追記してください。

    キャンセル

  • 退会済みユーザー

    2019/07/26 20:54

    複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

  • H40831

    2019/07/27 10:49 編集

    ▶gentaroさん
    GitHub Pagesを作る側・・・たしかに僕の技術じゃできないですね!
    目標がデカすぎて、サーバーサイド、フロントエンドの他にも不足していることが多い感じがしますw

    ▶mts10806さん
    フワッとした表現をしてしまい、申し訳ありません!
    「JavaScriptで出来るもの」すら全貌を把握できていない状態なので、「ん?」と思われるところが多いかと思いますが、考えてみて、追記いたしました!

    キャンセル

回答 6

checkベストアンサー

+9

簡単にいえば、 他人とデータを共有したい場合 に必要です。
オフラインゲームとオンラインゲームの違いというか。

昔のスーパーマリオのような完全一人プレイ用のオフラインゲームは他のユーザとデータを共有する必要がないですね。
セーブデータも自分の端末だけにあればよいです。
オフラインゲームはフロントエンド技術だけで作れるということです。

一方、モンスターハンターのようなオンラインゲームでは自分の端末ではないクラウド上にデータを貯めておく必要があり、さらにそのデータをインターネット通信で各ユーザで共有することになります。
そのために必要なのがサーバアプリケーションやデータベースです。

昔のスーパーマリオ と述べましたが、最近のゲームはほとんどがオンライン前提です。
webアプリも同じです。
何の目的にせよ、 他人と情報を共有したい 要件が必ずといっていいほど入ってくるはずです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/26 09:39

    回答ありがとうございます。
    他人との情報共有…まさにそれですよね!そのためにもっと勉強します!

    極端な話ですが、ロジカルな処理は全てJavaScriptで組む、と決めた場合、
    バックエンドのプログラミング言語の役割は、生み出されたデータをサーバへ送受信するのみでしょうか。
    JavaScriptで組めない処理というのももちろんあると思うのですが、具体的に想像できず。

    沢山の意見を聞かせていただき、なんとなくモチベーションがあがってきました。
    ありがとうございます!

    キャンセル

  • 2019/07/26 09:42 編集

    > ロジカルな処理
    すみませんが何を指しているのかかりませんでした。
    が、私の経験で言うと処理は極力バックエンドに持たせた方が良いと思っています。
    サーバ側のソースは一つですがフロント側のソースはwebフロント・iPhoneアプリ・Androidアプリなど複数になることがよくあります。
    そうなるとフロント側それぞれのプラットフォームで重複した処理を書くのは非効率になることが多いですから、極力バックエンドでやってしまおうという方針になりやすいです。
    また、ユーザ情報など、露出してはいけない情報の処理は絶対にバックエンドで行います。

    > サーバへ送受信する
    サーバへ送受信するのはフロントエンドの役割ですね。
    バックエンドはそこから先の話です。

    いくら言葉での説明を求めたところで知識が上滑りするだけだと思うので、一度Railsなど有名なフレームワークを手を動かして学ばれた方がいいと思います。
    一つ言えるのはここでの説明だけで理解できるほど簡単ではないということです。

    キャンセル

  • 2019/07/26 12:58

    サーバーに保存してあるデータを、どのように絞り込み、関連するデータとどう繋ぎ、どのようにフロントエンドに伝えるかというのがサーバーサイドエンジニアの領分じゃないかな。
    フロントエンドでデータ処理するよりも遥かに効率的に処理できるのがサーバー側処理です。
    (ぜんぶフロントエンドでっていうと、常に使うか使わないかわからないデータを大量にサーバーから取得するような話になり、スマホのゲームだとパケ死させられるんじゃないかと。)

    キャンセル

  • 2019/07/27 11:20

    お二方コメントありがとうございます。
    処理をバックエンドに持たせた方が良い理由がすごく具体的にイメージできました!
    たしかに、処理をフロントでやってしまうと、プラットフォーム別にソースも重複するし、通信量も膨大になるし、情報が露出する可能性も出てきますね!

    プログラミング言語をJavaScriptやjsフレームワークしか知らない状態で、学習のために色々作ってみてたので、
    そもそもそこが、世間と少しズレているなあとは薄々勘付いていました。笑
    サーバーサイドで処理をする理由や、何が向いてるかなどのお話は、自分ではぼんやり「こういう感じかな」という風に考えておくしかなかったので、ハッキリと答えを頂けて、助かりました!

    そうなると、jsのモダンなフレームワークを使った処理と、サーバーでの処理の境界はどうするのかという疑問がわいてきますが、そのへんはもうすこし学習を進めてから考えたいと思います。

    ここでの質疑応答だけでは僕はまだほとんど理解はできてないのでしょうが、
    おかげさまで学習の意欲がとっても向上しました。
    ありがとうございます!

    キャンセル

+4

「フロントエンド」をやってきたのですから当然「バックエンド」と連携してきたと思うのですが、なぜサーバーサイドで何ができるのかイメージできないのでしょうか?フロントエンドで利用するAPIを提供したりできるということは自明のように思います。フロントエンドという考え方には常に向かい側にバックエンドがいます。

「フロントエンド」「オープンソース」「Webに公開」もわかっていないように思いますので、先にこれらをもう少し勉強してみてもいいと思います。フロントが先とかエンドが先(あるいはかんたん・難しい)とかではなく、いま手元にあるものから進めたほうがいいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/26 09:22

    回答ありがとうございます。
    APIの提供、たしかにフロントエンドでは出来ないですね!
    おっしゃるとおり、今回の質問のような疑問が出てきてしまうのは、
    「フロントエンドではできないこと」はもちろんのこと、
    「フロントエンドだけで出来ること」も全貌を把握できてないという事ですよね…。
    アドバイス頂いた通り、手元にある駒から出来ることをどんどん増やしていきたいと思います!
    ありがとうございます!

    キャンセル

+2

分かりやすくてモチベーションがあがりそうなものだと、今まで使ってたjavascriptの技術にプラスしてサーバーサードの技術を習得する事でブラウザだけで動く通話ビデオ通話が作れます。これはjavascriptだけでもサーバーサイドだけでも実現できない事です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/26 09:48 編集

    回答ありがとうございます。
    ブラウザだけで動く通話…たしかにフロントエンドだけではできないですね!
    リアルタイム通信というところがミソなんでしょうか!
    逆にサーバーサイドだけでもできない、というのも、やはりたくさんの知識をつければつけるほど、相乗効果でよりすごいものが作れるんだろうなって、すごくワクワクしました!
    組み込み系の知識も必要そうで、道のりはとっても長そうですねw
    とてもモチベーションのあがる具体例でした。
    ありがとうございます!

    キャンセル

+2

むしろ観点をサーバーサイドに変えて調べてみては。

「サーバーサイドでしかできないこと」
「サーバーサイドだけではできないこと」

もちろん調べてインプットだけ溜まっても実感はできませんので
実際にミニマムプログラム作って動かしてアウトプットをしていくと良いでしょう。

そうすることで「こういうこともできるのか」とモチベーションアップにつながってくるのでは。

基本的には。
リクエストはサーバーからもクライアントからも送れるけど
受取先はサーバー。レスポンスを返すのもサーバー

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/26 09:47

    おっしゃるように手を動かさない限りなかなかわからないと思いますね。

    キャンセル

  • 2019/07/26 09:50

    はい。質問者さんがやってきたフロントエンドだって実際に作ってみて動かして理解してきたはずなので。
    動作環境やお作法が違うだけでやり方は同じと思います。

    キャンセル

  • 2019/07/27 10:57

    回答ありがとうございます。
    「サーバーサイドだけではできないこと」っていう観点では調べたことがなかったです。
    たしかに、もうちょっと色々な観点で調べてみたら新しい理解が出来そうです!

    今現在PHPとAWSを学習中なのですが、まだはじめたばかりで「この技術で何を作りたいか」想像ができる段階ではないのですが、ふつふつと疑問ばかり大きくなってしまっていたので質問してしまいました。
    この投稿にみなさまがたくさん考えて意見くださったおかげで、
    mts10806さんの仰るとおり、早く基礎学習を終えて、なにか楽しいものを作ってみたい気持ちにかられています!
    ありがとうございます!

    キャンセル

+1

今までフロントエンドだけ学んできた者です。

たぶん、サーバーを利用していた思うのですが、
それを認識できていないってことなのかなあ
って思いました。

一口にサーバーと言っても、特定の機能を提供するものから
インフラ的なものまで様々なものがありますよね。
しかも、同じ機能を提供するにもいろんな方法があります。

翻って、モチベーションのためにというハナシなら
まずは自分が「こいつはすげえ」と感激するような
サービスを見つけてみてはいかがでしょうか。

個人の感覚ですから、どういったものが琴線に触れるのかは
ご自分が一番よく分かっていることでしょう。
もしくは友達に聞いてみるのもありかもしれません。

つまり、漠然とした質問にはなかなか具体的な回答は
つかないんじゃないかなあ、って話です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/26 09:43

    回答ありがとうございます。
    おっしゃり通り、まだプログラミングの全体像を把握しきれていない感じです。
    いち早く、なんとなくでも把握できるように知識を広げていきたいです。

    感激するようなサービスがあっても、それのどの部分までがフロントエンドだけで実装できることで、どこからが出来ないのか、というのをイマイチ分かってないのが問題なんですよね。
    こんな程度の低い質問、自分としてもするかどうかは非常に迷っていたのですが、
    やはり沢山の意見を聞いてみたいと思い投稿させていただきました。

    初心者まるだしの質問なのに相談にのっていただきまして、
    ありがとうございます!

    キャンセル

+1

この質問を見て、小学生の頃にHTMLだけでチャットが作れないか試行錯誤していた記憶が蘇りました。

それで何が出来るのか

思いつくままに列挙。

  • インターネット掲示板
  • ブログサービス
  • teratailみたいなサービス
  • ECサイト
  • チケット予約サービス
  • オンラインゲーム
  • SNS
  • 検索サービス
  • 動画共有サイト

まだまだいくらでもありそう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/26 09:45 編集

    回答ありがとうございます。
    HTMLだけでチャットが作れないか…まさにそんな感じです!
    どこまでできて、どこからできないのか、もっともっと勉強していきます!

    具体例を沢山あげていただき、とっても参考になりました!
    教えていただいた例を元に、フロントとバックの境界なども含めて、これからもたくさん調べてみたいと思います!
    ありがとうございます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.11%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる