클린코드 50p 중

함수의 인수

- 0개가 제일 좋다. 1개는 차선으로 생각해라

- 인수는 어렵다. 내려가며 읽기를 수행 못하도록 만든다.

*출력인수: 인수가 결과가 되는 인수(인수가 변환해서 반환값으로 나오는 게 아니라

               그냥 반환되는 것) this로 대체할 수 있다.

1개의 인수를 사용하는 흔한 경우 2가지

- 인수에 질문을 던지는 경우

ex) boolean fileExists("myfile"), boolean isTrue(username)

- 인수를 변환해서 그 결과를 반환하는 경우

ex) InputStream fileOpen("myfile")

 

2개의 인수를 사용하는 흔한 경우

- 두 인수가 하나의 값을 표현하고 자연적인 순서가 있는 경우

ex) Point(x,y) 좌표를 나타내는 함수

-위와 같은 경우가 아니라면 클래스로 인수를 줄여라

 

인수 객체

인수가 2~3개 필요하다면 일부를 독자적인 클래스 변수로 선언할 가능성을 짚어본다.

ex) Circle makeCircle( double x, double y, double radious)

 =>Circle makeCircle( Point center, double raduous)

                             ->개념을 표현한다.

동사와 키워드

함수의 의도나 인수의 순서와 의미를 제대로 표현하려면 좋은 함수 이름이 필요하다.

^단항 함수는 동사(함수이름), 명사(인수)가 서로 쌍을 이루어야 한다.

write(name)->이름을 쓴다   writeField(name)->필드를 쓰는데 그 필드가 이름이다

^함수 이름에 인수 이름을 넣는다. 인수를 기억할 필요가 없다.

 

부수효과를 일으키지마라

즉, 한 함수에 몰래 두 가지 기능을 넣지 마라

특정 상황에서만 필요한 함수는 좋지 않다.

 

명령과 조회를 분리하라

함수는 뭔가를 수행하거나 답하거나 둘 중 하나만 해야한다.

ex)객체 상태를 변경하거나 반환하거나 둘 중 하나만 해야한다.

public boolean set(String attribute, String value);

함수만 보고 의미를 알 수 없다.

attribute를 찾아 value로 설정 후 성공하면 true 실패하면 false라는 의미 였음 ㄷㄷ;

->attributeExists(String attribute);과 setAttribute(String attribute, String value);로 분리

attribute가 있는지 찾고!                attribute를 value로 설정하라!로 명확한 의미

 

오늘의 코드

#a = list(map(int, input().split()))


#def isItLengthOddNumber(a):
#    if(len(a) % 2 == 0):
 #       return False
  #  else:
   #     return True


def solve(a):
    # 반복문으로 돌리면 런타임 에러가 난다.
    # 다른 방법이 있을까?
    # 바이너리 서치처럼 더한다.
    # list a의 길이가 홀수인지 짝수인지 구한다.
    # 홀수면 맨 처음 인덱스까지 더해주고 짝수면 그냥
    # 안되는 게 아니라 함수만 구현하면 되는 문제였다.
    # 입출력을 받는 것이 아니었다.!!!!@!@!
    #if(isItLengthOddNumber(a)):
     #   ans = a[0]
    #else:
    #    ans = 0
    #for i in range(int(len(a)/2)):
    #    ans += a[round(len(a)/2)-i-1]+a[round(len(a)/2)+i]
    for i in range(len(a)):
    	ans += a[i]
    return ans


print(solve(a))

 

습관에 관한 유튜브 중

www.youtube.com/watch?v=I6yFcgRbaZQ

B=MAP 행동=동기*능력*자극

케이티가 새벽운동을 습관으로 만들고 싶었는데 하지 못한 이유는??

그 시간에 침대 위에서 페이스북 알림을 확인하고 있었다.

즉, 운동을 못하게 하는 것은 휴대폰 페이스북 하기!

페이스북 알림은 오는 순간 너무 보고 싶어진다.

이는 너무 강한 동기를 가지고 있다. 어쩔 수 없이 동기는 제쳐두고

능력과 자극을 바꾸기로 한 케이티

B=MAP는 MAP가 모두 1이상이어야 행동이 되고 습관이 된다.

나쁜 행동 나쁜 습관의 경우는 세 가지를 최소한으로 낮추면 안하게 된다.

반대로 좋은 습관은 세 가지를 최대한으로 끌어 올려 자꾸 행동하게 된다.

 

나의 나쁜 습관을 B=MAP로 생각해 보았다.

 

먼저 나의 나쁜 습관은 딴 짓을 많이 한다는 점이다.

이 딴짓에는 해야할 일 중 유튜브 보기, 주식 보기,

캐시워크 문제풀기, 습관을 체크하기위한 앱 보기, 졸릴 때 안자기가 있다.

 

내가 하고 싶은 행동은 계획에 맞춰 하는 일에 집중하는 것이다.(행동)

 

동기를 강하게 만들 수 있는 리스트(집중을 위한 동기부여)

계획한 일을 다하면 딴 짓을 할 수 있도록 딴 짓 시간을 부여하자.

계획한 일을 다하면 맛있는 것을 먹자

 

능력을 쉽게 만들 수 있는 리스트(집중을 위한 소규모 워크)

일을 하기 전에 스트레칭을 먼저 한다.

일을 하기 전에 명상을 하고 시작한다.

일단 제일 쉽다고 생각하는 것부터 시작한다.

제일 쉽다고 생각하는 것을 계획에 적어 놓는다.

 

자극을 많이 줄 수 있는 리스트(집중을 위한 방해물 치우기)

딴 짓에 해당하는 알림을 모두 끈다.

딴 짓에 해당하는 시간을 부여한다. 딴 짓은 몰아서 하도록 한다.

잠 온다면 15분 엎드려 자고 다시한다.

 

결론: 딴 짓을 할 시간을 만들고 나머지 시간에는 딴짓에 해당하는 일에 신경을 끈다.

(자기 전은 제외: 밤에 잠을 안 잠) 시작 전에 스트레칭 후 명상을 하고 시작한다.

계획에 제일 쉽다고 생각하는 것을 적어 놓고 그것부터 시작한다.

 

오늘 바꾼 일들

*내가 자주 보지만 쓸데없는 알림을 모두 끄기

*습관 기록 어플 하나씩만 쓰기

-식사,물,체중: 야지오

-수면: Sleepcylce

-습관: 마이루틴

-캘린더: Todoist-google Calender- VueMinder(연동)

-모두 기록: Goodnote5

 

캘린더 연동 

아이폰, 안드로이드, 맥, 윈도우 모두 연동할 수 있는 Todolist어플

Todoist

구글 캘린더를 연동할 수 있다.

아이폰 아이패드 애플워치 모두 사용이 가능하고 애플의 미리알림과 비슷하다.

VueMinder

구글 캘린더를 연동할 수 있다.

윈도우나 맥의 배경화면에 위젯으로 사용할 수 있다.

Pro버전을 쓰면 이벤트생성이 구글 캘린더에 동기화 된다.(무료는 보는 것만 되고 쓰는건 안됨)

Google Calender

위 두가지 어플을 연동하기 위해 사용한다.

Todoist에서 이벤트를 생성하면 데스크탑에서도 볼 수 있다.

반대로 데스크탑에서도 이벤트를 생성하면 애플워치에서 알림이 온다.

 

M1 맥북을 샀기 때문에 한 달만 써보고 Mac에서 todoist를 사용해야겠다.

 

이연님 클럽하우스에 관한 유튜브

요즘 핫한 SNS(?)어플 초대장이 있어야 들어갈 수 있다.

다양한 직군의 사람들과 대화할 수 있다.

 

오늘의 생각

데스크 세팅

맥북이 온다면 구미 집에 컴퓨터를 놔두고 대구 집에서 맥북으로 공부를 하기로 하자

대구에 있어야할 물품

{맥북, C to HDMI,C type Hub, 로지텍 유선 마우스, 한성키보드와 받침, 큰 모니터,모니터 암이 필요할 꺼 같은데.., 스피커, 충전기들}

구미에 있어야할 물품

{조립식 컴퓨터, 각종 선들, 무선 마우스, 헤드셋, 유선 키보드, 모니터}

 

요즘 하는 일

클린코드 책읽기

알고리즘 공부(파이썬으로 백준 풀기 )

블로그에 생각 정리(모든 기록을 다 적어보기)

운동( 요가와 걷기 간단한 근력 )

프로젝트( 쇼핑몰 만들기 ) - frontend(react)

new! react강의 듣기

remove javascript challenge 50

 

 

오늘의 노래

혁오 - isn't she lovely(cover)

Billie eilish - npr tiny desk Concert "My Future"

 

 

 

 

 

'오늘의 메모' 카테고리의 다른 글

21.02.12  (0) 2021.02.12
21.02.11  (0) 2021.02.11
21.02.09  (0) 2021.02.09
21.02.08  (0) 2021.02.08
21.02.07  (0) 2021.02.08

+ Recent posts