코드 품질 가이드, 클린 코드 원칙, 리팩토링 패턴
# Bad
d = get_current_date()
arr = filter(u -> u.a > 18, users)
# Good
currentDate = get_current_date()
adultUsers = filter(user -> user.age > 18, users)
# Bad: function doing multiple things
function processUser(user):
# validation
if not user.email:
throw Error("Email required")
# data transformation
user.email = lowercase(user.email)
# DB save
db.users.insert(user)
# send email
sendWelcomeEmail(user)
# Good: single responsibility
function createUser(userData):
validatedData = validateUserData(userData)
normalizedData = normalizeUserData(validatedData)
user = saveUser(normalizedData)
sendWelcomeEmail(user)
return user
# Bad: explaining with comment
# check if adult
if user.age >= 18:
...
# Good: explain with function name
if isAdult(user):
...
function isAdult(user):
ADULT_AGE = 18
return user.age >= ADULT_AGE
# Bad: ignoring error