バイブコーディングはしてみたけど、 Node.jsって何だっけ?

SNACKGIRLS ORIGINAL私たちのコーディングノート

Snackgirls コーディングノート · 01

バイブコーディングはしてみたけど、
Node.jsって何だっけ?

レッド、ネア、キラリ、アイコと基礎を少しずつ。
ゲームの記録サイトを例に、コーディング用語を四つ学びます。

レッド、ネア、キラリ、アイコがNode.jsも言語なのか考えている。
作るときによく見かけた名前。今回は、それぞれ何をするものなのか調べてみます。

見覚えはあるのに、説明できなかった

こんにちは、レッドです。部活でいろいろ作っていると、アイコに「こんな画面を作って」と頼むことがあります。できた画面を見て、「このボタンをもう少し大きく」「ここに写真も入れよう」と直していくんです。こんなふうにAIと会話しながらコードを作ることを、バイブコーディングと呼ぶそうです。

画面ができるとうれしいのに、説明を読むと何度も手が止まります。JavaScript、Node.js……。何度も見た名前だから知っているつもりでした。でも、それぞれ何をするのか説明しようとすると、言葉が出てこなかったんです。

キラリ

キラリ

一つ質問したら、知らない言葉が三つ増えちゃった。

ネアもノートを開いてうなずきました。「私も名前だけだと混乱します。何をするものなのか、分けて書いてみませんか?」そこで四人で一つずつ調べて、分かったことを短い動画にまとめることにしました。アイコの説明を理解して、自分の作りたいものも、もっと伝えられるようになりたかったんです。

初めてなら、まずはこの二つ

コードは、コンピューターにしてほしいことを、決められた規則に従って書いたものです。実行は、コンピューターがそこに書かれた処理を実際に行うことです。

今日はまず、「コードを書く言語」と「コードを動かす環境」の違いを見てみましょう。そのあと、画面やアプリを作る道具にも少し触れます。

遊んだゲームを記録するサイトなら?

「どのゲームを遊んで、どこまでクリアしたか書いておける場所がほしいな」。キラリの言葉から、小さなWebサイトを想像してみました。ゲーム一覧と短いメモを残す「プレイノート」です。ここに出てくるゲーム名と画面は、仕組みを理解するための架空の例です。

最初からサイト全体を作るのではなく、まずは2回遊んだ時間を足すコードを見てみました。30分と20分で、合計50分。この小さな計算でも、コードを書く言語と、それを実行するプログラムは別のものでした。

レッドがJavaScriptとNode.jsの違いを尋ねる。30と20を足すコードを実行すると50が出て、キラリがゲーム一覧と記録ページを指す。
コードを書く → 実行結果を確認する → Webの画面を作る、の順に読んでみてください。画像を押すと拡大できます。

この計算を実行しても、最後のコマのWeb画面まで自動でできるわけではありません。画面の見た目や動きは、別にコードを書く必要があります。

書く言語、動かす環境、画面を作る道具

① JavaScriptはコードを書く言語

コンピューターに処理を伝えるには、決められた文法に従います。そのようなプログラミング言語の一つがJavaScriptです。次のコードは、30と20を足した結果を出力します。

1回目は30分 + 2回目は20分
console.log(30 + 20);

実行すると、数字の50が出ます。この例では、それを合計50分のプレイ時間として読んでいます。「分」という文字まで自動で付くわけではありません。

② Node.jsはJavaScriptを実行する環境

ファイルにコードを書いただけでは、計算は実行されません。Node.jsは、そのJavaScriptコードを実行できるプログラムです。このような実行環境をランタイムと呼びます。

マンガでは、コードをindex.jsというファイルに保存して、Node.jsで実行しました。だから文字を出力する画面に50が出たんです。今はコマンドを覚えるより、「書くことと実行することは別」と分かれば大丈夫です。

JavaScriptでコードを書いて、
Node.jsで実行します。

レッド

レッド

同じ種類の名前だと思ってたけど、役割が違ったんだね。

Webページを開かなくてもJavaScriptを実行できる?

ブラウザーは、ChromeやEdgeのようにWebページを開くプログラムです。ブラウザーの中にもJavaScriptを実行する仕組みがあります。

Node.jsを使えば、Webページを開かずに自分のパソコンでJavaScriptを実行できます。サーバーでも使えます。ただし、Web画面やゲームを自動で作ってくれるものではありません。

③ Reactは画面作りを助けるライブラリ

「プレイノート」のゲーム一覧を見てみましょう。各項目に、画像、ゲーム名、クリアしたかどうかが繰り返し出てきます。このまとまりを一度作って、ゲームの情報だけ入れ替えて使えたら便利ですよね。

このように、画面の一部分をまとまりとして作ったものをコンポーネントと呼びます。Reactは、コンポーネントを作ったり組み合わせたりするためのライブラリです。ライブラリは、プログラムを作るときに利用できるコードや道具の集まりと考えてください。

星あかりの冒険クリア
月夜のレースプレイ中

項目の形は同じですが、名前とクリア状況は違います。

Reactが、このゲーム一覧を完成品として用意してくれるわけではありません。どんな情報やボタンを置くかは、自分たちで決めて作ります。

④ Next.jsはWebアプリの構成を助けるフレームワーク

ゲーム一覧を作ったら、「自分の記録」ページもほしくなりました。それぞれ別のアドレスで開き、ページ間を移動できるようにするには、アプリ全体の構成を考える必要があります。

Next.jsは、Reactを使ってWebアプリを作るためのフレームワークです。基本構造や共通機能を備えた枠組みで、複数のページを構成したり、アドレスに合った画面を表示したりすることを助けます。Webアプリは、ブラウザーで使うプログラムのことです。

ネア

ネア

ゲームの項目を作ることと、複数のページを構成することを分けると、分かりやすいですね。

枠組みがあっても、「自分の記録に何を保存するか」といった機能は、自分たちで決めて実装します。

コードを書くための言葉

言語

JavaScript

コードを動かす環境

ランタイム

Node.js

利用できるコードや道具

ライブラリ

React

アプリを作るための枠組み

フレームワーク

Next.js

それぞれ異なる役割の例です。すべてのプログラムで、この四つを必ず一緒に使う必要はありません。

JavaScriptとNode.jsはどう違う?

それでは、まとめた第1話の動画を見てみましょう。動画では、同じ概念をゲーム作りに例えて説明します。

約1分コーディングの第一歩 · 第1話

書く言語、実行環境、道具、枠組み。
それぞれの役割がどこに出てくるか探してみてください。

動画にはPythonも出てきます。JavaScriptと同じく、コードを書く言語です。Pythonインタープリターは、Pythonのコードを実行するプログラムです。ここでも、言語と実行するプログラムを分けて考えてみましょう。

SnackgirlsのYouTubeで第1話を見る ↗

元の動画 · 音声は韓国語です。

ゲームで学ぶコーディングの第一歩 · 第1話

次に知らない道具の名前が出てきたら

今日は名前より先に、役割を整理しました。JavaScriptで書き、Node.jsで実行する。Reactは画面の部品作り、Next.jsはWebアプリの構成を助けます。

キラリ

キラリ

次に知らない名前が出てきたら、何をする道具なのか、先に聞いてみよう。

私のノートにも「これは何をするもの?」と書いておきました。アイコの説明で止まってしまったら、まずそこから聞いてみようと思います。

小さな練習 · 3問

四つの名前を区別してみよう

コードを書いて実行した場面と、ゲーム一覧を思い出して3問解いてみてください。解答例は考えてから開いてみましょう。

1. 名前と役割を結んでみよう

JavaScriptとNode.jsを、「コードを書く言語」「コードを実行する環境」とそれぞれ結んでください。

解答例を開く

JavaScriptは言語、Node.jsはJavaScriptを実行する環境です。

2. 出力を予想してみよう

マンガのconsole.log(30 + 20);を実行すると、どんな数字が出るでしょう? 30分と20分を足すと考えてみてください。

解答例を開く

50です。コードが出すのは数字の50で、この例では合計50分という意味で読んでいます。

3. 画面の繰り返しを探そう

最後のコマにある二つのゲーム項目には、どんな共通点がありますか? Reactで再利用する部品を作るなら、何をまとめますか?

解答例を開く

例えば、ゲームの画像、名前、クリア状況を一つの項目にまとめます。同じ形に、別のゲーム情報を入れて使えます。

レッドのノートの片隅に

ネアが見つけた説明も残しておきます。まだ知らない言葉があっても、今日出会った名前から読んでみてください。

一緒に調べた公式の説明
#Snackgirls#コーディング入門#バイブコーディング#JavaScript#Nodejs

コメント

0

ログイン不要。投稿したブラウザから編集・削除できます。

すべてのコメント 0

한국어 · English · 日本語

まだコメントはありません。最初のひとことをどうぞ。

この記事をシェア