10 Pythonできれいなコードを書くためのパターンを知らなければなりません🐍


Pythonは最もエレガントでクリーンなプログラミング言語の一つですが、きれいできれいな構文を持つことはきれいなコードを書くと同じではありません.
開発者はまだクリーンベストを書くためにPythonベストプラクティスとデザインパターンを学ぶ必要があります.
クリーンコードとは🛁✨
Bjarne Sroustrup、C +プログラミング言語の発明者からのこの引用は、きれいなコードが意味するものを明確に説明します:

“I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations. Clean code does one thing well.”


引用から、きれいなコードの特質のいくつかを選ぶことができます:
1 .クリーンコードをフォーカスします.それぞれの関数、クラス、またはモジュールは一つのことを行い、うまくやるべきです.
2 .きれいなコードを読みやすく、理由があります.Grady Boochによると、オブジェクト指向の分析とデザインの著者は、クリーンなコードはよく書かれた散文を読む.
3 .クリーンコードはデバッグが簡単です.
4 .クリーンコードは維持しやすい.それは簡単に他の開発者によって読んで、強化することができます.
5 .クリーンコードはパフォーマンスが高いです.

さて、開発者は自分のコードを書くことができます.しかし、固定コードやバインド規則がないので、きれいなコードを書くことができません.しかし、悪いコードはtechnical debt その会社は厳しい結果をもたらすことができる.したがって、これはきれいなコードを書くための警告です.
この記事では、Pythonでクリーンなコードを書くのに役立つデザインパターンを見ていきます.次の節で学びましょう.

Pythonでクリーンコードを書くためのパターン


命名規則


命名規則はクリーンコードを書く上で最も有用で重要な側面の一つです.変数、関数、クラスなどを命名するとき、意図している意味のある名前を使用します.そして、これは短いあいまいな名前の上で長い説明名を支持するでしょう.
以下に例を示します:
1 .読みやすい長い記述名を使用します.そして、以下のように不要なコメントを書く必要がなくなります.
# Not recommended
# The au variable is the number of active users
au = 105

# Recommended 
total_active_users = 105
2 .名前を明らかにする説明意図を使う.他の開発者は、変数からあなたの変数ストアを把握することができます.一言で言えば、あなたのコードは読みやすくて、理由があるべきです.
# Not recommended
c = [“UK”, “USA”, “UAE”]

for x in c:
print(x)

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

3 .あいまいな速記を使用しないでください.変数は短い混乱する名前より長い記述的な名前を持つべきです.
# Not recommended
fn = 'John'
Ln = ‘Doe’
cre_tmstp = 1621535852

# Recommended
first_name = ‘JOhn’
Las_name = ‘Doe’
creation_timestamp = 1621535852
4 .常に同じ語彙を使用します.あなたの命名規則と一致してください.
一貫した命名規則を維持することは、他の開発者があなたのコードに取り組むとき、混乱を除くために重要です.そして、これは命名変数、ファイル、関数、および偶数ディレクトリ構造に適用されます.
# Not recommended
client_first_name = ‘John’
customer_last_name = ‘Doe;

# Recommended
client_first_name = ‘John’
client_last_name = ‘Doe’

Also, consider this example:
#bad code
def fetch_clients(response, variable):
    # do something
    pass

def fetch_posts(res, var):
    # do something
    pass

# Recommended
def fetch_clients(response, variable):
    # do something
    pass

def fetch_posts(response, variable):
    # do something
    pass
エディタでCodeBase問題の追跡を開始します.
あなたのPythonコードベースをきれいにしておく主要なコンポーネントは、技術者がコード自体で問題を追跡して、見るのを簡単にしています.エディタでCodeBase問題を追跡すると、エンジニアが以下のようになります.
エディタでCodeBase問題を追跡すると、エンジニアが以下のようになります.
  • 技術的な負債の完全な可視性を得てください
  • 各コードベース問題のコンテキストを参照してください
  • コンテキスト切り替えを減らす
  • 解決技術的な債務連続
  • あなたは様々な使用することができますtools to track your technical debt しかし、開始する最も速くて最も簡単な方法は、JIRA、リニア、アサナと他のプロジェクト管理ツールと統合するか、または自由なStepSize拡張を使用することです.

    6 .使用しないmagic numbers . マジックナンバーはコードに現れる特別な、ハードコードされた意味論であるが、どんな意味または説明も持ちません.通常、これらの数字は、コード内の1つ以上の場所にリテラルとして表示されます.
    import random
    
    # Not recommended
    def roll_dice():
        return random.randint(0, 4)  # what is 4 supposed to represent?
    
    # Recommended
    DICE_SIDES = 4
    
    def roll_dice():
        return random.randint(0, DICE_SIDES)
    
    

    関数


    7 .関数命名規約と一致します.
    上の変数で見られるように、命名規則に命名機能を命じる.別の命名規則を使用すると、他の開発者も混乱するでしょう.
    # Not recommended
    def get_users(): 
        # do something
        Pass
    
    def fetch_user(id): 
        # do something
        Pass
    
    def get_posts(): 
        # do something
        Pass
    
    def fetch_post(id):
        # do something
        pass
    
    # Recommended
    def fetch_users(): 
        # do something
        Pass
    
    def fetch_user(id): 
        # do something
        Pass
    
    def fetch_posts(): 
        # do something
        Pass
    
    def fetch_post(id):
        # do something
        pass
    
    8 .関数は一つのことを行い、うまくやるべきです.単一のタスクを実行する短いと単純な関数を記述します.あなたの関数名が“and”を含んでいるならば、あなたは2つの機能にそれを分割する必要があるかもしれません.
    # Not recommended
    def fetch_and_display_users():
    users = [] # result from some api call
    
        for user in users:
            print(user)
    
    
    # Recommended
    def fetch_usersl():
        users = [] # result from some api call
            return users
    
    def display_users(users):
    for user in users:
            print(user)
    
    フラグまたはbooleanフラグを使用しないでください.boolean flagsはboolean値を保持する変数です.これらのフラグは関数に渡され、その動作を決定するために関数によって使用されます.
    text = "Python is a simple and elegant programming language."
    
    # Not recommended
    def transform_text(text, uppercase):
        if uppercase:
            return text.upper()
        else:
            return text.lower()
    
    uppercase_text = transform_text(text, True)
    lowercase_text = transform_text(text, False)
    
    
    # Recommended
    def transform_to_uppercase(text):
        return text.upper()
    
    def transform_to_lowercase(text):
        return text.lower()
    
    uppercase_text = transform_to_uppercase(text)
    lowercase_text = transform_to_lowercase(text)
    

    クラス


    10 .冗長なコンテキストを追加しないでください.これは、クラスと共に働くとき、変数名に不必要な変数を加えることによって起こります.
    # Not recommended
    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
    
    # Recommended
    class Person:
        def __init__(self, username, email, phone, address):
    
            self.username = username
            self.email = email
            self.phone = phone
            self.address = address
    
    上の例では、既にPersonクラスの内部にあるので、personHatの接頭辞をすべてのクラス変数に追加する必要はありません.
    ボーナス:コードをモジュール化します
    コードを整理して管理するには、モジュールと呼ばれる異なるファイルやクラスにロジックを分割します.Pythonのモジュールは、単にファイルで終わるファイルです.Py拡張.そして、各モジュールは、一つのことをして、それをうまくやることに集中しなければなりません.
    オブジェクト指向- OOP原則に従うことができますカプセル化、抽象化、継承、および多型のような基本的なOOPの原則に従ってください.

    結論


    きれいなコードを書くことは、多くの利点で来ます:あなたのソフトウェア品質、コード保全性を改善して、そして.
    そして、この記事では、一般的にクリーンコードについて学び、Pythonプログラミング言語を使ってきれいなコードを書くパターンを学びました.しかし、これらのパターンは、他のプログラミング言語でも複製することができます.
    最後に、この記事を読んで、きれいなコードときれいなコードを書くためのいくつかの有用なパターンについて十分に学びました.
    このポストはthe Managing technical debt blog 完全なスタックのJavaScript開発者、Linuxの恋人、情熱的な家庭教師、および技術的な作家.ロレンスは創造性とシンプルさの強いブレンドをもたらします.コーディングや書き込みがないとき、彼はバスケットボールを見るのが大好きです✌️