TechTargetは、「開発チームのPythonコーディング標準」に関する記事を公開した。Pythonを使う開発チームのリーダーには、コード標準に関して2つの課題がある。スタイルガイドを作成することと、開発者にそれを守らせることだ。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
TechTargetは2023年12月28日(米国時間)、「開発チームのPythonコーディング標準」に関する記事を公開した。
Pythonは構文的ルールと意味的ルールが混在しているため、強力なコンピューティング言語となっている。ただし、コンピュータに特定のタスクを実行させるコードの記述方法は無数にある。コーディング標準を用いることで、Pythonプログラムは可能な限り効率的かつ効果的なものになる。
コーディング標準は、開発者のアプローチを標準化するのに役立つ。目標とするのは「他の人間やコンピュータが読みやすく、保守しやすく、アクセスできるコード」だ。開発チームには通常、複数のプログラマーがいる。コードの可読性を確保することで、全ての開発者が期待通りの方法でコードを使用できるようにする。コーディングを標準化することで、開発者間のコミュニケーションが強化され、コードベースのスケーラビリティと保守性のメリットが得られる。
「PEP 8」は、新しいプログラマーや、この言語に精通しているプログラマーのために、Python固有のコーディング標準を提供する。
まずはPEP 8の命名規則、インデント、コメントのガイドラインを学ぶことから始めるのがいいだろう。次に、引用符、スペース、タブ、文字、その他の書式選択の一貫性を保つためのヒントを使用して、Pythonコードをさらに改善する。そして最後に、開発チーム全体がコード標準に取り組むようにする方法を計画する。
PEPは「Python Enhancement Proposal」の略で、Pythonコーディングガイドラインとベストプラクティスに関するスタイルガイドドキュメントとなっている。
「PEP 0」は2001年にグイド・ヴァンロッサム氏、バリー・ワルシャワ氏、アリッサ・コグラン氏によって作成された。PEPの番号はPEPの編集者によって割り当てられ、現在のバージョン8に至るまで、その時点で推奨されるPythonスタイルと設計標準を備えた新しいPEPが登場してきた。
PEP 8の目的は、コードの一貫性、品質、可読性を確保することだ。PEP 8は、コード構造と設計の一貫性を構築する。一貫性は、プロジェクト全体の問題であると同時に、単一のコードモジュールや関数の問題でもある。コードの一貫性が高ければ高いほど、他のユーザーにとって読みやすくなる。言い換えればコードベースが読みやすいほど、他の開発者が保守しやすくなるというわけだ。
PEP 8は、Python内の幾つかの一般的な標準を示している。もちろん基準には例外もあるので、必要に応じて創造性を発揮しなければならない。Pythonコーディングのベストプラクティスに従うには、命名規則、インデント、コメントに焦点を当てる。
Pythonの命名規則のライブラリは、開発者が名前を割り当てるコードアーキテクチャのパーツとピースに適用される。新しいモジュールとパッケージ名は、一貫性と可読性を持たせるために、全て以下の基準に従って記述する。
Pythonは、インデントレベルごとに4つのスペースを使う。行を継続している場合は、吊り下げインデントを使用して括弧、中括弧、大括弧内で結合するPythonの行を使って垂直方向に折り返す。吊り下げインデントでは、最初の行で引数を使用せず、継続行を区別するために2番目のインデントを使う。
# Correct: # 開始区切り文字に合わせる foo = long_function_name(var_one, var_two, var_three, var_four) # 引数を区別するために、スペースを4つ(インデントを1つ)追加する def long_function_name( var_one, var_two, var_three, var_four): print(var_one) # 吊り下げインデントは、レベルを追加する必要がある foo = long_function_name( var_one, var_two, var_three, var_four)
if文の条件付き部分が複数行を占める場合は、2文字のキーワードとスペースを使用し、開き括弧を追加して4スペースのインデントを作成する。
#余分なインデントはない if (this_is_one_thing and that_is_another_thing): do_something() # コメントを追加する。これによって編集者を区別できる # 構文の強調表示をサポートする if (this_is_one_thing and that_is_another_thing): # Since both conditions are true, we can frobnicate. do_something() # 条件付き継続行にインデントを追加する if (this_is_one_thing and that_is_another_thing): do_something()
開発者の中にはコメントを「必要悪」と捉えている人もいるだろう。コメントは、他の人が理解できるコードベースを構築するために不可欠な要素だ。コメントは完全な文章で書く必要がある。コメントを記載したら、明確で理解しやすいものになっているかどうか見直すことが重要だ。他の開発者にコメントを解釈してもらい、彼らが自身の意図した通りコメントを理解できているかどうか確認するといいだろう。もしそれが間違っているのであればコメントを編集すべきだ。
また、コメントは常に最新でなければならない。コードを変更する場合は、そのコードの機能と一致するようにコメントを更新する必要がある。PEP 8スタイルガイドに従うなら、コメントは英語で作成する。コメントを1つの言語に集約することで、転送可能性を確保できる。
Pythonはコード構造に応じて複数のコメントタイプをサポートしている。コードと同じようにインデントされたブロックコメントを使用する。コメントを始めるには、「#」の後にスペースを1つ追加する。コメント内の段落は単一の「#」を使って区切る。
インラインコメントを使うのもいいだろう。これらのコメントは、コード文と同じ行に表示される。コード文のインラインコメントは2つのスペースで区切ることができる。インラインコメントは、「#」と1つのスペースで始められる。
Pythonのコードを書いている開発者は、PEP 8と、最新の状態を維持するためのあらゆるアップデートに目を通すべきだ。以下は人気のあるPythonコーディング標準の簡単なリストとなっている。
標準化は難しいテーマであり、デリケートな作業となる。とはいえ、コードの読みやすさと一貫性はPython言語の基礎であり、それを達成するためには開発者は標準に忠実でなければならない。
コーディング標準を実装、強制する開発チームは、多くの場合、個々のスタイルや好みに合わせて作業する開発チームよりも生産性が高くなる。コーディングに必要以上に手間をかける必要はないのだ。標準に基づく一貫性のある読みやすいコードによって、全員の時間とフラストレーションが軽減される。さらに、個別的で非標準的なコーディング手法によって発生するトラブルやその解決に時間をかけなくてもよくなる。
開発チームは、組織とチームに適したPythonコーディング標準を確立しなければならない。チームリーダーはまず、コーディング標準のテーマに関するディスカッションまたは一連のディスカッションから始める必要がある。チームメンバーがどの部分に納得していないかを調べ、時間をかけて、Python標準を基にしたチームコーディング標準を作成する。開発者は、透明性のある決定に従い、提案を考慮に入れる可能性が高くなる。
コードレビューやその他のディスカッションの際には、矛盾や標準への「順守の甘さ」に耳を傾ける必要がある。開発者が標準に従わず、チームの生産性と結束力が損なわれていることが分かった場合は、すぐに1対1のディスカッションを開催すべきだ。アクションを起こす前に、コードの品質が損なわれないようにするためだ。また、「合意」と「透明性」を確保するために、Pythonのコーディング標準とスタイルガイドの更新の全てにチームを参加させるべきだ。
ただ、場合によって「PEP 8を破る」という選択をすることもある。シナリオによっては、スタイルガイドや標準がコードベースを助けるどころか、複雑化してしまうこともある。こうした場合を考慮し、PEP 8は、開発者がコードを読みにくくしたり、古いコードモジュールを壊したり、コードが下位互換性を持つのを防ぐときに、Python標準に反することを奨励している。
Copyright © ITmedia, Inc. All Rights Reserved.