マナティ

 試し読み

購入形態

PDF
2,992円
数量:

カートに追加されました。カートを見る

カートに入れる
紙の本を買う

Pythonハッカーガイドブック

達人が教えるデプロイ、スケーラビリティ、テストのコツ

マイナビ出版

言語をより深く理解し、達人の経験に学び、一歩進んだPythonスキルを身に付ける!

開発者や経験豊富なプログラマーのために、著者の15年以上にわたるPythonの経験を結集して、よくある間違いを避け、より効率的にコードを書き、よりよいプログラムをより短時間で構築する方法を教えます。
マルチスレッドやメモ化などの高度なトピックを幅広くカバーし、APIの設計やデータベースの扱いなどについて、言語自体をより深く理解するためにPythonの内部を学びます。
また、プロジェクトの開始方法から始めて、バージョン管理、コーディングスタイル、自動チェックなどのトピックについて解説します。配布用にソフトウェアをパッケージ化する方法、パフォーマンスを最適化する方法、適切なデータ構造を使用する方法、関数を効率的に定義する方法、適切なライブラリを選択する方法、将来にわたって使用できるプログラムを構築する方法、およびプログラムをバイトコードまで最適化する方法について学習します。
さらに、効果的なデコレータとメソッド(抽象メソッド、静的メソッド、クラスメソッドなど)の作成と使用、ジェネレータや純粋関数を使用した関数プログラミング、抽象構文ツリー(AST)による洗練された自動チェックを導入する方法、動的パフォーマンス分析を適用してコード内のボトルネックを特定する方法、PostgreSQLを使用してデータを効率的に管理する方法も取り上げます。
そのほかに、8人の経験豊かなPythonハッカーへのインタビューも掲載しており、達人のノウハウを知ることができます。
本書には、達人の知識と経験が詰まっています。それらを身に付けて、Pythonの腕を上げ、生産性の高い効率的なPythonコードの書き方への理解を深め、Pythonハッカーの道を進みましょう。

発売日:2020-05-29

ページ数:328ページ

目次

はじめに
日本語版のための序文
監訳者序文
本書の対象読者
本書の内容
著者紹介
第1章 プロジェクトを開始する
1.1 Pythonのバージョン
1.2 プロジェクトの計画を立てる
1.3 バージョン番号を管理する
1.4 コーディングスタイルと自動チェック
1.5 Joshua Harlow、Pythonについて語る
第2章 モジュール、ライブラリ、フレームワーク
2.1 インポートシステム
2.2 便利な標準ライブラリ
2.3 外部ライブラリ
2.4 パッケージのインストール:pipをさらに活用する
2.5 フレームワークの使用と選択
2.6 Doug Hellmann、Pythonライブラリについて語る
第3章 ドキュメントの作成とよいAPI プラクティス
3.1 Sphinxによるドキュメントの作成
3.2 まとめ
3.3 Christophe de Vienne、API開発について語る
第4章 タイムスタンプとタイムゾーンの処理
4.1 タイムゾーンがないという問題
4.2 デフォルトのdatetimeオブジェクトを作成する
4.3 dateutilに基づくタイムゾーン対応のタイムスタンプ
4.4 タイムゾーン対応のdatetimeオブジェクトをシリアライズする
4.5 あいまいな時間を解決する
4.6 まとめ
第5章 ソフトウェアの配布
5.1 setup.pyの略史
5.2 setup.cfgによるパッケージ管理
5.3 wheel:配布フォーマット標準
5.4 カスタムソフトウェアを公開する
5.5 エントリポイント
5.6 まとめ
5.7 Nick Coghlan、パッケージ管理について語る
第6章 ユニットテスト
6.1 テストの基礎
6.2 仮想環境
6.3 テストポリシー
6.4 Robert Collins、テストについて語る
第7章 メソッドとデコレータ
7.1 デコレータとそれらを使用する状況
7.2 Python のメソッドの仕組み
7.3 静的メソッド
7.4 クラスメソッド
7.5 抽象メソッド
7.6 静的メソッド、クラスメソッド、抽象メソッドを組み合わせて使用する
7.7 まとめ
第8章 関数型プログラミング
8.1 純粋関数を作成する
8.2 ジェネレータ
8.3 リスト内包
8.4 関数型の関数を使用する
8.5 まとめ
第9章 AST、HY、Lispライクな属性
9.1 ASTを調べる
9.2 ASTをチェックするようにflake8を拡張する
9.3 速習:Hy
9.4 まとめ
9.5 Paul Tagliamonte、ASTとHyについて語る
第10章 パフォーマンスと最適化
10.1 データ構造
10.2 プロファイリングを通じて振る舞いを理解する
10.3 関数を効率的に定義する
10.4 順序付きのリストとbisect
10.5 名前付きタプルとスロット
10.6 メモ化
10.7 PyPyによるPythonの高速化
10.8 バッファプロトコルでゼロコピーを実現する
10.9 まとめ
10.10 Victor Stinner、最適化について語る
第11章 スケーリングとアーキテクチャ
11.1 Pythonのマルチスレッディングとその制限
11.2 マルチプロセッシングとマルチスレッディング
11.3 イベント駆動型アーキテクチャ
11.4 その他の選択肢とasyncio
11.5 サービス指向アーキテクチャ
11.6 ZeroMQによるプロセス間通信
11.7 まとめ
第12章 リレーショナルデータベースの管理
12.1 RDBMS、ORM、それらを使用する状況
12.2 データベースバックエンド
12.3 FlaskとPostgreSQLによるデータのストリーミング
12.4 Dimitri Fontaine、データベースについて語る
第13章 コーディングを減らしてコードを増やす
13.1 sixを使ってPython 2とPython 3をサポートする
13.2 PythonをLispのように使ってシングルディスパッチャを作成する
13.3 コンテキストマネージャ
13.4 attrsを使って決まりきったコードを減らす
13.5 まとめ

著者プロフィール

  • Julien Danjou(著者)

    20年近くにわたってフリーのソフトウェアハッカーとして活動し、10数年前からPythonでソフトウェア開発を行っている。現在は、分散クラウドプラットフォームOpenStackのプロジェクトチームリーダーを務めている。OpenStackは250万行のPythonからなる最大規模のオープンソースPythonコードベースを持つプラットフォームである。クラウドの構築に携わる前はすばらしいウィンドウマネージャを作成しており、DebianやGNU Emacsなど、さまざまなソフトウェアに貢献している。

    監訳者プロフィール
    Python Web関係の業務を中心にコンサルティングや構築を行う株式会社CMSコミュニケーションズ代表取締役。2010年から国内のPythonコミュニティに積極的に参画し、PyCon JPの開催に尽力した。2013年3月からは一般社団法人PyCon JP Associationの代表理事を務める。その他のOSS関係コミュニティの主宰またはスタッフとして活動中。一般社団法人Pythonエンジニア育成推進協会顧問理事として、Pythonの教育に積極的に関連している。最近はPythonの魅力を伝えるべく、初心者向けや機械学習分野の講師を精力的に務めたり、Pythonをはじめとした技術話題を扱うポッドキャスト『terapyon channel』(https://podcast.terapyon.net/)を配信中。