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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

6回答

2356閲覧

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

H40831

総合スコア973

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2019/07/25 11:03

編集2019/07/27 02:32

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

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

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

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

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

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

追記

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

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

ベストアンサー

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2019/07/25 12:01

> あとはWEBに公開することができるってことは分かるのですが、それはGithub pagesでも出来そうだし、オープンソースじゃなくなるってだけでは学習のモチベーションは上がりません…。 ここの意味が最も理解しづらいんですが、GitHub Pagesを「使う側」じゃなく「作る側」に立ったら「何ができるか(何が必要か)」は想像できないでしょうか?
m.ts10806

2019/07/26 00:43

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

2019/07/27 02:34 編集

▶gentaroさん GitHub Pagesを作る側・・・たしかに僕の技術じゃできないですね! 目標がデカすぎて、サーバーサイド、フロントエンドの他にも不足していることが多い感じがしますw ▶mts10806さん フワッとした表現をしてしまい、申し訳ありません! 「JavaScriptで出来るもの」すら全貌を把握できていない状態なので、「ん?」と思われるところが多いかと思いますが、考えてみて、追記いたしました!
guest

回答6

0

ベストアンサー

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

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

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

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

投稿2019/07/25 11:20

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

H40831

2019/07/26 00:39

回答ありがとうございます。 他人との情報共有…まさにそれですよね!そのためにもっと勉強します! 極端な話ですが、ロジカルな処理は全てJavaScriptで組む、と決めた場合、 バックエンドのプログラミング言語の役割は、生み出されたデータをサーバへ送受信するのみでしょうか。 JavaScriptで組めない処理というのももちろんあると思うのですが、具体的に想像できず。 沢山の意見を聞かせていただき、なんとなくモチベーションがあがってきました。 ありがとうございます!
退会済みユーザー

退会済みユーザー

2019/07/26 00:46 編集

> ロジカルな処理 すみませんが何を指しているのかかりませんでした。 が、私の経験で言うと処理は極力バックエンドに持たせた方が良いと思っています。 サーバ側のソースは一つですがフロント側のソースはwebフロント・iPhoneアプリ・Androidアプリなど複数になることがよくあります。 そうなるとフロント側それぞれのプラットフォームで重複した処理を書くのは非効率になることが多いですから、極力バックエンドでやってしまおうという方針になりやすいです。 また、ユーザ情報など、露出してはいけない情報の処理は絶対にバックエンドで行います。 > サーバへ送受信する サーバへ送受信するのはフロントエンドの役割ですね。 バックエンドはそこから先の話です。 いくら言葉での説明を求めたところで知識が上滑りするだけだと思うので、一度Railsなど有名なフレームワークを手を動かして学ばれた方がいいと思います。 一つ言えるのはここでの説明だけで理解できるほど簡単ではないということです。
退会済みユーザー

退会済みユーザー

2019/07/26 03:58

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

2019/07/27 02:20

お二方コメントありがとうございます。 処理をバックエンドに持たせた方が良い理由がすごく具体的にイメージできました! たしかに、処理をフロントでやってしまうと、プラットフォーム別にソースも重複するし、通信量も膨大になるし、情報が露出する可能性も出てきますね! プログラミング言語をJavaScriptやjsフレームワークしか知らない状態で、学習のために色々作ってみてたので、 そもそもそこが、世間と少しズレているなあとは薄々勘付いていました。笑 サーバーサイドで処理をする理由や、何が向いてるかなどのお話は、自分ではぼんやり「こういう感じかな」という風に考えておくしかなかったので、ハッキリと答えを頂けて、助かりました! そうなると、jsのモダンなフレームワークを使った処理と、サーバーでの処理の境界はどうするのかという疑問がわいてきますが、そのへんはもうすこし学習を進めてから考えたいと思います。 ここでの質疑応答だけでは僕はまだほとんど理解はできてないのでしょうが、 おかげさまで学習の意欲がとっても向上しました。 ありがとうございます!
guest

0

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

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

投稿2019/07/25 11:12

thyda.eiqau

総合スコア2982

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

H40831

2019/07/26 00:22

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

0

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

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

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

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

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

投稿2019/07/26 00:42

編集2019/07/26 11:45
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/07/26 00:47

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

2019/07/26 00:50

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

2019/07/27 01:57

回答ありがとうございます。 「サーバーサイドだけではできないこと」っていう観点では調べたことがなかったです。 たしかに、もうちょっと色々な観点で調べてみたら新しい理解が出来そうです! 今現在PHPとAWSを学習中なのですが、まだはじめたばかりで「この技術で何を作りたいか」想像ができる段階ではないのですが、ふつふつと疑問ばかり大きくなってしまっていたので質問してしまいました。 この投稿にみなさまがたくさん考えて意見くださったおかげで、 mts10806さんの仰るとおり、早く基礎学習を終えて、なにか楽しいものを作ってみたい気持ちにかられています! ありがとうございます!
guest

0

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

投稿2019/07/25 14:59

hentaiman

総合スコア6415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

H40831

2019/07/26 00:50 編集

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

0

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

それで何が出来るのか

思いつくままに列挙。

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

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

投稿2019/07/25 14:48

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

H40831

2019/07/26 00:46 編集

回答ありがとうございます。 HTMLだけでチャットが作れないか…まさにそんな感じです! どこまでできて、どこからできないのか、もっともっと勉強していきます! 具体例を沢山あげていただき、とっても参考になりました! 教えていただいた例を元に、フロントとバックの境界なども含めて、これからもたくさん調べてみたいと思います! ありがとうございます!
guest

0

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

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

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

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

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

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

投稿2019/07/25 13:09

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

H40831

2019/07/26 00:43

回答ありがとうございます。 おっしゃり通り、まだプログラミングの全体像を把握しきれていない感じです。 いち早く、なんとなくでも把握できるように知識を広げていきたいです。 感激するようなサービスがあっても、それのどの部分までがフロントエンドだけで実装できることで、どこからが出来ないのか、というのをイマイチ分かってないのが問題なんですよね。 こんな程度の低い質問、自分としてもするかどうかは非常に迷っていたのですが、 やはり沢山の意見を聞いてみたいと思い投稿させていただきました。 初心者まるだしの質問なのに相談にのっていただきまして、 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問