[노개북] pragmatic 3장. 기본 도구
오늘 TIL 3줄 요약
- 셸 가지고 놀기
- 버전 관리
- 디버깅 디버깅 디버깅
TIL 날짜
오늘 읽은 범위
책에서 기억하고 싶은 내용
- 필요에 따라 도구를 취하라
- 사용하는 도구로 다룰 수 없는 문제를 직면하면 다른 것이나 더 강력한 것을 찾아라
- 생각과 역사를 기록으로 남겨라
- 아무리 흐린 먹물도 가장 뛰어난 기억력보다 낫다.
- 모든 소프트웨어는 작성되자마자 레거시가 된다.
- 프로그래머에게 명령어 셸이 작업대다.
- 셸의 힘을 사용하라 → 셸을 나의 집으로 만들어라
- 별칭과 셸 함수를 사용하라
$ alias apt-up = 'sudo apt-get update && sudo apt-get upgrade'
$ alias rm = 'rm -iv'
- 명령어 자동완성
- tab 자동완성 뿐만 아니라 더 확장 가능하다.
- 사고가 터졌을 때 압박감 속에서 배우려 하지말고 지금 미리 익혀둬라
- 나의 노트북 환경을 복구하는 것에 대해 고민해보라
- VCS로 관리해보자. → 노트북 바깥의 VCS를 사용해야한다.(ex. github)
- 디버깅은 단지 문제풀이일 뿐이다.
- 당황하지말라
- 버그는 반드시 일어날 수 있으며 실제로도 지금 일어났다.
- 경고없이 깨끗하게 빌드되는 지 부터 확인하라
- 컴파일러의 경고 수준을 최고로 높게 맞춰라.
- 컴퓨터가 대신 찾을 수 있는 문제를 찾기위해 시간을 허비하지 말라.
- 버그 재현하기
- 명령어 하나로 재현할 수 있도록 하라
- 버그 출현 지점까지 열다섯 단계를 거쳐야한다면 버그 수정을 훨씬 어렵다.
- 설명하라
- 누군가에게 문제를 설명하게 되면 당연히 여겼던 것을 명시적으로 이야기해야 한다.
- 고무 오리나 곰인형, 화분도 괜찮다.
- 버그와 관련된 루틴이나 코드가 제대로 작동하는 걸 ‘안다'고 해서 대충 지나치지 말라.
- 그것을 증명하라.
- 이 맥락 안에서, 이 데이터로, 이 경계 조건하에서 증명하라.
- 가정하지 말라, 증명하라.
- 엔지니어링 일지를 남겨라
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 셸은
ls
, find
, ps
정도면 된다고 생각했었지만 오산이다. 셀 명령어들을 확실하게 익혀야겠다.
- 나의 노트북 개발환경을 VCS로 관리한다는 생각은 한번도 해보지 못했다. 이번 기회에 고민해보고, windows, mac, linux 환경 관계없이 어느 상황에도 빠르게 내 개발환경을 세팅할 수 있도록 준비해야겠다.
- 테스트코드를 더 철저하게 작성해야겠다.
- TIL, 요즘 뜸하지만 다시 작성하기 시작해야겠다.
오늘 읽은 다른사람의 TIL