記事概要
Webアプリケーションについて、まとめる。
まとめ(用語)
Web
インターネット上で画像や文章などを公開できる仕組み
アプリケーション
「ある目的」のために作成されたプログラム
Webアプリケーション
Webで使用されるアプリケーション
動的
表示されるデータが更新される仕組み
※表示データが更新される仕組みになっているサイトは、動的サイトという
静的
サイト作成者が更新した場合を除き、誰がいつ見ても、常に同じ内容が表示されるような仕組み
※表示データが更新されない仕組みになっているサイトは、静的サイトという
HTTP通信
情報やデータなどを送受信するための通信方法
URL(Uniform Resource Locator)
インターネットのサービスの場所を表すものであり、インターネットにある住所のイメージ
リクエスト
データや情報を要求すること
レスポンス
リクエストに対応するデータや情報を返すこと
クライアント
Webアプリケーションなどのサービスを利用する側のこと
クライアントサイド
クライアントが利用する領域
Webアプリケーションの見た目や、それを表示するブラウザなどのこと
ユーザーに対するサービスの見た目や利便性を考えることを専門とするエンジニアを、クライアントサイドエンジニア(またはフロントエンドエンジニア)という
サーバー
画面の無いPCのようなもの
Webアプリケーションは世界中のどこかに置いてあるサーバーの中に保存されており、そこに対してインターネットを介して通信することで、サービスが利用できる
サーバーサイド
実際にWebアプリケーションが存在する領域のこと
Webアプリケーションの仕組みを専門とするエンジニアは、サーバーサイドエンジニアという
サーバーの種類
サーバー名 | 役割 |
---|---|
アプリケーションサーバー | Webサーバーを通して受け取ったリクエストを処理し、HTMLなどをWebサーバーへ返却する役割 |
Webサーバー | リクエストを処理し、レスポンスを返却する役割 |
データベースサーバー | アプリケーションで使用するデータを管理する役割 |
データベース(データベースサーバー)
情報の集合体、すなわちデータの集まりのこと
ローカルホスト(localhost)
「自分のPC」という意味
自分のPC内にサーバーを立ち上げると、インターネット接続が不要になる
アルゴリズム
「目的の達成にいたるまでの処理の一連の流れ」のこと
RDB(Relational Database)
表形式でデータを管理するデータベース
レコードとカラム
RDBMS(Relational Database Management System)
RDBを管理するシステムのこと
MySQL
RDBMSの1つであり、多くの企業で採用されている
DB制約
データを扱う際に制限をかけること
NOT NULL制約
テーブルの属性値にNULL(空の値)が入らないように制限する制約
一意性制約
テーブル内で重複するデータを禁止する制約
主キー制約
レコード情報を識別するための項目(主キー)のデータが空になることがなく、かつ重複していないことを保証する制約
※主キーに対して、NOT NULL制約と一意性制約を両方設定するのと同義
外部キー制約
関連する他テーブルのレコードの主キーを値とする項目(外部キー)の元になるデータと参照するデータの整合性を保証する制約
- 存在しない値を外部キーとして登録することはできない
- 子テーブルの外部キーに値が登録されている親テーブルのレコードは削除できない
チェック制約
値が保存される際に条件を満たしているかチェックできる制約
CRUD
アプリケーションのデータ取り扱いに関して、基本的な処理の頭文字を並べたもの
アプリケーションの機能は、この4つの処理を組み合わせながら実装する
処理名 | 処理内容 |
---|---|
C(Create) | 生成 |
R(Read) | 読み取り |
U(Update) | 更新 |
D(Delete) | 削除 |
ERB(Embedded Ruby)
テンプレートエンジンと呼ばれる仕組みを持ったもの
テンプレートエンジン:雛形となるテンプレートと、そのテンプレートにデータとなる記述を埋め込むことで、最終的に別のファイルとして生成できる仕組みのこと
レイアウトテンプレート
アプリケーションのビューファイルの共通部分をまとめたもの
headの情報やフッターなど、すべてのビューで共通となる部分を記述しておくと、各テンプレートファイルは個別の見た目を記述するだけでいい
スネークケースとキャメルケース
それぞれ単語の区切り方を表したもの
表記方法 | 説明 | 例 |
---|---|---|
キャメルケース | 先頭が小文字で、単語の区切りを大文字で表す | adminUserCommentCreator |
アッパーキャメルケース | キャメルケースの1つ。先頭から単語の区切りを大文字で表す | AdminUserCommentCreator |
スネークケース | 単語の区切りをアンダースコアで表す | admin_user_comment_creator |
リダイレクト
「本来受け取ったパスとは別のパスへ転送する」機能のこと
デバッグ
プログラムの誤り(バグ)を見つけて、手直しすること
Git
ソースコードなどのファイルやフォルダの変更履歴を記録・追跡するためのバージョン管理システム
Gitでアプリケーションを管理すると、それぞれの開発段階でのアプリケーションの内容をセーブポイントのように記録し、時系列に沿って管理できる
このセーブポイントに遡ることも可能
リポジトリ
Gitの管理下にあるファイルやディレクトリの変更履歴を保管しておく箱のようなもの
管理したいアプリケーションのディレクトリを、バージョン管理の範囲として指定する
ローカルリポジトリ
自分のPC上(ローカル環境)に置くリポジトリのこと
作成したリポジトリは自分のパソコンの中にあるため、ファイルやディレクトリを変更・修正した際は好きなタイミングでこれらを記録できる
リモートリポジトリ
外部サーバー上に置くリポジトリのこと
リモートリポジトリを直接変更修正することはなく、ローカルリポジトリの変更修正を同期して、反映させることで更新できる
リモートリポジトリは外部のサーバー上にあるので、他の人に自分の作成したコードを共有できたり、チーム開発をしやすくしたりできる
GitHub
Gitの仕組みを利用し、簡単に複数人での開発ができるようにしてくれるWebサービス
commit(コミット)
ファイルやディレクトリの変更修正を、リポジトリに記録すること
コミットメッセージ
ファイルの変更修正の内容をわかりやすくするための記述
変更修正したファイルの中身を確認しなくても、「どのような変更修正なのか」がすぐわかる
commit log
commitの履歴を確認できる
インデックス
変更修正が一時的に保存される場所
インデックスに保存されている内容がcommitの対象になる
add(アド)
追加するファイルや変更修正をインデックスに登録し、commitの対象にすること
push(プッシュ)
ローカルリポジトリでのコミットをリモートリポジトリに反映できる
ブランチ
リポジトリで管理しているファイルやディレクトリの変更の流れであり、commitの連なり
ブランチは分岐可能であり、本流を「masterブランチ(mainブランチ)」、分岐したブランチを「トピックブランチ」と呼ぶ
プルリクエスト
ブランチでのコミット履歴を残すと共に、各コミットにおける変更修正にコメントをつけることができるGitHubの機能のこと
コードレビュー
複数人での開発において、コードの記述内容に問題がないか、他の開発メンバー等が確認をすること
LGTM
Looks good to meの略で、「コードに問題はないと思うよ!」という意味
merge(マージ)
機能実装のために作成したブランチを、リモートリポジトリ上のmasterブランチ(mainブランチ)に反映する作業のこと
pull(プル)
リモートリポジトリの変更をローカルリポジトリに取り込む操作のこと
clone
リモートリポジトリをローカルリポジトリに作成すること
作業 | 作業の目的 |
---|---|
pull | ローカルリポジトリとリモートリポジトリがすでに紐付いている状態で、リモートリポジトリの情報をローカルリポジトリに反映すること |
clone | リモートリポジトリだけ存在し、手元にローカルリポジトリがない状態で、リモートリポジトリからローカルリポジトリを作成すること |
stash(スタッシュ)
コードの変更を保留すること
現在の作業を一時的に退避したい時や、退避した作業を元に戻したい時などに使用する
コンフリクト
あるファイルにおいてブランチごとに情報が異なり、辻褄が合わない状況のこと
revert(リヴァート)
commitを取り消すこと
テストコード
アプリケーション内に記述し、そのアプリケーションの挙動を確認するためのコードのこと
正常系
「ユーザーが開発者の意図する操作を行った時の挙動」を確認するテストコード
異常系
「ユーザーが開発者の意図しない操作を行った時の挙動」を確認するテストコード
単体テストコード
機能ごとに問題がないかを確認する
結合テストコード
ユーザーがブラウザで操作する一連の流れを再現して、問題がないかを確認する