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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ニフティ株式会社
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
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
AI時代の認知負荷との向き合い方
optfit
0
160
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
690
組織で育むオブザーバビリティ
ryota_hnk
0
180
CSC307 Lecture 07
javiergs
PRO
1
560
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
AgentCoreとHuman in the Loop
har1101
5
240
SourceGeneratorのススメ
htkym
0
200
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
Featured
See All Featured
Music & Morning Musume
bryan
47
7.1k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
Marketing to machines
jonoalderson
1
4.6k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
How GitHub (no longer) Works
holman
316
140k
Believing is Seeing
oripsolob
1
56
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Deep Space Network (abreviated)
tonyrice
0
49
Crafting Experiences
bethany
1
49
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
A Tale of Four Properties
chriscoyier
162
24k
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.