코드 리뷰 해 나가는 가운데, 코드 리뷰 라기보다는 영어 리뷰를하고있을 때가 있고, 한국사람이 특히 잘못 쉽다고 생각되는 점을 몇 가지 정리해두고 싶습니다.
ruby 코드를 샘플로하고 있는데, 루비뿐 아니라 다른 언어를 작성할 때도 해당되는 사항들이 많이 있을 것이라 생각됩니다.
자동사와 타동사
한국어의 자동사와 타동사는 "을" 을 붙일지 말지의 문제로 동사의 문제가 아니기 때문에, 한국사람은 자동사와 타동사를 구분해야 한다는 컨셉이 없는것 같습니다. 하지만 영어로는 제대로하지 않으면 의미를 다른 메소드가 완성됩니다.
# 자동사
@ user.run_to (@shop) # 달린다
# 타동사
@ user.run (@shop) # 경영
동사 -> 목적어의 어순
한국어의 어순이 목적어 + 동사 (xx를 yy하는) 이므로 목적어를 먼저 쓰는 사람이 많습니다. 코딩할 때는 동사를 먼저 쓰도록 의식합시다.
# bad
@ user.attributes_update (params [: user])
# good
@ user.update_attributes (params [: user])
'~하고있다' 는 '~ ing' 만이 아니다
한국어로 '~하고있다'라는 표현은 넓은 의미가 있습니다. ~ ing가 나타내는 것은 그 순간에 작동하는 경우입니다. "run (달리다)" 등의 동작 동사 가 아닌 상태 동사 의 "가지다 (have)" 와 완료 형 의" (계속) 로그인하고 있다 (have logged in) "한국어로"~하고 있다 "고 쓰기 때문에주의가 필요합니다.
- 그 순간 "~하고있다": ing 형
- 기간 내내 "~하고있다": 완료 형
- 상태로 "~하고있다": 현재 시제
인수를 동사 나 전치사의 목적어로 사용
영어 기본 5 문형 (SV, SVC, SVO, SVOO, SVOC)입니다. 인스턴스 메서드이면 동사가 기본이되므로, 그에 따라 인수는 목적어로 사용하는데 궁합이 좋습니다. 또한 전치사와 함께 전치사의 목적어로도 사용합니다.
# 인수가 동사의 목적어
@ user.invite (@friend)
# 인수가 전치사의 목적어
@ user.go_to (@shop)
의문형 메소드에 be 동사를 넣지 않는다
주의 : ruby 이외의 경우는 보충을 확인하십시오
한국어의 의문문은 마지막으로 "인가?" 를 넣는 것만으로 완성이 되기 때문에, 영어와 같은 주어와 동사가 바뀌는 문법에 익숙하지 않습니다.
# bad
@ user.is_admin?
위의 예라면 The user is admin? 라는 문이 있는 것 같지만, 영문으로서 맞지 않습니다. Is the user admin? 이 올바른 의문형입니다.
# good
@ user.admin?
보충
Ruby 이외의 언어는 if 문은 의문형이 아닌 긍정문으로 생각하는 것이 좋다고 생각합니다. 이 경우 is 를 넣는 것이 맞습니다.
# If the user is admin, then ~
if user.is_admin
수동태, 진행형의 의문형 메소드에도 be 동사를 넣지 않는다
위와 같은 규칙으로 의문형의 메소드에서 수동태 진행형의 be 동사도 넣어 없습니다.
# Is the user running?
@ user.running?
# Is the user changed?
@ user.changed?
a와 the의 구분
메소드에 a 나 the가 들어가는 것은 별로 없지만, 주석과 spec의 설명에 문장을 넣을 때는 문법에 맞춰 적게 됩니다. 학교에서 배운 문법이 방해가 되는 경우도 있는데요.
객체 지향 언어에서 인스턴스를 생성하면 그것은 기본적으로 꼽히는 셀수 있는 가산 명사입니다. 이때는 관사를 붙여 주어야 합니다. 기본 원칙은 다음과 같습니다.
- a는 뭐라도 하나 있는 것
- the는 특정할 수 있는 "그" 것
아래는 the를 사용하여 설명합니다.
# ID가 지정된 취득한 인스턴스
user = User.find (id)
# 정의한 특정 메소드
my_method ()
# 특정
Path redirect_to "/ users"
여기에 a를 사용해 버리면, 뭐라도있는 인스턴스 것을 말합니다 있고, 뭐라도있는 Path로 리디렉션하십시오 느니라고 설명이되어 버립니다. 특정 ID를 가진 인스턴스 URL을 가지는 것은 the를 사용하여 표현합시다.
삼인칭 단수 현재의 s
삼단현의 s도 한국어에 없는 개념이므로 무시하고 쓰는 사람이 매우 많습니다. 반대로 잘 사용하면, 매우 선명한 문장이 됩니다.
it "returns with status 200"
of 난발 문제
한국어에도 "의" 를 많이 사용하는 문제가 존재하지만, 영어에서도 그대로 of 로 연결하여 매우 읽기 어려운 문장이되는 경우가 있습니다. "명사 + 명사" 나 "명사's 명사" 의 형식으로 대체하는 것만으로 훨씬 자연스럽게 됩니다.
- a user of admin -> an admin user
- items of the user -> the user 's items
시간은 at 날짜는 on
전치사의 표현이 시간과 날짜 다릅니다. at the time, on the day 입니다. 시간 at 그 순간의 지점 을 나타내는 반면, 날짜 on은 조금 평평한 받침대 위에 올려져 있는 이미지입니다.
# 작성 일시 저장
user.created_at # Time
# 작성일 저장
post.created_on # Date
regist라는 단어는 존재하지 않는다
한국사람에게는 (?) 왜 regist라는 단어가 존재한다고 생각하는 사람이 많지만, 그런 단어는 존재하지 않습니다. 의외로 실수라고 인식하지 못하는 사람이 많기 때문에 포함해 두었습니다.