CHAPTER 19 Critique: 구글의 코드 리뷰 도구
Part IV 도구 CHAPTER 19 Critique: 구글의 코드 리뷰 도구 코드 리뷰는 소프트웨어 개발에서 없어서는 안 될 요소입니다. 특히 성장하기 위해 매우 중요한 요소입니다. 코드 리뷰 도구 원칙 간결성 가장 큰 영향을 준 원칙 신뢰 제공 익숙한 소통 방식 워크플로 통합 코드 리뷰 흐름 변경 생성 리뷰 요청 변
19 posts
Part IV 도구 CHAPTER 19 Critique: 구글의 코드 리뷰 도구 코드 리뷰는 소프트웨어 개발에서 없어서는 안 될 요소입니다. 특히 성장하기 위해 매우 중요한 요소입니다. 코드 리뷰 도구 원칙 간결성 가장 큰 영향을 준 원칙 신뢰 제공 익숙한 소통 방식 워크플로 통합 코드 리뷰 흐름 변경 생성 리뷰 요청 변
Part IV 도구 CHAPTER 18 빌드 시스템과 빌드 철학 구글 엔지니어에게 빌드시스템은 사랑이다 빌드 시스템의 목적 빌드 시스템의 목적 속도 : 개발자가 명령 하나로 빌드를 수행하고 몇 초안에 결과 바이너리를 얻을 수 있어야 한다. 정확성 : 소스 파일과 기타 입력 데이터가 같다면 모든 개발자가 어떤 컴퓨터에서 빌
Part IV 도구 CHAPTER 17 Code Search 구글이 이용하는 코드 브라우징 및 검색 도구 Code Search UI 핵심요소는 검색창 파일 하나를 들여다 볼때 대부분은 토큰을 바로 클릭하여 관련 정보로 빠르게 이동 할수 있다 이슈 트래커 코드 참조 클래스 구글 개발자가 Code Search를 이용하는 방법
Part IV 도구 CHAPTER 16 버전 관리와 브랜치 관리 버전 관리 시스템은 가장 널리 쓰이는 소프트웨어 엔지니어링 도구 트렁크 기반 개발(Trunk Based Development)이 확장성이 뛰어나기에 그 이유와 함깨 몇가지 제안 버전 관리란? VCS(Version Control System)은 파일의 시간에
Part III 프로세스 CHAPTER 15 폐기 모든 시스템은 나이를 먹습니다. 소프트웨어는 디지털 자산이라서 물리적인 비트들 자체가 늙지 않는다. 이주를 순차적으로 시켜서 낡은 시스템을 완전히 걷어내는 과정은 폐기라 한다 폐기시키는 이유 기본전재는 코드는 자산이 아니라 부채다 라는 기본 전재에서 시작함 코드가 부채가
Part III 프로세스 CHAPTER 14 더 큰 테스트 테스트들이 자원 낭비가 아닌 값진 자산이 되게끔 하려면 또 다른 난관을 극복해야 된다 더 큰 테스트란? 더 큰 테스트의 특징 느릴 수 있다 밀폐되지 않을 수 있다 비결정적일 수 있다 충실성 테스트가 대상의 실제 행위를 얼마나 충실하게 반영했는냐를 나타내는 속성 단
Part III 프로세스 CHAPTER 13 테스트 대역 단순한 코드라면 단위 테스트 작성이 전혀 부담되지 않습니다 하지만 대상 코드가 복잡해질수록 테스트를 작성하기도 어려워진다 테스트 대역은 실제 구현 대신 사용 할 수 있는 객체나 함수를 말한다 테스트 대역이 소프트웨어 개발에 미치는 영향 테스트 용이성 적용 가능성 충
Part III 프로세스 CHAPTER 12 단위 테스트 작은 테스트는 빠르고 결정적이어서 개발자들이 수시로 수행하며 피드백을 즉각 얻을수 있다 단위 테스트는 대체로 대상 코드와 동시에 작성할 수 있을 만큼 작성하기 쉽다 빠르게 작성할 수 있으므로 테스트 커버리지를 높이기 좋다 시스템의 특정 부분에 집중하므로 실패 시 원
Part III 프로세스 CHAPTER 11 테스트 개요 테스트는 처음부터 프로그래밍과 함께다 소프트웨어와 시스템 복잡도에 대응하기 위해 테스트 방식을 극적으로 진화 그 진화의 중심에는 개발자가 주도하는 테스트와 자동 테스트가 있다 자동 테스트는 버그가 몰래 숨어들어 고객을 놀라게 하는 사태를 막아준다 테스트 체계가 잘
Part III 프로세스 CHAPTER 10 문서자료 대부분의 엔지니어가 코드를 작성하고 이용하고 유지보수 하면서 대표적인 불만이 양질의 문서자료가 부족하다는 점 구글에서 문서 자료를 개선하고자 해본 시도 중 가장 성공적이었던 방법은 문서자료를 코드처럼 취급하여 엔지니어링 워크플로에 통합하는 것 문서자료란? 엔지니어가 작
Part III 프로세스 CHAPTER 9 코드 리뷰 코드 리뷰는 작성자 이외에 사람이 코드를 검토하는 프로세스로 주로 코드를 코드베이스에 반영하기 전에 수행한다 코드리뷰는 버그가 코드베이스로 침투하기 전에 잡아 낸다. 코드 리뷰 흐름 변경을 코드에 커밋하기 전에 리뷰 하는데 이 단계를 프리커밋 리뷰라고 한다 코드 리뷰
Part III 프로세스 CHAPTER 8 스타일 가이드와 규칙 조직 내부 코드베이스를 관리하는 규직은 어디든 존재한다 규칙은 법이다. 지침은 권장사항과 모법사례를 이야기함 따르는 편이 이득이라 어지간하면 따르라고 권한다 코드의 지속 가능성을 높이도록 이끄는것 규칙이 필요한 이유 좋은 행동을 장례하고 나쁜 행동을 억제하기
Part II 문화 CHAPTER 7 엔지니어링 생산성 측정하기 구들은 데이터를 토대로 결정하는 데이터 주도 회사 이다. 제품과 설계에 관한 결정 대부분을 근거 데이터와 함께 백업해놓는다 엔지니어링 생산성을 측정하는 이유 사업을 확장하려면 충원을 피할수 없는데 그에 따른 소통 비용이 너무 가파르게 늘어난다 사업확장문제를
Part II 문화 CHAPTER 6 성장하는 조직 이끌기 팀하나를 이끌게 되었다면 다음 순서로는 연관된 여러 팀을 이끄는게 자연스러운 흐름 역활이 커져도 기존의 모범사례들은 계속 유효하다 섬기는 리더 3A 리더쉽 늘 결정하라(Always Be Deciding) 기존 보다 높은 수준에서 더 많은 걸 결정해야 한다는 뜻 여
Part II 문화 CHAPTER 5 팀 이끌기 구글의 리더의 역활 관리자 : 사람을 이끌고 테크리드 : 기술과 관련 책임을 진다 관리자와 테크 리드(혹은 둘 다) 엔지니어링 관리지 팀 구성원 모두의 성과, 생산성, 행복을 책임져야 한다 제품의 사업적 요구까지 충족시켜야함 테크 리드 팀의 기술적인 면, 기술과 관련한 결정
Part II 문화 CHAPTER 4 공정 사회를 위한 엔지니어링 프로그래밍은 당면한 문제에 집중하여 코드를 생산한다 우기가 얻은 깨우침을 다음 세대에 전하여 차세대 엔지니어들은 우리보다 나은 결정을 내리도록 이끄는 일이 중요하다고 생각 편견은 피할 수 없다 무의식적인 편견은 교묘하여 의도적인 배척 행위보다 물리치기 어려
Part II 문화 CHAPTER 3 지식 공유 조직은 자신의 문제 대부분에 스스로 답할 수 있어야 한다 조직은 질문의 답을 아는 전문가들이 필요하고 그들의 지식을 전파할 메커니즘도 필요하다 조직에는 배움의 문화가 자리 잡혀 있어야 한다 사람들에게 모르는것을 인정할 수 있도록 돕는 심리적 안전을 제공해야 한다 배움을 가로
Part II 문화 CHAPTER 2 팀워크 이끌어내기 반듯이 통제해야 하는 하나의 변수는 자기자신이다 사람은 간헐적 버그들의 집합 내 코드를 숨기고 싶어요 불안감 때문에 코드를 숨기고 싶어 한다 천재 신화 천재 신화의 진짜 업적은 사람들을 협업하도록 이끈것이다 숨기는 건 해롭다 오롯이 홀로 일한다면 실패할 위험성을 불필
Part I 전제 CHAPTER 1 소프트웨어 엔지니어링이란? 프로그래밍과 소프트웨어 엔지니어링의 가장 큰 차이 시간 확장 트레이드오프 소프트웨어 엔지니어링은 흐르는 시간 위에서 순간순간의 프로그래밍을 모두 합산한것 이 코드의 예상 수명은? 지속가능성 소프트웨어 프로젝트의 팀 조직, 프로젝트 구성, 정책과 관례는 모두 소