Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Python開発に役立つツールの紹介 - NIFTY Tech Talk #11
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ニフティ株式会社
PRO
May 30, 2023
Video
Resources
Programming
0
730
Python開発に役立つツールの紹介 - NIFTY Tech Talk #11
ニフティ株式会社
PRO
May 30, 2023
Tweet
Share
Video
Resources
新人エンジニアに贈る最強の開発環境 - NIFTY Tech Talk #11
https://nifty.connpass.com/event/284175/
More Decks by ニフティ株式会社
See All by ニフティ株式会社
なぜISPでオリジナルカードゲームを作ったのか?制作者と対談 - NIFTY Tech Talk #25
niftycorp
PRO
0
63
「なぜかネットが遅い」を“見える化”する 〜マイ ニフティが繋ぐサポートと暮らし〜 - NIKKEI Tech Talk #39
niftycorp
PRO
0
390
InnerSource Summit 2025 Three points that promoted innersource activities
niftycorp
PRO
0
210
Maker Faire Tokyo 2025 出展うらばなし - NIFTY Tech Talk #25
niftycorp
PRO
0
87
Private Status Pageの設定と活用 〜インシデントレスポンスへの活用とStatus Page運用をどうするか?〜
niftycorp
PRO
0
140
ニフティのPagerDuty活用状況
niftycorp
PRO
0
120
会員管理基盤をオンプレからクラウド移行した時に起きた障害たち - asken tech talk vol.13
niftycorp
PRO
0
2.6k
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
1.1k
2025-07-08 InnerSource Commons Japan Meetup #14 【OST】チームの壁、ぶっ壊そ!壁の乗り越え方、一緒に考えよう!
niftycorp
PRO
0
120
Other Decks in Programming
See All in Programming
CSC307 Lecture 07
javiergs
PRO
1
560
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
140
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
180
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
高速開発のためのコード整理術
sutetotanuki
1
410
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
190
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
What's in a price? How to price your products and services
michaelherold
247
13k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building Applications with DynamoDB
mza
96
6.9k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
220
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
190
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
WCS-LA-2024
lcolladotor
0
450
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
Transcript
Copyright © NIFTY Corporation All Rights Reserved. Python開発に役⽴つツールの紹介 ⼩倉聡司 NIFTY
Tech Talk #11 「新⼈エンジニアに贈る最強の開発環境」 2023/05/30
Copyright © NIFTY Corporation All Rights Reserved. ⾃⼰紹介 ⼩倉 聡司(おぐら
さとし) ニフティ株式会社 基幹システムグループ 課⾦システムチーム 新卒⼊社3年⽬ 担当業務 書⾯発送システム、課⾦請求系システム等の開発・運⽤
Copyright © NIFTY Corporation All Rights Reserved. 話すこと ❏ 効率性や品質向上に繋がる便利な以下のツールについて紹介します
❏ Poetry パッケージ管理ツール ❏ Ruff Linter ❏ Black Formatter ❏ Mypy 静的型チェッカー ❏ Pytest 単体テストツール
Copyright © NIFTY Corporation All Rights Reserved. Poetry Pythonパッケージ管理ツールの⼀種 依存関係の管理、パッケージングを効率化するツール
❏ 特徴 ❏ 依存関係の管理 ❏ プロジェクトの仮想環境 ❏ パッケージング
Copyright © NIFTY Corporation All Rights Reserved. Poetry ❏ メリット
❏ 依存関係の管理を簡素化してくれる ❏ バージョンの衝突や互換性を回避 プロジェクト内のライブラリの⼀貫性を保つのに役⽴つ
Copyright © NIFTY Corporation All Rights Reserved. Poetry Poetryインストール curl
-sSL https://install.python-poetry.org | python3 - # 新規プロジェクトの場合 poetry new <project_name> # 既存プロジェクトの場合 poetry init プロジェクトのセットアップ
Copyright © NIFTY Corporation All Rights Reserved. Poetry [tool.poetry] name
= "techtalk" version = "0.1.0" description = "" authors = ["ogura <メールアドレス>"] readme = "README.md" [tool.poetry.dependencies] python = "^3.11" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" pyproject.toml
Copyright © NIFTY Corporation All Rights Reserved. Poetry # 本番環境で必須のパッケージ
poetry add pydantic # 開発環境でのみ必要なパッケージ poetry add mypy ruff black pytest --dev パッケージの追加 [tool.poetry.dependencies] python = "^3.11" pydantic = "^1.10.8" [tool.poetry.group.dev.dependencies] pytest = "^7.3.1" mypy = "^1.3.0" ruff = "^0.0.269" black = "^23.3.0"
Copyright © NIFTY Corporation All Rights Reserved. パッケージのインストール Poetry 仮想環境外からの操作
poetry run <command> poetry install 仮想環境に⼊る poetry shell
Copyright © NIFTY Corporation All Rights Reserved. Rustで記述されたPython⽤Linter ❏ Linterとは︖
❏ Linterは特定のコード規約に従っていないコードがないかを静的解 析によりチェックするツール ❏ 特徴 ❏ 静的コード解析 ❏ さまざまなlintルールの選択 ❏ ⾃動修正 Ruff
Copyright © NIFTY Corporation All Rights Reserved. Ruff ❏ メリット
❏ エラーの早期発⾒ ❏ コードの可読性向上 ❏ チームでのコーディングルールの共通化 プロジェクトの品質とメンテナンスの容易化に役⽴つ
Copyright © NIFTY Corporation All Rights Reserved. Ruff Lintルール選択 ruff
. --select E --select W ruff . --ignore E501 ruff . --select E --select W --ignore E501 --fix 適応しないルール ⾃動修正 チェックのみ(修正はしない) ruff check .
Copyright © NIFTY Corporation All Rights Reserved. BlackはPEP8に準拠したPython⽤Formatter ❏ Formatterとは︖
❏ コードのスタイルを静的解析を⾏いチェックするツール ❏ 特徴 ❏ ⾃動フォーマット ❏ フォーマットの⼀貫性 Black
Copyright © NIFTY Corporation All Rights Reserved. ❏ メリット ❏
コードのフォーマットを⾃動化してくれる ❏ チーム全体でコードのスタイルを統⼀してくれる Black 開発効率向上、品質と保守性の向上に役⽴つ
Copyright © NIFTY Corporation All Rights Reserved. Black 1⾏における最⼤⽂字数の指定 チェックのみ(フォーマットはされません)
フォーマットの差分を確認 black --line-length 120 . black --check . black --check --diff .
Copyright © NIFTY Corporation All Rights Reserved. MypyはPythonの静的型チェックを実⾏するツール ❏ 静的型チェック
❏ Pythonの型ヒントを活⽤し、コードの型エラーを検出 ❏ メリット ❏ エラーや意図しない動作を事前に防ぐことが可能 ❏ 信頼性の⾼いコードを実装し、効率的なデバッグ、保守が可能 Mypy 品質向上とバグの早期発⾒に役⽴つ
Copyright © NIFTY Corporation All Rights Reserved. Mypy 型チェック 厳格に型チェックをする場合
mypy . mypy --strict .
Copyright © NIFTY Corporation All Rights Reserved. Pythonで書かれたテストを実⾏するツール Pytest ❏
特徴 ❏ シンプルな構⽂ ❏ 豊富なアサーション ❏ テストランナー機能と柔軟性 ❏ テストカバレッジのサポート
Copyright © NIFTY Corporation All Rights Reserved. Pytest ❏ メリット
❏ シンプルな構⽂と豊富な機能を持つ ❏ さまざまなテストパターンに活⽤できる 品質を確保するのに役に⽴つ
Copyright © NIFTY Corporation All Rights Reserved. Pytest テストの実⾏ pytest
カバレッジの計測 # install pip install pytest-cov # カバレッジの計測 pytest –cov=<対象のディレクトリorファイル>
Copyright © NIFTY Corporation All Rights Reserved. ツールの設定値をpyproject.tomlにまとめる [tool.ruff] select
= [ # pyflakes "F", # pycodestyle errors, warnings "E", "W", # isort "I", # flake8-2020 "YTT", # flake8-bugbear "B", ] target-version = "py311" line-length = 120 [tool.mypy] warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true strict = true [tool.black] line-length = 120 target-version = ["py311"] [tool.pytest.ini_options] testpaths = [ "tests", ] 今まで紹介したツールはpyproject.tomlに⼀元管理できる
Copyright © NIFTY Corporation All Rights Reserved. まとめ ❏ 紹介したツールを活⽤することでコードの品質向上やバグの早期発⾒
に役⽴ちます。 ❏ チームに導⼊することで開発における品質と⽣産性を向上させ効率的 な開発プロセスを実現しましょう。 *Docker環境で今回紹介したツールを活⽤する⽅法は以下のページに記述 https://engineering.nifty.co.jp/blog/16673
Copyright © NIFTY Corporation All Rights Reserved.