Skip to Content
ロバストPython ―クリーンで保守しやすいコードを書く
book

ロバストPython ―クリーンで保守しやすいコードを書く

by Patrick Viafore, 鈴木 駿, 長尾 高弘
March 2023
Intermediate to advanced
384 pages
5h 30m
Japanese
O'Reilly Japan, Inc.
Content preview from ロバストPython ―クリーンで保守しやすいコードを書く

20章静的解析

テストに入る前に、まず静的解析について話したい。静的解析はコードを実行せずにコードベースを検査して潜在的なエラーや矛盾を探す手法である。静的解析はよくあるミスを発見するのに便利な道具だ。本書でもすでに静的解析ツールとしてmypyを使った。mypy(および型チェッカ)はコードベースを検査してデータ型に関するエラーを探す。その他の静的解析ツールはそれ以外のエラーを調べる。この章ではリント、複雑度、セキュリティのための静的解析ツールを取り上げる。

20.1 リンター

最初に取り上げるツールはリンターである。リンターはコードベースに含まれるプログラミングミスやスタイル違反を検査する。リンターの名前の由来はC言語のプログラムのエラーを検査するツールlintである。lintは「ファジー」なロジックを探してそれを取り除くことからその名がついた†1。Pythonでもっとも広く使われているリンターはPylintだ。Pylintは、ありがちなコードミスとして次のものを検査する。

[†1] 訳注:英語のfuzzyには、「曖昧な」という意味以前に、「毛羽立った」という元の意味がある。また、fuzzyの元になったfuzzという名詞は「毛羽、綿毛」という意味であり、lintは「綿ぼこり、糸くず」という意味の名詞である。

  • PEP 8(https://peps.python.org/pep-0008/)に対する違反
  • 実行されないデッドコード(return文の後のコードなど)
  • アクセス制限違反(クラスのプロテクト、プライベート属性など)
  • 未使用変数や関数
  • まとまりのないクラス(メソッド内でselfが使われていない、パブリックメソッドが多すぎるなど)
  • docstring形式のドキュメントの欠如
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ

Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ

Ken Youens-Clark, 中山 光樹
scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

scikit-learn、Keras、TensorFlowによる実践機械学習 第2版

Aurélien Géron, 下田 倫大, 長尾 高弘
Node.jsデザインパターン 第2版

Node.jsデザインパターン 第2版

Mario Casciaro, Luciano Mammino, 武舎 広幸, 阿部 和也
サイトリライアビリティワークブック ―SREの実践方法

サイトリライアビリティワークブック ―SREの実践方法

Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara, Stephen Thorne, 澤田 武男, 関根 達夫, 細川 一茂, 矢吹 大輔, 玉川 竜司

Publisher Resources

ISBN: 9784814400171Other