お問い合わせを送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
予約を送信いただきありがとうございます!当社のスタッフがすぐにご連絡いたします。
期間 28 時間
コース概要
1日目 — 堅牢なPythonの基礎とツール
モダンなPython機能と型付け
- 型付けの基礎、ジェネリクス、Protocols、TypeGuard
- Dataclasses、frozen dataclasses、およびattrsの概要
- パターンマッチング(PEP 634以降)とそのイディオマティックな使い方
コード品質とツール
- コードフォーマッタとリンター: black, isort, flake8, ruff
- MyPyおよびpyrightによる静的型チェック
- Pre-commitフックと開発者のワークフロー
プロジェクト管理とパッケージング
- Poetryと仮想環境による依存関係の管理
- パッケージのレイアウト、エントリポイント、バージョン管理のベストプラクティス
- PyPIおよびプライベートレジストリへのパッケージのビルドと公開
2日目 — 設計パターンとアーキテクチャ実践
Pythonにおける設計パターン
- 生成系パターン: Factory, Builder, Singleton(Python的な変種)
- 構造系パターン: Adapter, Facade, Decorator, Proxy
- 振る舞い系パターン: Strategy, Observer, Command
アーキテクチャの原則
- PythonコードベースへのSOLID原則の適用
- ヘキサゴナル/クリーンアーキテクチャと境界線
- 依存性注入パターンと設定管理
モジュール化と再利用
- ライブラリコードとアプリケーションコードの設計
- API、安定したインターフェース、セマンティックバージョニング
- 設定、シークレット、環境固有の設定の処理
3日目 — 並行性、非同期IO、パフォーマンス
並行性と並列性
- スレッドの基礎とGIL(グローバルインタープリタロック)の影響
- CPUバウンドなタスクのためのマルチプロセシングとプロセスプール
- concurrent.futuresとmultiprocessingの使い分け
asyncioによる非同期プログラミング
- Async/awaitパターン、イベントループ、キャンセル
- 非同期ライブラリの設計と同期コードとの相互運用性
- IOバウンドパターン、バックプレッシャー、レート制限
プロファイリングと最適化
- プロファイリングツール: cProfile, pyinstrument, perf, memory_profiler
- ホットパスの最適化、適切な箇所でC拡張/Numbaの使用
- レイテンシー、スループット、リソース使用率の測定
4日目 — テスト、CI/CD、可観測性、デプロイ
テスト戦略と自動化
- pytestによるユニットテストとフィクスチャ; テストの組織化
- Hypothesisによるプロパティベーステストと契約テスト
- モック、モンキパッチ、非同期コードのテスト
CI/CD、リリース、監視
- GitHub Actions/GitLab CIへのテストと品質ゲートの統合
- Dockerとマルチステージビルドによる再現可能なコンテナの構築
- アプリケーションの可観測性: 構造化ログ、Prometheusメトリクス、トレーシング
セキュリティ、強靭化、ベストプラクティス
- 依存関係の監査、SBOM(ソフトビリー・オブジェクト・マニフェスト)の基礎、脆弱性スキャン
- 入力検証とシークレット管理のための安全なコーディングプラクティス
- ランタイムの強靭化: リソース制限、ユーザー権限、コンテナセキュリティ
キャップストーンプロジェクトとレビュー
- チームラボ: コースで学んだパターンを用いて小規模なサービスの設計と実装
- プロジェクトのテスト、型チェック、パッケージング、CIパイプライン
- 最終レビュー、コードの批評、実行可能な改善計画
まとめと次のステップ
要求
- 確かな中級レベルのPythonプログラミング経験
- オブジェクト指向プログラミングと基本的なテストの知識
- コマンドラインとGitの使用経験
対象読者
- シニアPython開発者
- Pythonコードの品質とアーキテクチャを担うソフトウェアエンジニア
- Pythonコードベースで作業するテックリードおよびMLOps/DevOpsエンジニア
お客様の声 (2)
すべてが完璧でした
Florin Vrincianu
コース - Python Programming Fundamentals
機械翻訳
各トピックについてより深く理解するのに、実践的な演習が大いに役立ちます。また、授業を講義で始め、その後実践的な演習を続けていくスタイルは、先に呈示された講義内容と関連付ける上で非常に役立つし、助けになります。
Nazeera Mohamad - Ministry of Science, Technology and Innovation
コース - Introduction to Data Science and AI using Python
機械翻訳