SOLID 프로그래밍(1부): 단일 책임 원칙
6912 단어 drycodesolidprogrammingpythonoop
어떤 사람들은 SOLID가 OOP에만 적용 가능하다고 생각하지만 실제로는 대부분의 원칙이 모든 패러다임에서 사용될 수 있습니다.
SOLID의 'S'는 단일 책임을 의미합니다. 많은 초보 프로그래머의 실수는 많은 일을 하는 복잡한 함수와 클래스를 작성하는 것입니다. 그러나 단일 책임 원칙에 따라 모듈, 클래스 또는 함수는 한 가지 일만 수행해야 합니다. 즉, 책임은 하나만 있으면 됩니다. 이렇게 하면 코드가 더 강력해지고 디버깅, 읽기 및 재사용이 더 쉬워집니다.
단어와 파일 경로를 매개변수로 받아 전체 단어 수에 대한 텍스트의 단어 발생 수의 비율을 반환하는 이 함수를 살펴보겠습니다.
def percentage_of_word(search, file):
search = search.lower()
content = open(file, "r").read()
words = content.split()
number_of_words = len(words)
occurrences = 0
for word in words:
if word.lower() == search:
occurrences += 1
return occurrences/number_of_words
이 코드는 하나의 함수에서 많은 작업을 수행합니다. 파일을 읽고 총 단어 수, 단어 발생 수를 계산한 다음 비율을 반환합니다.
단일 책임 원칙을 따르려면 다음 코드로 대체할 수 있습니다.
def read_localfile(file):
'''Read file'''
return open(file, "r").read()
def number_of_words(content):
'''Count number of words in a file'''
return len(content.split())
def count_word_occurrences(word, content):
'''Count number of word occurrences in a file'''
counter = 0
for e in content.split():
if word.lower() == e.lower():
counter += 1
return counter
def percentage_of_word(word, content):
'''Calculate ratio of number of word occurrences to number of all words in a text'''
total_words = number_of_words(content)
word_occurrences = count_word_occurrences(word, content)
return word_occurrences/total_words
def percentage_of_word_in_localfile(word, file):
'''Calculate ratio of number of word occurrences to number
of all words in a text file'''
content = read_localfile(file)
return percentage_of_word(word, content)
이제 각 기능은 한 가지만 수행합니다. 첫 번째는 파일을 읽습니다. 두 번째는 총 단어 수를 계산합니다. 텍스트에서 단어의 발생 횟수를 계산하는 함수가 있습니다. 또 다른 함수는 총 단어 수에 대한 단어 발생의 비율을 계산합니다. 그리고 이 비율을 얻기 위해 텍스트 대신 파일 경로를 매개변수로 전달하는 것을 선호하는 경우 이를 위한 함수가 있습니다.
그래서 우리는 이런 식으로 코드를 재구성하여 무엇을 얻고 있습니까?
read_s3
를 작성하기만 하면 나머지 코드는 없이도 작동합니다. 가감. GitHub의 코드
이 문서의 코드 및 테스트는 GitHub에서 사용할 수 있습니다.
https://github.com/AnnaLara/SOLID_blogposts
Reference
이 문제에 관하여(SOLID 프로그래밍(1부): 단일 책임 원칙), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/annazubova/solid-programming-part-1-single-responsibility-principle-1ki6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)