์บ ํ์ฅ์ ์ฒ์ ์์ ๋๋ณด๋ค ๋ ๊นจ๊ธํ๊ฒ ํด๋๊ณ ๋ ๋๋ผ. - ๋ณด์ด์ค์นด์ฐํธ ๊ท์น
์๋ฏธ ์๋ ์ด๋ฆ.(Naming)
์๋๋ฅผ ๋ถ๋ช ํ ๋ฐํ๊ธฐ.
- ์๋๋ฅผ ๋ช ํํ๊ฒ ํจ์ผ๋ก์จ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋ํ ์ ์๋ค.
Bad Example
public List<int[]> getThem() {
List<int[]> list1 = new ArrayList<int[]>(); // ์ด๋ค ์ ๋ณด๋ฅผ ๋ด๋ list์ธ๊ฐ?
for (int[] x : theList) {
if (x[0] == 4) { // list์ ์ฒซ๋ฒ์งธ ๊ฐ์ ์ด๋ค์๋ฏธ๋ฅผ ๊ฐ์ง๋ฉฐ 4๋ ์ด๋ค๊ฐ์ ์๋ฏธํ๋๊ฐ?
list1.add(x);
}
}
return list1; // ๋ฐํํ๋ ๋ฆฌ์คํธ list1์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋๊ฐ?
}Good Example
public List<Cell> getFlaggedCells() {
List<Cell> flaggedCells = new ArrayList<Cell>(); // flag๋ Cell๋ค์ ๋ด๋ list
for (Cell cell : gameBoard) {
if (cell.isFlagged()) { // ํ์๋ cell์ธ์ง ํ์ธ.
flaggedCells.add(cell);
}
}
return flaggedCells; // ํ์๋ Cell๋ค์ list
}๊ทธ๋ฆ๋ ์ ๋ณด๋ฅผ ํผํ๊ธฐ.
- ๊ฐ๋ฐ์์๊ฒ๋ ํน์ํ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ ๋จ์ด(List ๋ฑ)๋
์ค์ ์ปจํ ์ด๋๊ฐ List๊ฐ ์๋ ์ด์ accountList์ ๊ฐ์ด ๋ณ์๋ช ์ ๋ถ์ด์ง ๋ง์. - ์ฐจ๋ผ๋ฆฌ accountGroup, bunchOfAccounts, accounts๋ฑ์ผ๋ก ๋ช ๋ช ํ์.
- ๋ด๊ฐ ์์ฃผ์ฐ๋
Info,Data๋a์an,the์ ๋ง์ฐฌ๊ฐ์ง์ด๋ฉฐ ์๋ฏธ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ํ๋ ์ฉ์ด์ด๋ค. ๋ถ์ฉ์ด-noise word์ ์ฌ์ฉํ์ง๋ง์.
๋ฐ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ฌ์ฉํ๊ธฐ.
Bad Example
class DtaRcrd102 {
private Date genymdhms;
private Date modymdhms;
private final String pszqint = "102";
};Good Example
class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;
private final String recordId = "102";
};์ธ์ฝ๋ฉ์ ํผํ๊ธฐ.
- ์ถ์ํ๋ Class์ด๋ฆ์ ShapeFactory๋ก ์ ์ํ๊ณ ์์๋ฐ์ ๊ตฌํํ๋ Class์ด๋ฆ์
ShapeFactoryImp,CShapeFactory์ผ๋ก ์ ์ํ๋ค.
ํด๋์ค ์ด๋ฆ
- ๋ช
์ฌ ํน์ ๋ช
์ฌ๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ.(
Customer,WikiPage,Account,AddressParser) Manager,Processor,Data,Info์ ๊ฐ์ ๋จ์ด๋ ํผํ์ โ๋ถ์ฉ์ด-noise word๋์ฌ๋ ์ฌ์ฉํ์ง ์๋๋ค.
๋ฉ์๋ ์ด๋ฆ
๋์ฌ๋๋์ฌ๊ตฌ๊ฐ ์ ํฉํ๋ค. (postPayment,deletePage,save)get,set,is
Complex fulcrumPoint = new Complex(23.0);
Complex fulcrumPoint = Complex.FromRealNumber(23.0); // betterํ ๊ฐ๋ ์ ํ ๋จ์ด๋ฅผ ์ฌ์ฉํ๊ธฐ.
- ํ๋๋ง ์ฌ์ฉํ์ฌ ํต์ผ์ฑ ์ป๊ธฐ.
fetch,retrieve,getcontroller,manager,driver
๋ง์ฅ๋์ ํ์ง ๋ง๊ธฐ.
add์ ์ญํ ์ A์ B๋ฅผ ๋ํ๋ ์๋ฏธ์ด๋ค.- ์ค๊ฐ์ ์ฝ์
ํ๋ ํจ์์ ์ด๋ฆ๋
add๋ผ๊ณ ์ ์ํ๋ฉดadd์ ์๋ฏธ๋ ๋ช ํํ์ง ๋ชปํ๋ค. add๋์insert,append๋ก ์ ๋นํ๋ค.
์๋ฏธ์๋ ๋งฅ๋ฝ ์ถ๊ฐํ๊ธฐ.
Bad Example
- ์ธ ๋ณ์์ ์๋ฏธ๊ฐ ๋ถ๋ถ๋ช ํ๋ค.
private void printGuessStatistics(char candidate, int count) {
String number;
String verb;
String pluralModifier;
if (count == 0) {
number = "no";
verb = "are";
pluralModifier = "s";
} else if (count == 1) {
number = "1";
verb = "is";
pluralModifier = "";
} else {
number = Integer.toString(count);
verb = "are";
pluralModifier = "s";
}
String guessMessage = String.format("There %s %s %s%s", verb, number, candidate, pluralModifier );
print(guessMessage);
}Good Example
- ํจ์๋ฅผ ์ชผ๊ฐ๊ธฐ๊ฐ ์ฌ์์ง๋ฏ๋ก ์๊ณ ๋ฆฌ์ฆ๋ ์ข ๋ ๋ช ํํด์ง๋ค.
public class GuessStatisticsMessage {
private String number;
private String verb;
private String pluralModifier;
public String make(char candidate, int count) {
createPluralDependentMessageParts(count);
return String.format("There %s %s %s%s", verb, number, candidate, pluralModifier );
}
private void createPluralDependentMessageParts(int count) {
if (count == 0) {
thereAreNoLetters();
} else if (count == 1) {
thereIsOneLetter();
} else {
thereAreManyLetters(count);
}
}
private void thereAreManyLetters(int count) {
number = Integer.toString(count);
verb = "are";
pluralModifier = "s";
}
private void thereIsOneLetter() {
number = "1";
verb = "is";
pluralModifier = "";
}
private void thereAreNoLetters() {
number = "no";
verb = "are";
pluralModifier = "s";
}
}