"필요한 경우 X 수행"방법 이름 지정


23

X를 수행해야하는지 확인하고 필요한 경우 X를 수행하는 메소드의 이름을 지정하는 좋은 방법은 무엇입니까?

예를 들어, 새로운 사용자가 로그인 한 경우 사용자 목록을 업데이트하는 메소드의 이름을 지정하는 방법은 무엇입니까? UpdateListIfNeeded너무 길어 보이지만 단순함 UpdateList은 매번 비싸고 불필요한 작업이 수행 될 수 있음을 의미합니다. EnsureListUpdated변형입니다.

C #에는 X가 가능한지 확인 하고 수행 하는 bool TryXXX(args, out result)패턴 (예 :)이 있지만 미묘하게 다릅니다.int.TryParse(str, out num)


1
권장 사항, 이와 같은 방법은 의도가 좋더라도주의해서 작성해야합니다. 길을 따라 그들은 "경우에 따라"또는 "X ()에서 호출을 추가하면 버그가 수정 되었음"에 따라 관련되지 않은 코드에 뿌려지는 경향이 있지만 그 이유는 확실하지 않습니다. " 와 RefreshUserList()중에 만 전화를 걸고 징계를 받고 징계를 받지 않은 경우 (목록이 이미 최신 상태 여야하는 경우) 아래 조언이 적용됩니다. LoginUser()LogoutUser()GetUser()
Kevin McCormick

답변:


25

나는 사용하는 경향이있다 Ensure. 그것은 무언가를 처리해야한다는 것을 의미하지만, 반드시 수행되어야합니다. 이미 괜찮다면 확인하고 완료하십시오. 그렇지 않으면하세요. 어느 쪽이든, 그냥 완료되었는지 확인하십시오 .


13

내 선호는 UpdateList입니다. 아무것도 할 필요가 없다면 그렇게하십시오. 어쨌든 비용은 항상 최소화되어야하므로 UpdateList필요한 것 이상을 수행하는 경우 구현에 잘못된 것이 있습니다.

기본적으로 방법이 무엇을 해야하는지 알려주는 동사입니다. CalculateX항상 X GetY를 다시 계산 해야합니다. 항상 Y를 반환해야하지만 필요한 경우 검색 작업 만 수행하십시오. 마찬가지로 UpdateZ가장 효율적인 방법으로 수행되었다고 가정하고 Z 업데이트를 요청합니다.


2

"아마도"라고 불러

내가 본 Haskell 스 니펫에서 공동 선택, 시도

UpdateListMaybe();

2
하스켈을 더 잘 이해하면 더 이해가 될 것입니다. Corollary : Haskell 이외의 언어로 사용되는 경우 Haskell을 아는 사람들 만 이해할 수 있습니다.
Robert Harvey

2
6 년 후, 저는 Haskell에 대해 조금 더 많은 지식을 가진 다른 프로그래머입니다. 더 이상이 답변을 보증하지 않습니다. 당시 필자의 생각은 "어쩌면"이라는 단어를 사용하여 함수가 일종의 선택성을 처리한다는 것을 의미하는 것 같습니다. 나는 아직도 가끔 그렇게한다 (예 : Option [A] => B는 maybeToB라고 불림)
Mark Canlas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.