スライドショー

Pythonのコーディング規約とは?必要性について解説

【重要】コーディング規約について知っておこう

コーディング規約ってそもそも何?
Pythonでコーディング規約は守ったほうがいいの?

エンジニアならコーディング規約については、耳にしたことがあると思いますが、しっかりとルールを守っている方は以外と少ないのではないでしょうか?

筆者もエンジニアデビューして個人で開発をしていたときは、コーディング規約についてはなんとなくわかっていただけで、しっかりと厳守しているわけではありませんでした…。

しかし、チームで開発する場合はコーディング規約を守ることは基本中の基本となります。

ここでは、コーディング規約についてよくわかっていない方に向けて、

  • なぜコーディング規約が必要なのか?
  • Pythonのコーディング規約PEP8

について調べてみましたので、ぜひ参考にしてください!

そもそもコーディング規約とは?

コーディング規約は、プログラミングをする上でコードを書くための必要なルールとなります。

変数や関数、クラスの名前のつけ方だったり、特定の処理を禁止したり、プログラムを記述する上でさまざまな必要ルールを定めたものがコーディング規約になります。

特に規模の大きなプロジェクトにおいては、後述するPythonのコーディング規約や、会社が細かく取り決めたルールに則ってコーディングすることが大切になります。

なぜコーディング規約が必要なのか?

なぜ、コーディング規約が大切のでしょうか?

それは、エンジニアがそれぞれ好き勝手にプログラムを記述していたら、保守性や可読性の面で問題が発生してしまうからです

たとえば、変数名はクラスにhensu_a、hensu_b、ClassA、ClassBなどの名前をつけても、その変数は何なのか?どんなクラスなのかがわかりませんね。

その変数に何が入っているのか、さかのぼって解析していかなければわかりません。開発の現場でこんな効率の悪いことをやっていては、時間がいくらあっても足りません。

そのため、コーディング規約を守ることは一定の品質を担保できることに繋がります。

Pythonのコーディング規約PEP8

ここでは、Pythonのコーディング規約であるPEP8について解説していきます。

参考:pep8-ja 1.0 ドキュメント

PEP8の概要

そもそもPEP8とは何でしょうか? pep8-jaを確認すると、

Python の標準ライブラリに含まれているPythonコードのコーディング規約です。

とあります。

PEP8は、Pythonでコーディングをする上で必要となるガイドラインになります。標準ライブラリとは、Pythonをインストールしたときに標準で使えるライブラリのことで、別途インストールしないで使用できます。

標準ライブラリについては、以下の記事で詳しく解説しています。

PEP8の内容を全て噛み砕いて紹介しきれないので、次項ではPEP8の中からコーディングする際の命名規約を中心に解説していきます。

ちょっと細かすぎるような印象を持たれるかもしれませんが、チームで開発を行う場合は、コーディングのルールをしっかりと守ることが重要になります。

コーディングルールはPEP8の他に、自社に取り決めたルールがあったら、そちらも厳守する必要があります。

このような基本的な部分は最初にしっかりと理解しておかないと、あとで余計な手戻りが発生して、工数を圧迫することにもなりかねませんのでよく理解しておきましょう。

命名規則

関数・変数の名前

  • 小文字のみにする
  • 必要に応じて単語をアンダースコア( _ )で区切る
  • 予約後と衝突した場合はアンダースコアを引数名の後ろに追加する
# 変数名の例
my_name
class_

# 関数名の例
def my_function

モジュール名

  • 小文字の短い名前にする
  • アンダースコアをモジュール名に使って良い
# モジュール名の例
my_module

パッケージ名

  • 小文字の短い名前にする
  • アンダースコアをモジュール名に使っても良いが非推奨
# パッケージ名の例
mypackage

クラス名

  • CapWords方式を使う
# クラス名の例
MyClass

※ CapWords方式とは?

命名規則において、最初の1文字を大文字を指定し、次の文字からはキャメルケース(アルファベットで複合の単語を組み合わせる)を用いる方式のことを指します。

例外の名前

  • CapWords方式を使う
  • 実際のエラーの場合は例外の名前の最後に "Error" を付ける
# 例外名の例
MyTestCaseError

関数やメソッドにわたす引数

  • インスタンスメソッドの始めの引数の名前はselfを付ける
  • クラスメソッドのはじめの引数の名前はclsを付ける
# インスタンスメソッドの例
def my_method(self, str1, str2):
    処理

「self」についてよくわからない方は、以下の記事を参考にしてください。

定数

  • 定数は大文字で指定する
  • アンダースコアも化
# 定数名の例
MAX_OVERFLOW
TOTAL

Pythonについてもっと詳しく知りたい方へ

Pythonについてもっと詳しく知りたい!

という方は以下の記事も合わせて参考にしてください。

Pythonとは?言語の特徴から学習法まで初心者向けにわかりやすく解説
更新日 : 2019年12月4日

Pythonについて、

  • 特徴やメリット
  • できること、できないこと
  • 基礎の基礎
  • 仕事を会得する方法
  • 学習方法

など、初心者に必要な情報が全て情網羅されています。

まとめ

ここでは、コーディング規約の重要性やPythonのコーディング規約について解説しました。

コーディング規約はシステムを開発する上で大切な規約となりますので、今まで特に規約を意識していなかった方は、この機会に自分のプログラムが規約に則っているか確認してみましょう。

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

侍テック編集部

侍テック編集部

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説