SlideShare a Scribd company logo
1 of 17
Copyright © 2023 アースショップ All Rights Reserved.
ver1.0
アースショップの
コーディング規約
Scratch 編
アースショップのプログラミング教室
1 / 16
目次
プログラムの品質について....................................................... 2
コーディング規約の分類......................................................... 3
① 命名規則 ................................................................... 4
1. 名前は全てわかりやすいものにする...................................... 4
2. 分かりやすい名前にするための具体的なルール............................ 5
3. 変数の種類が分かるような名前をつける.................................. 6
② コーディング スタイル....................................................... 7
1. スクリプトの内容を、コメントを使って説明する.......................... 7
2. 変数の内容を、コメントを使って説明する................................ 8
3. スクロールが必要なほど長くなったスクリプトはブロック定義を利用する.... 9
4. 機能としてまとめられるコードは、ブロック定義を利用する............... 10
5. 不要なスクリプトは削除する .......................................... 11
③ 推奨事項 .................................................................. 12
1. マジックナンバーを使わない .......................................... 12
2. 変数を作るときは、できるだけ「このスプライトのみ」で作成する......... 13
3. スクリプトは、それに最も関係があるスプライトや背景のコードに記述する. 14
4. 不要な処理を実行しないように、スクリプトの先頭でガード節を使う....... 15
④ Scratch 特有の規則 ......................................................... 16
1. 作成できるクローンの数は、プロジェクト全体で 300 個まで............... 16
2. リストに入れられる項目の数は、20 万個まで ............................ 16
2 / 16
プログラムの品質について
プログラムを作るとき、プログラムの組み方(コーディングといいます)は作る人に
よってバラバラです。たとえ同じ人が同じものを作ろうとしても、1 年前に作ったプ
ログラムと今日作ったプログラムは同じものではないでしょう。
このように、作る人によって、場合によっては同じ人が作る場合でも、コーディング
の仕方は千差万別です。なんのルールや取り決めもなくコーディングされたプログ
ラムは、
「品質が低いプログラム」の可能性が高いです。逆に、他人が見ても分かり
やすいプログラム、1 年後の自分が見ても分かるようなプログラムのことを「品質が
高いプログラム」といいます。
「品質が高いプログラム」は、才能やセンスとは関係がありません。良いコーディン
グとはどういうものか、
というルールを決定しそれを守ることが大事になります。
そ
して、
「品質が高いプログラム」を書くためのルールや取り決めのことを、
「コーディ
ング規約」といいます。
コーディング規約は、
プログラミング言語ごとに定められていたり、
会社やシステム
開発のプロジェクトごとに作成されていたりします。チームメンバーのスキルを考
慮して、
コーディング規約を定めることもあります。
アースショップのレッスンでは、
本資料を Scratch のコーディング規約として利用します。
本資料を理解し活用することで、
「品質が高いプログラム」を作成しましょう。
3 / 16
コーディング規約の分類
アースショップのコーディング規約では、ルールを次のように分類しています。
・① 命名規則:
背景やスプライト、変数などにつける名前に関するルール
・② コーディング スタイル:
コメントの付け方やブロック化の基準などのルール
・③ 推奨事項:
必須ではないが、ルールを守ることで品質が向上するもの
・④ Scratch 特有の制限:
他のプログラミング言語にはない、Scratch 特有の制限
4 / 16
① 命名規則
1. 名前は全てわかりやすいものにする
理
由
分かりやすい名前をつけるほうが絶対いいに決まっている。
「メッセージ 1 を
送る」というプログラムから、きみは次に何が起きるか想像できるかな?
良
い
例
背景 スプライト
ブロック定義とメッセージ
変数
5 / 16
2. 分かりやすい名前にするための具体的なルール
ル
ー
ル
【背景、スプライト、コスチュームにつける名前】
「名詞」をつける
【メッセージ】
処理の前:語尾を「~する」とする
処理の後:語尾を「~した」とする
処理中 :語尾を「~している」とする
【変数(True か False の場合)
】
疑問符「?」をつける
良
い
例
【スプライト名】
バットマン
【変数名】
押してもいい?
【メッセージ名】
アイテム 3 を選択します
【メッセージ名】
c キーが押されました
6 / 16
3. 変数の種類が分かるような名前をつける
理
由
スクラッチの変数は、次の 3 種類があります。
①このスプライトのみ(ローカル変数)
②すべてのスプライト用(グローバル変数)
③クラウド変数(サーバー変数)
。
どの種類で作られた変数か分かるように名前をつけます。
良
い
例
変数名の先頭に次の文字を付けることで区別します
①このスプライトのみ:
なにもつけない
②すべてのスプライト用
グローバル変数の頭文字、
「G_」をつける
(例)G_現在のレベル
③クラウド変数
サーバー変数の頭文字、
「S_」をつける
(例)S_合計得点
7 / 16
② コーディング スタイル
1. スクリプトの内容を、コメントを使って説明する
理
由
下の例に出した
「敵の行動パターン」
というブロック定義の内容をみてくださ
い。コメントがなくても理解できますか?私はこのスクリプトの作者ですが、
コメントがないと理解できません。
良
い
例
8 / 16
2. 変数の内容を、コメントを使って説明する
理
由
ゲームが複雑になればなるほど変数の数が増えたり、色んなスプライトから
呼び出されたりします。
変数を使った目的や、
どんな値が入るのか、
どのスプ
ライトから呼び出されるか、など後で困らないようにコメントを残そう。
良
い
例
9 / 16
3. スクロールが必要なほど長くなったスクリプトはブロック定義を利用する
理
由
どちらが見やすいかは一目瞭然!
良
い
例
10 / 16
4. 機能としてまとめられるコードは、ブロック定義を利用する
理
由
機能としてまとめておくとプログラムが見やすくなります。
また、
色んな所か
ら呼び出すこともできて便利です。
良
い
例
11 / 16
5. 不要なスクリプトは削除する
理
由
ここまで読み進めてきた君には説明不要だね!
12 / 16
③ 推奨事項
1. マジックナンバーを使わない
理
由
下の例は、
敵の体力や移動する速度、
ステージ上のどこからどこまで動けるか
といった範囲を指定しています。
このように、
数字や文字に意味があるものを
「マジックナンバー」といいます。マジックナンバーがスクリプトにあると、
プログラムを理解するのが難しくなります。
変数で定義したり
(もちろん分か
りやすい変数名にしよう)
、コメントを使って説明したりしましょう。
良
い
例
13 / 16
2. 変数を作るときは、できるだけ「このスプライトのみ」で作成する
理
由
変数を
「すべてのスプライト用」
で作ると、
他のスプライトからもその変数に
自由にアクセスできるので作品が作りやすいと感じるかもしれません。ただ、
プログラミングの世界では、この作り方はあまりよくない方法とされていま
す。
少し難しい話になるのでここでは、これ以上説明はしません。詳しく知りた
い場合は、
「カプセル化」について調べてみましょう。
14 / 16
3. スクリプトは、それに最も関係があるスプライトや背景のコードに記述する
理
由
例えば、ゲームの BGM を流すコードはどこに記述したらよいでしょうか。私
は
「背景」
のコードに記述するようにしています。
作品全体に関係するような
ものは「背景」にまとめたい、という考えがあるからです。
良
い
例
15 / 16
4. 不要な処理を実行しないように、スクリプトの先頭でガード節を使う
理
由
下図は、
キーが押されたときにある処理を実行させるスクリプトです。
連続で
キーを押しても処理が連続で実行されないように、ガード節を利用していま
す。
プログラムを実行してもよいのか、スクリプトの先頭でチェックをしましょ
う。
良
い
例
ここでガード!!
実行させない
16 / 16
④ Scratch 特有の規則
1. 作成できるクローンの数は、プロジェクト全体で 300 個まで
300 を超えるクローンは生成されません。
301 個目のクローンを生成しようとしても、
プログラムが止まることはありません。
2. リストに入れられる項目の数は、20 万個まで
20 万 1 個目の項目を追加しようとしても、プログラムが止まることはありませんで
した。

More Related Content

Similar to コーディング規約「Scratch編」v1.0

4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版Hiroyuki Ohnaka
 
B 64014 ja-04
B 64014 ja-04B 64014 ja-04
B 64014 ja-04mt7038
 
Unspsc product classification process and samples
Unspsc product classification process and samples Unspsc product classification process and samples
Unspsc product classification process and samples Indra kumar
 
BYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdfBYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdfHisaho Nakata
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版Hiroyuki Ohnaka
 
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築Ryota Nakamura
 
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authleteいまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authleteTatsuo Kudo
 
B 65270 ja-07
B 65270 ja-07B 65270 ja-07
B 65270 ja-07mt7038
 
PostgreSQL 12 Beta 1 New Features with Examples (Japanese)
PostgreSQL 12 Beta 1 New Features  with Examples (Japanese)PostgreSQL 12 Beta 1 New Features  with Examples (Japanese)
PostgreSQL 12 Beta 1 New Features with Examples (Japanese)Noriyoshi Shinoda
 
【お客様向け】Sansan連携機能 導入手順
【お客様向け】Sansan連携機能 導入手順【お客様向け】Sansan連携機能 導入手順
【お客様向け】Sansan連携機能 導入手順e-sales-support
 
JDEdwards EnterpriseOne ユーザーアカウント登録手順
JDEdwards EnterpriseOne ユーザーアカウント登録手順JDEdwards EnterpriseOne ユーザーアカウント登録手順
JDEdwards EnterpriseOne ユーザーアカウント登録手順Yoshii Ryo
 
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdfHisaho Nakata
 
ソフトウェアセキュリティ保証成熟度モデル
ソフトウェアセキュリティ保証成熟度モデルソフトウェアセキュリティ保証成熟度モデル
ソフトウェアセキュリティ保証成熟度モデルJPCERT Coordination Center
 
Ecodesigner Userguide(Jp)
Ecodesigner Userguide(Jp)Ecodesigner Userguide(Jp)
Ecodesigner Userguide(Jp)guestf4ca97c
 
Citrix XenServer ® 5.6 Service Pack 2 管理者ガイド
Citrix XenServer ® 5.6 Service Pack 2 管理者ガイド Citrix XenServer ® 5.6 Service Pack 2 管理者ガイド
Citrix XenServer ® 5.6 Service Pack 2 管理者ガイド sjeho
 
研修DX化手引書~ZOOM版~
研修DX化手引書~ZOOM版~研修DX化手引書~ZOOM版~
研修DX化手引書~ZOOM版~Hiroki Iida
 
シェアーズカフェ・オンライン 専門家・士業向け執筆セミナー スライド資料
シェアーズカフェ・オンライン 専門家・士業向け執筆セミナー スライド資料シェアーズカフェ・オンライン 専門家・士業向け執筆セミナー スライド資料
シェアーズカフェ・オンライン 専門家・士業向け執筆セミナー スライド資料よしふみ 中嶋
 
Reactive extensions入門v0.1
Reactive extensions入門v0.1Reactive extensions入門v0.1
Reactive extensions入門v0.1一希 大田
 
Zertoプラットフォーム アーキテクチャ ガイド紹介版
Zertoプラットフォーム アーキテクチャ ガイド紹介版Zertoプラットフォーム アーキテクチャ ガイド紹介版
Zertoプラットフォーム アーキテクチャ ガイド紹介版株式会社クライム
 

Similar to コーディング規約「Scratch編」v1.0 (20)

4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版
 
B 64014 ja-04
B 64014 ja-04B 64014 ja-04
B 64014 ja-04
 
Unspsc product classification process and samples
Unspsc product classification process and samples Unspsc product classification process and samples
Unspsc product classification process and samples
 
BYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdfBYOD_Policy_JP-1.0.pdf
BYOD_Policy_JP-1.0.pdf
 
RODEM-G 取扱説明書 v1.2 r2
RODEM-G 取扱説明書 v1.2 r2RODEM-G 取扱説明書 v1.2 r2
RODEM-G 取扱説明書 v1.2 r2
 
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版 技術書典4  く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
技術書典4 く-35「錬金術MeetUp」 Alchemist Vol.1 サンプル版
 
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
 
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authleteいまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
 
B 65270 ja-07
B 65270 ja-07B 65270 ja-07
B 65270 ja-07
 
PostgreSQL 12 Beta 1 New Features with Examples (Japanese)
PostgreSQL 12 Beta 1 New Features  with Examples (Japanese)PostgreSQL 12 Beta 1 New Features  with Examples (Japanese)
PostgreSQL 12 Beta 1 New Features with Examples (Japanese)
 
【お客様向け】Sansan連携機能 導入手順
【お客様向け】Sansan連携機能 導入手順【お客様向け】Sansan連携機能 導入手順
【お客様向け】Sansan連携機能 導入手順
 
JDEdwards EnterpriseOne ユーザーアカウント登録手順
JDEdwards EnterpriseOne ユーザーアカウント登録手順JDEdwards EnterpriseOne ユーザーアカウント登録手順
JDEdwards EnterpriseOne ユーザーアカウント登録手順
 
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
00_O365_SecureConfigurationAlignment_JP_v1.0.pdf
 
ソフトウェアセキュリティ保証成熟度モデル
ソフトウェアセキュリティ保証成熟度モデルソフトウェアセキュリティ保証成熟度モデル
ソフトウェアセキュリティ保証成熟度モデル
 
Ecodesigner Userguide(Jp)
Ecodesigner Userguide(Jp)Ecodesigner Userguide(Jp)
Ecodesigner Userguide(Jp)
 
Citrix XenServer ® 5.6 Service Pack 2 管理者ガイド
Citrix XenServer ® 5.6 Service Pack 2 管理者ガイド Citrix XenServer ® 5.6 Service Pack 2 管理者ガイド
Citrix XenServer ® 5.6 Service Pack 2 管理者ガイド
 
研修DX化手引書~ZOOM版~
研修DX化手引書~ZOOM版~研修DX化手引書~ZOOM版~
研修DX化手引書~ZOOM版~
 
シェアーズカフェ・オンライン 専門家・士業向け執筆セミナー スライド資料
シェアーズカフェ・オンライン 専門家・士業向け執筆セミナー スライド資料シェアーズカフェ・オンライン 専門家・士業向け執筆セミナー スライド資料
シェアーズカフェ・オンライン 専門家・士業向け執筆セミナー スライド資料
 
Reactive extensions入門v0.1
Reactive extensions入門v0.1Reactive extensions入門v0.1
Reactive extensions入門v0.1
 
Zertoプラットフォーム アーキテクチャ ガイド紹介版
Zertoプラットフォーム アーキテクチャ ガイド紹介版Zertoプラットフォーム アーキテクチャ ガイド紹介版
Zertoプラットフォーム アーキテクチャ ガイド紹介版
 

Recently uploaded

3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイントshu1108hina1020
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」inspirehighstaff03
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」inspirehighstaff03
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」inspirehighstaff03
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1Toru Oga
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」inspirehighstaff03
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」inspirehighstaff03
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfinspirehighstaff03
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 

Recently uploaded (20)

3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 

コーディング規約「Scratch編」v1.0

  • 1. Copyright © 2023 アースショップ All Rights Reserved. ver1.0 アースショップの コーディング規約 Scratch 編 アースショップのプログラミング教室
  • 2. 1 / 16 目次 プログラムの品質について....................................................... 2 コーディング規約の分類......................................................... 3 ① 命名規則 ................................................................... 4 1. 名前は全てわかりやすいものにする...................................... 4 2. 分かりやすい名前にするための具体的なルール............................ 5 3. 変数の種類が分かるような名前をつける.................................. 6 ② コーディング スタイル....................................................... 7 1. スクリプトの内容を、コメントを使って説明する.......................... 7 2. 変数の内容を、コメントを使って説明する................................ 8 3. スクロールが必要なほど長くなったスクリプトはブロック定義を利用する.... 9 4. 機能としてまとめられるコードは、ブロック定義を利用する............... 10 5. 不要なスクリプトは削除する .......................................... 11 ③ 推奨事項 .................................................................. 12 1. マジックナンバーを使わない .......................................... 12 2. 変数を作るときは、できるだけ「このスプライトのみ」で作成する......... 13 3. スクリプトは、それに最も関係があるスプライトや背景のコードに記述する. 14 4. 不要な処理を実行しないように、スクリプトの先頭でガード節を使う....... 15 ④ Scratch 特有の規則 ......................................................... 16 1. 作成できるクローンの数は、プロジェクト全体で 300 個まで............... 16 2. リストに入れられる項目の数は、20 万個まで ............................ 16
  • 3. 2 / 16 プログラムの品質について プログラムを作るとき、プログラムの組み方(コーディングといいます)は作る人に よってバラバラです。たとえ同じ人が同じものを作ろうとしても、1 年前に作ったプ ログラムと今日作ったプログラムは同じものではないでしょう。 このように、作る人によって、場合によっては同じ人が作る場合でも、コーディング の仕方は千差万別です。なんのルールや取り決めもなくコーディングされたプログ ラムは、 「品質が低いプログラム」の可能性が高いです。逆に、他人が見ても分かり やすいプログラム、1 年後の自分が見ても分かるようなプログラムのことを「品質が 高いプログラム」といいます。 「品質が高いプログラム」は、才能やセンスとは関係がありません。良いコーディン グとはどういうものか、 というルールを決定しそれを守ることが大事になります。 そ して、 「品質が高いプログラム」を書くためのルールや取り決めのことを、 「コーディ ング規約」といいます。 コーディング規約は、 プログラミング言語ごとに定められていたり、 会社やシステム 開発のプロジェクトごとに作成されていたりします。チームメンバーのスキルを考 慮して、 コーディング規約を定めることもあります。 アースショップのレッスンでは、 本資料を Scratch のコーディング規約として利用します。 本資料を理解し活用することで、 「品質が高いプログラム」を作成しましょう。
  • 4. 3 / 16 コーディング規約の分類 アースショップのコーディング規約では、ルールを次のように分類しています。 ・① 命名規則: 背景やスプライト、変数などにつける名前に関するルール ・② コーディング スタイル: コメントの付け方やブロック化の基準などのルール ・③ 推奨事項: 必須ではないが、ルールを守ることで品質が向上するもの ・④ Scratch 特有の制限: 他のプログラミング言語にはない、Scratch 特有の制限
  • 5. 4 / 16 ① 命名規則 1. 名前は全てわかりやすいものにする 理 由 分かりやすい名前をつけるほうが絶対いいに決まっている。 「メッセージ 1 を 送る」というプログラムから、きみは次に何が起きるか想像できるかな? 良 い 例 背景 スプライト ブロック定義とメッセージ 変数
  • 6. 5 / 16 2. 分かりやすい名前にするための具体的なルール ル ー ル 【背景、スプライト、コスチュームにつける名前】 「名詞」をつける 【メッセージ】 処理の前:語尾を「~する」とする 処理の後:語尾を「~した」とする 処理中 :語尾を「~している」とする 【変数(True か False の場合) 】 疑問符「?」をつける 良 い 例 【スプライト名】 バットマン 【変数名】 押してもいい? 【メッセージ名】 アイテム 3 を選択します 【メッセージ名】 c キーが押されました
  • 7. 6 / 16 3. 変数の種類が分かるような名前をつける 理 由 スクラッチの変数は、次の 3 種類があります。 ①このスプライトのみ(ローカル変数) ②すべてのスプライト用(グローバル変数) ③クラウド変数(サーバー変数) 。 どの種類で作られた変数か分かるように名前をつけます。 良 い 例 変数名の先頭に次の文字を付けることで区別します ①このスプライトのみ: なにもつけない ②すべてのスプライト用 グローバル変数の頭文字、 「G_」をつける (例)G_現在のレベル ③クラウド変数 サーバー変数の頭文字、 「S_」をつける (例)S_合計得点
  • 8. 7 / 16 ② コーディング スタイル 1. スクリプトの内容を、コメントを使って説明する 理 由 下の例に出した 「敵の行動パターン」 というブロック定義の内容をみてくださ い。コメントがなくても理解できますか?私はこのスクリプトの作者ですが、 コメントがないと理解できません。 良 い 例
  • 9. 8 / 16 2. 変数の内容を、コメントを使って説明する 理 由 ゲームが複雑になればなるほど変数の数が増えたり、色んなスプライトから 呼び出されたりします。 変数を使った目的や、 どんな値が入るのか、 どのスプ ライトから呼び出されるか、など後で困らないようにコメントを残そう。 良 い 例
  • 10. 9 / 16 3. スクロールが必要なほど長くなったスクリプトはブロック定義を利用する 理 由 どちらが見やすいかは一目瞭然! 良 い 例
  • 11. 10 / 16 4. 機能としてまとめられるコードは、ブロック定義を利用する 理 由 機能としてまとめておくとプログラムが見やすくなります。 また、 色んな所か ら呼び出すこともできて便利です。 良 い 例
  • 12. 11 / 16 5. 不要なスクリプトは削除する 理 由 ここまで読み進めてきた君には説明不要だね!
  • 13. 12 / 16 ③ 推奨事項 1. マジックナンバーを使わない 理 由 下の例は、 敵の体力や移動する速度、 ステージ上のどこからどこまで動けるか といった範囲を指定しています。 このように、 数字や文字に意味があるものを 「マジックナンバー」といいます。マジックナンバーがスクリプトにあると、 プログラムを理解するのが難しくなります。 変数で定義したり (もちろん分か りやすい変数名にしよう) 、コメントを使って説明したりしましょう。 良 い 例
  • 14. 13 / 16 2. 変数を作るときは、できるだけ「このスプライトのみ」で作成する 理 由 変数を 「すべてのスプライト用」 で作ると、 他のスプライトからもその変数に 自由にアクセスできるので作品が作りやすいと感じるかもしれません。ただ、 プログラミングの世界では、この作り方はあまりよくない方法とされていま す。 少し難しい話になるのでここでは、これ以上説明はしません。詳しく知りた い場合は、 「カプセル化」について調べてみましょう。
  • 15. 14 / 16 3. スクリプトは、それに最も関係があるスプライトや背景のコードに記述する 理 由 例えば、ゲームの BGM を流すコードはどこに記述したらよいでしょうか。私 は 「背景」 のコードに記述するようにしています。 作品全体に関係するような ものは「背景」にまとめたい、という考えがあるからです。 良 い 例
  • 16. 15 / 16 4. 不要な処理を実行しないように、スクリプトの先頭でガード節を使う 理 由 下図は、 キーが押されたときにある処理を実行させるスクリプトです。 連続で キーを押しても処理が連続で実行されないように、ガード節を利用していま す。 プログラムを実行してもよいのか、スクリプトの先頭でチェックをしましょ う。 良 い 例 ここでガード!! 実行させない
  • 17. 16 / 16 ④ Scratch 特有の規則 1. 作成できるクローンの数は、プロジェクト全体で 300 個まで 300 を超えるクローンは生成されません。 301 個目のクローンを生成しようとしても、 プログラムが止まることはありません。 2. リストに入れられる項目の数は、20 万個まで 20 万 1 個目の項目を追加しようとしても、プログラムが止まることはありませんで した。