試験公開中

このエントリーをはてなブックマークに追加

きれいなPythonプログラミング クリーンなコードを書くための最適な方法

マイナビ出版

3,608円 (3,280円+税)

誰にでも読みやすく。Clean Code を実践しよう

関連サイト

本書の関連ページが用意されています。

内容紹介

自分の書いたコードに自信を持てるプログラマーになろう

[誰にでも読みやすい 広く公開できるコードを書こう] 本書ではきれいなコード(Clean Code)を書くために、コマンドライン、コード整形、型チェッカー、リンター、バージョン管理 などのその道のプロが利用しているツールを詳解し、Pythonプログラミングスキルを向上させる方法を学びます。

[Clean Codeを実践するツールを活用できるようになろう] 開発環境のセットアップ、変数の命名方法、読みやすさ向上のための最適な方法 を紹介します。

[オブジェクト指向設計を理解し アルゴリズムを活用しよう] コードの公開に必要となるドキュメントの作成や書式の統一、またパフォーマンスの測定、オブジェクト指向プログラミング、コーディングインタビューで一般的に使用されるオーダー記法(Big O)について説明します。

本書の後半では2つのコマンドラインのゲーム「ハノイの塔(ロジックパズル)」と「四目並べ(タイル落としゲーム)」を作りますが、書いたゲームのコードが本書の「最適な方法」でプログラミングされているかを確認してみましょう。

書誌情報

  • 著者: アル・スウェイガート, 岡田佑一
  • 発行日: (紙書籍版発行日: 2022-02-12)
  • 最終更新日: 2022-02-12
  • バージョン: 1.0.0
  • ページ数: 384ページ(PDF版換算)
  • 対応フォーマット: PDF
  • 出版社: マイナビ出版

対象読者

著者について

アル・スウェイガート

シアトル在住のソフトウェア開発者、技術書の著者。お気に入りのプログラミング言語はPython。Python のオープンソース・モジュールをいくつか開発している。彼の他の著書物については、クリエイティブ・コモンズ・ライセンスのもと、彼のウェブサイト(https://www.inventwithpython.com/)より自由に入手可能。愛猫Zophie(ゾフィー)の体重は約5kg。
主な著書に『退屈なことはPython にやらせよう ― ノンプログラマーにもできる自動化処理プログラミング』(オライリー・ジャパン、2017年)、『Python でいかにして暗号を破るか』(ソシム、2020年)がある。

岡田佑一

フリーランスのプログラマー。学習塾の経営を行いながら教育・研究アプリの開発を行う。
訳書に『世界で闘うプログラミング力を鍛える本 ― コーディング面接189 問とその解法』(マイナビ出版、2017 年)、執筆協力に『プログラミングコンテスト攻略のためのアルゴリズムとデータ構造』(マイナビ出版、2015 年)がある。

目次

PART 1 基本準備から始めよう

1章 エラーの取り扱いと質問の仕方

  • 1.1 エラーメッセージの読み方
  • 1.2 リンターでエラー予防
  • 1.3 プログラミングの質問方法

2章 環境設定とコマンドライン

  • 2.1 ファイルシステム
  • 2.2 プログラムとプロセス
  • 2.3 コマンドライン
  • 2.4 環境変数とPATH
  • 2.5 コマンドラインを使わずにPython プログラムを実行する
  • 2.6 まとめ

PART 2 Python に適した開発方法・ツール・テクニック

3章 Black を使ってコードフォーマットを整える

  • 3.1 こんなコードは嫌われる
  • 3.2 スタイルガイドとPEP 8
  • 3.3 スペース(空白文字)の使い方
  • 3.4 空行の挿入
  • 3.5 妥協しないコードフォーマットツール:Black
  • 3.6 まとめ

4章 わかりやすいネーミング

  • 4.1 ケーススタイル
  • 4.2 PEP 8の命名規則
  • 4.3 適度な名前の長さ
  • 4.4 検索しやすい名前
  • 4.5 ジョーク、ダジャレ、文化的な言及を避ける
  • 4.6 ビルトイン(組み込み)の名前を上書きしない
  • 4.7 最悪な変数名
  • 4.8 まとめ

5章 怪しいコード臭

  • 5.1 重複したコード
  • 5.2 マジックナンバー
  • 5.3 コメントアウトされたコードとデッドコード
  • 5.4 プリントデバッグ
  • 5.5 数字付きの変数名
  • 5.6 関数やモジュールにすべきクラス
  • 5.7 内包表記の中に内包表記がある
  • 5.8 空の例外ブロックと不十分なエラーメッセージ
  • 5.9 コード臭の迷信
  • 5.10 まとめ

6章 パイソニックなコードを書こう

  • 6.1 Python の禅
  • 6.2 インデント愛を伝えたい
  • 6.3 誤用の多い構文
  • 6.4 文字列のフォーマット
  • 6.5 リストのコピー
  • 6.6 パイソニックな辞書の使い方
  • 6.7 条件式:Python の「醜い」三項演算子
  • 6.8 変数の扱い
  • 6.9 まとめ

7章 プログラミングの専門用語

  • 7.1 定義
  • 7.2 混同されやすい用語
  • 7.3 まとめ
  • 7.4 参考資料

8章 Python のよくある落とし穴

  • 8.1 ループ時にリストの追加・削除をしない
  • 8.2  copy.copy() やcopy.deepcopy() を使わずに可変型の値をコピーしない
  • 8.3 デフォルト引数に可変値を使用しない
  • 8.4 文字列連結で文字列を作らない
  • 8.5 sort() にアルファベット順のソートを期待してはいけない
  • 8.6 浮動小数点数が厳密であるとは限らない
  • 8.7 != 演算子を連鎖させない
  • 8.8 単要素のタプルではコンマを忘れずに
  • 8.9 まとめ

9章 Python の要注意コード

  • 9.1 256は256だけれども257は257ではない理由
  • 9.2 文字列のインターニング
  • 9.3 なんちゃってインクリメント・デクリメント演算子
  • 9.4 組み込み関数all()
  • 9.5 ブール値は整数値
  • 9.6 複数種類の演算子の連結
  • 9.7 空も飛べちゃうPython!?
  • 9.8 まとめ

10章 よい関数の書き方

  • 10.1 関数名
  • 10.2 関数サイズのトレードオフ
  • 10.3 関数のパラメーターと引数
  • 10.4 関数型プログラミング
  • 10.5 戻り値は常に同じデータ型であること
  • 10.6 例外を発生させる? それともエラーコードを返す?
  • 10.7 まとめ

11章 コメント、docstring、型ヒント

  • 11.1 コメント
  • 11.2 docstring
  • 11.3 型ヒント
  • 11.4 まとめ

12章 Git でプロジェクト管理

  • 12.1 Git のコミットとリポジトリー
  • 12.2  cookiecutter を使って新しいPython プロジェクトを作成する
  • 12.3 Git のインストール
  • 12.4 Git を使う手順
  • 12.5 コンピューター上にGit リポジトリーを作成する
  • 12.6 コミットログの表示
  • 12.7 古い変更点の復元
  • 12.8 GitHub とgit push コマンド
  • 12.9 まとめ

13章 パフォーマンスの測定とオーダー記法

  • 13.1 timeit モジュール
  • 13.2 cProfile プロファイラー
  • 13.3 オーダー記法について
  • 13.4 オーダー記法で表す計算量
  • 13.5 コードの計算量を決定する
  • 13.6 まとめ

14章 プロジェクトの実践

  • 14.1 ハノイの塔
  • 14.2 四目並べ
  • 14.3 まとめ

PART 3 オブジェクト指向のPython

15章 オブジェクト指向プログラミングとクラス

  • 15.1 事例から学ぶ:書式への入力
  • 15.2 クラスからオブジェクトを作成する
  • 15.3 シンプルなクラスWizCoin の作成
  • 15.4 type() 関数と__qualname__ 属性
  • 15.5 非オブジェクト指向とオブジェクト指向:三目並べの例
  • 15.6 実社会でのクラス設計は難しい
  • 15.7 まとめ

16章 オブジェクト指向プログラミングと継承

  • 16.1 継承の仕組み
  • 16.2 isinstance() 関数とissubclass() 関数
  • 16.3 クラスメソッド
  • 16.4 クラス属性
  • 16.5 静的メソッド
  • 16.6 クラスメソッド・クラス属性・静的メソッドを使うタイミング
  • 16.7 オブジェクト指向の用語集
  • 16.8 継承を使わない場合
  • 16.9 多重継承
  • 16.10 メソッド解決順序
  • 16.11 まとめ

17章 パイソニックなオブジェクト指向:プロパティとダンダーメソッド 

  • 17.1 プロパティ
  • 17.2 ダンダーメソッド
  • 17.3 まとめ
Home 書籍一覧 きれいなPythonプログラミング クリーンなコードを書くための最適な方法 ▲ ページトップへ戻る