728x90

분류 전체보기 518

6장 명확하고 간결한 주석 달기

PART I. 표면적 수준에서의 개선 6장 명확하고 간결한 주석 달기 - 주석은 높은 '정보 대 공간' 비율을 갖춰야 한다. __01. 주석을 간결하게 하라 - 짧게 줄여도 정보를 충분히 전달할 수 있다면 주석을 짧게 줄여라. __02. 모호한 대명사는 피하라 - 모호한 대명사는 원래 명사로 고치거나, 의미가 명확해지도록 문장을 고쳐라. __03. 엉터리 문장을 다듬어라 - 주석을 명확하게 하는 작업과 간결하게 하는 작업은 대부분 한꺼번에 이루어진다. __04. 함수의 동작을 명확하게 설명하라 - 애매한 단어를 사용하지 말고 구현한 방식을 명확하게 설명하는 것이 좋다. __5. 구체적인 용법을 설명해주는 입/출력 예를 사용하라 - 주석을 작성하는 데 신중하게 선택된 입/출력 예는 천 마디 말보다 위력적이..

5장 주석에 담아야 하는 대상

PART I. 표면적 수준에서의 개선 5장. 주석에 담아야 하는 대상 ★ 주석의 목적은 코드를 읽는 사람이 코드를 작성한 사람만큼 코드를 잘 이해하게 돕는 데 있다. __01. 설명하지 말아야 하는 것 ★ 코드에서 빠르게 유추할 수 있는 내용은 주석으로 달지 말라. - 설명 자체를 위한 설명을 달지 말라. 주석을 달아야하겠다면 파악하기 어려운 세부사항을 적는것이 좋다. - 나쁜 이름에 주석을 달지 마라. 대신 이름을 고쳐라. 좋은 코드 > 나쁜 코드 + 좋은 주석 __02. 생각을 기록하라 - 코드를 짜면서 의도한 바나 깨달은 바를 주석으로 기록하라. - 상수가 무엇을 하는지, 그것이 왜 특정한 값을 갖게 되었는지에 대한 내용을 기록해둬라. - 코드에 있는 결함을 설명하라. 코드에 부족한 점이 있는건 당..

4장 미학

Part 1. 표면적 수준의 개선4장. 미학 -좋은 소스코드는 '눈을 편하게' 해야 한다. 이 장에서는 다음과 같은 세 가지 원리가 사용된다. 1. 코드를 읽는 사람이 이미 친숙한, 일관성 있는 레이아웃을 사용하라. 2. 비슷한 코드는 서로 비슷해 보이게 만들어라. 3. 서로 연관된 코드는 하나의 블록으로 묶어라. ※ 여기서 말하는 미학은 가독성만을 위한 것으로 새롭게 설계하는 리팩토링은 서로 독립된 아이디어에 해당한다. 두가지 모두를 추구하는게 이상적이다. __01. 미학이 무슨 상관인가? - 미학적으로 보기 좋은 코드가 사용하기 더 편리하다. 우리는 대부분의 시간을 코드를 그저 바라보는 데 쓴다는 것을 명심하라. __02. 일관성과 간결성을 위해서 줄 바꿈을 재정렬하기 - 줄이 길어져 줄바꿈을 해야한..

3장 오해할 수 없는 이름들

Part 1. 표면적 수준의 개선3장. 오해할 수 없는 이름들 ★ 본인이 지은 이름을 "다른 사람들이 다른 의미로 해석할 수 있을까?"라는 질문을 던져보며 철저하게 확인해야 한다. __01. 예: Filter() -filter라는 변수명은 의미가 모호하다. 대상을 '고르는' 기능을 원한다면 select가 '제거하는' 기능을 원한다면 exclude가 더 낫다.__02. 예: Clip(text, length) - 어떤 문단의 내용을 오려내는 함수 Clip(text,length)라면 두가지 방식으로 이해할 수 있다. 이 함수의 기능은 문단을 처음부터 최대 length만큼 잘라내는 것이므로 truncate(text,max_chars)가 더 좋다. __03. 경계를 포함하는 한계값을 다룰 때는 min과 max를 ..

2장 이름에 정보 담기

Part 1. 표면적 수준의 개선2장. 이름에 정보 담기 ★ 이름(식별자)에 정보를 담아내라. 이름을 일종의 설명문으로 생각하라. 좋은 이름은 생각보다 많은 정보를 전달할 수 있다. __01. 특정한 단어 고르기 - 구체적인 단어를 선택하라. 더 '화려한' 단어를 찾아보면 그 변수에 더 적합한 단어를 찾는데 도움이 된다. ★ 재치 있는 이름보다 명확하고 간결한 이름이 더 좋다. __02. tmp나 retval 같은 보편적인 이름 피하기 ★ retval이라는 이름은 정보를 제대로 담고 있지 않다. 대신 변수값을 설명하는 이름을 사용하라. - 하지만 보편적인 이름이 필요한 의미를 더 전달하는 경우도 있다. ★ tmp라는 이름은 대상이 짧게 임시적으로만 존재하고, 임시적 존재 자체가 변수의 가장 중요한 용도일..

1장 코드는 이해하기 쉬워야 한다.

1장. 코드는 이해하기 쉬워야 한다 ★ 코드는 이해하기 쉬워야 한다. 이것이 코드를 작성할 때 가장 고려되어야 하는 원칙이다. __01. 무엇이 코드를 ‘더 좋게’ 만드는가? - 대부분의 프로그래머들이 프로그래밍과 관련된 내용들을 직관으로 판단한다. 하지만 이것이 항상 쉬운 일인 것은 아니다. __02. 가독성의 기본 정리 ★ 코드는 다른 사람이 그것을 이해하는데 들이는 시간을 최소화하는 방식으로 작성되어야 한다. 누군가가 코드를 완전히 이해한다는 것은 그가 코드를 자유롭게 수정하고, 버그를 짚어내고, 수정된 내용이 여러분이 작성한 다른 부분의 코드와 어떻게 상호작용하는지 알 수 있어야 한다는 뜻이다. 여기서의 누군가는 본인이 될 수도 있다. __03. 분량이 적으면 항상 더 좋은가? - 일반적으로 더 ..

"읽기 좋은 코드가 좋은 코드다" - 목차

1장. 코드는 이해하기 쉬워야 한다 __01. 무엇이 코드를 ‘더 좋게’ 만드는가? __02. 가독성의 기본 정리 __03. 분량이 적으면 항상 더 좋은가? __04. 이해를 위한 시간은 다른 목표와 충돌하는가? __05. 어려운 부분 PART I. 표면적 수준에서의 개선2장. 이름에 정보 담기 __01. 특정한 단어 고르기 __02. tmp나 retval 같은 보편적인 이름 피하기 __03. 추상적인 이름보다 구체적인 이름을 선호하라 __04. 추가적인 정보를 이름에 추가하기 __05. 이름은 얼마나 길어야 하는가? __06. 이름 포메팅으로 의미를 전달하라 __요약 3장. 오해할 수 없는 이름들 __01. 예: Filter() __02. 예: Clip(text, length) __03. 경계를 포함하..

"읽기 좋은 코드가 좋은 코드다" - 출판사 리뷰

출판사 리뷰 더 나은 코드를 작성하는 간단하고 실전적인 테크닉! 이 책은 매우 읽기 편한 코드를 작성하는 방법을 설명한다. 이 책을 관통하는 핵심 아이디어는 ‘코드는 이해하기 쉬워야 한다’는 것이다. 자신의 코드를 다른 사람이 읽고 이해할 때 걸리는 시간을 최소로 만들어야 한다. 그렇다고 어려운 기법을 장황히 설명하지 않는다. 실전적인 간단한 기법만으로도 코드를 훨씬 읽기 편하게 만들 수 있게 이끌어준다. 개발하는 언어에 종속되지 않아 누구나 읽을 수 있다! 이 책은 바로 이 아이디어를 C++, 파이썬, 자바스크립트, 자바 등을 포함한 여러 언어로 작성된 코드를 예로 들며 설명한다. 우리는 각 언어에 종속된 고급 기능을 일부러 사용하지 않았기 때문에, 설령 이런 언어를 다 알지 못한다고 해도 책을 읽는 ..

유클리디아 1-5 공략

문제 힌트 1. 마름모는 네변의 길이가 모두 같은 사각형이다. 2. 마름모의 두 대각선은 서로를 수직이등분한다. 1-2공략 참조 해답 L목표, V목표 달성 E목표 달성 풀이 L목표 1. 선분AC에 대한 수직이등분선을 그린다. - 선분AC에 대한 수직이등분선과 선분AB의 교점E와 선분DC의 교점G가 생겼다. 2. 사각형EBGD를 그린다.V목표 1. 선분BD에 대한 수직이등분선을 그린다. - 선분BD에 대한 수직이등분선과 선분AB의 교점F와 선분DC의 교점H가 생겼다. 2. 사각형AFCH를 그린다. E목표 1. 점A를 중심으로 하고 점C를 지나는 원A를 그린다. 2. 점C를 중심으로 하고 점A를 지나는 원C를 그린다. - 원A와 C의 교점E와 F가 생겼다. 3. 직선EF를 긋는다. - 직선EF와 선분BC의 ..

C언어 연습문제 풀이 CH11 (13~16)

13. 소문자/대문자로 구성된 문자열을 입력받아 모두 대문자로 변환하거나, 모두 소문자로 변환하는 프로그램을 작성하라. //소문자/대문자로 구성된 문자열을 입력받아 모두 대문자로 변환하거나, 모두 소문자로 변환하는 프로그램을 작성하라. #include #include #include int main() { do { char buffer[100]; printf("대소문자가 섞인 영어 문장을 입력하세요. : "); scanf_s("%s", buffer, 100); int input; printf("원하는 동작을 선택하세요. \n"); printf("1. 소문자를 대문자로 변경 \n"); printf("2. 대문자를 소문자로 변경 \n"); scanf_s("%d", &input); do { switch (in..

반응형