開発環境の整備と動作確認

この記事は、「[架空プロジェクトを通してシステム開発とドキュメント作成を体験してみる（2022 Late）](https://qiita.com/minimumskills/items/aedf6a93658db3f74747)」の記事の一部です。

## 概要

ここでは開発体験で利用するツールの紹介やインストール方法について紹介します。
また、簡単なWebページを作って、最低限の動作確認もしてみたいと思います。

# このコースで利用する環境やツール

## 開発環境

執筆や動作テストはmacOS（Monterey）上で行っていますが、利用するツールやコードはWindowsでも問題なく動きます。

>Windows版での環境構築方法や差異については[こちら](https://qiita.com/minimumskills/items/b34fbd5352badcd6171d)をご覧ください。

## 利用するツール

以下のツールを利用する予定です。

* エディタ（プログラムを書くソフト）：Visual Studio Code（最新版）
* ブラウザ：Google Chrome（最新版）
* node.js（サーバでJavaScriptという言語を動かすソフト）：16.x（インストールは後々紹介）

>node.jsのインストールについては「テストをしてみよう（単体テスト）」で改めて紹介します。

# Visual Studio Code(VSCode）のインストール

では、Visual Studio Codeをダウンロードしてインストールします。

> Visual Studio Codeとは
Microsoftが提供している無料コード エディターです。執筆現在でシェアNo1です。
MicrosoftのクラウドサービスであるAzureやGitHub と統合された機能と拡張機能を使用すれば開発、デバッグ、デプロイまで実行できます。

[公式サイト](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)からダウンロードします。「今すぐダウンロード」をクリックします。

![000001.jpg](https://drive.google.com/uc?export=view&id=1P34T9oHbbLpNdfpfSbQRCOqR489BgD-t&.jpg)

Macを選択します。

>もちろんWindows環境ではWindowsを選択します。

![000010.jpg](https://drive.google.com/uc?export=view&id=1I2BZikCG-HOVal6H0173MfxTy9kCCUGy&.jpg)


ダウンロードの許可を求められた場合は「許可」します。

![b94cb6fa-3678-2eaa-e141-6f989588756b.png](https://drive.google.com/uc?export=view&id=1eBbPP5lf6xAHq28cQYboM1wu6TEq4yn1)


デフォルトの場合、ダウンロードフォルダに入るので、ダウンロードフォルダを開きます。
同時にアプリケーションも開き、　ダウンロードフォルダからアプリケーションフォルダにVisual Studio Codeをドラッグアンドドロップして移動します。

![6a1b5936-d33f-3635-4759-d60e8fb8e6df.png](https://drive.google.com/uc?export=view&id=1E8qcTEEkZV8Id-XMTGUT9xFv-vzbpv-U)


移動したらVSCodeアイコンをクリックして開きます。
はじめは確認アラートが出るので「開く」を押して進みます。

![cf5e6a21-898d-7316-9fed-e857f9ad3cfd.png](https://drive.google.com/uc?export=view&id=1cdIRtyL3nGFtJQopa0klf6eWG-u8UGuL)


VSCodeが開けばインストール完了です。

![09353a4c-44a2-3c19-256b-19bcbb390e00.png](https://drive.google.com/uc?export=view&id=1aJ52Cnai4KhPVT2J8JnXYJqCca35A6DJ)


## VS Code を code コマンドで起動できるようにする

起動はアイコンをダブルクリックしてもいいのですが、コマンドラインからcodeコマンドで開けるようにした方が何かと便利なので設定します。

VSCodeのメニューバーの「View」> 「Command Palette...」を選択します。

>VSCodeのショートカットで、Command + Shift + P でもOK。

![2c26da79-4bad-a379-d120-0a783bdf44a4.png](https://drive.google.com/uc?export=view&id=1OfWkrXVSyrqAjn9ui_NZij5UAK4bP8VN)


コマンドパレットに「Shell」と入力すると該当項目が表示されるので
「Shell Command: install 'code' command in PATH を選択します。

![ab5f7f28-7cfc-83e0-a6d3-3142ed640b82.png](https://drive.google.com/uc?export=view&id=1xDVwuFOF90hrgUHxbzwqolxIWsSkVQgx)


確認が出るので「OK」を押して進めます。

![ef2e22b6-8cf1-2ac7-5e2e-b3e89aa166a1.png](https://drive.google.com/uc?export=view&id=1bE1lHN_4U7crv5u5OEYlA1iStTqFQqtn)

パスワードを聞かれた場合は、ログインしているユーザーのパスワードを入力します。

![42ec2dc6-6964-f755-21b1-c24dbcd1dc7c.png](https://drive.google.com/uc?export=view&id=1cgu0lv_4QDLIieN-OrJ-yXpNGyyhxCeJ)

インストールに成功したアラートが表示されたら「OK」をクリックします。

![4f1cfee6-6131-2262-3b09-177e493e5f44.png](https://drive.google.com/uc?export=view&id=1IZhxoacv8BmREPdEBvstHCibcMZvWYkl)

### 確認

ターミナルを起動してcodeコマンドで起動できるか確認します。
macのメニューバーから「移動」＞「ユーティリティ」をクリックします。

>Finderのショートカットで、Command + Shift + U でもユーティリティが開きます。

![1dc478a5-c37a-881c-9ce8-8cda0f1cd9fd.png](https://drive.google.com/uc?export=view&id=1Flfst42N1YgFoQThxEHb3xDvUhCoI0YY)


「ターミナル」をダブルクリックで起動します。

:::note info
今後よく使うので、ドラッグアンドドロップでDockに追加しておくと便利です。
:::
![000120.jpg](https://drive.google.com/uc?export=view&id=18P3rsHq8mf56LPzjBDKHpX7c3a3EaQgU)


ターミナルが起動したら「code」と入力してエンターをします。

```bash
code
```
![000130.jpg](https://drive.google.com/uc?export=view&id=15o4Ym68ugmTW2ivabcWFU0sCzWH-tWy9)

vscodeが起動すれば設定完了です。

![000140.jpg](https://drive.google.com/uc?export=view&id=1jCrwPACHisAU7Lo0LMd2p0VS07u0ZI-g)


>逆に、VSCodeを開いた状態でControl + Shift + ^ (or @)をするとVSCode内にターミナルを開くこともできます。

# 簡単な動作確認

## HTMLファイル作成

VSCodeに慣れるためと、動作確認を含め簡単なHTMLファイルを作成してみます。
デスクトップで右クリックして「新規フォルダ」を選択し、testというフォルダを作成します。

![56ab2e90-46bc-72b0-2418-15d5e6749e79.png](https://drive.google.com/uc?export=view&id=154hrt7BsFaQ1Qy3W8h3TMimH2teiBlwD)

![83492a72-db68-716a-97b1-6d1135a7b4ea.png](https://drive.google.com/uc?export=view&id=1aMS_43AumncjXnj2icPQWp-FWK8BKueQ)


testフォルダを選択してdock上にあるVSCode上にドラッグアンドドロップします。
VSCodeが立ち上がります。
フォルダ名が表示され、testフォルダが開いているのがわかります。

![01466513-ff13-32f2-e52e-9687b312c728.png](https://drive.google.com/uc?export=view&id=1lUhD-JQ3pr243R6NTTgT1nFX-Z7hINWp)


この状態でTESTの右側のファイル新規作成アイコンをクリックして、作成するファイル名を入力します。
作成するファイル名はindex.htmlです。

![cc4b4466-3732-f842-6e80-70949dad090b.png](https://drive.google.com/uc?export=view&id=1dsiefmwd7P-S0GgDzfIv5OVqPGdUK5n2)

エンターを押すと、index.htmlが作成され、右側スペースにindex.htmlが編集できる状態で開かれます。
htmlを記述していきます。本来はもっと記述することがありますが、一旦下記をコピーして貼り付けて保存します。

```html
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>動作確認</title>
</head>

<body id="body">
    <h1 id="message">Hello World!</h1>
</body>

</html>
```

>DOCTYPE htmlはDTD（Document Type Definition）と言われる記述。HTML5以降はHTMLのみ。HTML5も今は廃止され、HTML Living Standardとなった。
>記述したコードはVSCodeの標準のフォーマッタで形式を揃えています（Control + Shift + F）

保存できたら、デスクトップ上のtestフォルダの中のindex.htmlをダブルクリックするか、ブラウザにドラッグアンドドロップします。
ブラウザでindex.htmlが展開されます。
ブラウザのタブ部分にtitleタグで指定した文言が表示され、bodyタグで指定したHello World!がブラウザに表示されました。

![4a7b70aa-e838-d5d3-bb3d-6e2011b72b2c.png](https://drive.google.com/uc?export=view&id=19U3gpLXHkxE7j5uXjxCk-5rZmYBULrDb)


簡単なhtmlファイルの作成と動作確認ができました。

## CSSの利用（スタイルの変更）

ページのデザインを少ししてみます。デザインを変更するにはCSS（Cascading Style Sheets）を利用します。

headタグ内にstyleタグを設定します。（ここでは一旦headタグ内に設定します。）
id名bodyに対して背景色をlightblueで指定します。

```diff_html:index.html
	<!DOCTYPE html>
	<html>

	<head>
	    <meta charset="UTF-8">
	    <title>動作確認</title>
+	    <style>
+	        #body {
+	            background-color: lightblue;
+	        }
+	    </style>
	</head>

	<body id="body">
	    <h1 id="message">Hello World!</h1>
	</body>

	</html>
```

```html:コピペ用
<style>
    #body {
        background-color: lightblue;
    }
</style>
```

> headの閉じタグ`< /head >`の前で改行してコピペ用を貼り付ける。

確認すると背景色が変化しました。
> うまく変更が反映されない場合、ブラウザのキャッシュが影響している場合があります。何度か更新したり、`Cmd + Shift + R`で強制リロードしてみてください。

![3c7a6ca7-1e63-6ac8-0367-2cc5dc0bd301.png](https://drive.google.com/uc?export=view&id=1Y2mqXNB7kukl1DQNzeBFcL-96_BXYqke)

## JavaScript動作確認

JavaScriptを使って、「Hello World!」をクリックしたら「Hello World!」という文字が赤になるプログラムを書いてみます。

> JavaScriptとはブラウザ内で実行できるプログラミング言語です。JavaScriptを使うことでgoogle mapのように地図を表示してマウスの動きに合わせて描画位置をずらしたり、音楽を再生したり、複雑な動作を実装することができるようになります。以前はブラウザで利用できる唯一の言語でしたが、最近はWebAssemblyにより、他の言語も利用できるようになってきています。

Bodyの閉じタグの直前にscriptタグを設定します。
HTMLを読み込んだ後にJavaScriptが実行されるようにBodyの閉じタグの直前に設定することが基本となっています。


```diff_html:index.html
	<!DOCTYPE html>
	<html>

	<head>
	    <meta charset="UTF-8">
	    <title>動作確認</title>
	    <style>
	        #body {
	            background-color: lightblue;
	        }
	    </style>
	</head>

	<body id="body">
	    <h1 id="message">Hello World!</h1>

+	    <script>
+	        const message = document.getElementById("message");
+
+	        message.addEventListener("click", () => {
+	            message.style.color = "red";
+	        });
+	    </script>
	</body>

	</html>
```

```html:コピペ用
<script>
    const message = document.getElementById("message");

    message.addEventListener("click", () => {
        message.style.color = "red";
    });
</script>
```
保存して確認してみます。
「Hello World!」クリック前

![3c7a6ca7-1e63-6ac8-0367-2cc5dc0bd301-1.png](https://drive.google.com/uc?export=view&id=1xVdszNj6SIkzwIMnrJBrHC1S9xOOgFiT)

「Hello World!」クリック後

![f2cbdfbc-97f0-0512-2632-65ad9cff17ba.png](https://drive.google.com/uc?export=view&id=1wBP-IQ1YIW65urFnzPSuE6_6hqbZjFh8)


文字色が赤く変化しました。

# ファイルの分割（CSS, JavaScript部を外部に切り出す）

動作確認では、シンプルで単純な内容だったため、htmlファイル内にstyleとjavascriptのタグを挿入して記述しました。
ですが、プログラムが複雑になるにつれて、1つのファイル内に全てを記述するとソースがわかりにくメンテナンスもしづらくなります。
また、同じ内容のプログラムを他のファイルで実行したいという場合にも、同じプログラムをファイルごとに書かなければいけなくなります。
ですので、通常はスタイルはstyle部分のみを切り出してcssファイルとして保存し、読み込んで使うことが多いです。JavaScriptも同様です。

では、やってみましょう。

## style.css

### style.cssの作成

styleタグで記述した部分のみを切り出して、style.cssとして保存し、index.htmlで読み込んで使えるようにします。
まず、style.cssを作成します。

![1452616f-31c3-4dac-ed46-573e2f07c13f.png](https://drive.google.com/uc?export=view&id=1hhoZTXcV3y6m3oQPmw_iqiFBvodF3RVz)


できたら、index.htmlの`<style>〜</style>`の中の内容をコピーしてstyle.cssへ貼り付けます。

```style.css
#body {
    background-color: lightblue;
}
```
保存します。

### index.htmlで読み込み

index.htmlでstyle.cssを読み込みます。
>補足：下図にて赤く背景がついている部分はcodeを削除（style.cssへ転記）した箇所、緑背景は追記した箇所になります。（コード左側に＋ーが表示されています。）

```diff_html:index.html
	<!DOCTYPE html>
	<html>

	<head>
	    <meta charset="UTF-8">
	    <title>動作確認</title>
-	    <style>
-	        #body {
-	            background-color: lightblue;
-	        }
-	    </style>
+	    <link rel="stylesheet" href="./style.css" />
	</head>

	<body id="body">
	    <h1 id="message">Hello World!</h1>

	    <script>
	        const message = document.getElementById("message");

	        message.addEventListener("click", () => {
	            message.style.color = "red";
	        });
	    </script>
	</body>

	</html>
```

### 確認

保存して確認すると見た目に変化はありませんが、右クリック＞検証（chromeの場合）で「Network」タブを確認すると、index.htmlの他にstyle.cssも読み込まれているのが確認できます。

>検証はOption + Command + I（or J）でも開きます。

![af4443e5-82f5-e945-a0e9-d35a9b769688.png](https://drive.google.com/uc?export=view&id=1JZagPfcwB4qoilR9l-FkRRKZ5Y0aumLd)


## index.js

### index.jsの作成

testフォルダ内にindex.jsを作成します。

![0bf53f33-e8cb-9f26-0128-8ca82878fadd.png](https://drive.google.com/uc?export=view&id=1LY8hEZM4K-kQmkSaWngPuu5HPu3CO2HP)

作成できたらindex.htmlの`<script>〜</script>`の中の内容をコピーしてindex.jsに貼り付けます。

```index.js
const message = document.getElementById("message");

message.addEventListener("click", () => {
    message.style.color = "red";
});
```

### index.htmlで読み込み
src属性でindex.jsを指定します。

```diff_html:index.html
	<!DOCTYPE html>
	<html>

	<head>
	    <meta charset="UTF-8">
	    <title>動作確認</title>
	    <link rel="stylesheet" href="./style.css" />
	</head>

	<body id="body">
	    <h1 id="message">Hello World!</h1>

-	    <script>
-	        const message = document.getElementById("message");
-
-	        message.addEventListener("click", () => {
-	            message.style.color = "red";
-	        });
-	    </script>
+	    <script src="./index.js"></script>
	</body>

	</html>
```
### 確認

保存して確認します。
見た目には変化ありませんが、検証画面で確認すると、index.jsも読み込まれていることがわかります。

![afb7e8b0-ed25-7ad8-f557-ab6540dbb5b6.png](https://drive.google.com/uc?export=view&id=1TNuRA3Uh9JqJbMkXuS2mjSz8f9o03tcC)


# 最終的なコード

```index.html
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>動作確認</title>
    <link rel="stylesheet" href="./style.css" />
</head>

<body id="body">
    <h1 id="message">Hello World!</h1>
    <script src="./index.js"></script>
</body>

</html>
```

```style.css
#body {
    background-color: lightblue;
}
```

```index.js
const message = document.getElementById("message");

message.addEventListener("click", () => {
    message.style.color = "red";
});
```

# まとめ

* プログラミングはエディタを使って行う。
  * 2022年10月時点でのシェアNo1はVisual Studio Code（VSCode）
  * もっと大規模な開発の場合はIDEという統合開発環境を使う場合もある。Visual Studioという上位製品がある。
* WebページはHTML、CSS、JavaScriptなどを組み合わせて表現されている
  * HTMLやCSSは構造やデザインといった静的な要素を記述する
  * JavaScriptは動的な処理を記述する

# ドキュメント作成視点での考察

* 開発に利用するツールや開発環境は指定すべきか？
* 指定するとしてどこにどう記述すべきか？

# 関連コンテンツ

* 次：[フロントエンド開発１](https://qiita.com/minimumskills/items/7fa35754f1434d40470c)
* 前：[なし（表紙コンテンツ）](https://qiita.com/minimumskills/items/aedf6a93658db3f74747)