Skip to content

Conversation

@dev-dongwon
Copy link

step 5-2 : 프로토타입 패턴 이용해 todo 앱 구현하기

참가자

  • YM, TUNA

클래스

  • app.js : 어플리케이션 구동을 위한 프로그램
  • utils.js : 반복 및 유틸성 메서드를 모아놓은 유틸
  • commandParser.js : 명령어 파싱 및 instruction 객체로 명령어 전달
  • instruction.js : 명령어를 받아 각 명령어에 맞는 function 수행
  • exceptionHandling.js : 각 상황에 맞는 에러 객체를 만들어 throw

HTMLhead and others added 30 commits October 10, 2018 15:12
* Lecture3 - step1. 기본기능 구현 (code-squad#40)

* 스켈레톤 코드 작성

* 수많은 에러가 담긴 todo객체의 add함수 추가(id의 값을 제대로 가지지 못함, todo객체의 getStatusNum수정 필요

* 랜덤한 id값을 못가져오는 것을 수정. checkOverlap함수를 통해서 id의 값이 같지않도록 구현

* todo.add함수기능 완벽하게 구현

* todo.update함수 완성

* id를 입력받아 할일을 제거해주는 todo.remove함수 완성, 오류가많은 todo.printTask함수 완성

* todo.printTask함수 완성, tag를 확인하는 함수 제거(printTask를 통해 각 할일들의 태그가 무엇인지 확인이 가능하므로)

* todo.printTagRelate 함수 완성, todo.add함수에서 버그를 발견함

* 새로운 객체 안 배열에 저장하도록 만들어 문제 해결

* remove함수를 호출했을때, saveData.task배열에서 지워지는것 뿐 아니라 saveData.idArrays배열에서도 id를 지워지게 수정

* 테스트코드를 주석처리함 들여쓰기를 다시 맞춤

* saveData객체를 없애고 그 내용을 todo객체 안으로 집어 넣음, todo.idArrays의 값은 todo.add를 호출할때마다 추가되도록 수정.

* if(saveData.idArrays.indexOf(ranNum) !== -1)-> if(this.idArrays.includes(ranNum))으로 변경

* 기나긴 삼항연산자 statusNum[obj.status]++로 해결

* todo.update함수에서 바뀐 상태의 상태를 반영하지 않는 버그를 찾아내서 수정

* 함수마다 간단한 주석을 달아줌

* 주석추가

* 피드백을 위한 주석 추가

* 같은 숫자를 반복하는 것을 todo.task로부터 찾아와 sync가 완벽하게 맞도록 수정

* 쓸데없는 todo.idArrays에 쓰이는 배열과 메서드 제거

* 변수명 변경

* add나revmoe, update함수를 입력할때마다 각각 인자를 다르게 받아 다르게 출력하는 함수를 만듬

* 해야할 일들 주석으로 정리

* 만들어야 할 함수들 미리 작성

* time obj를 saveTimeObj로 이름을 변경하고 saveTimeObj에 doing일때의 시간과 done일때의 시간을 인자로 입력받아 경과된 시간을 반환해주는 getTakeTime 함수 구현

* 업데이트할 객체를 인자로 받아 id값과업데이트 될때의 시간 값을 saveTImeObj의 객체에 저장해주는 함수 구현

* todo.add함수에서 새 객체를 만들때 걸린시간 이라는 항목을 추가함

*  timeobj객체를 todo안으로 집어넣어 활용하기로 결정, 수정

* doingTimeArray와 takenTimeArray가 굳이 필요할것 같이 않아서 제거, 대신 task배열내의 객체에 timeData추가. 이를 이용해 updateDoingTime메서드 완성

* updateTakeTime메서드 구현. id가 같은 task.timeData값에 걸린 시간을 계산해서 저장해줌

* showTag메서드와 그 메서드를 위한 printByTag메서드 구현. printByTag는 tag과 status를 인자로 받아 같은인자와 tag를 출력, showTag메서드는 그 값을 세번 불러서 서로다른 3가지의 status값을 모두 출력.

* show메서드 구현 만약 status가 done상태일때만 시간을 출력해주도록 함

* printByTag메서드의 버그 수정(상태가done인 항목을 입력해도 걸린 시간이 나오지 않았음), show메서드의 버그 수정(상태가done이면 doing항목을 출력하라고 입력했을때 done항목도 같이 출력되었었음)

* 테스트 케이스 추가

* showAll메서드 구현, bind메서드를 이용함

* 같은태그를가짐과동시에 같은상태인것의 개수를 세는 함수 getSameTagAndStatusNum함수를 만듦

* show함수를 좀더 보기좋게 수정

* showTags를 위한 getSameTagArrays와 printSameTag함수를 만듬. 태그의 모든값이 담긴 배열을 만들고, 배열의 값을 통해 같은 값을 출력하는 함수를 만듬

* 태그가 같은 할 일의 개수를 계산해주는 함수 getSameTagNum을 만듬

* 함수의 쓰임새에 따라 정렬하여 보기편하게 수정

* 테스트 케이스들을 모두 주석처리하고 id의 경우의 수를 100가지로 늘림

* 사소한 버그 수정
rename getCommandArrayByRegexp to getCmdList
인자 개수로 1개 초과  나올 경우 즉시 종료 후 프로그램 다시 실행
외부 변수에 접근하지 않고 객체를 인자로 받을 수 있도록 변경
상수 99999 제거 후, max 값과 min 값으로 random 넘버 생성
async function to update objcet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants