본문 바로가기

프로그래밍/Code Craft24

[1부 코드와 마주보기] Chapter6 사람은 실수를 하기 마련 우리는 유일한 실수 예방 방법이 실수를 감지하는 것이고, 유일한 실수 감지 방법이 자유롭게 질문하는 것이라는 사실을 알고 있습니다. - J. 로버트 오펜하이머 코드 안에 있는 발생할 수 있는 모든 에러 상황을 반드시 처리해야만 한다. 어디에서 나왔나? 에러는 불완전한 프로그램에 포함되어 있는 버그와는 다르다. 사용자 에러 훌륭한 프로그램이라면 그럴 때 사용자의 잘못을 지적하고 교정하도록 도와줄 것이다. 프로그래머 에러 이것은 다른 곳에 있는 버그나 프로그래머의 실수로 인한 결과 예외상황 하드디스크 공간 없음, 네트워크 연결 실패 에러 리포트 메터니즘 리포트 안 하기 에러 상황을 무시하지 말자 리턴 값 간단한 에러 리포트 메커니즘은 함수가 성공/ 실패 값을 리턴 하도록 만드는 것 에러 상태 변수 함수의 리.. 2017. 10. 27.
[1부 코드와 마주보기] Chapter5 가벼운 코멘트 코멘트(comment: 주석)는 의견과 아주 비슷합니다. 코멘트를 다는 것은 자유지만, 그렇다고 해서 반드시 그 내용이 옳은 것은 아니다. 코멘트는 우리의 생명선이고, 촉진제이고, 코드 전체를 통한 길잡이이다. 코멘트를 잘 다는 것은 위험한 코드를 예방하는 전략 중 하나이다. 코멘트란 무엇인가? 생각하는 것보다 더 철학적인 것 문법적으로 코멘트는컴파일러가 무시하는 소스 블록 코멘트는 컴퓨터가 겨냥하는 것이 아니라 프로그램을 읽는 사람을 겨냥한다. 우리는 책임 있는 프로그래머로서 코멘트를 잘 달아야 할 의무가 있다. 얼마나 많은 코멘트가 필요할까? 우리는 코멘트의 양이 아니라 질에 초점을 맞출 필요가 있다. 지나치게 많은 코멘트는 코드를 뒤죽박죽으로 만든다. 수 톤의 코멘트로 떠받칠 필요가 없는 코드를 작.. 2017. 10. 26.
[1부 코드와 마주보기] Chapter4 문서화 도구 좋은 코드를 만든다는 것은 잘 문서화된 코드를 만든다는 의미이다 스스로-문서화하는 (self-documenting) 코드를 작성 하자! 스스로-문서화하는 코드 코드에 대해서 완벽하고 올바른 설명을 하는 유일한 문서? 코드 자체 코드를 좋은 문서로 만들기 위해 할 수 있는 모든 일을 해야 한다. 누구든지 읽을 수 있는 그런 종류의 문서를 만들자. 스스로-문서화하는 코드는 쉽게 읽을 수 있는 코드이다. 제일 많이 나오는 쉽게 읽을 수 있는 우리의 코드는? 머리말 소스 파일은 코드 코멘트 헤더(code comment header)로 시작해야 한다. 팀 내에서 사용 하고 있다. 목차 최신 에디터나 IDE를 사용하면 파일에 있는 내용(모든 클래스, 함수, 변수)을 목록으로 볼 수 있기에 하지 말자. 부 소스 파일.. 2017. 9. 27.
[1부 코드와 마주보기] Chapter3 이름이 뭐길래 이름? 신원: 가장 기본적인 개념 행동: 행동에 대한 암시 인지: 이름은 무언가가 다른 것과 구분되는 실체임을 표시 왜 이름을 잘 붙여야 하나? 소스 코드의 작성은 모두 명료한 의사소통에 관한 것이라는 사실을 기억하자 명료한 이름을 붙이면 잘 만들어진 코드라는 품질보증 스티커가 하나 붙여지는 셈이다. 이름을 잘 붙이는 능력은 코드 장인의 중요한 스킬!! - 참 어렵다고 생각한다!! 쉽게 하는 방법이 있으면 공유하고 싶습니다? 있습니까? 코드 장인은 읽기 쉬운 코드를 작성하기 위해 열심히 일한다! 우리는 무엇에 이름을 붙이는가? 변수, 함수, 타입(클래스, 열거 타입, 구조체, 사용자 정의 타입), C++의 네임스페이스와 JAVA의 패키지, 메크로, 소스파일 이름 붙이기 무엇에 이름을 붙일 것인지가 가장 .. 2017. 9. 26.
[1부 코드와 마주보기] Chapter2 최고의 레이아웃 계획 코드 프레젠테이션(code presentation)이란? 코드의 내용이나 논리 구조가 아닌 코드의 겉모습을 말한다. 본래 코드 프레젠테이션에는 문법적, 의미론적 의미는 없다. 또한 컴파일러는 프레젠테이션을 무시한다. 그런데 왜 필요한가? 중요한가? 프레젠테이션은 코드의 질에 상당한 영향을 미치기 때문에!! 프로그래머는 레이아웃을 기초해서 코드 안쪽에 있는 의미를 읽는다. 잘못된 포매팅은 코드를 따라가기 힘들게 만들 뿐만 아니라, 버그도 숨길 수 있기에 중요하다! 누가 읽을 것인지 알아야 소스코드에는 세 종류의 독자가 있다. 우리 자신 코드를 쓰고 난 다음에는 자기 자신이 바로 읽을 수 있어야 할 뿐만 아니라, 몇 년이 지난 후에 다시 보았을 때도 읽을 수 있어야 한다. 컴파일러 코드가 문법에 맞기만 하면.. 2017. 9. 22.
[1부 코드와 마주보기] Chapter1 방어하기 방어적 프로그래밍이란? 더 안전한 코드를 위한 전략 제약과 어설션(assertion) 훌륭한 코드를 향해서 우리는 훌륭한 코드를 목표로 삼아야 한다. 방어적 프로그래밍은 잠재적인 코딩 문제가 쌓여가는 것을 방지하는 실무적인 방법. 최악을 가정하라 추측은 결함 있는 소프트웨어의 작성 원인이며, 방어적 프로그램을 작성할 때는 아무것도 추측하지 말아야 합니다. 각 단계에서 코드에 어떤 나쁜 일이 생길 수 있는지 생각해보자 사용자의 제어권 밖에 있는 일이 잘못될 수도 있다는 사실 (네트워크 오류, 디스크 풀, 컴퓨터 다운) 당장 할 수 있는 약간의 추가 작업을 건너뛰어서, 나중에 세상 전체를 고통과 지연으로 부터 구할 수 있는 기회를 놓치지말자. 험한 세상 방어적 프로그래밍은 이런 계획적인 악용을 경계하면서 프.. 2017. 9. 21.