리팩토링 장인의 DOM 생성 코드를 템플릿 엔진으로 대체 실행중인 응용 프로그램을 변경할 때 장인의 DOM 생성 코드를 읽는 것이 어려울 수 있습니다. 예를 들면, 다음과 같이 장인적으로 HTML Document Object를 작성 jQuery.append()를 사용하여 DOM을 추가하는 소스 코드가 있다고 가정합니다. 이 소스 코드에서 렌더링되는 HTML을 직관적으로 읽는 것은 어렵습니다. DOM의 구조를 수정하고 싶을 때 변경 위치를 식별하기가... HTML자바스크립트jQuery리팩토링Handlebars 임시 변수 인라인 (Inline Temp) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 임시 변수에 대한 참조 제거 메서드의 반환 값에 임시 변수가 포함되어있을 때만 방법을 추출 할 때... 리팩토링루비 메서드 추출(Extract Method) 하나씩 리팩토링 기술 요약 즉시 꺼낼 수 있도록 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 코드 조각을 메소드로 사용하고 목적을 설명하는 메소드 이름으로 지정 메소드 이름과 메소드 내용의 의미있는 거리가 가까운 작은 메소드를 유의하십시오. 주석은 종종 추출 할 수있는 방법을 식별하는... 리팩토링루비책 알고리즘 변경 (Substitute Algorithm) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 이해하기 쉬운 알고리즘으로 메소드 내용을 다시 작성하는 것 테스트에 대해 새로운 알고리즘을 실행하... 리팩토링루비 인수 객체 도입 (Introduce Parameter Object) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 여러 인수를 하나의 객체로 결합 인수 정보는 변경하지 않고 숫자를 줄이는 것 복수의 인수에 관련성... 리팩토링루비 설정 방법 삭제(Remove Setting Method) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 불필요한 세터 제거 필드의 정보를 다시 쓰고 싶지 않다면 (그렇지 않아야 함), 그것을 명확히하는... 리팩토링루비 루프에서 컬렉션 클로저 메서드로 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 each계의 처리를 map계의 처리로 하는 것 블록 내에서의 루프 처리의 기술로부터, 메소드 체인... 리팩토링루비 인수 삭제(Remove Parameter) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 메소드 본체가 인수를 사용하지 않게 되어 인수를 삭제하는 것 인수의 추가 역 필요하지 않게 된 것... 리팩토링루비 CSS 리팩토링 reset css나 지워지지 않도록 주의 오류가 발생하는 것을 걱정하지 마십시오. Console이 없으면 아래에 표시 미케 같은 셀렉터를 정렬하고 정리해 두는 것... 리팩토링CSS 인수 추가(Add Parameter) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 메소드를 변경하기 전에 이전에 전달되지 않은 정보가 필요하며 인수를 추가하는 것 다른 옵션이있는 ... 리팩토링루비 메소드 이름 변경(Rename Method) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 메소드명으로부터 메소드의 목적을 모르는 경우에 메소드명을 변경하는 것 메소드 이름이 너무 짧아서 ... 리팩토링루비 메서드 인라인화(Inline Method) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 호출자의 메서드를 호출자에게 내장하고 호출하는 메서드를 삭제합니다. 방법 추출의 역 실제 처리와 ... 리팩토링루비 중복 조건 분기 조각의 통합 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 여러 조건문에 공통으로 들어있는 처리를 외출하는 것 공통 처리가 들어있는 위치에 따라 절단 대상이... 리팩토링루비 조건식 통합 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 동일한 반환 값을 반환하는 여러 조건식을 메서드로 추출하여 원 라이너로 만듭니다. 조건식을 OR이... 리팩토링루비 조건부 분기 재구성(Recompose Conditional) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 언어 고유의 구문 요소 사용 관용구 (조건 등에 사용할 수있는 기호) 등 완결에 실현 가능한 것을 사용 기술... 리팩토링루비 조건문 분해(Decompose Conditional) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 판정 방법화 조건문을 메소드로 추출하고 메소드 이름에 의미를 부여합니다. 산술 연산자를 if의 조건식에서 지... 리팩토링루비 each 내에서의 render 부분을 collection으로 변경하여 가속화 뷰 내에서 부분 템플릿을 each로 호출할 때 곤란한 일. 예) 루트 (welcome) 화면에서 픽업 한 상품 일람을 표시 (상품 일람은 다른 화면에서도 사용하기 때문에 부분화) welcome_controller.rb welcome.html.erb /shared/products/_index_item.html.erb each로 돌릴 때마다 부분 파일을 불러 버린다. 로드 속도가 느립니다. ea... 리팩토링컬렉션루비Rails 【Tips】일정 데이터수마다 개행하는 정형 패턴 에 대한 리팩토링 (2) 개행 처리를 버퍼를 사용한 정형 패턴으로 변경 데이터를 단번에 대입(append) 각 계산식을 하나의 목록으로 결합... 파이썬리팩토링초보자ExcelRefactoring Refactoring Ruby 리팩토링 오뎅 편의점의 오뎅은 건강하고 만족감도 포만감도 높고, 무로 영양도 취할 수 있고, 다이어트의 아군이니까 먹고 싶다. 하지만 살 때의 비용도 높아서 다른 것을 선택해 버린다. 단백질 바나 주먹밥 등. 비용의 원인으로 먹을 때의 뜨거운 허프 하프! 가 있다는 것을 깨달았기 때문에 무너져 보았다. 겨울의 추운 하늘에서 식힌다. 리팩토링에서는 메소드의 분할을 하거나 하고, 가능한 한 세세하게 클래스의 ... 리팩토링오뎅루비 React Redux의 고부하 구성 요소를 빠르고 파악 언제나 과도하게 업데이트를 반복하는 구성 요소가 나올 수 있습니다. 이 녀석은 아무런 관련없는 동작을 해도 업데이트 할 수 있으며, 경우에 따라 일부 구성 요소를 제어하면 작동이 놀라울 정도로 개선되므로 이번에는 과도하게 업데이트를 반복하는 고부하 구성 요소를 찾는 방법을 소개합니다. 확실히 보고, 부하가 높은 처리도 문제 없게 보여 버리는 딜레마가 있습니다. 거기서, 브라우저상에서의 CPU... 리팩토링reduxReact공연 【ExcelVBA】 상세 집계 처리의 전술 메모 아래 그림 오른쪽에는 소위 미완성 부품 목록이 있습니다. 이 미완성 부품 리스트는 매일 서버상에서 생성되어 그 「미완성의 양」이라고 하는 정보를 사용해 번다운 차트를 작성하는 것이다. 하루 8시간 속에서 매일 5시간이라는 것은 좀처럼 터프할 것이다. 이 지연은, 미완성 부품 리스트의 시트 A를 집계하고 있던 평소의 처리에 가세해, 조금 조건이 다른 시트 B도 해 주었으면 하는 개수 속에서 발... 전술현장 개선VBA리팩토링처리 속도 중간 데이터의 스키마를 안전하게 변경하는 단계 한 데이터베이스 (스토리지)의 테이블 (경로)에 열 (필드) a가 있고 그것을 읽고 쓰고 있다고 가정합니다. 이 흐름에 b를 추가하는 절차를 생각해 봅시다. 테이블에 열 b를 NULL 권한 (선택 사항)으로 추가합니다. 이 단계에서 b는 NULL로 작성되었으며 읽을 수 없습니다. 열 b 의 값을 쓰도록 합니다. 열 b의 값을 읽으십시오. 이 때, NULL 가 되어 있는 낡은 레코드도 읽는다면... 리팩토링데이터 엔지니어링파이프라인배치스키마 거대한 로직 클래스의 리팩토링을 시도했습니다. DB에서 데이터 A, B 가져 오기 분류 a, b, c마다 처리가 다른 개소(로직①)가 있다 분류 a, b, c는 API 매개 변수로 식별 할 수 있습니다 데이터 AB의 값에 기초하여 계산 논리 ②, ③을 수행한다 주 처리가 플로우와 로직을 너무 꽉 찼습니다. 전체의 흐름을 추구하려고 하면 API→메인 처리라고 해 메인 처리의 거대 소스를 위에서 아래까지 보지 않으면 안 된다 API와 메인 ... 리팩토링시퀀스 다이어그램신인 프로그래머 응원C# 【ExcelVBA】폭속 컬러링의 전술 메모 엑셀 VBA로 예실 관리표 왠지 만들 때의 대량 셀의 칼라링은 시간 걸립니다. 그것을 폭속화합니다. 코멘트에서 제안 사항을 받았습니다. 코멘트가 활발해지는 것이 좋다! 감사합니다. 제안 ① : ForEach가 아니라 중첩이 깊어져도 이중 루프하는 것이 좋다 제안 ② : 255자를 넘는 판정에서는 Join보다 Len로 숫자에 취해 판정하는 것이 좋다 ChangeColor 어떤 값을 찾아 대량으... 전술현장 개선VBA리팩토링처리 속도 i18n, enum을 이용하여 formfor의 f.select를 일본어화 schema.rb new.html.erb 당초는 이런 느낌으로 쓰고 있었습니다만, 이것이라면 데이터베이스에 문자열의 데이터가 직접 들어가기 때문에 별로 좋지 않습니다. 그래서 enum을 이용하여 데이터베이스에는 수치가 들어가도록 했습니다. category는 물론 integer형으로 합니다. 유명한 enum 이군요. 컬럼 안의 항목에 정수를 할당해, 메소드를 간단하게 실행할 수 있게 되거나, ... I18nRailsenum리팩토링루비 VIEW를 DRY로 만드는 helper 기능 모델로 스코프를 사용하는 등, 가능한 한 컨트롤러를 DRY로 해 왔기 때문에, view측도 그 흐름을 잡아 가고 싶다고 생각해, 조사했습니다. 중복한 쓰는 방법이 줄어들기 때문에 꽤 예쁘게 쓸 수 있었습니다. 자신이 투고한 책의 화상을 표시하는 기능을 만들고 있었습니다만, 만약 화상을 투고를 하지 않았던 경우, noimage라고 하는 화상을 표시하고 싶고, if문을 view에 쓰고 있었습니다... 리팩토링도우미RailsDRY joins로 테이블을 연결할 때의 2 종류의 방법 【해시】 중간 테이블을 이용하여 자신이 좋아하는 books를 일람으로 볼 수 있도록 하고 싶다. 테이블 구조는 아래 같은 느낌입니다. 이것으로 자신이 좋아하는 book 일람을 취하고 싶었을 때, 방법을 모르고 빠졌기 때문에, 각서입니다. joins하지 않고 view 화면이나 each하면 sql이 대량 발행되어 조작이 무거워집니다. 가능한 한 발행하고 싶지 않으므로 joins합니다. 자신이하고 싶은 테... 리팩토링SQLDBRails 레거시 코드를 단계적으로 개선 Controller에서 Service로 "Model"을 전달하고 있으며, 어떤 View를 표시할지는 Service가 알고 있다. Service가, 화면·기능에 대응한, 이른바 트랜잭션 스크립트가 되고 있다. Controller가 기능하고 있지 않다는 것은 제쳐두고, Service가 트랜잭션 스크립트가 되어 버리고 있다고 하는 것은, 비교적 있는 것이 아닐까 생각합니다. 변경에 약하다. 비즈니... 리팩토링DDD자바 레거시 코드 개선 가이드 용어집 은 레거시 코드를 다루는데 좋은 책이지만, 용어집을 포함하지 않고 읽을 수 없다. 그래서 용어집을 만들어 보았다. 편집하고 기도한다 : 우선 구현하고 나서 하늘에 품질을 맡긴다. 보호 및 변경 : 변경 대상 소스 코드의 테스트 코드를 그린 다음 테스트합니다. 테스트 하네스 : 자율 테스트 코드 의상 오브젝트: 협조 클래스를 의장한 것. 모의 객체를 대략적으로 포착 한 것 (요급 다이어그램) ... 리팩토링레거시 코드테스트 구동 개발레거시 코드 개선 가이드 이전 기사 보기
장인의 DOM 생성 코드를 템플릿 엔진으로 대체 실행중인 응용 프로그램을 변경할 때 장인의 DOM 생성 코드를 읽는 것이 어려울 수 있습니다. 예를 들면, 다음과 같이 장인적으로 HTML Document Object를 작성 jQuery.append()를 사용하여 DOM을 추가하는 소스 코드가 있다고 가정합니다. 이 소스 코드에서 렌더링되는 HTML을 직관적으로 읽는 것은 어렵습니다. DOM의 구조를 수정하고 싶을 때 변경 위치를 식별하기가... HTML자바스크립트jQuery리팩토링Handlebars 임시 변수 인라인 (Inline Temp) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 임시 변수에 대한 참조 제거 메서드의 반환 값에 임시 변수가 포함되어있을 때만 방법을 추출 할 때... 리팩토링루비 메서드 추출(Extract Method) 하나씩 리팩토링 기술 요약 즉시 꺼낼 수 있도록 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 코드 조각을 메소드로 사용하고 목적을 설명하는 메소드 이름으로 지정 메소드 이름과 메소드 내용의 의미있는 거리가 가까운 작은 메소드를 유의하십시오. 주석은 종종 추출 할 수있는 방법을 식별하는... 리팩토링루비책 알고리즘 변경 (Substitute Algorithm) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 이해하기 쉬운 알고리즘으로 메소드 내용을 다시 작성하는 것 테스트에 대해 새로운 알고리즘을 실행하... 리팩토링루비 인수 객체 도입 (Introduce Parameter Object) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 여러 인수를 하나의 객체로 결합 인수 정보는 변경하지 않고 숫자를 줄이는 것 복수의 인수에 관련성... 리팩토링루비 설정 방법 삭제(Remove Setting Method) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 불필요한 세터 제거 필드의 정보를 다시 쓰고 싶지 않다면 (그렇지 않아야 함), 그것을 명확히하는... 리팩토링루비 루프에서 컬렉션 클로저 메서드로 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 each계의 처리를 map계의 처리로 하는 것 블록 내에서의 루프 처리의 기술로부터, 메소드 체인... 리팩토링루비 인수 삭제(Remove Parameter) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 메소드 본체가 인수를 사용하지 않게 되어 인수를 삭제하는 것 인수의 추가 역 필요하지 않게 된 것... 리팩토링루비 CSS 리팩토링 reset css나 지워지지 않도록 주의 오류가 발생하는 것을 걱정하지 마십시오. Console이 없으면 아래에 표시 미케 같은 셀렉터를 정렬하고 정리해 두는 것... 리팩토링CSS 인수 추가(Add Parameter) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 메소드를 변경하기 전에 이전에 전달되지 않은 정보가 필요하며 인수를 추가하는 것 다른 옵션이있는 ... 리팩토링루비 메소드 이름 변경(Rename Method) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 메소드명으로부터 메소드의 목적을 모르는 경우에 메소드명을 변경하는 것 메소드 이름이 너무 짧아서 ... 리팩토링루비 메서드 인라인화(Inline Method) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 호출자의 메서드를 호출자에게 내장하고 호출하는 메서드를 삭제합니다. 방법 추출의 역 실제 처리와 ... 리팩토링루비 중복 조건 분기 조각의 통합 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 여러 조건문에 공통으로 들어있는 처리를 외출하는 것 공통 처리가 들어있는 위치에 따라 절단 대상이... 리팩토링루비 조건식 통합 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (패턴 추가 실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 동일한 반환 값을 반환하는 여러 조건식을 메서드로 추출하여 원 라이너로 만듭니다. 조건식을 OR이... 리팩토링루비 조건부 분기 재구성(Recompose Conditional) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 언어 고유의 구문 요소 사용 관용구 (조건 등에 사용할 수있는 기호) 등 완결에 실현 가능한 것을 사용 기술... 리팩토링루비 조건문 분해(Decompose Conditional) 하나씩 리팩토링 기술 요약 개인적으로 간단하고 도입하기 쉽다고 생각하는 것으로부터 즉시 꺼낼 수 있도록 시스템을 움직여 사양을 조사 테스트 방법 만들기 테스트 실패 확인 테스트 성공 확인 작은 변경, 수시 테스트 실행 (실패 확인 -> 성공 확인) 마지막 테스트 실행 마지막 동작 확인 판정 방법화 조건문을 메소드로 추출하고 메소드 이름에 의미를 부여합니다. 산술 연산자를 if의 조건식에서 지... 리팩토링루비 each 내에서의 render 부분을 collection으로 변경하여 가속화 뷰 내에서 부분 템플릿을 each로 호출할 때 곤란한 일. 예) 루트 (welcome) 화면에서 픽업 한 상품 일람을 표시 (상품 일람은 다른 화면에서도 사용하기 때문에 부분화) welcome_controller.rb welcome.html.erb /shared/products/_index_item.html.erb each로 돌릴 때마다 부분 파일을 불러 버린다. 로드 속도가 느립니다. ea... 리팩토링컬렉션루비Rails 【Tips】일정 데이터수마다 개행하는 정형 패턴 에 대한 리팩토링 (2) 개행 처리를 버퍼를 사용한 정형 패턴으로 변경 데이터를 단번에 대입(append) 각 계산식을 하나의 목록으로 결합... 파이썬리팩토링초보자ExcelRefactoring Refactoring Ruby 리팩토링 오뎅 편의점의 오뎅은 건강하고 만족감도 포만감도 높고, 무로 영양도 취할 수 있고, 다이어트의 아군이니까 먹고 싶다. 하지만 살 때의 비용도 높아서 다른 것을 선택해 버린다. 단백질 바나 주먹밥 등. 비용의 원인으로 먹을 때의 뜨거운 허프 하프! 가 있다는 것을 깨달았기 때문에 무너져 보았다. 겨울의 추운 하늘에서 식힌다. 리팩토링에서는 메소드의 분할을 하거나 하고, 가능한 한 세세하게 클래스의 ... 리팩토링오뎅루비 React Redux의 고부하 구성 요소를 빠르고 파악 언제나 과도하게 업데이트를 반복하는 구성 요소가 나올 수 있습니다. 이 녀석은 아무런 관련없는 동작을 해도 업데이트 할 수 있으며, 경우에 따라 일부 구성 요소를 제어하면 작동이 놀라울 정도로 개선되므로 이번에는 과도하게 업데이트를 반복하는 고부하 구성 요소를 찾는 방법을 소개합니다. 확실히 보고, 부하가 높은 처리도 문제 없게 보여 버리는 딜레마가 있습니다. 거기서, 브라우저상에서의 CPU... 리팩토링reduxReact공연 【ExcelVBA】 상세 집계 처리의 전술 메모 아래 그림 오른쪽에는 소위 미완성 부품 목록이 있습니다. 이 미완성 부품 리스트는 매일 서버상에서 생성되어 그 「미완성의 양」이라고 하는 정보를 사용해 번다운 차트를 작성하는 것이다. 하루 8시간 속에서 매일 5시간이라는 것은 좀처럼 터프할 것이다. 이 지연은, 미완성 부품 리스트의 시트 A를 집계하고 있던 평소의 처리에 가세해, 조금 조건이 다른 시트 B도 해 주었으면 하는 개수 속에서 발... 전술현장 개선VBA리팩토링처리 속도 중간 데이터의 스키마를 안전하게 변경하는 단계 한 데이터베이스 (스토리지)의 테이블 (경로)에 열 (필드) a가 있고 그것을 읽고 쓰고 있다고 가정합니다. 이 흐름에 b를 추가하는 절차를 생각해 봅시다. 테이블에 열 b를 NULL 권한 (선택 사항)으로 추가합니다. 이 단계에서 b는 NULL로 작성되었으며 읽을 수 없습니다. 열 b 의 값을 쓰도록 합니다. 열 b의 값을 읽으십시오. 이 때, NULL 가 되어 있는 낡은 레코드도 읽는다면... 리팩토링데이터 엔지니어링파이프라인배치스키마 거대한 로직 클래스의 리팩토링을 시도했습니다. DB에서 데이터 A, B 가져 오기 분류 a, b, c마다 처리가 다른 개소(로직①)가 있다 분류 a, b, c는 API 매개 변수로 식별 할 수 있습니다 데이터 AB의 값에 기초하여 계산 논리 ②, ③을 수행한다 주 처리가 플로우와 로직을 너무 꽉 찼습니다. 전체의 흐름을 추구하려고 하면 API→메인 처리라고 해 메인 처리의 거대 소스를 위에서 아래까지 보지 않으면 안 된다 API와 메인 ... 리팩토링시퀀스 다이어그램신인 프로그래머 응원C# 【ExcelVBA】폭속 컬러링의 전술 메모 엑셀 VBA로 예실 관리표 왠지 만들 때의 대량 셀의 칼라링은 시간 걸립니다. 그것을 폭속화합니다. 코멘트에서 제안 사항을 받았습니다. 코멘트가 활발해지는 것이 좋다! 감사합니다. 제안 ① : ForEach가 아니라 중첩이 깊어져도 이중 루프하는 것이 좋다 제안 ② : 255자를 넘는 판정에서는 Join보다 Len로 숫자에 취해 판정하는 것이 좋다 ChangeColor 어떤 값을 찾아 대량으... 전술현장 개선VBA리팩토링처리 속도 i18n, enum을 이용하여 formfor의 f.select를 일본어화 schema.rb new.html.erb 당초는 이런 느낌으로 쓰고 있었습니다만, 이것이라면 데이터베이스에 문자열의 데이터가 직접 들어가기 때문에 별로 좋지 않습니다. 그래서 enum을 이용하여 데이터베이스에는 수치가 들어가도록 했습니다. category는 물론 integer형으로 합니다. 유명한 enum 이군요. 컬럼 안의 항목에 정수를 할당해, 메소드를 간단하게 실행할 수 있게 되거나, ... I18nRailsenum리팩토링루비 VIEW를 DRY로 만드는 helper 기능 모델로 스코프를 사용하는 등, 가능한 한 컨트롤러를 DRY로 해 왔기 때문에, view측도 그 흐름을 잡아 가고 싶다고 생각해, 조사했습니다. 중복한 쓰는 방법이 줄어들기 때문에 꽤 예쁘게 쓸 수 있었습니다. 자신이 투고한 책의 화상을 표시하는 기능을 만들고 있었습니다만, 만약 화상을 투고를 하지 않았던 경우, noimage라고 하는 화상을 표시하고 싶고, if문을 view에 쓰고 있었습니다... 리팩토링도우미RailsDRY joins로 테이블을 연결할 때의 2 종류의 방법 【해시】 중간 테이블을 이용하여 자신이 좋아하는 books를 일람으로 볼 수 있도록 하고 싶다. 테이블 구조는 아래 같은 느낌입니다. 이것으로 자신이 좋아하는 book 일람을 취하고 싶었을 때, 방법을 모르고 빠졌기 때문에, 각서입니다. joins하지 않고 view 화면이나 each하면 sql이 대량 발행되어 조작이 무거워집니다. 가능한 한 발행하고 싶지 않으므로 joins합니다. 자신이하고 싶은 테... 리팩토링SQLDBRails 레거시 코드를 단계적으로 개선 Controller에서 Service로 "Model"을 전달하고 있으며, 어떤 View를 표시할지는 Service가 알고 있다. Service가, 화면·기능에 대응한, 이른바 트랜잭션 스크립트가 되고 있다. Controller가 기능하고 있지 않다는 것은 제쳐두고, Service가 트랜잭션 스크립트가 되어 버리고 있다고 하는 것은, 비교적 있는 것이 아닐까 생각합니다. 변경에 약하다. 비즈니... 리팩토링DDD자바 레거시 코드 개선 가이드 용어집 은 레거시 코드를 다루는데 좋은 책이지만, 용어집을 포함하지 않고 읽을 수 없다. 그래서 용어집을 만들어 보았다. 편집하고 기도한다 : 우선 구현하고 나서 하늘에 품질을 맡긴다. 보호 및 변경 : 변경 대상 소스 코드의 테스트 코드를 그린 다음 테스트합니다. 테스트 하네스 : 자율 테스트 코드 의상 오브젝트: 협조 클래스를 의장한 것. 모의 객체를 대략적으로 포착 한 것 (요급 다이어그램) ... 리팩토링레거시 코드테스트 구동 개발레거시 코드 개선 가이드 이전 기사 보기