내 메소드 또는 변수 이름이 너무 깁니까? [닫은]


15

그래서 나는 현재 코딩의 중간에 있었지만 불행히도 나를 위해 "The Zone"에 있었고 내 자신에게 생각했습니다. 내 방법 / 변수 이름은 오래 걸렸습니까?

POP 존 I의 이동 밖으로!

그래서 여기에 묻습니다. 메서드 / 변수 이름이 너무 깁니까? 당신은 판사입니다! 내가 쓰고있는 것을 알아낼 수있는 사람에게는 보너스 포인트가 있지만, 전문가가 빨리 알아낼 것입니다!

어쨌든, 여기 내 메소드와 변수 이름이 있습니다.

메소드 : searchBlockedListForBlockedSquares (), isCurrentSquareNextToAtLeastOneBlockedSquare (), searchBlockedListForBlockedSquares ()

변수 : isNextToBlockedSquares;

너무 길어 보이는 변수가 하나 뿐인 것 같습니다.


답변:


31

당신의 이름은 길이면에서 괜찮아 보입니다. 그러나 그들이 명명 된 방식은 일부 새로운 클래스가 순서대로 있음을 암시합니까?

예를 들어, 대신 searchBlockedListForBlockedSquares()에을 가질 수 있습니다 blockedList.getBlockedSquares(). 마찬가지로 isCurrentSquareNextToAtLeastOneBlockedSquare()가됩니다 currentSquare.isAdjacentToABlockedSquare().


Adjacent는 내가 찾던 단어였습니다! 감사합니다 =)
Bryan Harrington

@Bryan : 천만에요. :)
Adam Lear

11

긴 변수 이름을 의미하더라도 설명 변수 이름을 믿습니다. 인텔리전스가 대중화되면서 생산성에 큰 영향을 미치지 않는다고 생각합니다.

나는 일관되게 사용하기가 거의 불가능하기 때문에 약어가 싫어. 또한 모호 할 수 있으며 내용을 읽기 어렵게 만듭니다. 그들이 표준의 일부 일지라도 나는 그것들을 좋아하지 않습니다. 또한, 약어를 많이 쓰지 않으면 문자를 제거하지 않습니다. 그리고 약어를 많이 쓰면 가독성이 떨어집니다.

긴 이름으로 인해 가장 큰 문제는 코드 줄이 얼마나 길어질 수 있는가입니다. 긴 이름의 함수를 호출하고 두 개 또는 세 개의 긴 변수 이름을 전달하면 하나의 긴 코드 행을 만들 수 있습니다. 그 때문에 가능한 한 짧게 다시 이름을 유지하려고 노력하지만 줄 바꿈이나 스크롤을 의미하더라도 설명적인 이름을 사용하고 싶습니다.

그러나 예제 이름을 보면 BlockedSquares로 끝났다는 사실은 이름의 일부가 중복 될 수 있다고 생각합니다. 실제로 이러한 항목을 BlockedSquares라는 자체 클래스로 캡슐화 할 수도 있습니다. 이름이 약간 짧아지는 그 변화.


5

변수 이름은 목적을 명확하게 설명하지 않을 때 잘못된 길이입니다. 너무 짧거나 길다.

짧고 간결한 변수 이름은 모호하거나 변수의 상태와 관련이 없습니다. 해석 된 BASIC 시대에는 통역사가 두 개의 문자 이름으로 제한했습니다. 큰 프로그램에서 의미있는 이름을 찾는 것은 매우 어려웠습니다. 단일 문자 변수 이름은 종종 루프 및 카운터에 사용되지만 그렇지 않으면 피해야한다고 생각합니다. for (i = 0; i < 10; i++) {...}사용 i하고 꽤 일반적입니다. j보조 변수 이름입니다.

긴 변수 이름은 오래 걸리거나 빈 단어로 가득 차서 너무 길어서 필요 이상으로 길어집니다. 비슷한 이름의 변수가 많이 있으면 필연적으로 공통 부분을 제거하고 고유하게 식별되는 부분을 유지하려고 시도합니다.

루비에서하고 있다면 " isCurrentSquareNextToAtLeastOneBlockedSquare"을 (를) 명명 currentSquareNextToBlockedSquare?했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.