こんにちは､ そしてお帰りなさい｡
新コーナーをスタートします｡
そして､ このセクションでは､ C言語の基本的な概念についてお話したいと思います｡
ここでは､ 私たちの例や最初のチャレンジ､ メインプログラムにあったものをいくつか説明したいと思います｡
そこで､ こんなチャレンジを掲げているのですが､ 皆さんも覚えているのではないでしょうか｡
コード行数で様々な記述があります｡
ここでは､ そのコンセプトの一端をご紹介しようと思います｡ この例と行き来することになる｡
まず最初に､ コメントの概念について説明します｡
では､ この話はまた後ほど｡ ここで､ いくつかのスライドをご覧いただきたいと思います｡
そのため､ コメントはプログラムを文書化し､ 可読性を高めるためにプログラム内で使用されます｡
プログラムが読みやすいことが重要な理由をお話しました｡
なぜなら､ あなたはコードをメンテナンスすることになるので､ そのコードを見て､ 何をしているのか理解できなければならないからです｡
ですから､
コメントをつけることで､ この読みやすさの概念にかなり貢献することができます｡
コメントは､ あなたやあなたのコードを読む人に､ プログラムが何をしているのか､
コードの特定の行が何をしているのかを思い出させるために存在します｡
だからコメントは､ あなたのためにあるのです｡
コメントはコンパイラによって無視されます｡
だから､ コメントの構文に従おうが､ コメントの中身がどうであろうが､
コンパイラはエラーを出さないのです｡
だから､ 繰り返しになりますが､ とても便利なものなので､ プログラムに使いたいのです｡
そして､ すべてのプログラミング言語の基本概念でもある｡
というわけで､ ここには本当に目新しいものはありません｡
繰り返しになりますが､ プログラマーとしてコードを書き､ 6ヶ月後にそのコードを読み返すと､
なぜそのような書き方をしたのか覚えていないかもしれません｡
機能を理解できないかもしれない､ ロジックを理解できないかもしれない｡
コードにコメントをつけることで､
特にそのコードの再学習に費やす無駄な時間を大幅に削減することができるのです｡
また､ あなたが書いたコードが大規模なもので､
多くのプログラマーが作業しており､ 他の誰かがそのコードを見る必要があるとします｡
コメントがあって､ そのコードが何をやっているのかが書かれていれば､
他の人はそのコードをより早く理解できるようになります｡
もっと読みやすくなるはずです｡ このように､ コメントは､ コードを書いたプログラマーの読みやすさにも､
コードを見ている他の人の読みやすさにも貢献するのです｡
そのソースコードを見て､ そのコードが何をやっているのかをすぐに理解することができるのです｡
それで､ コードにコメントを付けたいわけです｡
コードにコメントを記述するための構文は､
2つの方法があります｡
そしてまた､ これはjavaに非常によく似ていますし､ 多くの言語に非常によく似ています｡
しかし､ cでは､ 複数行のコメントと単一のコメントのどちらかを持つことができます｡
2文字のスラッシュとアスタリスクを使用すると､ 複数行にまたがるコメント（multi-line
comment）を意味します｡
そして､ フォワードスラッシュの星印がそのコメントの始まりです｡
また､ 開始コメントがあるため､ このような複数行のコメントがある場合､
終了を示すものを用意する必要があります｡
そこで､ コメントを終了させるために､ アスタリスク・フォワードスラッシュという文字を間にスペースを入れずに最後に入れるのです｡
そして､ フォワードスラッシュの星とエンディングの星のフォワードスラッシュの間にあるものは､
コメントとみなされ､ その青色はすべてコメントです｡
そうすれば､ 複数の行にまたがることができますしね｡
c プログラムにコメントを追加するもう一つの方法は､ 一行コメントを使用することです｡
1行コメントは､ スラッシュ2つだけです｡
この行の2つのスラッシュ以降は､ コンパイラによって無視され､
コメントとみなされます｡
それ以降はコメントではなく､ 新しいコード行になります｡
ですから､ 複数行のコメントを使うか､
1行のコメントを使うかは､ 提供するコメントによって本当に異なります｡
そして､ それらをコードに追加する方法をすぐにお見せします｡
さて､ 複数行のコメントを使うか､ 1行のコメントを使うかというスタイルですが､
何をしようとしているか､ 何行のコメントを記述しなければならないか､ コメントの大きさによって､
両方を使うことになるでしょうね｡
この例では､ 複数行のコメントを使用していますが､ これは通常､
ファイルの先頭に置かれます｡ 誰が書いたか､ ファイルの作者､
それから著作権を記述している｡
また､ コードの中で本当に本当に重要なことが起きている場合は､
アスタリスクをたくさん用意することで､ 目立つようなコメントをつけることができます｡
2つ目の例では､ 「これは非常に重要なコメントです」と書かれていますが､ アスタリスクがたくさんついているので､
とても目立ちますね｡
だから､ 最初の例の一番上の見出しコメントとは､ ちょっと違うスタイルになっています｡
最後の例は､ コードの行末にある一行コメントで､
基本的に一行が何をしているのかを示しています｡
そのため､ 複数行のコメントと1行のコメントでは､ 異なるスタイルが見られます｡
ここでは､ プログラムの中でよく見かける例を紹介します｡
C言語のコードを含むプログラムです｡
これが一体何をやっているのか､ おそらく本当にわからないと思います｡
でも､ コメントを見て､ 何が起こっているのか､ なんとなくわかるかもしれません｡
だから､ 一番上にこのプログラムは2つの整数値を足して結果を表示する､ というコメントがあるんだ｡
プログラムの目的､ 何をしているのかを教えてくれているのです｡
そして､ 一行のコメントも見かけます｡
また､ なぜ一行コメントだとわかるのでしょうか？ 前方に2本のスラッシュを持っているから｡
そこで､ 変数の宣言という一行のコメントが表示されます｡
もう一つ､ 値を割り当ててその合計を計算するというものがありますね｡
そして､ その結果を表示するというものがありますね｡
一行のコメントは､ コードの各グループを説明し､ それらが何をしているのかを教えてくれるのです｡
そして､ このコードを見て､ コメントを見れば､
そのコードが何をしているのかすぐに理解することができます｡
プログラムをより読みやすくします｡
読みやすいということは､ コードのメンテナンスがしやすくなるという利点があります｡
だから､ コメントを使うことが大事なんです｡ そして､ これはいくつかのコードにコメントを追加する簡単な例です｡
さて､ どの程度の頻度でコメントを活用すべきでしょうか｡
コメントが多すぎるという考え方があります｡
一行ごとにコメントがあるようなコードにはしたくないですよね｡
そのため､ コードがオーバーフローしてしまい､ 可読性が低下してしまうのです｡
実際､ 圧倒されるばかりで読みにくくなっています｡
だから､ コードの一行一行にコメントをつけるのはやめましょう｡
コメントを賢く選び､ 賢く使うことが必要です｡
コメントをつけるタイミング､ つけないタイミング､ どこにコメントをつけるか､
これは練習すればできるようになります｡
通常､ ソースファイルの先頭には､ 作者､ 目的､
説明､ 作成日などの標準的な情報を記載したコメントを付け､
その後､ コード全体に散りばめて､ 少し複雑なロジックがあるコード行を説明します｡
変数の宣言だけでは､ なんとなくわかってしまうので､ いつもコメントを入れません｡
機能によっては､ 説明文そのものに意味がある場合もあるので､
コメントを入れないこともあります｡
それはすべて人それぞれで､ 練習すればできるようになります｡
しかし､ コメントを追加する場合は､ コードを書いているときに追加するのが伝統的な良いアイデアです｡
1つは､ その時にやっておけば､ プログラムにコメントがついているので､ やり忘れることがないからです｡
また､ コードを書きながら実際に何をしているのかを理解することで､
プログラムを文書化することも容易になります｡
まだ記憶に新しいので､ 1ヵ月後に戻ってきて､ ここで何を言いたかったのか､
今になってコメントを付けなければならない､ ということはありません｡
だから､ コードを書いている間にコメントを追加してください｡
また､ デバッグの段階で､ エラーを発見して修正する際にも､
コメントは役立ちます｡ ロジックエラーがあれば､ コメントを見て､
まあ､ こういうエラーがあったんだな､ と切り分けることができるんです｡
このコメントは､ その機能性に沿ったものだと思います｡
このコード群にエラーがあるのは間違いないでしょう｡ だから､ デバッグの際にエラーの切り分けがしやすくなる｡
コメントは､ プログラムを読み進めるのに役立ちますが､ ロジックの間違いの原因を指し示すこともあるので､
コメントは重要です｡
もうひとつ､ コメントを提供する際の議論ですが､
これもプログラマーとの間で大きな論争になっているようです｡
また､ 「Clean Code」という素晴らしい本がありますが､ これは質の高いコードを書くことについて書かれています｡
信じられないかもしれませんが､
良いコードもあれば悪いコードもあり､ それをコードの品質と呼びます｡
高品質のコードを書きたい｡
この点については､ コース全体を通してお話しますが､ 新しい言語を学ぶ学生の多くは､ 出力が私の必要とするものと一致していれば､
コードをどのように書くかは問題ではないと考えています｡
そんなことないですよ｡
なぜなら､ もう一度､ そのメンテナンスの段階を思い出してください｡
あなたがリリースした製品やプログラムは､
もしかしたら何年もの間､ 世の中に出回るかもしれないことを忘れないでください｡
そのため､ 既存のバグを見つけたり､ 新しい機能を追加したりする場合は､
コードが非常に高品質で､ メンテナンスが容易で､ 疎結合で､ 結束力が高いことが重要です｡
そして､ これらのコンセプトについて､ 順を追ってお話ししていきます｡
授業を通して､ 質の高いコードを書いていきます｡
高品質のコードを書くための方法の1つは､ コメントを提供することですが､ 自己文書化されたコメントも提供することです｡
これはどういうことかというと､ 本当に意味のある名前を使うということです｡ これが､ あのClean Codeの本に書かれていることなのです｡
変数を作成するときは､ 意味のある名前を使用します｡
だから､ その変数を見たときに､ 何に使われているのかがはっきりわかっていれば､
コメントをつける必要はないんです｡
2つの数字を足す関数があれば､ 関数名をadd 2 numbersとします｡
では､ その関数は何をしているのか､ というコメントが必要かというと､ そうではありません｡
名前からして､ 何をやっているのかが伝わってくるからです｡
ですから､ 意味のある名前をつけることは､ セルフ・ドキュメンテーションのためのコメントを提供する良い方法なのです｡
では､ 課題の例に戻って､ コメントをどのように追加するのか､
どこに追加するのかを具体的に紹介したいと思います｡
そして､ コンパイラがこれらのコメントを無視することに気がつくでしょう｡
最初の例では､ 基本的なプログラムですが､
通常､ コードの前に複数行のコメントをファイルの先頭に追加します｡
また､ コメントの先頭にスラッシュ､ スター､ アスタリスクを付けるだけで､ 複数行のコメントを追加できることも覚えておいてください｡
そして､ コメントの間にあるものがコメントになり､
星とアスタリスクの間にあるものがコメントになります｡
そして､ スラッシュスターを押すと､ すべてがグレーになることにお気づきになると思います｡
だから､ その星のフォワードスラッシュを付けて､
コメントを終わらせる必要があるのです｡ そして､ 今度は色が変わっているのがわかると思います｡
このようにカラーコーディネートされたフォーマットで多くのことを教えてくれるので､ 私はIDEを使うのが好きなのです｡
つまり､ スラッシュ・スターの間は複数行のコメントの始まりで､
スター・フォワードの前は複数行のコメントの説明または終わりということになります｡
そして､ ファイルの一番上に著者と自分の名前､
そして目的を書くのが一般的です｡
これは通常良い練習になり､ 私はこのようなプログラムを入れて､
自分の名前を画面にプリントします｡
そして､ どんな日付であれ､ それがいつ作られたかを提示するのが普通です｡
そして､ これが複数行のコメントトップの例です｡ そして､ コード全体にコメントをつけていきます｡
通常は1行のコメントか複数行のコメントで､
コメントの量に依存します｡
だから､ 私たちはこのコードに慣れていないのかもしれません｡ そして､ スラッシュ2つで1行のコメントとなることをご存知でしょうか｡
このコードは､
私の名前を表示していると言えます｡
また､ スラッシュや複数行のコメントを記述しても､ コンパイラはそれらを無視します｡
基本的に､ 中に何を入れても問題ないんです｡
従わなければならないシンタックスも何もないんです｡
ここでグレーに着色されているものをすべて無視しているのが､ コメントとみなされるのです｡
だから､ コメントはどのプログラムでも基本中の基本なんです｡
私はこれらを活用することになるので､ 早い段階で説明したいと思いますし､
皆さんもコードを書きながら追加していくはずです｡
また､ IDE内のコメントでは､ コードをコンパイルしているときに､
すべて失敗してしまうことがあるんです｡
そのため､ 問題のデバッグやエラーの切り分けを行うために､ すべてをコメントしたり､
コードのブロックをコメントしたりすることがあります｡
複数行のコードをハイライトして､ メニューの編集に上がると､
コメントやアンコメントを言うことができます｡
コメントと言えば､ ハイライトしたコードをすべてコメントします｡
そして再コンパイルすれば､ もしかしたらもうコンパイラーエラーは発生しないかもしれません｡
実行時またはコンパイル時のエラーを分離するための方法です｡
そこでIDEには､ ハイライトとトグルで自動的に複数行のコメントができるような､
素敵なツールが用意されています｡