작은 것이 할 때는 긴 단어를 사용하지 마십시오.
"메소드 이름의 길이는 메소드의 길이에 비례합니다"라는 논문이 실제로 물을 담고 있다고 생각하지 않습니다.
"getNumberOfSkinCareEligibleItemsWithinTransaction"예제를 보자. 그것은 한 가지 일을하는 것처럼 들립니다. 특정 범주에 속하는 트랜잭션의 항목 수를 계산합니다. 물론 메서드의 실제 코드를 보지 않고 판단 할 수는 없지만 좋은 방법 인 것 같습니다.
다른 한편으로, 나는 "processSale"이나 인기있는 "doStuff"와 같이 많은 일을하는 매우 짧고 간결한 이름을 가진 많은 방법을 보았습니다.
메소드 이름 길이에 대해 단단하고 빠른 규칙을 제시하는 것이 어렵다고 생각하지만 목표는 함수의 기능을 전달할만큼 길고 읽을 수있을 정도로 짧아야한다는 것입니다. 이 예에서는 "getSkinCareCount"가 충분했을 것입니다. 문제는 당신이 구별해야 할 것입니다. 트랜잭션에서 스킨 케어 대상 항목을 계산하는 함수와 다른 스킨 케어 대상 항목을 계산하는 함수가 있으면 "ininTransactions"가 값을 추가합니다. 그러나 거래 외부에서 그러한 품목에 대해 이야기 할 것이 없다면, 그러한 불필요한 정보로 이름을 어지럽히 지 않아도됩니다.
둘째, 관리 가능한 길이의 이름이 가장 사소한 경우를 제외하고는 그 기능이 정확히 무엇인지 알려줄 것이라고 생각하는 것은 비현실적이라고 생각합니다. 현실적인 목표는 독자에게 실마리를 제공하고 나중에 기억할 수있는 이름을 만드는 것입니다. 예를 들어, 워프 속도에 도달하기 위해 소비해야하는 반물질의 양을 계산하는 코드를 찾으려고하는 경우, 함수 이름을보고 "calibrateTransporter", "firePhasers"및 "calcAntimatterBurn"을 보면 매우 분명합니다. 처음 두 가지는 그렇지 않지만 세 번째는 아닐 수도 있습니다. 내가 실제로 찾고있는 것을 확인하고 발견하면 내일 다시이 문제를 해결하기 위해 돌아올 때 더 쉽게 기억할 수 있습니다. 충분합니다.
세 개의 긴 이름은 비슷한 이름보다 짧은 이름보다 더 혼동됩니다. "calcSalesmanPay"와 "calcGeekPay"라는 두 가지 기능이 있다면 어느 것을 한 눈에 파악할 수 있을지 추측 할 수 있습니다. 그러나 "calculateMonthlyCheckAmountForSalesmanForExportToAccountingSystemAndReconciliation"및 "calculateMonthlyCheckAmountForProgrammersForExportToAccountingSystemAndReconciliation"이라고하는 경우 이름을 연구하여 어느 것이 어떤 것인지 확인해야합니다. 이러한 경우 이름에 포함 된 추가 정보가 비생산적인 것일 수 있습니다. 0.5 초의 사고를 30 초의 사고로 바꿉니다.