Python study/코딩스타일
-
리팩토링 - 캡슐화Python study/코딩스타일 2021. 12. 3. 16:48
캡슐화 1. 레코드 캡슐화 하기 곳곳에 쓰이는 가변 데이터는 레코드가 아니라 객체로 저장하자 데이터 구조를 명확히 표현할 수 있고, 코드 한 곳에서 관리하고 표현할 수 있게 된다. before after 2. 임시 변수를 질의 함수로 바꾸기 곳곳에 쓰이는 임시변수를 메써드로 만들어, 굳이 임시 변수를 더 만들지 말자 Before After 3. 클래스 추출하기 개발 과정에서 점점 비대해지는 클래스를 적절히 분리한다. 단일 책임 원칙 (SRP)를 잊지말자. before after 추가 설명과 팁 일부 데이터와 메써드를 따로 묶을 수 있다면 어서 분리하라는 신호다. 함께 변경되는 일이 많거나, 의존하는 데이터들도 분리한다. 개발 중, 일부 기능만을 사용하기 위해 서브 클래스를 만들어야 한다면 클래스를 나눠야..
-
리팩토링Python study/코딩스타일 2021. 12. 3. 14:47
기본적인 리팩토링 1. 함수 추출하기 목적과 구현을 분리한다. 코드를 보았을때 "어떻게" 보다 "무엇"을 하는지 한 번에 알수 있도록 함수의 이름을 짓자 하나의 함수는 한가지 목적을 가지고 한가지 일만을 해야한다. 즉 한가지 일만 할수 있도록 함수를 쪼개고 추출하자 Before after 추가 설명과 팁 단 한 줄짜리 함수라도 상관없다. 무엇을 하는지 명확하게 드러나야 한다. 함수의 길이는 한 눈에 들어와야 한다. 두 번 이상 사용될 코드는 함수로 만들자 함수 이름을 당장 짓기가 어려우면, 주석으로 먼저 무슨 일을 하는지 적어두자. 반면, 코드 자체로 무엇을 하는지 명확히 보인다면, 굳이 추출하지 않는다. 2. 변수 추출하기 복잡한 표현식은 과정을 나누어 표현한다. 각 과정을 잘 드러내는 임시 변수를 사..
-
코드에서 나는 악취Python study/코딩스타일 2021. 12. 3. 13:53
나쁜 코드들은 좋지 못한 특징들을 가지고 있는데, 이런 코드들은 악취가 난다고 표현한다. 이런 코드들은 리팩터링의 대상이 된다. 꼭 리팩토링이 아니라도, 이런 코드가 나쁘다는 '감'정도는 가지고 있어야 한다. 책에서는 24가지를 말하는데, 내가 생각하는 중요한 일부만 정리한다. 명료하고 정확하지 않은이름 변수, 함수, 클래스, 파일 이름 모두 해당된다. 이름은 항상 "무엇을 하는지" 명확하게 드러내야 한다. 이름은 역할과 본질을 나타내 준다. 코딩할 때 가장 어려운 파트이기도 하다 중복 코드 중복 코드가 있다면, 수정할 때 2번 이상 수정해야 한다. 까먹어서 수정 안 하는 등 위험하다. 3번 이상 중복 코드가 등장하면 어떻게든 한 곳으로 모아주어야 한다. 긴 함수, 긴 클래스, 긴 매개변수 목록 길수록 ..