반응형
반응형
깨끗한 코드 만들기

 

 


가독성의 기본
1. 코드는 이해하기 쉬워야 한다.
2. 코드는 다른 사람이 그것을 이해하는 데 들이는 시간을 최소화하는 방식으로 작성되어야 한다.
3. 1회용 코드는 되도록 피해야 한다(스스로가 희생양이 될지도).
참고: Perl 코드(WORN: Write Once Read Never)


코드 읽기 vs 코드 쓰기
읽기: 쓰기의 비율은 읽기 = 10: 쓰기 = 1
비율이 이렇게 높으므로 읽기 쉬운 코드가 매우 중요하다. 비록 읽기 쉬운 코드를 짜기가 쉽지는 않더라도 말이다. 하지만 기존 코드를 읽어야 새 코드를 짜므로 읽기 쉽게 만들면 사실은 짜기도 쉬워진다.
이 논리에서 빠져나갈 방법은 없다. 주변 코드를 읽지 않으면 새 코드를 짜지 못한다. 주변 코드를 읽기가 쉬우면 새 코드를 짜기도 쉽다. 주변 코드를 읽기가 어려우면 새 코드를 짜기도 어렵다. 그러므로 급하다면, 서둘러 끝내려면, 쉽게 짜려면, 읽기 쉽게 만들면 된다.

현실에서는 ? 데이비드 파나스(소프트웨어 공학 태두)
소프트웨어 설계자가 요구 사항으로부터 이성적이고 오류가 없는 방식으로 설계한 그림은 엄청나게 비현실적입니다. 어느 시스템도 이런 이성적인 방식으로 개발되지 않았으며, 아마도 앞으로도 이런 일은 생기지 않을 것입니다. 심지어 교과서나 논문에 나온 작은 프로그램 개발조차도 비현실적입니다. 교과서나 논문에 나온 프로그램은 개선되고 수정되는 과정을 거치면서 저자들이 바라는 바를 보여주지 실제 일어난 과정을 보여주지는 않습니다.


단위 테스트 실행시 지켜야할 원칙 : F.I.R.S.T.
빠르게(Fast): 테스트는 빨라야 한다.
독립적으로(Independent): 각 테스트는 서로 의존하면 안 된다. 한 테스트가 다음 테스트가 실행될 환경을 준비해서는 안 된다.
반복가능하게(Repeatable): 테스트는 어떤 환경에서도 반복 가능해야 한다.
자가검증하는(Self-Validating): 테스트는 부울(bool) 값으로 결과를 내야 한다. 성공 아니면 실패다.
적시에(Timely): 테스트는 적시에 작성해야 한다. 단위 테스트는 테스트하려는 실제 코드를 구현하기 직전에 구현한다.


이름 짓기
1. 수학 함수라고 해서 어려울 필요는 없다. i)함수 포인터 타입 정의 ii) 좌표를 구조체로
2. 표현을 잘개 쪼개기.
 - 거대한 표현을 작은 조각으로 나누고 함수로 분리한다.
 - 하위표현을 간결한 이름으로 대체해 함수로 분리한다.
 - 코드를 읽는 사람이 핵심 ‘개념’을 파악하게 읽기 쉬운 코드를 작성한다.
3. 변수는 내버려두면 계속 늘어난다. 변수를 덜 사용하고 최대한 ‘가볍게’ 만들어 가독성을 높인다. 아래와 같이 실천한다.
 - 방해되는 변수를 제거: 결과를 즉시 처리하는 방식으로, 중간 결과값을 저장하는 변수를 제거
 - 각 변수의 범위를 최대한 작게 줄임: 각 변수 위치를 옮겨 변수가 나타나는 줄의 수를 최소화.

    안 보이면 멀어진다.
 - 값이 한번만 할당되는 변수를 선호: const, final 등으로 값이 한 번만 할당되어 바뀌지 않는(즉 불변)

    변수는 이해하기 쉽다.

코드 흐름 제어 : 코드 흐름을 읽기 쉽게 만들어야 논리가 명확해진다. 아래와 같이 실천한다.
 - if/else문의 블록 순서에 주의: 긍정적이고 쉽고 흥미로운 경우가 앞쪽에 위치
 - 삼항연산자(: ?)나 do/while, goto는 코드 가독성을 떨어뜨리므로 되도록 사용 금지
 - 중첩된 코드 블록의 흐름을 따라가려면 많은 집중이 필요하다  선형적인 코드 추구
 - 함수 중간에 반환하면 중첩을 피하고 코드를 더 깔끔하게 작성 가능하다. 

   함수 앞부분에서 ‘보호 구문’으로 간단한 경우를 미리 처리하는 방안도 고려
 


켄트 백의 간단한 설계 규칙 네 가지
모든 테스트를 실행한다.
중복을 없앤다.
프로그래머 의도를 표현한다.
클래스와 메소드 수를 최소로 줄인다.

 

 

 

.

반응형
반응형

나는 열등의식을 가지고 있었고 끊임없이 분발했다.
그리고 나는 분발이 필요했기 때문에
나 자신이 보잘 것 없고 그다지 중요하지 않은
사람인 것으로 여겼었다.
다른 성악가들도 스스로를 그렇게 여긴다는 것을
나는 몰랐다.
- 소프라노, Frieda Hempel




수많은 재능과 능력은 부족감에서 비롯되었습니다.
‘나를 죽이지 않는 역경은 나를 키운다’는 니체의 말처럼,
지나친 자조나 열등감에 빠지지 않는다면,
내가 아직 부족하고 갈 길이 멀다고 생각하는 것은
쉽게 자만하지 않고 탁월함을 향해 꾸준히 노력하는
원동력이 될 수 있습니다.

 

 

 

 

 

 

 

반응형
반응형

인생에도 수업료가 있다.
귀한 것을 얻기 위해서는
반드시 대가를 치러야 하고
기약이 없는 인내를 해야 할 때도 있다.
대가를 크게 치를수록, 오래 기다리고
오래 배울수록, 인생은 깊고 넓어진다.


- 이애경의《나를 어디에 두고 온 걸까》중에서 -


* 세상에 쉬운 일이 없습니다.
마냥 거저 얻어지는 것도 없습니다.
응당한 수업료를 내고 기술도 배우고
유학도 가고 박사 과정도 열심히 밟습니다.
좋은 기술, 큰 공부일수록 수업료도 많습니다.
어렵고 힘든 고난이 닥치거든, 수업료 없이
큰 공부하고 있다고 생각하십시오.
자기 인생의 빛나는 투사가
될 수 있습니다.

반응형

'생활의 발견 > 아침편지' 카테고리의 다른 글

설레는 일을 시작하자  (0) 2015.08.01
희망이란  (0) 2015.07.31
나침반마저 없을 때  (0) 2015.07.29
마음을 꺼내 놓는다  (0) 2015.07.28
서른 살부터 마흔 살까지  (0) 2015.07.27
반응형
끊임없이 변화하는 환경 속에서 성공을 좌우하는 요소는
타고난 지능지수나 부모로부터 물려받은 사회경제적 지위,
카리스마 넘치는 성격, 정규교육 보다는
평생에 걸쳐 배우는 자세에 있다.
- 하버드대 존 코터 교수
(‘운명’이라는 책에서 마쓰시타의 성공요인을 정리하며)



겸손한 태도, 열린 사고, 기꺼이 위험을 감수하는 정신,
남의 말을 경청하는 능력,
정직하게 자신을 반성하는 태도와 직결된다.”고 말합니다.
마스시타는 “사람이 나이가 들면
더 이상 성장할 수 없으며 성장한다 해도
한계가 있을 거라고 단정하지 말라”고 일갈합니다.

 

반응형
반응형

노련한 여행자는
늘 나침반을 지니고 다닌다.
자주 사용하지는 않더라도 일단 꺼내놓으면
금방 길을 찾을 수 있기 때문이다.
내가 길을 잃지 않도록 도운
가장 중요한 안내자는
기도였다.


- 제임스 패커의《나이 드는 내가 좋다》중에서 -


* 사노라면
때때로 길을 잃어버립니다.
어디로 가야할 지 방향을 못찾고 헤맵니다.
나침반마저 없을 때, 마지막으로 매달릴 수 있는 것이
명상과 기도입니다. 깊은 명상과 기도가
나를 강하게 붙잡아 줍니다.
길을 열어줍니다.     

반응형

'생활의 발견 > 아침편지' 카테고리의 다른 글

희망이란  (0) 2015.07.31
인생의 투사  (0) 2015.07.30
마음을 꺼내 놓는다  (0) 2015.07.28
서른 살부터 마흔 살까지  (0) 2015.07.27
작은 둥지  (0) 2015.07.24
반응형

밀레니얼 제너레이션

 

 

밀레니얼 제너레이션
국내도서
저자 : 린 C. 랭카스터,데이비스 스틸먼 / 양유신역
출판 : 도서출판더숲 2010.06.21
상세보기

 

 

* 목       차 *

 

1부 밀레니얼 세대가 나타났다

1장 밀레니얼 세대의 나라 - 처음 만난 세대와 기존의 전통 세대, 베이비붐 세대,
X세대 사이의 충돌 그리고 조화
- 밀레니얼 세대를 움직이는 M팩터의 발견
- 밀레니얼 세대를 감싸안다
- 각 세대는 서로 다를 뿐이다
- 새로운 세대를 맞을 준비를 하라

2부 가족에서 직장으로

2장 부모 - 무선 탯줄로 연결되다
- 부모 역할의 진화
- 가족 모두가 대학에 가다
- 직장 세계에 오신 것을 환영합니다, 엄마 아빠
- 직장 생활이 당신에게 적합해지려면
- 밀레니얼 세대는 어떻게 행동해야 할까?
- 집처럼 편한 곳은 없다

3장 권능감 - 금수저를 입에 물고 태어난 세대
- 밀레니얼 세대는 버릇이 없다?
- 권리와 자격을 주장하는 세대
- 권능감에 대한 부정적 측면
- 채용 : 고용 과정에서 생긴 오해를 풀어라
- 유지 : 업무와 회사의 비전을 일치시켜라
- 보상 : 밀레니얼 세대가 좋아하는 것을 주는 것
- 존경 : 서로의 입장이 되어보는 것

4장 의미 - 나는 누구이며, 또 여기는 어디인가?
- 일에서 의미를 찾는 밀레니얼 세대
- 각 세대는 ‘의미’라는 말에 어떤 의미를 부여하는가
- 밀레니얼 세대는 세상의 변화를 이끌어내려 한다
- 밀레니얼 세대는 혁신가가 되고 싶어한다
- 밀레니얼 세대는 누군가 자신들의 목소리를 들어주길 원한다
- 밀레니얼 세대는 자신이 성공하고 있는지 알고 싶어한다
- 밀레니얼 세대는 일을 통해 자신을 표현하고 싶어한다

3부 하루하루 관리하기

5장 높은 기대치 - 보이는 것과 같은 결과를 얻게 될까?
- 기대치의 차이에 주의를 기울여라
- 당신이 누구인지 알려줘라
- 관심끌기
- 운명적인 사랑을 만날 수 있는 곳은 따로 있다
- ‘오리엔테이션’이란 말을 꺼리는 이유
- 기초 훈련은 군대에서만 필요한 것이 아니다
- 기대치 관리하기 : 호루라기를 들고 코칭 준비를 시작하라

6장 빠른 속도 - 숨가쁘게 고속질주하는 직장 생활 관리하기
- 가속 페달을 바닥에 닿을 때까지 밟게 된 이유
- 밀레니얼 세대의 속도에 대한 욕구 측정하기
- 멀티태스킹을 인정할 수도 없고, 멀티태스킹 없이 살 수도 없다.
- 기업의 사다리와 미끄럼틀 : 현대의 진로 탐색

4부 우리는 모두 한 배를 탔다

7장 소셜 네트워킹 - 온라인 휴게실에 모이다
- 모든 세대는 항상 네트워크를 구성했다. 무엇이 달라졌나?
- 가상 세계에서 휴식을 취한다
- 친밀함이 다시 정의되고 있다
- 새로운 의미의 전문가가 등장하다
- 가상세계를 여행할 때 마주치는 위험들
- 마이스페이스를 넘어 직장으로

8장 협력 - 경쟁 상대가 아닌 동료로 생각하기
- 단체 스포츠처럼 일하기
- 밀레니얼 세대에게 리더는 협력자다
- 지식 전수를 위한 새로운 협력의 국경
- 극단적인 사무실 꾸미기

9장 결론 - 당신 조직 내의 M팩터를 발현시켜라

반응형

+ Recent posts