優雅な科学技術のサマーキャンプの回顧-無料課程01



優雅な兄弟たちとNEXTSTEPで行われる優雅なテクノロジーキャンプをサポートしています.
変えたい考え.より良い開発者の悩み.
応募者はいい企業で働いているそうで、申請することもあるそうです.それに比べて、私はその経験に欠けている.しかし、与えられた環境の下で、会社の人と変えようとした経験.より良い開発のために、願書を書きました.

メールが来ました.願書と無料レッスンのタスクにより、レッスンを開始できます.
ミッションは野球ゲーム.野球は好球と本塁打が3回しか分からないので、要求事項を分析した.
https://github.com/next-step/java-baseball-precourse
入社支援の課題をするとストレスを感じ、思ったより時間に余裕があります.
プリウスで私は何を学ぶことができますか.任務に含めてやりたいこと
1つ目はTDDで,2つ目はメイン開発のコミットである.タスクを行う前に、オンラインフェアプログラミングによるTDD開発を見たことがあります.要求を定義し、テスト=>本番=>再設計のプロセスを繰り返します.これはいい方法だと思い、応用してみました.
まだ熟練していませんが、TDDサイクルは自分で運転できます.コミット主導開発とは,コミットメッセージを事前に定義し,それに基づいて開発を行い,どの部分に開発されたかを決定することである.
https://github.com/etff/java-baseball-precourse/tree/etff
要求事項が実現し提出された.以下はprecosの自己フィードバックを振り返る.
private void playGame(Ball ball, Score score) {
        while (!(score instanceof Win)) {
            BallNumbers playerInput = new BallNumbers(InputView.askBatInput());
            Bat bat = new Bat(playerInput);
            ScoreCalculator scoreCalculator = new ScoreCalculator();
            scoreCalculator.calculateScore(bat, ball);
            score = scoreCalculator.getScore();
            OutputView.printScore(score);
        }
}
ScoreCalculatorが計算を実行するgetScore.
どうして別々に行わなければならないのですか.scoreCalculatorは内部で変化する必要がありますか?
コードのwhile (!(score instanceof Win))では、終了条件がもったいない.インタフェースは詳細インプリメンテーションをクライアントに非表示にし、詳細インプリメンテーションクラスで発生した変更がクライアントに影響する条件をコードに表示します.同じ方向にscore.isEnd()を開発すればもっといいのではないでしょうか.


BaseBallNumbersというレベルの集合を作成しています.Validationは分散しています.どこで検証を担当する対象かを考える必要があるようだ.
最後に,ごく一部であるが,ユーザ入力を受信した部分に対して例外処理は行われていない.たとえば、数値入力部では、文字を入力すると例外処理が行われ、アプリケーションが終了します.例外処理を行うだけでなく,ユーザに正しい入力を再取得させる方式を開発できればよい.
public askBatInput(){
  try{
    return BallNumber.convertBallNumber(scanner.next());
  } catch (Exception e){
    print(e.message);
    return askBatInput();
  }
}
野球ゲームを提出した後、最初のフリートラックの任務を果たした.
少し自由な行程の任務を通じて自分で成長することを望んでいます.