반응형 독서72 [노개북] 클린코드 28일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 프로그래밍은 과학보다 공예(craft)에 가깝다는 사실이다. 깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다는 의미다. 대다수 신참 프로그래머는 무조건 돌아가는 프로그램을 목표로 잡는다. 일단 프로그램이 '돌아가면' 다음 업무로 넘어간다. '돌아가는' 프로그램은 그 상태가 어떻든 그대로 버려둔다. 경험이 풍부한 전문 프로그래머라면 이런 행동이 전문가로서 자살 행위라는 사실을 잘 안다. 🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요. 오늘 시작한 [14장. 점진적 개선]을 읽으면서 느낀 점 => 우선 코드 위주로 되어 있으니 타이핑해보자. => 타이핑 한 곳에 주석을 달면서 코드에 대해 이해해보자. => 작성 후 북 스터디에서 다른 분.. 2022. 2. 20. [노개북] 클린코드 27일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 동기화하는 부분을 작게 만들어라 자바에서 synchronized 키워드를 사용하면 락을 설정한다. 같은 락으로 감싼 모든 코드 영역은 한 번에 한 스레드만 실행이 가능하다. => 락은 스레드를 지연시키고 부하를 가중시킨다. 코드가 올바르다고 증명하기는 현실적으로 불가능하다. 테스트가 정확성을 보장하지는 않는다. => 그럼에도 충분한 테스트는 위험을 낮춘다. 권장사항: 문제를 노출하는 테스트 케이스를 작성하라. 프로그램 설정과 시스템 설정과 부하를 바꿔가며 자주 돌려라. 테스트가 실패하면 원인을 추적하라. => 다시 돌렸더니 통과하더라는 이유로 그냥 넘어가면 절대로 안 된다. 말이 안 되는 실패는 잠정적인 스레드 문제로 취급하라. 다중 스레드를 고려하지 않은 순차.. 2022. 2. 19. [노개북] 클린코드 26일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 동시성은 결합(coupling)을 없애는 전략이다. 즉, 무엇(what)과 언제(when)를 분리하는 전략이다. 스레드가 하나인 프로그램은 무엇과 언제가 서로 밀접하다. 동시성과 관련된 타당한 생각 몇 가지 동시성은 다소 부하를 유발한다. 성능 측면에서 부하가 걸리며, 코드도 더 짜야한다. 동시성은 복잡하다. 간단한 문제라도 동시성은 복잡하다. 일반적으로 동시성 버그는 재현하기 어렵다. 그래서 진짜 결함으로 간주되지 않고 일회성 문제로 여겨 무시하기 쉽다. 동시성을 구현하려면 흔히 근본적인 설계 전략을 재고해야 한다. 동기화하는 메서드 사이에 존재하는 의존성을 이해하라. 동기화하는 메서드 사이에 의존성이 존재하면 동시성 코드에 찾아내기 어려운 버그가 생긴다. 자.. 2022. 2. 19. [노개북] 클린코드 25일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 켄트 벡이 제시한 단순한 설계 규칙 네 가지(중요도 순) 모든 테스트를 실행한다. 중복을 없앤다. 프로그래머 의도를 표현한다. 클래스와 메서드 수를 최소로 줄인다. 테스트를 철저히 거쳐 모든 테스트 케이스를 통과하는 시스템은 '테스트가 가능한 시스템'이다. TEMPLATE METHOD 패턴은 고차원 중복을 제거할 목적으로 자주 사용하는 기법이다. 자신이 이해하는 코드를 짜기는 쉽다. => 하지만 나중에 유지보수할 사람이 코드를 짜는 사람만큼이나 문제를 깊이 이해할 가능성은 희박하다. 🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요. 켄트 벡이 제시한 설계는 결국 지금까지 읽은 클린코드 내용을 지키는 것 테스트 코드의 중요성 => 테스트가 불가능한 시스템.. 2022. 2. 18. 이전 1 ··· 6 7 8 9 10 11 12 ··· 18 다음