본문 바로가기

분류 전체보기560

[Clean Code 정리] 오류 처리 Clean Code - 오류 처리 1. 오류 코드 대신 예외를 사용하라 # 오류 코드를 사용하는 예 def analysis_wafer(self, wafer): if wafer.is_valid: self.do_something(wafer) else: self.logger.error("analysis error") # 예외 처리를 사용하는 예 def analysis_wafer(self, wafer): try: self.do_something(wafer) except InvalidWaferError as error: self.logger.error("%s : %s", wafer.get_id(), error) 2. try-catch문 (try-except)문을 먼저 사용하라 def try_except_in_py.. 2022. 5. 29.
[Clean Code 정리] 객체와 자료구조 Clean Code - 객체와 자료구조 1. 개요 - 변수를 private으로 정의하는 이유는 외부 클래스가 클래스 내부 변수에 의존하지 않고 변경의 유연함을 얻기 위함이다. - 멤버 변수의 사용 용도에 따라 a. read only -> getter() 제공 b. write only -> setter() 제공 c. read/write -> getter(), setter() 제공 2. 자료 추상화 class Wafer(): def __init__(self): self.id = None self.exposure_start_time = None self.exposure_end_time = None self.exposure_time = None - 클래스 내부 데이터를 public으로 선언하고 외부에서 직접 접.. 2022. 5. 29.
[Clean Code 정리] 형식 맞추기 Clean Code - 형식 맞추기 1. 개요 1) 형식 맞추기 - 질서정연하고 깔끔하며, 일관적인 코드를 본다면 사람들에게 전문가가 짰다는 인상을 준다. - 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. - 코드 형식을 맞추기 위한 간단한 규칙을 정하고, 팀으로 일한다면 팀이 합의한 규칙을 정해 모두가 그 규칙을 지켜야 한다. 2) 형식을 맞추는 목적 - 코드 형식은 의사 소통의 일환이며, 의사소통은 개발자의 일차적인 의무이다. - 오늘 구현한 코드의 스타일과 가독성 수준은 유지보수의 용이성과 확장성에 지속적인 영향을 미친다. - 코드는 사라져도 스타일과 규율을 사라지지 않는다. 2. 형식을 맞추는 방법 1) 적절한 행 길이 유지 - 소스 코드의 길이는 500줄을 넘지 않고 대부분 200줄 정.. 2022. 5. 29.
[Clean Code 정리] 주석 Clean Code - 주석 1. 주석 - "나쁜 코드에 주석을 달지 마라. 새로 짜라" - 브라이언 W.커니핸, P.J.플라우거 - 주석은 필요악이다. - 주석은 코드로 의도를 표현하지 못해, 실패를 만회하기 위해 작성하는 것이다. - 주석은 언제나 실패를 의미한다. - 주석 없이는 자신을 표현할 방법을 찾지 못해 할 수 없이 주석을 사용한다. - 주석이 오래될수록 코드에서 멀어져 거짓말을 하게 될 가능성이 커진다. - 코드는 유지보수를 해도, 주석을 계속 유지보수하기란 현실적으로 불가능하다. 2. 주석은 나쁜 코드를 보완하지 못한다. - 코드에 주석을 다는 일반적인 이유는 코드 품질이 나빠서이다. - 깔끔하고 주석이 거의 없는 코드가 훨씬 좋다. - 주석을 작성하는 대신 코드를 깔끔하게 작성하는데 시.. 2022. 5. 28.
[Clean Code 정리] 함수 Clean Code - 함수 1. 함수 - 어떤 프로그램이든 기본 단위는 함수다 - 길고, 중복되며, 난해한 문자열과 낯설고 모호한 타입의 코드로 이루어진 함수는 이해하기 어렵다. - 읽기 쉽고 이해하기 쉬운 함수를 작성해야 한다. 2. 작게 만들어라 - 함수를 만드는 규칙의 첫번째, 두번째도 작게 만드는 것이다. 3. 한 가지만 해라 - 함수는 한 가지만을 잘 해야 한다. - 함수를 만드는 이유는 큰 개념을 추상화 수준에서 여러 단계로 나눠 수행하기 위함이다. - 함수를 여러 섹션으로 나눌 수 있다면 그 함수는 여러 작업을 하는 것이다. 4. 함수 당 추상화 수준은 하나로 - 함수가 한 가지 작업을 하기 위해서는 함수 내 모든 문장의 추상화 수준이 동일해야 한다. - 한 함수 내에서 추상화 수준을 섞으.. 2022. 5. 28.
[Clean Code 정리] 의미있는 이름 Clean Code - 의미있는 이름 1. 의도를 분명히 밝혀라 - 좋은 이름을 짓는 것은 시간이 걸리지만 좋은 이름으로 절약하는 시간이 더 많다. # 안 좋은 예 # 코드의 함축성 문제 : 코드 맥락이 코드 자체에 명시적으로 드러나지 않는다. def getThem(theList): return [x for x in theList if int(x[0]) == 1] # 좋은 예 def getFlaggedValue(gameBoard): return [cell for cell in gameBoard if int(cell[0]) == 1] 2. 그릇된 정보를 피하라 - 그릇된 단서는 코드의 의미를 흐린다. (1) 잘못 사용된 약어 - ex : hp. aix, sco (2) 다른 의미를 갖는 네이밍 - 널리 쓰이.. 2022. 5. 28.
[Clean Code 정리] 깨끗한 코드 깨끗한 코드 1. 5S 원칙 1) 정리(Seiri) 또는 조직 (정렬 : sort) 명명법 등을 통해 무엇이 어디에 있는지 알아야 한다. 2) 정돈 (Seiton) 코드는 누구나 예상하는 위치에 있어야 한다. 3) 청소 (Seiso) 주석으로 처리한 코드, 불필요한 기록은 지워야 한다. 4) 청결 또는 표준화 (Seiketsu) 작업 공간을 청소하는 방식에 그룹이 동의한다. 5) 생활화 또는 규율 (Seikatsuka) 관례를 따르고, 자기 작품을 자주 돌아보고, 기꺼이 변경하는 규율 2. 깨끗한 코드를 작성하는 것 깨끗한 코드를 작성하는 방법은 배우기 어렵고 고생해야 한다. 단순히 원칙과 패턴을 안다고 해서 깨끗한 코드가 되는 것은 아니다. 연습과 실패, 잘못된 결정으로 인한 대가를 경험해야 한다. 3.. 2022. 5. 26.
프로젝트 예시 보호되어 있는 글 입니다. 2022. 4. 7.
차원 축소 보호되어 있는 글 입니다. 2022. 2. 2.
Fourier Transform (3) 보호되어 있는 글 입니다. 2022. 1. 20.
Fourier Transform (2) 보호되어 있는 글 입니다. 2022. 1. 18.
Fourier Transform 보호되어 있는 글 입니다. 2022. 1. 17.