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
コードをBlackにしよう
Search
Yuki Okuda
July 14, 2019
Programming
1
2.5k
コードをBlackにしよう
PythonのコードフォーマッターのBlackはいいぞというLTです。
Yuki Okuda
July 14, 2019
Tweet
Share
More Decks by Yuki Okuda
See All by Yuki Okuda
競技プログラミング入門
ikura1
1
290
Other Decks in Programming
See All in Programming
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
210
Data-Centric Kaggle
isax1015
2
780
Raku Raku Notion 20260128
hareyakayuruyaka
0
340
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
Patterns of Patterns
denyspoltorak
0
1.4k
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
740
CSC307 Lecture 04
javiergs
PRO
0
660
AI & Enginnering
codelynx
0
120
CSC307 Lecture 10
javiergs
PRO
1
660
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
760
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
67
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
WCS-LA-2024
lcolladotor
0
450
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Language of Interfaces
destraynor
162
26k
Transcript
コードをBlackにしよう
自己紹介 • Twitter / GitHub ◦ ikura1 • 仕事 ◦
スポーツデータを用いた統計や機械学習 • 最近やってること ◦ Djangoと戯れてる
好きなスタイル教えてください
どのスタイルが好きですか? def replace( text, old, new ): ... txt =
'Hello, World' replace(txt, 'World', 'Osaka') def replace( text, old, new ): ... txt = "Hello, World" replace( txt, "World", "Osaka" ) def replace(text, old, new): ... txt = "Hello, World" replace(txt, "World", "Osaka") A B C
人によって好きなコードは違う
Pythonを使っていても PEP8に守っていても 違いは出る
人のコードを読む機会はよくある • ブログ • 仕事 ◦ チーム ◦ 前任者 •
OSS • 1ヶ月前の自分のコード
読みにくいコードもある
わたしの場合は前任者のコード • 仕事としては機能追加 • 来たコードは ◦ スタイルが意識されていないコード ◦ 可読性がなくて読むのに時間がかかる ◦
人力で直すのはつらいコード量
フォーマッターは使った • 指定されたフォーマットに直してくれるだけの機能 • 人が処理できない行数を簡単にフォーマットできる • コーディング時にスタイルを気にする必要がなくなる • レビュー時にスタイルを指摘することがなくなります
考えることが減らせる! 必要な所に集中できる!
フォーマッターはいいぞ!
有名なフォーマッター • autopep8 • YAPF • Black
Blackはいいぞ • 名前がかっこいい • 設定をすることができない
Blackは設定することができない • それが魅力でそれが全て ◦ 使っているコードならスタイル気にせず読める ◦ 細かい調整をする必要がない ◦ チームでスタイルの議論をする必要がなくなる ◦
個人の好みでスタイルが変化することがなくなる
Pythonを使っていても PEP8に従っていても 違いは出る
Blackを使えば違いは出ない
Blackが使われているプロダクト • pytest • SQLAlchemy • Pyramid • Sanic •
Tornado • Poetry • Pipenv
Blackが使われているプロダクト • pytest • SQLAlchemy • Pyramid • Sanic •
Tornado • Poetry • Pipenv
DjangoもBlackが提案され承認されている • 既存・新規の障壁を取り除ける • スタイルを気にする必要がない • 設定を調整する必要がない • ハードルが一つ少なくなる •
ベータなので安定したら実行する
Blackの使い方 $ pip install black $ black hoge.py reformatted hoge.py
All done! ✨ ✨ 1 file reformatted.
コードをBlackにしませんか?