きれいなPythonプログラミング | マイナビブックス

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

  • 著作者名:Al Sweigart
  • 翻訳者名:岡田佑一
    • 書籍:3,608円
    • 電子版:3,608円
  • B5変:384ページ
  • ISBN:978-4-8399-7740-5
  • 発売日:2022年02月15日
  • mixiチェック
  • このエントリーをはてなブックマークに追加

内容紹介

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

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

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

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

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

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


CONTENTS:
PART 1 基本準備から始めよう
1章 エラーの取り扱いと質問の仕方
2章 環境設定とコマンドライン

PART 2 Python に適した開発方法・ツール・テクニック
3章 Black を使ってコードフォーマットを整える
4章 わかりやすいネーミング
5章 怪しいコード臭
6章 パイソニックなコードを書こう
7章 プログラミングの専門用語
8章 Python のよくある落とし穴
9章 Python の要注意コード
10章 よい関数の書き方
11章 コメント、docstring、型ヒント
12章 Git でプロジェクト管理
13章 パフォーマンスの測定とオーダー記法
14章 プロジェクトの実践

PART 3 オブジェクト指向のPython
15章 オブジェクト指向プログラミングとクラス
16章 オブジェクト指向プログラミングと継承
17章 パイソニックなオブジェクト指向:プロパティとダンダーメソッド

電子版の購入は姉妹サイト「IT書籍ストア Manatee」がオススメ!
充実のラインナップに加え、割引セールも定期的に実施中!

商品を選択する

フォーマット 価格 備考
書籍 3,608
PDF 3,608 ※ご購入後、「マイページ」からファイルをダウンロードしてください。
※ご購入された電子書籍には、購入者情報、および暗号化したコードが埋め込まれております。
※購入者の個人的な利用目的以外での電子書籍の複製を禁じております。無断で複製・掲載および販売を行った場合、法律により罰せられる可能性もございますので、ご遠慮ください。

電子書籍フォーマットについて

  

備考

Al Sweigart(アル・スウェイガート)
シアトル在住のソフトウェア開発者、技術書の著者。お気に入りのプログラミング言語は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 まとめ

最近チェックした商品

Tポイント利用手続き

         Tポイント利用手続きに関する同意事項

                                株式会社マイナビ出版

株式会社マイナビ出版が提供するマイナビBOOKSにおいてTポイントご利用続きをされる方は、以下に掲げるお客様の個人情報の取り扱いについてご確認の上、ご同意下さい。

マイナビBOOKSにおいてTポイントサービスをご利用いただいた場合に、当社から、次に掲げる<提供情報>を、<提供目的>のためにCCCMKホールディングス株式会社(以下、「MKHD」といいます)へ提供します。

  <提供目的>:MKHDの定める個人情報保護方針及びマイナビBOOKSにおけるT会員規約第4条に定める利用目的で利用するためTポイントサービスを利用するため
  <提供情報>:
   1)お客様が【マイナビBOOKS】の正当な利用者であるという情報
   2)ポイント数・利用日
   3)その他、Tポイントサービスを利用するにあたり必要な情報

  <提供方法>: 電磁的記録媒体の送付またはデータ通信による。ただし、提供するデータについては暗号化を施すものとする。

なお、MKHDに提供された、以下の情報の利用については、MKHDの定める個人情報保護方針及びT会員規約 に沿って取り扱われます。
上記の情報提供の停止をご希望される場合には、【マイナビBOOKS】におけるTポイント利用手続きの解除を実施していただく必要があります。
Tポイント利用手続きの解除、およびTポイントサービスにおける個人情報に関するお問い合わせ先は、以下のとおりです。
お客様お問い合わせ先:Tサイト(https://tsite.jp/contact/index.pl )

 なお、Tポイント利用手続きの解除が完了しますと、マイナビBOOKSにおけるTポイントサービスをご利用いただけなくなりますので、予めご了承ください。

Tポイント利用手続きを行いますか?