プログラムの書き方ラボ

わしの方針

  • コードにする前に日本語で十分に用意してから、まず全体を組み、細部を作りこむ
  • カスタマイズ、ショートカットを整えて煩雑な操作を減らし、目の前の問題に集中する
  • トライ&エラーは大事だがはまりすぎない
    • 何が問題なのか焦点が絞れないほど手探り状態の場合は、レベルが高すぎるので下げる--「解説を読めばほぼ理解できることを、自力で解く」ことが中心
    • 「定番の書き方」「便利な関数」を知らないだけの可能性も高いので、さっさとひとにきく
    • ネットで調べすぎない
    • めんどくさいところはとりあえずコピペで使えればOK(Iteratorなど)
  • ちょっと機能を足したり、じぶんのアイディアで似た問題を作って解く

まずは日本語と図でまとめる

  • 最初から最後までだいたいソースがうかぶレベルでなければ、いきなりプログラムを書かない。
  • 自分の言葉でまとめなおす
  • 図を書いてみる ex.トーナメント
  • 具体的な数字をいれて動きを把握する
  • フィールド、メソッドを書き出す
    • 全体の構造を決める

全体を組む

  • テンプレがあると便利
  • 内容がわかるようにコメントをつけたフィールド、メソッドを書く
  • おおまかにデータが流れるように作る
    • 適当なsysoutをいれる
    • 仮データをいれる

ひとつひとつのメソッドを作りこむ

  • メインの流れ(正しい入力、可能性の高い流れ)から作る
  • 配列・コレクションの入力・出力は出力→入力で作る
  • 細かいところ、例外処理はあとまわし
  • あとで作りこむところは印をつけてコメントしておく

さらに細部をつくりこむ

  • メソッド単位で「Aが引数のときBという処理をしてCを戻す」ことだけに集中する
  • if,for文
    • 大枠→細部でつくる
    • わかりにくいときは、iを具体的な数字や変数にしてみる
  • ネスト
    • まず閉じる
    • 中→外でつくる
    • ネスト構造の確認方法
    • Altで移動

例外処理 by 授業

  • まず、エラーを出してみる
  • 対応する例外処理をする

そのほか

  • さきゆきがあやしいときはとりあえずコメントつきでバックアップをとっておく
  • 出力結果もコメントにいれておくと便利

ショートカット、カスタマイズ

  • エディタの色分け
  • ショートカットカスタマイズ
  • ホバーの日本語化(誰かやって)
  • eclipse操作
    • Ctrl+1