始まった
次の開発者の基礎知識､ それこそが良いコードです｡
というか､ 漠然とした感じで良いものってなんだろう？
誰かが､ 私は良いコーダーだ､ 私は優秀なプログラマーだ､ 彼は上級プログラマーだ､ 彼は専門家プログラマーだと言ったときと同じです｡
彼は技術的なリードをしています｡
彼は天才だ｡
その真意は？
まあ､ 簡単に言うとこんな感じに絞られますね｡
クリーンで良いコードとは？
なんとなく譲ってしまいました｡
1枚目はきれいです｡
つまり､ 例えばPythonのコミュニティが推奨しているようなスタイルに､ 自分のコードが従っているかどうかを確認したいのです｡
ベストプラクティスに沿っているか？
また､ Pythonにはフォーマットという素晴らしい機能があり､ Pythonにはコードをきれいにするためのスペースの標準的な使い方があります｡
このように不必要に醜いスペースを使ったり､ あるいはリストを本当に奇妙でファンキーなものにしたりはしていません｡
ここはスペースがないのかもしれませんね｡
そうかもしれませんね｡
こっちは適当にコメントしてるんだけどね｡
私たちは､ コードをきれいに保っています｡
一行一行が読みやすいことはもちろん､ 余計なものが入っていないことを確認しています｡
そして､ これは「読みやすさ」の考え方にも関係してきます｡
さて､ 可読性とは､ 自分で書いたコードを読みたくなるような能力ということです｡
もしかしたら､ 2年後に戻ってきて､ コードを見ることになるかもしれません｡
理解できるようになるのでしょうか？
チームや会社などで働いている人は､ 自分のコードを見に来てください｡
わかりやすいですか？
また､ これは個人の好みですが､ ほとんどの場合､ アイデアはシンプルです｡
例えば､ ここでは意味のある名前を使っています｡
もし意味不明な変数名をつけていたら､ 誰かが私のコードを読むのは本当に難しいでしょう｡
なぜ､ このような印刷文があるのか､ 皆さんは混乱されるかもしれませんね｡
その場合､ 行ごとに新しい行が必要であるようなコメントをここに書くべきかもしれません｡
あるいは､ なぜこれが必要なのか､ 同様に戸惑うかもしれませんね｡
だから
スタイルによっては､ コメントをつけるとよいでしょう｡
変数の命名がうまくいっているか､ コードを理解するのが自分だけでないことを確認することです｡
もうひとつは､ 「予測可能性」という考え方です｡
そして､ これが私のお気に入りの一枚です｡
つまり､ 人は自分のコードで本当に賢くなろうとします｡ 最もコンパクトなコードを作ろうとしたり､
最新の機能を使ったり､ あまり一般的でないツールや機能を使ったりして､ まあ率直に言って賢く見せようとするものなのです｡
しかし､ 理にかなった､ たったひとつのことをうまくこなすようなコードを作りたいものです｡
このコードは非常に小さいので､ 一回通すだけで何が起こるか簡単に予測できますよね｡
プリントするのですが､ コースが進むにつれて､ どんどんコードが大きくなっていくのがわかると思います｡
そして､ 予測可能で理解しやすいコードを持つことは､ 本当に重要なことです｡
そして最後に､ これはどこでも聞かれる重要な原則ですが､ 「同じことを繰り返さない」ということです｡
何度も何度も繰り返すようなコードでは困ります｡
これは小さな例ですが､ プログラマーとしては､ 「ああ､ これをコピーして､ もう一度これを実行して､ 実行をクリックすればいいんだ」というのはとても簡単なことなんです｡
あれを見てください｡
今､ 2本の木を持っています｡
これはすごいことです｡
でも､ それが一番よくないのかもしれませんね｡
これで28行のコードができましたが､ なぜこれを2回やるのか､ みんな混乱するかもしれませんね｡
その代わりに､ プログラムでこの処理を2回実行したことを示すカウンターを用意したり､ 後で学ぶ関数のようなものを使って､
この処理を何度も何度も繰り返せるようにしたいかもしれません｡
このコースでは､ これらのトピックを掘り下げていくので､ 頭の片隅に置いておいてください｡
しかし､ 私がこのコードに出会ったばかりで､ 少しきれいにしてほしいとしましょう｡
これも個人的な好みですが､ 私ならこうします｡
1は､ ここではピクセルが1に等しい｡
むしろ､ これはちょっとわかりにくいですね｡
ピクセルがここにある場合､ ピクセルが0か1のどちらかであることは分かっているので､
ここにプリントします｡
そうすることで､ 私のコードを少し整理することができました｡
次に､ もうひとつ､ これをもっと拡張できるようにしたいと思います｡
たとえば､ 星に等しい変数fillと､ 空の文字列に等しい変数emptyを用意し､ これらをfillに変更するようなことをするかもしれません｡
そして空っぽ｡
さて､ これは余分なコード行である｡
しかし､ 例えば､ おそらくではなく､ 複数回やっているとしたら､ 何度も何度もprintを実行しているかもしれないし､
ここにもう一行printがあるかもしれませんね｡
そして､ ここにもう一行プリントして､ さらにここにもう一行プリントして空にしておくといいかもしれません｡
今まで5カ所も変えていたのが､ ここだけ変えればいいんです｡
あと､ Starの代わりに､ よくわからないけどドルマークを表示させたいとか｡
そして､ これを実行すると
わかりました｡
ここではちょっと違うイメージを受けますね｡
しかし､ 今回も変数を変更するだけで､ その変数を使って､ 必要なことを何でも記入することができました｡
しかし､ このコースを通して､ これらのベストプラクティスを身につけることができることを期待しています｡
次回作でお会いしましょう｡
バイバイ｡