現場のPython―Webシステム開発から、機械学習・データ分析まで(WEB+DB PRESS plusシリーズ) [単行本]
    • 現場のPython―Webシステム開発から、機械学習・データ分析まで(WEB+DB PRESS plusシリーズ) [単...

    • ¥3,520106 ゴールドポイント(3%還元)
    • 在庫あり2025年8月7日木曜日までヨドバシエクストリームサービス便(無料)がお届け
100000009003872032

現場のPython―Webシステム開発から、機械学習・データ分析まで(WEB+DB PRESS plusシリーズ) [単行本]

ビープラウド(監修)altnight(著)石上 晋(著)delhi09(著)鈴木 たかのり(著)斎藤 努(著)


ゴールドポイントカード・プラスのクレジット決済で「書籍」を購入すると合計12%ゴールドポイント還元!合計12%還元書籍の購入はゴールドポイントカード・プラスのクレジット決済がお得です。
通常3%ゴールドポイント還元のところ、後日付与されるクレジット決済ポイント(1%)と特典ポイント(6%)、さらにご利用明細WEBチェックにご登録いただくと2%追加して合計12%ゴールドポイント還元!詳しくはこちら

価格:¥3,520(税込)
ゴールドポイント:106 ゴールドポイント(3%還元)(¥106相当)
フォーマット:
お届け日:在庫あり今すぐのご注文で、2025年8月7日木曜日までヨドバシエクストリームサービス便(無料)がお届けします。届け先変更]詳しくはこちら
出版社:技術評論社
販売開始日: 2024/09/12
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可

カテゴリランキング

店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

現場のPython―Webシステム開発から、機械学習・データ分析まで(WEB+DB PRESS plusシリーズ) の 商品概要

  • 要旨(「BOOK」データベースより)

    Python開発の基礎を固める!Webアプリ開発のスキルを身に付ける!機械学習とデータ分析を実務に生かす!入門を超えて、実践へ。あなたのPythonスキルを実務レベルに!
  • 目次

    はじめに

    ■■第1部 基礎編

    ■第1章 最新Python環境構築 シンプルでコーディングしやすい環境を整える

    1.1 Pythonのインストール
     インストール方法のお勧めは?
     インストーラでの導入──簡易的な導入手段
     仮想環境と標準モジュールのvenv
     仮想環境の切り替え──activate/deactivate
     Dockerイメージ──複数人開発でより扱いやすい方法

    1.2 ライブラリのインストール
     とりあえず何を使えばよい?
     pip──標準かつ簡単な方法
     Poetry──より安全に管理するなら

    1.3 コーディング環境を整える
     とりあえずどこまでやるべき?──最低限の品質保証
     PEP 8──コーディング規約
     black──PEP 8の自動適用
     ruff──高速なインポート順の整列とPEP 8のチェック

    1.4 漸進的型付けと静的型チェック
     どこまで対応すればよいか?──とりあえずType Hintingを書く
     漸進的型付け──あとから型を付けられる
     Type Hinting
     mypy──型のチェック

    1.5 開発支援ツールを一括実行──tox
     toxのインストール方法
     toxの設定例
     toxの実行と実行結果
     toxのテストを個別で実行

    ■第2章 型ヒントとmypyによるコード品質の向上 型チェックの基本から、既存コードの改善プロセスまで

    2.1 型ヒントの役割と型チェッカーの活用
     型ヒントがある場合・ない場合
     型ヒントを活用する方法

    2.2 型ヒントの使い方──基本編
     変数
     関数
     ジェネリック型
     複雑な型
     クラス
     型エイリアス

    2.3 型ヒントの使い方──発展編
     dataclassesモジュールを活用する
     アノテーションによる実行時のエラー回避
     スタブファイルを利用する
     既存のコードベースに型ヒントを追加する

    ■第3章 pytestを使って品質の高いテストを書く parametrize・フィクスチャ・pytest-covの活用

    3.1 テストの品質向上のポイント
     テストコードとプロダクトコードの違い
     テストコードを書くときに必要な考え方

    3.2 pytestによるテストの書き方
     テストケースの書き方
     テストケースの基本形

    3.3 pytestでテストを書くときに押さえるべき基本
     1つのテストケースでは1つのことを調べる
     テスト対象のインポートはテスト関数内で行う

    3.4 サンプルコードのテストを作成しよう
     ディレクトリ構成とテスト対象の概要
     開発環境のセットアップ
     素朴なテストを書く

    3.5 pytestを使いこなしてテストコードを改善しよう
     parametrizeを使って繰り返すテストを書こう
     フィクスチャを使って共通処理をまとめよう
     フィクスチャの機能を適度に使いこなす

    3.6 テストの品質をチェックしよう
     pytest-covを使ってカバレッジをチェックしよう
     テストコードをレビューするときのコツ

    ■第4章 structlogで効率的に構造化ログを出力 横断的に検索や解析のしやすいログのしくみを整えよう

    4.1 ログはなぜ必要なのか

    4.2 構造化ログはなぜ便利なのか

    4.3 Python標準モジュールのみで構造化ログを実現しよう
     基本的なログ出力
     loggingモジュールで構造化ログを出力する
     シンプルに構造化ログを実装した際の問題点

    4.4 structlogでより便利に構造化ログを出力しよう
     structlogを導入して利用する
     JSON形式で構造化ログを出力する
     データバインディングして情報を追跡しやすくする

    4.5 django-structlogでリクエストとレスポンスログを拡張しよう

    4.6 ログを活用する
     CloudWatch Logs Insightsでログを横断的に検索する

    ■第5章 リリースを管理して開発効率を高める towncrierとGitHub Actionsによるリリースの自動化

    5.1 リリースを管理しよう
     リリースを管理しないと発生する困りごと
     リリースを管理すると解決できること

    5.2 リリースを管理する方法
     Changelogを手動で作成する
     towncrierでChangelogを自動更新する

    5.3 GitHub Actionsでリリースを自動化する
     GitHub Actionsとは
     リリース作業を自動化するworkflowを作成する
     workflowを実行する
     workflowで作成したChangelog、Gitタグ、GitHubのリリースを確認する

    ■■第2部 Webシステム開発編

    ■第6章 Djangoアプリケーションの品質を高める 単体テストと運用時の監視

    6.1 Djangoとアプリケーション品質
     Django──フルスタックWebアプリケーションフレームワーク
     アプリケーションの品質

    6.2 サンプルアプリケーションの作成
     仕様
     実装

    6.3 標準モジュールを使った単体テスト
     実装
     実行
     単体テストを作成するための標準モジュール

    6.4 単体テストを効率化するライブラリ
     pytest──高機能な単体テストフレームワーク
     unittest.mock──外部システム通信や複雑な処理をモック化
     freezegun──単体テスト実行時の時刻を簡単に指定
     factory-boy──モデルのデータ作成を効率化

    6.5 運用に役立つロギングと監視
     Python標準のロギングモジュールを活用
     Sentryで監視をより効果的に

    ■第7章 DjangoでAPI開発 初めてのDjango REST framework

    7.1 Django REST framework(DRF)とは
     DjangoとDRFの違い
     DRFのインストール方法

    7.2 サンプルアプリケーションの準備
     DRFの準備
     DBの準備

    7.3 シリアライザ
     シリアライザの作成方法
     デシリアライズ
     バリデーションの詳細
     バリデーション済みデータのDBへの登録/更新
     シリアライズ

    7.4 APIビュー
     シンプルなAPIビュー
     ジェネリックAPIビュー
     ビューセット

    ■第8章 Django×StrawberryによるGraphQL入門 GraphQLの基礎から実際のプロダクトへの導入まで

    8.1 GraphQL──自由で過不足の少ないAPI
     GraphQLのメリット
     GraphQLのスキーマを知る

    8.2 Strawberryとは

    8.3 Django×StrawberryでGraphQLサーバを立ち上げてみよう
     必要なパッケージをインストールしよう
     GraphQLサーバを立ち上げよう

    8.4 ミューテーションの実装──カテゴリ登録APIの実装
     入力型とミューテーションを実装する
     ミューテーションをスキーマに追加する

    8.5 子ノードと子孫ノードを取得しよう──リゾルバチェインズ
     リゾルバ関数
     リゾルバチェインズ
     リゾルバチェインズによる子ノードと子孫ノードの取得の実装例
     リゾルバ関数とビジネスロジックは分けよう
     リゾルバチェインズの柔軟性の代償としてのN+1問題

    8.6 N+1問題とどう向き合うか──データローダパターン
     N+1問題とは
     GraphQLではなぜN+1問題が発生しがちなのか
     データローダパターンを使う
     データローダの実装方法
     データローダの制約

    8.7 エラー対応──開発者用のエラーとユーザー用のエラーを使い分ける
     一般APIエラー対応
     開発者用エラーの返し方
     ユーザー用エラーの返し方

    8.8 GraphQLにおけるユニットテストの考え方
     GraphQLエンジンはテスト重要度もテスト容易性も低い
     リゾルバ関数はテスト重要度が低い
     ビジネスロジックをテストしよう
     GraphQLをテストしたい場合

    ■第9章 FastAPIによるWeb API開発 型ヒントを活用したAPI仕様中心の開発手法

    9.1 FastAPIの特徴

    9.2 FastAPIの開発環境をセットアップしよう
     最小限のプロジェクトを作成しよう
     最小限のプロジェクトの動作を確認しよう

    9.3 API仕様とモックを作成しよう
     FastAPIによる開発の一般的な構成を理解しよう
     API仕様を決めてエンドポイントと入出力を設計しよう
     スキーマを定義しよう
     ルータを定義しよう
     生成されたドキュメントとAPIの動作を確認しよう

    9.4 DBに接続する処理を追加し、API実装を完成させよう
     DB接続に必要なライブラリをセットアップしよう
     DBに接続するDependencyを作成しよう
     CRUD処理を実装しよう
     path operation関数を完成させよう
     APIの動作を確認しよう

    9.5 バリデーションとエラー処理を追加しよう
     スキーマにバリデーションを追加しよう
     ルータにバリデーションを追加しよう
     HTTPException例外を使って400番台のエラーを返そう

    9.6 FastAPIの強み

    ■第10章 Django ORMの速度改善 クエリ発行の基礎、計測、チューニング

    10.1 作成するサンプルアプリケーション
     Djangoアプリケーションの作成
     ダミーデータの投入

    10.2 DjangoアプリケーションのSQL発行ログの確認
     簡易的にクエリを調べる
     ライブラリを使い、画面上で俯瞰して確認する──Silk

    10.3 Django ORMのクエリ発行タイミング
     クエリ発行タイミングの原則──遅延実行
     クエリ発行が遅延される場合(d1) ──filterメソッドのチェイン
     クエリ発行が遅延される場合(d2)──リレーション先のオブジェクトの取得

    10.4 親子モデルの情報の取得を改善する
     実行時間の計測──デコレータで特定ビューの実行時間を計測する
     子から親の情報参照──select_relatedメソッド
     親から子の情報参照──prefetch_relatedメソッド

    10.5 大量レコードの作成・更新を改善する
     大量レコードの作成──bulk_createメソッド
     大量レコードの更新──bulk_updateメソッド

    ■第11章 Django ORMトラブルシューティング ORMにまつわる問題を解決するための型を身に付けよう

    11.1 ORM利用の3つの基本

    11.2 SQLを確認する
     問題のあるORMクエリ例
     Django ORMのログ出力設定
     ログは現状を映す鏡

    11.3 意図しないタイミングでのSQL発行を避ける
     PythonスクリプトでDjango ORMを実行
     コードを集めて処理の要点を押さえる

    11.4 理想のSQLからORMを組む
     SQLを整形表示する治具を作る
     理想のSQLを考える
     現実的な時間で開発を進める

    ■■第3部 機械学習・データ分析編

    ■第12章 データサイエンスプログラムの品質改善 5つのステップで製品レベルの品質へ

    12.1 PoCフェーズのあとに必要なこと
     架空のシナリオについて
     品質向上のための5つのステップ

    12.2 ステップ1:単体コマンドとして実行できるようにする
     一般的なディレクトリ構成にする
     実行可能コマンドを作成する
     仮想環境を作成し、ライブラリを導入する
     フォーマッター、静的チェックを実行
     プログラムを実行する

    12.3 ステップ2:回帰テストを行えるようにする
     回帰テスト導入のために最低限の修正をする
     pytest-snapshotを使用して回帰テストを実現する
     回帰テストを実行する

    12.4 ステップ3:パフォーマンス対策をできるようにする
     プロファイラを導入する
     Line Profilerで実行時間を計測する
     Memory Profilerでメモリ使用量を計測する
     実行速度改善のテクニック
     プログラムを書き換えたらプロファイラを再実行しよう

    12.5 ステップ4:コードの可読性を向上する
     処理を関数に分割して可読性を向上する

    12.6 ステップ5:コードの保守性を向上する

    12.7 まとめ──限られた時間で最大の効果を

    ■第13章 データ分析レポートの作成 JupyterLab+pandas+Plotlyでインタラクティブに

    13.1 環境構築
     サンプルデータ

    13.2 表にスタイルを適用する──pandasのStyling機能
     pandasのインポートとサンプルデータの読み込み
     DataFrameのStyling機能とは
     セルの値を棒グラフで表現する
     条件付き書式でセルの背景色を変更する
     1つのDataFrameに複数のスタイルを適用する
     条件付き書式で行の背景色を変更する
     すべてのスタイル変更をまとめる

    13.3 動的なグラフを描画する──Plotly Express

    13.4 レポートを出力する──ノートブックのHTML化

    ■第14章 pandasを使った処理を遅くしないテクニック 4つの視点でパフォーマンス改善

    14.1 なぜpandasによるデータ処理が遅くなってしまうのか

    14.2 遅い機能を使わないようにしよう
     iterrowsの使用は避けよう
     DataFrameのapplyメソッドはあまり速くないことを知ろう

    14.3 「Pythonの遅さ」に対処しよう
     Pythonがどれくらい遅いのかを知ろう
     なるべく列をまとめて計算しよう
     loc、where、maskを活用してPythonでの分岐を減らそう

    14.4 アルゴリズムやデータ構造の効率化を考えよう
     groupbyを使って多重ループを回避しよう
     カテゴリ型を使おう

    14.5 マルチコアCPUを使い切ろう
     時間がかかる処理はマルチコアを使い切れているか確認しよう
     マルチコアを使い切る方法を知ろう
     pandarallelでapplyを並列化しよう

    14.6 まとめ──チューニングは必要になってから

    ■第15章 JanomeとSudachiPyによる日本語処理 フリガナプログラム作成で学ぶ自然言語処理の流れ

    15.1 日本語の処理とは
     形態
  • 内容紹介

    『WEB+DB PRESS』の人気連載が待望の書籍化です。Webシステム開発から機械学習・データ分析まで、現場で使えるPythonのノウハウが1冊にまとまっています。取り上げる話題は、環境構築、コード品質、テスト、構造化ログ、リリース管理、Django、Django REST framework、GraphQL、Fast API、Django ORM、データサイエンスプログラムの品質、データ分析レポート、pandasのパフォーマンス改善、JanomeとSudachiPyによる日本語処理、pandasやNumPyによるテスト、数理最適化などなど。今日から仕事で活かせるヒントやテクニックがきっと見つかるです。
  • 著者紹介(「BOOK著者紹介情報」より)(本データはこの書籍が刊行された当時に掲載されていたものです)

    altnight(ALTNIGHT)
    ビープラウド所属。Web2.0でなんやかんやした結果、現在は業務でWebアプリケーションを開発している

    石上 晋(イシガミ ススム)
    ビープラウド所属。System Creator。業務ではWeb案件、データサイエンス案件の要件定義、開発、ディレクションを担当

    delhi09(DELHI09)
    2020年からビープラウド所属。バックエンドエンジニア。前職でJavaの大規模システムに関わった後、現職ではPython×Djangoで中小規模の開発案件に複数関わる。設計の話が好き

    鈴木 たかのり(スズキ タカノリ)
    2012年3月よりビープラウド所属。前職で部内のサイトを作るためにZope/Ploneと出会い、その後、必要にかられてPythonを使い始める。現在の主な活動は一般社団法人PyCon JP Association代表理事、PyCon JP 2024共同座長、Pythonボルダリング部(#kabepy)部長、Python mini Hack‐a‐thon(#pyhack)主催など

    斎藤 努(サイトウ ツトム)
    東京工業大学大学院理工学研究科情報科学専攻修士課程修了。2024年現在、ビープラウドにてPyQや数理最適化案件などを担当。技術士(情報工学)
  • 著者について

    株式会社ビープラウド (カブシキガイシャビープラウド)
    2008年にPythonを主言語として採用し、Pythonを中核にインターネットプラットフォームを活用したシステムの自社開発・受託開発を行う。優秀なPythonエンジニアがより力を発揮できる環境作りに努め、Pythonに特化したオンライン学習サービス「PyQ」、システム開発者向けクラウドドキュメントサービス「TRACERY」、研修事業などを通して技術・ノウハウを発信する。また、IT勉強会支援プラットフォーム「connpass」の開発・運営や勉強会「BPStudy」の主催等、コミュニティ活動にも積極的に取り組む。著書・監修書に『いちばんやさしいPythonの教本 第2版』(インプレス2020年)、『徹底攻略Python 3 エンジニア認定[基礎試験]問題集』(インプレス2023年)、『Pythonプロフェッショナルプログラミング 第4版』(秀和システム2024年)、『pandasデータ処理ドリル』(翔泳社2023年)『Pythonで学ぶ数理最適化による問題解決入門』(翔泳社2024年)、『自走プログラマー』(技術評論社2020年)等。https://www.beproud.jp/

    altnight (アルトナイト)
    ビープラウド所属。Web 2.0でなんやかんやした結果、現在は業務でWebアプリケーションを開発している。X(旧 Twitter):@altnight

    石上 晋 (イシガミ ススム)
    ビープラウド所属。System Creator。業務ではWeb案件、データサイエンス案件の要件定義、開発、ディレクションを担当。共著書に『Pythonでチャレンジするプログラミング入門──もう挫折しない! 10の壁を越えてプログラマーになろう』(技術評論社、2023年)がある。メイドさんが好き。趣味は歩き旅。X(旧 Twitter):@susumuis

    delhi09 (デリーゼロキュウ)
    2020年からビープラウド所属。バックエンドエンジニア。前職でJavaの大規模システムに関わった後、現職ではPython × Djangoで中小規模の開発案件に複数関わる。設計の話が好き。

    鈴木 たかのり (スズキ タカノリ)
    2012年3月よりビープラウド所属。前職で部内のサイトを作るためにZope/Ploneと出会い、その後、必要にかられてPythonを使い始める。現在の主な活動は一般社団法人PyCon JP Association 代表理事、PyCon JP 2024共同座長、Python ボルダリング部(#kabepy)部長、Python mini Hack-a-thon(#pyhack)主催など。共著書に『Pythonプロフェッショナルプログラミング 第4版』(秀和システム、2024年)、『いちばんやさしいPython機械学習の教本 第2版』(インプレス、2023年)、『Pythonによるあたらしいデータ分析の教科書 第2版』(翔泳社、2022年)、『Python実践レシピ』(技術評論社、2022年)などがある。フェレットとビールとレゴが好き。趣味は吹奏楽(トランペット)とボルダリング。X(旧 Twitter):@takanoryhttps://slides.takanory.net

    斎藤 努 (サイトウ ツトム)
    東京工業大学大学院理工学研究科情報科学専攻修士課程修了。2024年現在、ビープラウドにてPyQや数理最適化案件などを担当。技術士(情報工学)。

現場のPython―Webシステム開発から、機械学習・データ分析まで(WEB+DB PRESS plusシリーズ) の商品スペック

商品仕様
出版社名:技術評論社
著者名:ビープラウド(監修)/altnight(著)/石上 晋(著)/delhi09(著)/鈴木 たかのり(著)/斎藤 努(著)
発行年月日:2024/09/25
ISBN-10:4297144018
ISBN-13:9784297144012
判型:A5
対象:専門
発行形態:単行本
内容:電子通信
言語:日本語
ページ数:384ページ
縦:21cm
他の技術評論社の書籍を探す

    技術評論社 現場のPython―Webシステム開発から、機械学習・データ分析まで(WEB+DB PRESS plusシリーズ) [単行本] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!