clean-codelisted
Install: claude install-skill excatt/superclaude-plusplus
# Clean Code Skill
클린 코드 원칙 및 적용 가이드를 실행합니다.
## 네이밍
### 의도를 드러내는 이름
```javascript
// ❌ Bad
const d = 86400;
const list = users.filter(u => u.a > 18);
// ✅ Good
const SECONDS_PER_DAY = 86400;
const adultUsers = users.filter(user => user.age > 18);
```
### 검색 가능한 이름
```javascript
// ❌ Bad
setTimeout(fn, 86400000);
// ✅ Good
const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
setTimeout(fn, MILLISECONDS_PER_DAY);
```
### 발음 가능한 이름
```javascript
// ❌ Bad
const yyyymmdstr = moment().format('YYYY/MM/DD');
// ✅ Good
const currentDate = moment().format('YYYY/MM/DD');
```
## 함수
### 작게 만들기
```javascript
// ❌ Bad: 너무 긴 함수
function processOrder(order) {
// 100줄의 코드...
}
// ✅ Good: 작은 함수들로 분리
function processOrder(order) {
validateOrder(order);
calculateTotal(order);
applyDiscounts(order);
saveOrder(order);
sendConfirmation(order);
}
```
### 하나의 일만 하기
```javascript
// ❌ Bad: 여러 일을 함
function emailClients(clients) {
clients.forEach(client => {
const record = database.lookup(client);
if (record.isActive()) {
email(client);
}
});
}
// ✅ Good: 하나의 일만
function emailActiveClients(clients) {
clients
.filter(isActiveClient)
.forEach(email);
}
function isActiveClient(client) {
const record = database.lookup(client);
return record.isActive();
}
```
### 인수 최소화
```javascript
// ❌ Bad: 인수가 많음
function createUser(name, email, age, address, phone, role) {}
// ✅ Good: 객체로 전달
function createUser({ name, email, age, address, phone, role }) {}
/