成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

10 個編寫干凈Python代碼的技巧,開發者不能錯過!

譯文 精選
開發 開發工具
學習Python最佳實踐和設計模式

  作者 | Alex Omeyer

  譯者 | 翟珂

  審校丨Noe

Python的風格優雅干凈,但語法干凈并不等同于編寫的代碼也是干凈的。開發人員仍然需要學習Python最佳實踐和設計模式。

什么是干凈的代碼?

C++的發明者Bjarne Stroustrup說過一句話清楚地解釋了干凈代碼的含義:“我喜歡我的代碼是優雅和高效的。邏輯應該是直截了當的,這樣就很難隱藏錯誤;依賴關系應該是最小的,這樣便于維護;錯誤處理應該是完整的,符合明確的策略;性能應該是接近最佳的,這樣就不會誘使人們用無原則的優化使代碼變得混亂。干凈的代碼能做好這件事。”

 從這句話中,我們可以挑選出干凈代碼的一些品質:

  • 干凈的代碼是有重點的。每個函數、類或模塊都應該做一件事,而且要做得好。
  • 干凈的代碼容易閱讀和推理。根據《面向對象的分析和設計與應用》一書的作者Grady Booch的說法:干凈的代碼讀起來就像寫好的散文。
  • 干凈的代碼很容易調試。
  • 干凈的代碼易于維護。也就是說,其他開發人員可以輕松閱讀和優化它。
  • 干凈的代碼具有高性能。

開發人員可以隨心所欲地編寫他們的代碼,因為沒有固定的或約束性的規則來要求他/她編寫干凈的代碼。而糟糕的代碼會產生技術債務,從而對公司造成嚴重后果。

在本文中,我們將看看一些幫助我們在Python中編寫干凈代碼的設計模式。讓我們在下文中了解它們。

編寫干凈Python代碼的手段

命名規則:

命名規則是編寫干凈代碼的最有用和最重要的方面之一。在給變量、函數、類等命名時,要使用有意義的、能揭示意圖的名字。而這意味著我們會傾向于使用長的描述性名稱,而不是短的模糊不清的名稱。

下面是一些例子:

1、使用易于閱讀的長描述性名稱。這將省去寫不必要的注釋,如下所示:

# 不推薦
# au變量是活躍用戶數
au = 105

# 推薦
total_active_users = 105

2、使用描述內容名稱。其他開發人員應該能夠從名稱中找出你的變量存儲的內容。簡而言之,你的代碼應該易于閱讀和推理。

# 不推薦
c = [“UK”, “USA”, “UAE”]

for x in c:
print(x)

# 推薦
cities = [“UK”, “USA”, “UAE”]
for city in cities:
print(city)

3、避免使用模棱兩可的簡稱。變量應該有一個長的描述性名稱,而不是一個容易混淆的簡稱。

# 不推薦
fn = 'John'
Ln = ‘Doe’
cre_tmstp = 1621535852

# 推薦
first_name = ‘John’
Las_name = ‘Doe’
creation_timestamp = 1621535852

4、始終使用相同的詞匯。與你的命名規則保持一致。當其他開發人員處理你的代碼時,保持一致的命名規則對于消除混淆非常重要。這適用于命名變量、文件、方法甚至目錄結構。

# 不推薦
client_first_name = ‘John’
customer_last_name = ‘Doe;

# 推薦
client_first_name = ‘John’
client_last_name = ‘Doe’

Also, consider this example:
#不推薦
def fetch_clients(response, variable):
# 處理
pass

def fetch_posts(res, var):
# 處理
pass

# 推薦
def fetch_clients(response, variable):
# 處理
pass

def fetch_posts(response, variable):
# 處理
pass

5、在你的編輯器中開始跟蹤代碼庫的問題。

讓工程師可以輕松地跟蹤和查看代碼本身的問題是保持Python代碼庫清潔的一個主要手段。允許工程師在編輯器中跟蹤代碼庫問題可以讓工程師們:

  • 全面了解技術債務
  • 查看每個代碼庫問題的上下文
  • 減少上下文切換
  • 不斷解決技術債務問題

你可以使用各種工具來跟蹤你的技術債務,但最快速和最簡單的方法是使用VSCode或JetBrains的免費Stepsize擴展,它可以與Jira、Linear、Asana和其他項目管理工具集成。

6、不要使用魔法值。魔法值是具有特殊的、硬編碼語義的數字,它出現在代碼中但沒有任何解釋。所以我們將這些數字以文字形式出現在我們代碼中的多個位置。

import random

# 不推薦
def roll_dice():
return random.randint(0, 4) # 4應該代表什么?

# 推薦
DICE_SIDES = 4

def roll_dice():
return random.randint(0, DICE_SIDES)

函數:

7、保持一致的函數命名規則。

正如上面的變量所見,在命名函數時要堅持一個命名習慣。使用不同的命名習慣會使其他開發者感到困惑。

# 不推薦
def get_users():
# 處理
Pass

def fetch_user(id):
# 處理
Pass

def get_posts():
# 處理
Pass

def fetch_post(id):
# 處理
pass

# 推薦
def fetch_users():
# 處理
Pass

def fetch_user(id):
# 處理
Pass

def fetch_posts():
# 處理
Pass

def fetch_post(id):
# 處理
pass

8、函數應該只做一件事,而且要做得好。寫短而簡單的函數,執行單一的任務。需要注意的是,如果你的函數名稱包含“and”,你可能需要把它拆分成兩個函數。

# 不推薦
def fetch_and_display_users():
users = [] # 一些 api 調用的結果

for user in users:
print(user)


# 推薦
def fetch_usersl():
users = [] # 一些 api 調用的結果
return users

def display_users(users):
for user in users:
print(user)

9、不要使用布爾值。布爾值(真或假)。每種結果應該作為一個單獨的函數去調用,而不是當作函數的入參。

類:

10. 不要添加多余的描述。在使用類時,變量名不要添加不必要的前綴。

# 不推薦
class Person:
def __init__(self, person_username, person_email, person_phone, person_address):
self.person_username = person_username
self.person_email = person_email
self.person_phone = person_phone
self.person_address = person_address

# 推薦
class Person:
def __init__(self, username, email, phone, address):

self.username = username
self.email = email
self.phone = phone
self.address = address

在上面的例子中,由于我們已經在Person類里面了,所以沒有必要在每個類的變量上添加person_前綴。

獎勵:模塊化你的代碼

為了保持你的代碼的條理性和可維護性,把你的邏輯分成不同的文件或類,我們稱之為模塊。Python中的模塊是一個以.py為擴展名的文件。每個模塊都應該專注于做一件事,并且把它做好。

你可以遵循面向對象的OOP原則,例如遵循基本的OOP原則,如封裝、抽象、繼承和多態。

結論

編寫干凈的代碼有很多優點,如:提高軟件質量、增強代碼可維護性和消除技術債務等。而這些提高編寫干凈代碼的手段同時也適用于其他語言,我希望通過閱讀這篇文章,你已經對干凈代碼和編寫干凈代碼的一些手段有了足夠的了解。

原文鏈接:https://dzone.com/articles/10-must-know-patterns-for-writing-clean-code-with-1

譯者介紹

翟珂,51CTO社區編輯,目前在杭州從事軟件研發工作,做過電商、征信等方面的系統,享受分享知識的過程,充實自己的生活。

責任編輯:張潔 來源: 51CTO技術棧
相關推薦

2017-09-14 12:45:35

2020-05-27 10:38:16

開發代碼技巧

2023-03-27 15:05:10

Python技巧

2015-10-21 13:42:54

iOS開發watch OS2

2025-02-12 08:04:54

代碼Ordersetter

2020-07-15 14:51:39

代碼C+開發

2011-03-30 08:49:34

WebjQuery

2014-07-29 13:55:10

程序員代碼

2015-09-22 13:25:46

Web開發者HTML5工具

2014-08-20 10:02:54

GitGit能力

2020-06-15 10:29:10

JavaScript開發 技巧

2014-07-10 10:15:41

代碼代碼庫

2016-12-01 08:36:18

編程云環境云戰略

2015-11-04 11:17:10

移動開發圖片格式

2020-03-05 12:12:54

數據Python開發

2017-02-10 12:02:39

Node開發者

2015-08-11 11:01:22

設計原則開發者

2011-09-06 15:16:42

PHP

2020-03-31 09:47:04

Vue開發代碼

2011-11-17 14:17:09

IDE
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美国产精品一区二区三区 | 欧美国产视频一区二区 | 日韩一级免费电影 | 国产免费一区二区 | 一区在线播放 | 91av视频在线 | 在线视频亚洲 | 国产日韩欧美一区二区 | 91精品久久久久久久久久小网站 | 日韩精品在线观看一区二区三区 | 一级午夜aaa免费看三区 | 欧美成人自拍视频 | 一级片在线免费播放 | 日韩一级黄色毛片 | 国产一区二区三区四区三区四 | 91色视频在线观看 | 精品一区二区久久久久久久网站 | 影视一区| 伊人久久免费视频 | 国产精品久久久乱弄 | 91精品一区 | 一区二区三区在线免费观看 | 国产一区二区中文字幕 | 男人天堂网址 | 亚洲二区在线 | 成人中文字幕在线 | 国产高清一区二区 | 久久久做 | 久久久久国产成人精品亚洲午夜 | 国产内谢 | 国产成人一区二区三区 | 久久国产精品首页 | aaaa网站| 亚洲免费精品 | 91色在线 | 日韩在线电影 | 午夜免费精品视频 | 欧美一级黄色免费看 | 国产精品久久久久久久久久三级 | 国产精品免费av | 久久av一区二区三区 |