형식을 맞추는 목적 - 코드 형식은 의사소통의 일환이다. - 처음 잡아놓은 구현 스타일은 코드에 계속 영향을 줌. 적절한 행 길이를 유지하라 - 일반적으로 큰 파일보다 작은 파일이 이해하기 쉬움. 신문기사처럼 작성하라 - 기사의 첫 문단은 전체 기사 내용을 요약한다. 코드에선 그 역할을 이름이 한다. 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단할 정도로 신경 써서 짓는다. - 아래로 내려갈수록 세세하게 묘사하기. 마지막에는 가장 저차원 함수와 세부 내역이 나와야함. 개념은 빈 행으로 분리하라 - 개념 사이는 빈 행을 넣어 분리해야함. ex. 패키지 선언부, import문, 각 함수 사이 - 하나의 개념 덩어리가 한 덩어리로 보이도록. 세로 밀집도 - 줄바꿈이 개념을 분리한다면 세로 밀집도는..
4장 주석 - 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. - 주석을 유지 보수하기란 현실적으로 어렵기에 시간이 지날수록 완전히 그릇될 가능성이 높다. 잘못된 정보를 전달하는 주석이 되는것이다. - 코드만이 자기가 하는 일을 진실되게 말한다. 코드만이 정확한 정보를 제공하는 유일한 출처다. - 그러므로 우리는 간혹 필요한 예외적인 상황을 제외하곤 주석을 줄이도록 노력해야 한다. 주석은 나쁜 코드를 보완하지 못한다. 코드로 의도를 표현하라! - 코드에 주석을 다는 이유?? 코드 품질이 나쁘니까. - 주석 달 시간에 코드를 고쳐! - 많은 경우 주석으로 달려는 설명을 함수로 만들어 표현해도 충분하다. 좋은 주석 - 법적인 주석 - 정보를 제공하는 주석 - 의도를 설명하는 주석 - 의미를 명료하게 밝..
3장 함수 의도를 분명히 표현하는 함수가 목표 * 작게 만들어라! - 함수가 후술할 원칙들을 만족하는 선에서 최대한 작게 만드는게 좋다. - 블록과 들여쓰기 if문/else문/while문에 들어가는 블록은 한줄이어야 한다. 대개 그 한줄에서 함수를 호출한다. 이로써 해당 함수 자체가 작아지고 함수에 중첩 구조가 생길만큼 커지는 것을 방지할 수 있다. 들여쓰기 수준은 1단 혹은 2단을 넘어서면 안 된다. * 한 가지만 해라! - 함수는 한가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다. - 한가지 작업만 수행하는 함수 판별법 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계들만 수행하는지? ( 함수는 점점 세부적인 깊이에서 여러번의 작업을 하는 방향으로 분화됨. 여기서 세부..
2장 의미 있는 이름 * 의도가 분명한 이름 - 변수, 함수, 클래스 등의 이름은 존재 이유, 수행 기능, 사용 방법 등의 의도를 알 수 있게 지어야한다. ex) 1 int d; // 경과 시간(단위 : 날짜) cs 의도를 전혀 드러내지 못하는 이름 1 2 3 4 5 6 7 int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification; int fileAgeInDays; cs 의도가 충분히 드러나는 이름 * 그릇된 정보를 피하라 - 코드에 남겨진 잘못된 단서는 코드 의미를 흐린다. - ex) 배열로 구현된 그룹을 accountList로 이름 짓는 경우. 단순히 Accounts로 명명하는게 옳음. - 서로 흡사한 이름은 피한다. - 유사한 ..
* 코드는 요구사항을 상세히 표현하는 수단이다. * 나쁜 코드는 나쁜 코드를 낳는다. 이 악순환이 계속될수록 생산성은 떨어지고 마침내 0에 수렴한다. * 코드의 품질은 프로그래머의 첫번째 책임이다. - 기한과 요구사항에 쫓겨 겨우 돌아가기만 하는 코드를 짜는 것은 결국엔 더 큰 작업부하로 이어진다. * 깨끗한 코드 - 누가 읽더라도 읽기에 편한 코드 (ex.가독성). - 추측이 아닌 사실에 기반하여 반드시 필요한 내용만 담는 코드. - 세세한 사항까지 꼼꼼하게 손이 닿아 있는 코드 (ex.오류 처리). * 이 책에서 다룰 큰 원칙 - 중복 금지 - 한 기능만 수행 - 명확한 표현 - 작게 추상화
이번 학교 프로젝트 과제로 일정관리 프로그램을 만들었습니다. 간단한 기능들 위주로 구현되어있으며 유닉스 시스템콜(저장,불러오기에 집중적으로 사용됨)을 C언어에 첨가하여 만들어봤습니다. UI를 화려하게 만들진 않았습니다 단순히 콘솔용 프로그램이라 생각하시면됩니다. 혹시 학교 과제 하시는 분들 사용하셔도 좋습니다. 터미널에서 vi 모드로 파일에 코드를 붙여넣고 gcc를 사용하여 실행할 수 있습니다~ #프로젝트 설명 프로그램에는 일정등록, 등록된 일정 수정 삭제 및 조작 기능, 우선순위 등록 기능을 구현했습니다. 우선순위 등록은 일정등록할때 이루어지며 나중에 등록된 일정들을 우선순위별로 구분하여 조회할 수 있습니다. 일정 조작 기능에서 수정 삭제는 말그대로 수정 삭제입니다. 그 외의 조작 기능으로는 벌써 수행..
- Total
- Today
- Yesterday
- dfs
- XcodeBuildSystem
- 단어변환
- CLANG
- ios
- clean code 정리
- 알고리즘
- swiftc
- XCFramework
- SwiftUI
- 이분탐색
- 메모리 순환참조
- 의존성
- BFS
- 학교 과제
- ios simulator
- 면접질문
- 클린 코드
- 의존관계역전법칙
- 프로그래머스
- 클린 코드 정리
- Swift
- 전처리기
- 생명 주기
- 순환참조
- 클린 코드 줄거리
- 링커
- 주입
- 여행경로
- clean code
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |