본문 바로가기

Research/Good codes3

수 조작하기 reduce + function dict 좋다고 생각한 코드. const operations = { w: (n) => n + 1, s: (n) => n - 1, d: (n) => n + 10, a: (n) => n - 10, }; function solution(n, control) { return [...control].reduce((prev, op) => operations[op](prev), n); } 딕셔너리 값에 함수를 넣어두고, 키를 리듀스의 curValue를 매개변수로 호출하는 것이 세련된 방식이라 생각 2023. 11. 16.
Refactoring_01.리팩터링 기본 Refactoring 2판, 마틴 파울러, 요약 정리 01.리팩터링 기본 ~p.78 만약 프로그램이 새 기능을 추가하기 복잡한 구조라면, 먼저 기능을 추가하기 쉬운 구조로 리팩터링한 다음 원하는 기능을 추가한다 리팩터링의 첫 단계는 리팩터링 코드 영역을 검사할 테스트 코드부터 짠다. 테스트의 성공 여부 확인은 자동화시켜서 효율을 높인다. 리팩터링 코드가 정상 작동되는지 비교 확인할 수 있기 때문이다 리팩터링을 할 때 작은 단계로 수정 후 바로 테스트를 진행한다. 작게 수정했을 때 발생한 문제는 금방 해결할 수 있기 때문이다. Git은 리팩터링 하나 했을 때 바로바로 커밋하고, 자잘한 변경들이 유의미한 단위로 뭉쳐지면 푸시한다 매개 변수 대신 질의 함수로 바꾸기 질의 함수 : 값을 계산하여 리턴하는 함수 .. 2023. 9. 27.
Refactoring 2판) 01.리팩터링 기본 리팩터링의 기본 ~p.78 만약 프로그램이 새 기능을 추가하기 복잡한 구조라면, 먼저 기능을 추가하기 쉬운 구조로 리팩터링한 다음 원하는 기능을 추가한다 리팩터링의 첫 단계는 리팩터링 코드 영역을 검사할 테스트 코드부터 짠다. 테스트의 성공 여부 확인은 자동화시켜서 효율을 높인다. 리팩터링 코드가 정상 작동되는지 비교 확인할 수 있기 때문이다 리팩터링을 할 때 작은 단계로 수정 후 바로 테스트를 진행한다. 작게 수정했을 때 발생한 문제는 금방 해결할 수 있기 때문이다. Git은 리팩터링 하나 했을 때 바로바로 커밋하고, 자잘한 변경들이 유의미한 단위로 뭉쳐지면 푸시한다 임시 함수를 질의 함수로 바꾸기 질의 함수 : 값을 계산하여 리턴하는 함수 질의 함수에 부수효과가 없다면 변수에 저장해서 변수를 계속 사.. 2023. 8. 29.