// This file includes contents that untranslated expressions (ja).
// This is uncompleted draft of handbook of system developers.
このガイドは、普段スマートフォンやコンピューターでネットを利用しているけれど、Webシステムの開発はしたことがない人に向けて書かれています。 このガイドの内容を理解することで、Webシステムとは何か、どういう点が優れていて、開発や運用には何が必要なのか、システム開発に必要な知識を身に着けることができます。
- Webシステムとは
- コンピューターの文字
1. 概念に名前を付ける
- 概念を区別する
- 概念をまとめる
- 何も無い、という概念
- コンピューターの言葉
1. コンピューターが取れる行動
- 書く
- 比較する
- 次に進む
- ネットワーク
- 開発に必要なもの
- ソース
- リポジトリ
コンピューターは、ビット(bit)という、人間でいう0か1の数字を沢山並べて、全ての概念を認識します。
コンピューターが横並びの概念を理解するとき、並べたい数に合わせたビットが必要です。 例えば、くだもののうち、リンゴ、オレンジ、バナナ、キウイを扱うシステムがあるとします。 以下のように、3つのビットを使って、それを表現します。
果物:
001: リンゴ
010: オレンジ
100: バナナ
101: キウイ上の例では、3つのビットを使って、4つの概念を表しているので、110と111が余っています。もし、システムの開発者が3種類以上の果物を追加で扱いたくなったら、以下のように修正します。
果物:
0001: リンゴ
0010: オレンジ
0100: バナナ
0101: キウイ
0110: グレープ
0111: チェリー
1000: パイナップル今度は、1001から1111まで、7個の空きがあります。
コンピューターにとって、「何もない」というのは特別な概念です。 コンピューターの言語では、000...000といった、「全てのbitが0」で表します。 エンジニアは、「何もない」の代わりに、nullと呼びます。
開発者は、システムにどんな効果をもたらしてほしいかを、システムを構成するコンピューターにして欲しい行動にまで落とし込みます。 この時、行動はコンピューターができることだけを繋ぎ合わせて実現しなくてはなりません。 開発者は、この行動も、コンピューターの言葉で表現し、スクリプト、というファイルに書き込みます。
コーディング言語や、ライブラリなど、スクリプトに翻訳を挟んでくれるツールはたくさんありますが、必ず翻訳作業の中身を調べて、実際にコンピューターが考えた通りに動くかを確認しなければなりません。
Webシステムの開発・運用には、必ず複数台のコンピューターによるデータの同期が必要です。 このデータを分けて、ひとまとまりにしたものをリポジトリと呼びます。 分けることで、必要なリポジトリだけアップロードやダウンロードができます。 データ同期ツールの多くがこの言葉を使っているため、多くのITエンジニアがこの名で呼びます。
データをどうリポジトリに分けるかは、開発や運用効率を左右する重要な要素です。 リポジトリを分ける時、以下の3つから種類を1つ選びます。 後から一部を切り出したり、再編することもできます。
- アプリケーションリポジトリ
- ライブラリリポジトリ
- オペレーションリポジトリ
ソフトウェアがWebネットワーク上でメッセージをお互いに読み解くため、HTTPメッセージという、国際標準レイアウトでメッセージを作成します。 メッセージは、要求者側(リクエスト)と、提供者側(レスポンス)