По моему мнению, идея чистого кода означает, что код должен быть согласованным и читаемым для других. Вот что, я думаю, сделает код чистым и читабельным.
Тот, кто не работал над кодом или не имеет предварительных знаний
о том, что делает код должен быть в состоянии понять, что конец
результат выдаст код при запуске без необходимости
объясните им, что делает ваш код.
Итак, для меня квадратная функция не нужна. number * number
говорит само за себя.
Так что моя сумма квадратов будет
numbers = [2, 3, 4]
square_sum = sum(number * number for number in numbers)
ИЛИ если вам нужна квадратная функция
numbers = [2, 3, 4]
sqaureFunction = lambda number: number * number
square_sum = sum(map(sqaureFunction, numbers))
В таких небольших программах это не имеет значения, и вам не следует тратить время на то, чтобы ломать голову над чистым кодом, потому что эта программа ничего не делает. Итак, я собираюсь взять более крупный пример, чтобы объяснить это ...
Представьте, что вы пишете анализатор HTML, использующий красивый суп для извлечения информации с веб-сайта, который был моим вариантом использования. Вот как будет выглядеть ваш алгоритм в абстракции.
- Скачать HTML с сайта.
- Передайте его парсерам HTML, таким как bs4 или lxml.
- Перемещайтесь по каждой метке в супе HTML и извлекайте информацию.
- Храните его.
Теперь для подробной части,
Часть 1 анализа HTML: Извлечение
- Сначала начните с получения URL-адреса веб-сайта для извлечения
- Сбор необходимой информации Заголовки и размещение данных для получения актуальной информации
- Сделайте запрос на сайт с необходимыми заголовками и полезной нагрузкой, которые вернут вам HTML
- Запишите HTML-код в файл, чтобы вы могли использовать его повторно, не отправляя несколько запросов при каждом тестировании.
Часть 2 парсинга HTML: парсер
- Загрузить HTML из файла
- Перейдите в HTML и получите необходимые данные
- Хранить информацию в базе данных или файле.
Наконец, код:
Я просто собираюсь написать код для извлечения части здесь. См. документацию к функции makeHttpRequest до понимание концепции чистого кода
def makeGetRequest(url, headers = []):
# You may want to preprocess. Add default headers, etc ... which are specific to the site.
response = requests.get(url, headers=headers, params=payload)
return response
def makeHttpRequest(url, method = "GET", headers = [], payload = {}):
"""
This function makes an HTTP request.
You may wanna do several requests before getting the actual information.
But every time you're going to call make request because it does one thing i.e. Making a request.
There can be 101 things that can happen inside this function.
But on the outlook, it is just making a single request which can considered as 1 task.
"""
# You may wanna do POST, PUT, PATCH. But this is just for giving general idea
if method == "GET":
response = makeGetRequest(url, headers=headers)
return response.text
return None
def extractor(storageFilename):
"""
This function will make HTTP request and get HTML data.
After getting HTML data it will store it in a file.
"""
(url, headers, payload) = loadRequestInformation()
html = makeHttpRequest(url, headers=headers, payload=payload)
with open(storageFilename) as htmlFileHandle:
htmlFileHandle.write(html)