-
Notifications
You must be signed in to change notification settings - Fork 177
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
계산기 [STEP1] Gray #583
base: ic_11_gray11
Are you sure you want to change the base?
계산기 [STEP1] Gray #583
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@yawoong2 안녕하세요 gray !
자료 구조 Queue 와 LinkedList에 대해서 학습하시고 구현해주셨네요 👍🏻👍🏻👍🏻
관련해서 몇가지 코멘트 남겨두었어요 ㅎㅎ
고생하셨습니다 👍🏻
// Created by JIWOONG on 2024/02/20. | ||
// | ||
|
||
protocol CalculateItem { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
개인적으로는 프로콜이름은 저는 ~able로 짓는 편이에요 👍🏻
ex) CalculateItamable
// | ||
// Created by JIWOONG on 2024/02/19. | ||
// | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Queue에 포함되는 다른 메서드들도 한번 구현해보시거나 학습해보셔도 좋을것 같습니다 👍🏻
var result = 0 | ||
var temp = head | ||
while temp != nil { | ||
temp = temp?.next | ||
result += 1 | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Property Observer 를 사용해보셔도 좋을 것 같아요 !
func peek() -> E? { | ||
if isEmpty { | ||
return nil | ||
} else { | ||
return head?.data | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기서 peek을 구현해보셨네요 👍🏻
@testable import Calculator | ||
|
||
final class CalculatorTests: XCTestCase { | ||
var sut: CalculatorItemQueue<Double>! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sut으로 네이밍하셨는데, sut은 어떤 의미를 가지고 있었나요?!
안녕하세요! @uuu1101
Gray 입니다! 많이 늦었지만, 계산기 프로젝트 [STEP1]이 완료되어 PR 드립니다!
1. 고민되었던 점 🤔
📍 유닛 테스트를 통한 코드 구현 확인 :
테스트를 먼저 작성하고, 코드를 구현하는 방법인 테스트 주도 개발(TDD)는 수행하지 못했지만, 구현한 코드가 제대로 동작하는 지 확인하기 위해 위 코드처럼 유닛테스트 방법을 참고하여 override method에 초기값을 설정하고
given, when, then 양식에 맞추어 유닛테스트를 수행했습니다!
📍 LinkedList를 통한 Queue 구현 :
Queue를 구현하는데, Array와 LinkedList 중 어느 자료구조를 채택할 지 고민이 되었습니다.
Array와 비교하여 본 프로젝트에서 가지는 LinkedList의 특징은 아래와 같습니다.
따라서, LinkedList를 채택하여 Queue를 구현했습니다.
2. 조언을 얻고 싶었던 점 🙏
📍 Struct와 Class :
Node, LinkedList, CalculatorItemQueue를 생성할 때, Struct vs Class를 비교해보며 Class에 해당하는 특성이 아니라면, Struct 타입으로 선언하여 코드를 작성했습니다.
다만, 제가 알맞게 타입 지정을 하는 건지 모를때가 있는데 분류하기 좋은 방법이 있다면 알려주시면 감사하겠습니다!