리눅스를 개발한 리누스 토발스(Linus Torvalds)의 TED 강연을 보았다. 괴짜로도 유명한 그가 여러 차례 자신이 people person이 아니라고 이야기하는 것이 인상적이다. 그는 리눅스뿐만 아니라 분산 소스 코드 버전 관리 시스템인 git을 개발한 것으로도 유명하다. git을 비롯해 그가 개발한 모든 프로젝트는 자신의 필요에 의한 것이라고 한다.
아래는 강연 막바지에 good taste를 가진 사람과 일을 하고 싶어 한다는 이야기를 하면서 예로 든 단일 연결 리스트(Singly Linked List)의 특정 노드 삭제 코드이다. 물론 이것보다 훨씬 크고 복잡한 수준의 코드나 설계에 대한 good taste를 지녀야 한다고 한다.
// not very good taste approach
remove_list_entry(entry) {
prev = NULL;
walk = head;
while (walk != entry) {
prev = walk;
wal = walk->next;
}
if (!prev)
head = entry->next;
else
prev->next = entry->next;
}
// better taste
remove_list_entry(entry) {
indirect = &head;
while((*indirect) != entry)
indirect = &(*indirect)->next;
*indirect = entry->next;
}
댓글을 달아 주세요