CleanCode 2章の面白い名前
5369 ワード
プログラマーにとって、
開発を学び始めたばかりの頃、開発に従事していた人が、開発者の半分以上の勤務時間を命名に使ったと話していました.最初は冗談だと思っていたが、開発すればするほど、名前が何なのか迷う.私は次の法則に基づいて名前を練習します.
1.意図的に明確な名前
存在理由、実行機能、使用方法は明確な名前でなければなりません!
似たような名前や、違う字と混同された名前をつけないでください.
何の意味もない、あるいは意味のある情報を提供できないと、コードの読み取りが難しくなります.
頭がいいから、発音してこそ分かりやすい.
1文字の名前と定数を使うと気づきにくい
クラス名とオブジェクト名は名詞または名詞フレーズに適しています
動詞を無効にする!
メソッド名動詞または動詞フレーズに適合
抽象概念で単語を選択
クラス、関数に脈絡を付ける
開発を学び始めたばかりの頃、開発に従事していた人が、開発者の半分以上の勤務時間を命名に使ったと話していました.最初は冗談だと思っていたが、開発すればするほど、名前が何なのか迷う.私は次の法則に基づいて名前を練習します.
1.意図的に明確な名前
存在理由、実行機能、使用方法は明確な名前でなければなりません!
//이게 무슨 뜻인지는 아무도 모른다
int d;
// 확실히 무엇을 뜻하는지 알 수 있다
int daysSinceCreation
int fileAgeInDayse
2.誤った情報を避ける似たような名前や、違う字と混同された名前をつけないでください.
// 2개의 차이점을 거의 찾을 수 없다
String XYZControllerForEfficientHandlingOfStrings
String XYZControllerForEfficientStorageOfStrings
// 유닉스 플랫폼 이름이기에 혼동된 정보를 줄 수 있다.
hp, aix, sco
// 숫자 0, 1 알파벳 O, l 구분이 쉽지 않다
0, 1 O,l
3.有意義な地域区分何の意味もない、あるいは意味のある情報を提供できないと、コードの読み取りが難しくなります.
// a가 무엇을 뜻하는지 아무도 모른다
a1, a2, a3 ...
// 기능의 차이를 알 수 없다
getActiveAccount();
getActiveAccounts();
getActiveAccountInfo();
4.発音しやすい名前を使う頭がいいから、発音してこそ分かりやすい.
// 두 번째가 의미있는 대화가 가능해진다.
class DtaRcrd102 {...}
class Customer {...}
5.検索しやすい名前を使う1文字の名前と定数を使うと気づきにくい
// 뜻으로 검색이 바로 가능하다
int MAX_CLASSES_PER_STUDENT
int 7
6.クラス名クラス名とオブジェクト名は名詞または名詞フレーズに適しています
動詞を無効にする!
// 좋은 예
Customer, WikiPage, Account, AddressParser
// 나쁜 예
Manager, Processor, Data, Info
7.メソッド名メソッド名動詞または動詞フレーズに適合
postPayment, deletePage, save, getName
8.一つの概念一つの単語抽象概念で単語を選択
// 가져오다라는 뜻을 아래 중 하나만 선택
fetch, retrieve, get
// 관리라는 뜻을 아래 중 하나만 선택
controller, manager, driver
9.有意義な脈絡を追加クラス、関数に脈絡を付ける
// 다 읽어봐야 주소 관련이라는 것을 안다
firstName, lastName, street, houseNumber, city, state, zipcode
// 의미있는 접두어를 추가하면 하나면 봐도 안다
addrFristName, addrLastName, AddrState
Reference
この問題について(CleanCode 2章の面白い名前), 我々は、より多くの情報をここで見つけました https://velog.io/@miiunii/CleanCode-2장-의미있는-이름テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol