技術ブログを開設する
ログイン
もっと気軽にアウトプットできる技術ブログプラットフォーム

Railsアプリを構成する技術について、こちらのサイトの図が分かりやすかった。

RubyとRailsの学習ガイド2019年版

知らなければいけないことがたくさんあると漠然と思っていたけど、図で見るとスクールで学んだRubyやRailsなどの扱い方は全体のほんの一部で、どんな技術を学ぶべきか見えてきた。

1つの知識を徹底的にやるよりも、まずは全体を通して勉強し、そのあとで勉強したいところに戻って積み重ねて学んでいく方が、挫折しづらいのでお勧めです。

きっとその通り。

まずは知らない言葉を減らしていくことから始めるシリーズ(?)


webアプリケーションの特徴

webアプリケーションって?

HPなど受動的に閲覧するものに対し、能動的に利用するもの。

  • 主な処理はサーバー上で行われる。
  • webブラウザで表示される。
  • デスクトップアプリケーションと違い、インストール不要。

 

webの技術発展

どのように技術が発展したのか

www [world-wide-web](ワールド・ワイド・ウェブ)

世界に広がる蜘蛛の巣という意味。一般的にwebと呼ばれる。
wwwの提案、開発に貢献したのがティム・バーナーズ=リー博士で、素粒子物理学研究所での不便を解決しようと誕生した。
図やリンクをテキストファイルだけで表現するためにHTML[Hyper Text Markup Landage]が生まれた。

NCSA Mosaic(エヌシーエスエー・モザイク)

www誕生当初のブラウザではテキストのみで表現され、画像などは別のウィンドウで表示された。
NCSA Mosaicというブラウザの登場により、テキストと画像を混在して表示できるようになった。

 

webの根幹となる技術

〜欲しいデータがどこにあるかを知るための技術〜

URL [Uniform Resorce Locator](=統一資源位置子)

クライアント(利用者)がリクエスト(要求)するリソース(資源)がどれなのかを特定するため仕組み。

サイトの例: https://dotinstall.com/lessons/baseic_html_v4

  • httpsの部分
    スキームと呼ばれ、リソースを取得するための方法を表す。
    http, https, mailto, ftp, fileなどがある。
  • dotinstal.comの部分
    ホスト名(ホストコンピュータ名)。wwwで始まることが多い。
    wwwで始まる場合、wwwの部分をローカル名、それ以下の部分を親ドメイン名という。
    親ドメイン名は重複しないように日本ではJPRS(日本レジストリサービス)という会社が管理している。(2018年現在)
  • lessons/basic_html_v4の部分
    ホストコンピュータ上のリソースの場所を表す。
    lessonsディレクトリの下のbasic_html_v4というファイルという意味。

URI [Uniform Resource Identifier]

URLとURN [Uniform Resource Name]を合わせた概念。

URLは物理的なリソースの位置情報。
 住所のようなもの。
 リソースが移動すると位置情報も変わる。

URNはリソースに付けられた名前。
 場所の名称のようなもの。
 リソースが移動しても呼び名は変わらない。

 

〜どうやってデータを送るかを定めた技術〜

通信プロトコル (Communications protocol)

webサーバーとwebクライアントが通信を行うための取り決め。
バーナーズ=リー博士が考案したhtmlの転送に適したプロトコルがHTTPで、現在は普及しているのはHTTP/1.1。
分からない人に一方的にモールス信号を送っても伝えたい内容が伝わらないように、データを送る手法やルールの取り決めが必要。

 

〜動的なコンテンツを生成する技術〜

CGI [Common Gateway Interface]

HPなどの予め用意されたページを表示する静的なコンテンツと違い、リクエストに応じてプログラムがHTMLを生成し、HTMLを返す動的なコンテンツを動かすためのインタフェース(規約)。
主にPerlが利用され、大規模な場合はC言語が利用されたが、CGI=Perlではない。

Servlet(サーブレット)

Javaで作られたwebコンテンツを生成するためのプログラム。
JavaEE(Java Enterprise Edition 企業向けJava)の一部として提供された。
CGIの問題解決に役立ち(高速性と言語の問題解決)、普及した。
javaのプログラムはOSを問わず動作するため、本番環境と異なるプラットフォーム(ハードウェアとOSの組み合わせ)で開発することが可能になった。
企業などの大規模開発にjava、個人規模のシステムにCGI/Perl(のちにphpが主流となる)が利用されるようになった。

JSP [Java Server Pages]

サーブレットはjavaのコードの中にHTMLを埋め込む形で記述されており、デザインとプログラムの修正を行うには不便だった。
JSPという技術の誕生により、HTMLの中にjavaを埋め込む形で記述する(webコンテナの内部でサーブレットに変換される)ようになり、メンテナンスしやすくなった。

 

〜効率的に開発するための技術〜

webフレームワーク

webアプリケーションの開発が大規模になるにつれ、効率よく開発することが求められる。
再利用できる処理はライブラリとしてまとめられ、同じコードを何度も書かなくてよくなった。
更に再利用できる部分を増やし、土台として作られたものがフレームワーク。

関連記事

この記事へのコメント

まだコメントはありません
2
@kinaの技術メモ。学んだことの整理と忘備録として。
2
このエントリーをはてなブックマークに追加