소프트웨어를 작동시키는 것과 소프트웨어를 깨끗하게 만드는 것은 매우 다른 두 가지 활동 입니다. Robert C.Martin(Clean Code)
코딩하는 동안 당면한 작업에 쉽게 몰두하고 코드를 작동시키는 데에만 집중할 수 있습니다. 결과적으로 코드에 추가하는 행을 추적 하지 못하고 부피가 크고 정리되지는 않았지만 작동하는 기능 으로 끝납니다 .
단일 책임 원칙 은 코드 의 모든 모듈 , 클래스 또는 기능 이 단 하나의 책임과 단 하나의 변경 이유를 가져야 한다고 명시하는 소프트웨어 설계 지침입니다 .
이 원칙은 코드의 복잡성을 조직화하고, 관련된 모든 복잡성 을 고려하지 않고 수정해야 할 부분을 알 수 있도록 동일한 이유로 변경되는 사항을 함께 모으는 것입니다 .
단일 책임 원칙, Python에서 구현되는 이유 및 방법 에 대해 자세히 알아 보려면 계속 읽으십시오 .
단일 책임 원칙 을 따른다면 결국 큰 함수 대신 많은 수의 작은 함수 또는 클래스 를 갖게 될 것입니다.
이것은 좋은 생각이 아니라고 생각할 수도 있습니다. 그리고 아마도 몇 가지 큰 함수와 클래스를 선호할 것입니다.
분명히, 이 원칙을 맹목적으로 따르고 코드를 원자 섹션으로 나누면 원하지 않는 부작용 도 발생 합니다. 균형 잡힌 고려 사항 이 있어야 하며 아래 인용문은 그것이 무엇인지 정의합니다.
같은 이유로 변하는 것들을 모으십시오 . 다른 이유로 변경 되는 것을 분리 하십시오 — Robert C.Martin
단일 책임 원칙을 따르는 것이 좋은 이유는 무엇입니까?
아래 의 Model 클래스에는 많은 책임이 있음을 알 수 있습니다. 데이터 전처리, 모델 훈련 및 평가, 예측은 모두 모델 클래스에서 처리되는 다른 책임입니다. 이는 단일 책임 원칙에 위배되며 위에서 강조한 이유로 인해 강력하게 권장되지 않습니다.
# Before the single responsibility principle
class Model:
def pre_process(self):
pass
def train(self):
pass
def evaluate(self):
pass
def predict(self):
pass
# After the single responsibility principle applied
class PreProcess:
pass
class Train:
pass
class Evaluate:
pass
class Predict:
pass
기능에 관해서는 단일 책임 원칙을 따르는 것이 훨씬 더 중요합니다. 나는 항상 단일 함수 본문에서 많은 작업을 처리하여 함수를 부피가 크고 정리되지 않은 상태로 만드는 자신을 발견합니다.
# Before the single responsibility principle applied
def pre_processing_data():
#importing data
#converting data types
#handling missing values
#handling outliers
#transforming data
# After the single responsibility principle applied
def import_data():
pass
def convert_data_type():
pass
def handle_missing_values():
pass
def handle_outliers():
pass
def transform_data():
pass
주요 내용은 다음과 같습니다.
Alyson Lee, 공무 관리 고문 연방 정부의 연간 예산 책정 과정은 이산화탄소 제거(CDR) 기금 마련을 위한 노력의 핵심입니다. 매년 Carbon180은 내년의 자금 흐름을 안내하기 위해 다양한 의회 사무소에 요청을 제출합니다.
오늘날 빠르게 진화하는 비즈니스 환경에서 하이브리드 및 원격 작업의 개념은 전례 없는 추진력을 얻었습니다. 기업이 변화하는 직원의 요구와 기대에 지속적으로 적응함에 따라 다양한 분야의 전문가들이 모여 이 혁신적인 작업 방식의 이점, 과제 및 미래에 대해 논의했습니다.
우리는 종종 우리에게 좋다고 알고 있는 것을 구현하는 데 어려움을 겪고 있습니다. 중요한 다른 사람에게 우리가 그들을 사랑한다고 말하는 것부터 해적처럼 이야기하는 것을 기억하는 것까지, 그들이 이미 그런 일을 하고 있기 때문에 하루, 일주일 또는 한 달의 이벤트가 필요하지 않다고 주장하는 사람들이 항상 있을 것입니다.
새로운 직업으로 전환하는 것은 혼자서 하려고 한다면 매우 어려울 수 있습니다. 귀하와 동일한 학습 수준에 있고 유사한 목표, 끈기 및 추진력을 공유하는 책임 파트너를 찾는 것이 중요합니다.
우리가 이 행성에서 계속 번성하고 싶다면 위험한 대화를 해야 할 것입니다. 우리가 한 것, 우리가 하고 있는 것, 그리고 현재 우리가 계속하기로 설정한 것(또는 할 계획인 것)에 도전하는 것들.