210305 Fri

Sunny·2021년 4월 3일
0

Today I Learned

목록 보기
8/88

학습내용

  • 코드 리뷰 PR 보내기 전에 기능상세서에 요구된데로 정확히 구현됐는지 다시 한 번 확인하기!

기능상세서대로 구현이 된줄 알았는데 리뷰어분께서 놓친 부분을 지적해주셨다.

처음 설정된 랜덤한 값을 계속 사용하는 것 같네요

비겨서 다시 가위바위보를 할때 컴퓨터는 이전에 낸 값을 그대로 내는 건가요!?

  • while문은 조건에 따라 반복을 수행하는 구문.

while (condition) { // do something }

항상 condition을 true로 설정하면 while true 까지만 읽었을 때는 이 구문은 무한히 반복된다고 오해할 수 있음. 대신 아래와 같은 형태로 condition을 잘 이용하면 특정 조건에 따라 반복되는 것이라는 걸 명시적으로 잘 표현할 수 있음.

var isContinue: Bool while isContinue { // do something }

  • 변수 네이밍 관련

userInputIsInt 를 번역해보면 사용자의 입력은 정수로 해석될 수 있음.

이러한 명제형태의 변수명은 Bool같은 참거짓을 나타내는 변수명으로 통상적으로 쓰이고 있음.

ex)

Array.isEmpty
String.isEmpty
10.isMultiple(of: 2)

(본래 참, 거짓을 의도한게 아니라면) 다른 네이밍을 찾아보는게 좋음.

  • 규칙을 한번 정리해보고 코드 작성하기.

규칙을 한번 정리해보면 하나하나 비교하지 않으면서도 로직을 구현할 수 있음.

값을 하나하나 비교해주면 반복적인 로직들로 인해 코드가 길어지고 가독성도 떨어짐.

컴퓨터와 같은 값이면 비긴다

자신이 컴퓨터보다 + 1인 값이면 이긴다.

나머지는 진다

리뷰어 조언: % 모듈러스 연산자 활용하면 더 쉽게 구현할 수 있다.

문제점 / 고민한 점

  • 플로우차트 어떻게 더 잘 그릴 수 있을지?

해결방법

  • 플로우 차트에 세부 구현사항들이 들어가면 읽기 어려워짐.

플로우 차트에는 말그대로 플로우들을 명시하기.

사용자 1 - 컴퓨터 1 과 같은 세부 구현보다 승패 비교와 같은 하나의 작업으로 표시하는 것도 좋을 것 같아요

경우의 수를 다 나열하지 않고, 승패 비교하는 함수를 넣어주는 식으로 변경하여 가독성을 높였다.

profile
iOS Developer

0개의 댓글