링크: http://www.itworld.co.kr/news/92821
링크: https://github.com/AntJanus/programmers-proverbs#a-hundred-programmers-wont-make-a-two-year-project-in-a-week
개발자의 현실
- 때로는 QA의 역할을 때로는 버그 수정 역할을 감당해야 한다는 사실을 인정하라.
- 일을 잘할수록 남들은 난이도가 쉽다고 생각한다.
개발자 사명서
- A/B 시험은 두 번 진행하고 변경사항을 한 번에 배치하라.
- 게으름이 자신의 가장 좋은 친구이다. 한 번에 자동화할 수 있는 것을 두 번 하지 마라.
- 최고의 요청은 아예 요청하지 않는 것이다.
- 웹 표준만 설정할 수는 없다.
- 자신의 데이터 구조를 파악하면 코드는 자연히 따라갈 것이다.
- 오래된 코드 중 일부는 다시 작성할 수 없고, 약간만 변경해도 깨져버린다.
- 취했을 때 자신이 춤추는 모습을 떠올리고 다음에 맥주를 마시고 코드를 작성할 때는 책임을 져야 한다.
- 술에 취했을 때는 상사와 대화하지 마라.
- 많은 시도를 통해 더 높은 품질을 달성할 수 있는 경우가 많다.
- 최종 버전의 성공은 거짓이다. 반복만이 있을 뿐이다. 반복을 통해 더 나은 제품을 얻는다. 더 나은 제품을 통해 인기를 얻는다. 인기를 통해 성공을 얻는다. 성공을 통해 잘못 이해한 기술 사양이 깨진다. 개발 사이클이 우리를 자유롭게 하리라.
- 버전 관리에 신경 써야 한다.
- 데모 페이지를 위한 프레임워크를 선택하는 대신에 코드를 위해 선택하라.
- 측정하기 전에 절대로 최적화하지 말라
- 지트(Git)에서 있었던 일은 지트에 남겨 둔다.
- 포리치 루프(Foreach Loop)를 피하면 CPU 사이클을 얻는다.
개발은 하루아침에 이뤄지지 않는다
- 프로그래머가 백 명이라도 2년짜리 프로젝트를 일주일 만에 끝낼 수 없다.
- 페이스북은 하루아침에 만들어지지 않았다.
- 호프스태터(Hofstadter)의 법칙에 따르면 프로젝트를 위해 필요한 시간보다 더 많은 시간을 더해야 한다. 왜냐하면, 호프스태터의 법칙을 고려하더라도 생각한 것보다 더 오래 걸리기 때문이다.
개발은 기초작업이 중요하다
- 프로토타입 없이 완성품을 만들지 마라.
- 표준문안이 없다면 개발도 빠를 수 없다.
- 아키텍처와 디자인은 실행 시간의 핵심이 아니라 문제와 변화를 위한 대비책이다.
- 장기 지원이 필요한 애플리케이션의 아키텍처를 남겨두라.
간결성은 핵심이다
- 충분히 복잡한 앱 아키텍처는 스파게티 코드와 차이가 없다.
- 코드를 간소화하라. 읽고 이해하기 힘든 코드는 골치 아픈 잔재가 될 뿐이다.
- 코드가 간소할수록 버그가 적다.
디버깅
- 모니터링하지 않는 앱을 배치하는 것은 연료계 없이 자동차 여행을 떠나는 것과 같다.
- 프로그램을 작성하는 것보다 디버깅할 때 두 배나 똑똑해야 하므로 동료에게 검토를 부탁하라. 왜냐하면, 자신의 코드를 디버깅할 만큼 똑똑할 수는 없기 때문이다.
- 동료의 코드 검토가 없는 코딩 스타일가이드는 자발적인 세금으로 국가를 운영하는 것과 같다.
- 처음부터 자신이 문제라는 사실을 인정하면 디버깅이 훨씬 쉬워진다.
- 프로그래머에게 올바른 코드를 주면 하루 동안 일 할 수 있다. 프로그래머에게 디버깅을 가르치면 평생 일할 수 있다. - 지락 구드(Chirag Gude)
- 디버깅(Debugging)보다는 시험이 쉽다.
- 동료가 검토하거나 자신이 사는 곳을 알고 있는 폭력적인 사이코패스가 유지 관리한다고 가정할 때만 오래도록 지속하는 코드를 작성할 수 있다.
- 코드에 대한 불만은 코드 재작성에 도움이 되지 않는다.
- 시스템이 완벽하게 동작하면 그 안에 뭐가 있는지 아무도 관심을 갖지 않는다. 문제가 발생하면 시스템 디자인과 아키텍처가 자신의 운명을 결정하게 될 것이다.
- "그냥 넘겨"라는 말로 설계를 대신할 수는 없다
새 출발이 더 나은 대안일 수도 있다
- 레거시 코드를 다시 작성하면 품질이 나아진다.
- 다시 작성하라. 유지 관리가 불가능한 레거시 코드를 위한 패치는 존재하지 않는다.
- 때로는 레거시 지원을 중단해야 새로운 제품이 피어날 수 있다.
- 오랜 시간 작업할수록 코드 수가 늘어난다. 대부분 최고의 품질에서 역행하고, 버그를 유발하는 기능들이다.
끊임없는 자기개발
- 말을 잘하는 개발자는 빨리 일자리를 찾을 수 있지만, 마지막 순간에 간단한 시험에서 실패한다.
- 더 많은 기술을 배울수록 자신이 아는 것이 별것 아니라는 것을 알게 된다.
- 프로그래밍 언어를 배우고 새로운 개발자가 되라.
- 형편없는 프로그래머가 언어를 탓한다.
- 더 이상 배우지 않고 쉬운 길을 택하면 기존의 방법론에서 영원히 벗어나지 못하게 될 것이다.
- 오늘의 유행은 내일의 구식.
- 잘 알려지지 않고 이상한 언어를 배우면 이해의 폭과 깊이가 넓어진다.
오픈소스
- 오픈소스 개발자는 개인의 명성을 추구하지 않는다.
- 오픈소스 프로젝트에서의 협업으로 우정과 커뮤니티를 얻음과 동시에 파벌과 전쟁도 생겨난다.
- 공개적인 코드 검토로 더 나은 자신이 될 수 있다. 더 나은 활동, 더 스마트한 솔루션, 개발자로서의 성장을 얻거나 깨지게 된다.
건강이 우선이다
- 억지로 잠을 자라.
- 바보는 의사를 멀리한다.
- 지칠 때까지 코드를 작성하는 개발자는 생각 없이 산다.
- 모든 애플리케이션은 화면을 껐을 때 아름답다.
기타
- 수염을 깎지 못할 정도로 개발에 몰두하고 있는 정도라면 이미 그 수염이 자라 백발이 된 사람은 최소 백 명이다.
- 고객이 최고의 시험자이다.
- 오류 로그만큼은 없을 때 아름답다.
- 마케팅 담당자는 QA가 아니고 개발자는 홍보를 하지 않는다.
- 무료 사용자에게 행복감을 주는 제품은 재정이 바닥나면 투자자를 겁먹게 할 뿐이다.
- 하나는 하나 이상의 일을 하지 않는다.
- 언젠가라는 말이 가장 쉽다.
- 가장 매력적인 풀(Pull) 요청은 빨간색으로 도배되어 있다.
- 개발자는 먼 곳에서 동료를 찾는다.
- 코드의 미학을 스스로 터득할 수는 있지만 다른 사람들도 쉽게 배울 수 있으리라 착각하지 마라.
댓글 없음:
댓글 쓰기