1.선설계 후 코딩 지향
기본중에 기본이지만 가장 지키기 힘듬. 노트라던가 마인드 맵 등을 활용해서 알고리즘을 설계 후 코딩하는 것이 습관화 되어야함
어느정도 난도가 있는 함수에 적용. 쉬운 메서드 등을 제작할 때마다 설계하는것은 귀찮으니. 설계하기 귀찮다고 그냥 코드부터 짜기 시작하면 알고리즘도 그렇고 문제가 많은 함수가 탄생할 가능성이 높다! 설계법은 2번 챕터에서 참조
2.함수랑 메서드 이름 짓는법
남들이 알아보기 쉬운것이 기본.
-3단어 이상은 피할것. 꼭 지켜야하는 건 아니지만 가능하다면 3단어 이하로 짓는것이 좋다.
-이름 짓는법은 여러가지인데 보편적으로 단어가 바뀔 때마다 대문자를 붙이는 것이 보편적이다.
-언더바 사용은 개발자들과 논의할 것. 언더바를 난발하는 건 좋지않다. 내장함수에 언더바 들어간걸 본 적 있는가 ?(이재혁)
-GetIDPW와 같은 함수는 이름이 문제가 아니라 역할을 분리하는게 좋다. -> GetID, PW
이름에 두가지 이상의 기능이 들어갈 경우는 이름이 문제가 아니라 함수 자체가 문제가 아닌지 생각해볼것.
-함수 이름같은건 챗지피티나 찾아보고 짓는 것을 추천한다. 이건 코딩 실력 문제가 아니라 다른 사람들이 보편적으로 쓰는 단어가 무엇인지 아는 것이 중요하기 때문에 다른 자료들을 많이 참조해도 나쁠 것이 없다.
-지역변수여도 명확하게. 뭐 foreach s in str 이런 코드에서는 상관 없겠다만, 지역변수 이름을 a1, a2로 지으면 남이 보기엔 화가난다.
당장 1년뒤에 자신이 봐도 기억 못할것.
2.1. 영어로 쓴다.
2.2. 동사로 시작한다. Device.getMessage();
2.3. do, does는 쓰지 않는다.
2.4. 표준 접두사(standard prefixes)를 활용해라 (get, set, is/has/can/etc)
2.5. 도메인 언어(업계 언어)로 작성해라.
bankAccount.setMoney(new Money(200)) 보다
bankAccount.deposit(new Money(200))이 더 좋다.
이유는 추상화 단계가 높고, 업계 용어를 썼기 때문에 더 가깝게 느낀다.
2.6. 객체.동사목적어 패턴으로 작성해라 (주어.동사목적어 패턴)
Device.getMessage(); // 장치가 얻어온다. 메세지를.
Device.isValid(); // 장치가 유효하다.
Device.hasPort(); // 장치가 포트를 가진다.
2.7. 동사 전에 형용사, 부사를 쓰지 않는다.
(void) invokeWithTarget: (id) target;
(void) selectTabViewItem: (NSTabViewItem *) tabViewItem
2.8. 이벤트 함수는 on으로 시작하는게 좋다
보통 on으로 시작하면 콜백함수이다. 콜백함수는 이벤트가 발생하면 불리는 함수이다.
onAvailable() // Available이 되면(이벤트가 발생하면) 불러지는 함수.
onChanged()
언어마다 다른데 맨 앞 문자는 대문자가 관례이다.(c#)
3.영어실력
주인장도 영어를 드럽게 못하지만 컴퓨터 관련 영어는 반드시 익히는 것이 좋다. 대부분의 줄임말이 영어고, 자료같은 것도 영어라
이론 시간에 영단어를 외우는 것을 추천한다.
4.버전관리(GIT)
커밋하는게 굉장히 귀찮긴 하지만 미래의 자신에게 겁나 도움되고, 이것도 기본기중에 기본기다. 근데 버전을 바꿀 때 마다 일일히 파일을
따로 저장할 수는 없기 때문에 Git을 이용한다. 즉 Git을 잘 활용하는 법을 익히는 것은 필수.
5.백업
위와 같은 말인데 요즘은 깃이 백업도 해줘서 굿. 만약 프로젝트 파일을 날려먹으면 그냥 프로그래머 하지 않는 것이 좋다.
백업은 기본중에 기본.
6.반복되는 과정을 추상화해서 줄이기
진짜 너무 중요한건데 우리 지훈킴 씨가 잘 못하는것. 뭔가 반복되는게 있는거 같으면 줄일 생각부터 해야한다.
이것도 많이 해보면 늘긴하는데 그냥 눈에 보인다.
그리고 이것이 함수형 프로그래밍에서 기본기 이다.
애초에 메서드가 반복되는 과정을 줄이라고 나온 것. 그냥 일을 하다보면 복붙을 할 일이 많을텐데
복붙을 해야할 것 같으면 이거 줄일 방법이 없나 ? 하면서 생각해보자.
7.찾아보고 따라하면 구현할 수 있다
마음가짐 문제인데 특히 알고리즘같은 경우. 절대로 하지 못할 것 같아도 머리박고 하다보면 진짜 안되는 것이 없다는 것을 깨닫게
올 때가 언젠간 온다. 그냥 머리 박으면 무조건 된다. 무조건 잊지말자.