java 코드
- DiceGame
package com.group.libraryapp.domain.dice;
import java.util.Scanner;
public class DiceGame {
private static final int DICE_SIDES = 6; // 범위가 달라지면 이 부분만 수정
private int[] results = new int[DICE_SIDES];
public static void main(String[] args) {
DiceGame game = new DiceGame();
game.startGame();
}
public void startGame() {
int numberOfRolls = getNumberFromUser();
rollDice(numberOfRolls);
printResults();
}
private int getNumberFromUser() {
System.out.println("주사위를 던질 횟수를 입력하세요");
Scanner scanner = new Scanner(System.in);
return scanner.nextInt();
}
private void rollDice(int numberOfRolls) {
for (int i = 0; i < numberOfRolls; i++) {
int result = (int) (Math.random() * DICE_SIDES);
results[result]++;
}
}
private void printResults() { // 결과를 출력하는 함수
for (int i = 0; i < DICE_SIDES; i++) {
System.out.printf("%d는 %d번 나왔습니다.\n", (i + 1), results[i]);
}
}
}
클린 코드
코드가 여러 사용자들이 보았을 때 이해하기 쉽고, 유지보수하기 쉬운 상태를 말한다.
- 명확한 네이밍 -> 변수, 메서드, 클래스 등의 이름은 명확해야 한다. 이름만 보고 그 기능이 무엇인지 쉽게 파악되어야 한다.
// bad
int n;
// good
int countOfUsers;
- 함수의 길이를 최소화 -> 함수는 가능한 짧게 한 가지의 기능만 수행하도록 만들어야 하고, 코드의 가독성을 높이면서, 유지보수를 용이하게 할 수 있다.
// 좋은 예
public void printStudents(List<Student> students) {
for (Student student : students) {
printStudent(student);
}
}
public void printStudent(Student student) {
System.out.println(student.getName());
}
// 나쁜 예
public void printStudents(List<Student> students) {
for (Student student : students) {
System.out.println(student.getName());
}
}
- 적절한 에러 핸들링 -> 예외 처리는 필수적이며 가능한 예외 상황을 모두 고려하고, 에러 메시지를 사용하는 것이 좋다.
- 중복 최소화 -> 중복된 코드는 유지보수를 어렵게 하고, 중복을 최소화하려면 메서드 추출, 클래스 추출등의 리팩토링 기법을 사용할 수 있다.
- 주석의 적절한 사용 -> 주석은 코드를 이해하는 데 도움을 줄 수 있고, 과도한 주석은 가독성을 떨어뜨릴 수 있음. 코드 자체가 명확하게 작성되어야 한다.
'Inflearn' 카테고리의 다른 글
인프런 워밍업 클럽 0기 - BE 4일차 과제 (0) | 2024.02.22 |
---|---|
인프런 워밍업 클럽 0기 - BE 3일차 과제 (0) | 2024.02.21 |
인프런 워밍업 클럽 0기 - BE 2일차 과제 (1) | 2024.02.21 |
인프런 워밍업 클럽 0기 - BE 1일차 과제 (0) | 2024.02.19 |