プログラミング(プログラムの書き方)基礎

12
プププププププ ( プププププププププ ) ププ by プププププ

Upload: galluda

Post on 15-Dec-2014

2.519 views

Category:

Documents


3 download

DESCRIPTION

縁側用資料です

TRANSCRIPT

Page 1: プログラミング(プログラムの書き方)基礎

プログラミング ( プログラムの書き方 ) 基礎

by おいちゃん

Page 2: プログラミング(プログラムの書き方)基礎

コメント• コメントがなくてもわかるような美しい

コードを書いた上で• それでもなおコメントはきちんと丁寧か

つ適切に書け• 書くべきは「やりたいこと」– 「やること」はプログラム言語で書いてるで

しょ?

Page 3: プログラミング(プログラムの書き方)基礎

コメントの例外• 誰がソースを読んでも " 何をやっているの

か " だけではなくて " なにをしたがっているのか " までわかるようなコードが書けるなら、不要– 「誰でも」。つまり「スキルの低いエンジニ

ア」でも「入りたてのほぼ初心者」でも。

Page 4: プログラミング(プログラムの書き方)基礎

プログラムの組み方• 何をしたいか何を作らなきゃいけないの

かを妄想する• それがクラスだったり API だったりする場

合、まず自分が「作成者」じゃなくて「利用者」として、そのクラスを使ったと仮定した「妄想コード」を書いてみる

• ワンブレイク

Page 5: プログラミング(プログラムの書き方)基礎

プログラムの組み方• 「妄想コード」を見直してみる。「なん

かうざくない?」とか思ったら作り直し。でなければ次へ進む

• とりあえずクラスの外枠だけ書いて、中身空っぽのメソッドだけ書いておく。メソッドには「こんなことしたい」ってコメントをあわせて書く。書式を JavaDoc とかにあわせると、場所にもよるけど、喜ばれることも多い

Page 6: プログラミング(プログラムの書き方)基礎

プログラムの組み方• 各メソッドで何をしたいかさせたいかに

ついて、妄想をたくましくしてみる• ワンブレイク

Page 7: プログラミング(プログラムの書き方)基礎

プログラムの組み方• 各メソッドで具体的な処理内容を「使い

慣れた母国語で」書く。より具体的には「こんなことして~」「あんなことをして」「ここでこうやって」「最後こ~なる!!」という妄想を殴り書く。妄想なので、間違っても「ここで変数 i をインクリメント」とかいう現実を書いちゃいけない

• ワンブレイク

Page 8: プログラミング(プログラムの書き方)基礎

プログラムの組み方• 妄想に満ち溢れたコメントを読み返す。意

味不明なら2つ前に戻る。「いいんでない?」って思ったら次へ

• 実際にソースを書く。このタイミングで「やっべこれ忘れそうだわ」っていう諸々があったら、コメントを追加してもよい

• ワンブレイク

Page 9: プログラミング(プログラムの書き方)基礎

プログラムの組み方• テストをしてみる• テストで合格が出たら次のタスクに進む。

テストでこけたら、それが「ソースを書くタイミングでミスった」のか「そもそも妄想した ( 1メソッド内の ) 処理の流れ自体に問題があった」のか「さらにそもそもとして、クラス切りとかメソッド切りでしくじりやがった」のかを分析 / 相談してみる。で、必要な工程に戻る

Page 10: プログラミング(プログラムの書き方)基礎

共通化のタイミング• 共通化は2回目• 「コピー & ペースト」のかわりに「カッ

ト & ペースト」• 必要になってから「親クラス」に処理を

持ち上げて継承構造を作成する• YAGNI– You ain't gonna need it

Page 11: プログラミング(プログラムの書き方)基礎

バグの見つけ方• 今度細かく、実例付けてやるよ!• 基本は「正面から馬力で素直にシンプル

に」– 考えるのと平行して手も動かそう

• 「出来てる " はず " 」ダメ! ゼッタイ!– 出来てる「はず」? んじゃバグらない「は

ず」だよね?

Page 12: プログラミング(プログラムの書き方)基礎

データ構造とアルゴリズム• これも今度細かくやる• 古典は一通り知っとけ!– 今でも結構役に立つから