인간 친화적
나는 이런 사고방식을 인간 친화적이라고 부른다.
Human Friendly Code is nice to read, easy to understand, and feels safe to change.
이 기사에서는 이 접근 방식을 구현하는 네 가지 간단한 방법을 살펴보겠습니다.
설명 변수 도입
코드 중복을 피하거나 코드를 보다 표현력 있게 만들려면 변수 도입을 고려하십시오. 대부분의 경우 점유할 추가 메모리 비트에 대해 걱정할 필요가 없습니다.
function canEdit (user, document) {
return (
user.role === 'admin' ||
user.role === 'editor' ||
document.owner === user.id
)
}
function betterCanEdit (user, document) {
const isStaff = ['admin', 'editor'].includes(user.role)
const isOwner = document.owner === user.id
// The general idea is now expressed in a single statement ✅
return isStaff || isOwner
}
일관된 이름 지정
일반적으로 따라하기 쉬운 코드를 목표로 해야 하므로 엔터티의 이름을 유지해야 합니다. 다음 스니펫은 나쁜 예를 보여줍니다.
user
와 client
가 같은 것인지 확실하지 않습니다.function verify (user) {
return user.id > 0 &&
user.name !== ''
}
function print (clients) {
const data = clients.map(client => ({
...client,
status: verify(client) // ❌ Clients suddenly turn into Users
}))
console.table(data)
}
예기치 않은 동작 방지
내 경험상 이것은 일반적으로 인수를 변경하는 함수에서 발생합니다. 예를 들어 이 함수는 목록의 요소를 혼합하지만 내부적으로 사용하는 .sort 메서드로 인해 예상하지 못한 원래 배열도 변경합니다.
function shuffle (list) {
return list.sort(() => Math.random() > 0.5) // ❌ Elements are sorted in-place
}
function betterShuffle (list) {
return list
.slice() // ✅ Make a shallow copy first
.sort(() => Math.random() > 0.5)
}
간단한 문장 사용
코드를 조밀하고 간결하게 만드는 것은 재미있는 연습이 될 수 있습니다. 결과가 멋져 보일 수 있지만 다른 사람들이 이해하려면 더 많은 시간과 노력이 필요합니다.
const modules = {}
// ❌ We assign and return value in a single statement
function loadModule (name) {
return modules[name] = modules[name] || loadModule(name)
}
// ✅ This code is straightforward and reads nicely from top to bottom
function betterLoadModule (name) {
if (modules[name] === undefined) {
modules[name] = loadModule(name)
}
return modules[name]
}
이것이 제가 여러분과 공유하고 싶었던 인간 친화적인 코드를 만드는 데 대한 네 가지 통찰력입니다. 아직 하지 않았다면 한 번에 모든 것을 따를 필요가 없습니다. 가장 마음에 드는 아이디어를 선택하고 어떻게 진행되는지 확인하세요.
시간 내주셔서 감사합니다 🦊
개체 필수
Reference
이 문제에 관하여(인간 친화적), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/object_required/be-human-friendly-30fh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)