815 Views
January 10, 24
スライド概要
【Pythonを書くときに気をつける事】
> WHO AM I? • 上地 航平(うえち こうへい) • アイレット株式会社 • 大阪オフィスで勤務 間 約2年 現在 転職 年間 9 約 2012/1 〜 • スケボーインストラクター 2021/5 〜 • 【入社】 アイレット株式会社 運用・保守エンジニア 2023/4 〜 • 【ジョブチェンジ】 アイレット株式会社 開発エンジニア
【アジェンダ】 1. コーディング規約(PEP8)と静的解析ツール 2. 読みやすいコードを書くためのポイント 3. まとめ
1. コーディング規約(PEP8) と フォーマッター・リンター
1. コーディング規約(PEP8)とフォーマッター・リンター • コーディング規約(PEP8)とは? • Pythonでプログラムを書く際に従うべきコードのスタイルガイド 例:不要な空白は避ける ....etc • フォーマッター・リンター(black,flake8...)を使ってプログラムを書こう。 • flake8:自動でPEP8に準拠しているかチェックする。 • black:自動でPEP8に準拠しているかチェックする。その後、自動でコードを修正してくれる。
2. 読みやすいコードを 書くためのポイント
● 一つの関数に、以下すべての処理を書き込んだコード ○ ○ ○ テキストファイル(.txt)を読込む 翻訳する テキストファイル(.txt)に書込む 長くて読みにくい... ※Python3系で書いています。
どうすれば 読みやすいコードになるのか? 参照元: 「リーダブルコード ―より良いコードを書くため のシンプルで実践的なテクニック (Theory in practice) 」 www.amazon.co.jp/dp/4873115655
2. 読みやすいコードを書くためのポイント • 一つの関数につき、一つの処理を記述する。 • 複数の処理になる場合は、関数を分割する。 関数名 処理内容 read_s3_file テキストファイル(.txt)を読込む translate 翻訳する write_s3_file テキストファイル(.txt)に書込む ※Python3系で書いています。
2. 読みやすいコードを書くためのポイント ● 関数の命名には、どんな処理内容か情報を詰め込む ○ 汎用的な名前を避ける ○ 具体的な名前 (動詞)を使って、詳細に説明する。 関数名 処理内容 read_s3_file テキストファイル(.txt)を読込む translate 翻訳する write_s3_file テキストファイル(.txt)に書込む
2. 読みやすいコードを書くためのポイント ● ● 関数の命名には、どんな処理内容か情報を詰め込む ○ 汎用的な名前を避ける ○ 具体的な名前 (動詞)を使って、詳細に説明する。 関数や変数の名前は、 スネークケースで記載しましょう! ○ (単語間を「_(アンダーバー )」で区切る、小文字である事) 関数名 処理内容 read_s3_file テキストファイル(.txt)を読込む translate 翻訳する write_s3_file テキストファイル(.txt)に書込む
2. 読みやすいコードを書くためのポイント ● ● ● 関数の命名には、どんな処理内容か情報を詰め込む ○ 汎用的な名前を避ける ○ 具体的な名前 (動詞)を使って、詳細に説明する。 関数や変数の名前は、 スネークケースで記載しましょう! ○ (単語間を「_(アンダーバー )」で区切る、小文字である事) クラス名は、パスカルケースで記載しましょう! ○ (単語間の先頭を大文字で区切る) 関数名 処理内容 read_s3_file テキストファイル(.txt)を読込む translate 翻訳する write_s3_file テキストファイル(.txt)に書込む SampleClass
2. 読みやすいコードを書くためのポイント ● ● ● ● 関数の命名には、どんな処理内容か情報を詰め込む ○ 汎用的な名前を避ける ○ 具体的な名前 (動詞)を使って、詳細に説明する。 関数や変数の名前は、 スネークケースで記載しましょう! ○ (単語間を「_(アンダーバー )」で区切る、小文字である事) クラス名は、パスカルケースで記載しましょう! ○ (単語間の先頭を大文字で区切る) タイプヒントを用いて入力値と出力値の型を記載する。 関数名 処理内容 read_s3_file テキストファイル(.txt)を読込む translate 翻訳する write_s3_file テキストファイル(.txt)に書込む SampleClass
4. まとめ • 初めてPythonを使用してプログラムを書きました。 当初はフォーマッターに度々指摘され、関数の命名にも沢山の時間を消費しました。 しかしルールに沿って書いたコードは読み返した時に理解しやすかったです。 • 私は今後チーム開発が増えるため、 これからも「分かりやすいコードを書く力」を継続的に学んでいこうと思います。
ご清聴ありがとうございました