Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[자동차 경주] 정남진 미션 제출합니다. #107

Open
wants to merge 16 commits into
base: main
Choose a base branch
from

Conversation

ErroredPasta
Copy link

No description provided.

원래는 CarTest에 자동차 이름에 관한 테스트를 같이 작성할 계획이였지만
따로 테스트를 하는 것이 더 옳다 판단하여 테스트를 분리
1 line 함수라 expression body로 변환 및 0을 BigInteger에 정의된 상수로 변경
기능 요구 사항에서는 각 자동차에 이름을 부여할 수 있다고 했지만
만약 자동차에 이름을 부여하지 않을 경우 자동차 이름 입력, 차수별 실행 결과와 최종 우승자 출력시
문제가 발생할 소지가 있으므로 자동차 이름을 반드시 부여하도록 변경
Copy link

@GyeongminKimGyeongminKim GyeongminKimGyeongminKim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2주차 고생하셨습니다!
테스트 파일도 패키지를 나눈 게 인상 깊었습니다.

value class CarName(private val name: String) {
init {
require(name.length <= MAX_CAR_NAME_LENGTH)
require(name.isNotEmpty())

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

자동차 이름이 중복되는 경우도 예외 처리 하셨으면 더 좋을 거 같아요!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요구 사항에 자동차에 이름을 부여할 수 있다고 해서 이름을 부여하지 않은 경우를 고민할때 중복 이름에 관해서도 생각해봤는데 사람도 동명이인이 있듯이 우선 중복 이름을 허용하긴 했습니다. 사실 중복 이름을 허용하면 최종 우승자 식별에 좀 어려움이 있긴하죠


import java.math.BigInteger

fun validateTryNumber(tryNumber: BigInteger) = require(tryNumber > BigInteger.ZERO)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BigInteger라는 타입을 쓸 수 있군요! 배워갑니다!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Int의 최대값이 2147483647로 생각보다 작아서 BigInteger를 사용해봤습니다. 나중에 Long 타입 이상의 큰 정수값까지 다루어야할 경우 한번 사용해보세요.

Copy link

@jhseo12 jhseo12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2주차 수고 많으셨습니다. 최대한 피드백 남겨보았습니다!

fun main() {
// TODO: 프로그램 구현
val ui = Ui()

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

변수들 사이에 공백을 넣으신 이유가 있을까요?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ui 생성과 아래 코드를 나눈 이유는 위는 단순 인스턴스 생성이고 아래부터는 프로그램이 실행되는 로직이라 분리하였습니다.


override fun toString(): String = name

companion object {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

동반 객체를 사용하신 이유가 뭔가요?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

동반 객체는 클래스에 연관된 상수와 인스턴스를 조금 더 간편하게 생성하기 위한 helper 함수를 정의하기 위해서 사용했습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants