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.4k
コードをBlackにしよう
PythonのコードフォーマッターのBlackはいいぞというLTです。
Yuki Okuda
July 14, 2019
Tweet
Share
More Decks by Yuki Okuda
See All by Yuki Okuda
競技プログラミング入門
ikura1
1
280
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java with ASF in the Middle
ivargrimstad
0
110
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
300
為你自己學 Python - 冷知識篇
eddie
1
350
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
110
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
510
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
120
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
170
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
3
200
2025 年のコーディングエージェントの現在地とエンジニアの仕事の変化について
azukiazusa1
24
12k
Reading Rails 1.0 Source Code
okuramasafumi
0
190
RDoc meets YARD
okuramasafumi
4
170
AWS発のAIエディタKiroを使ってみた
iriikeita
1
180
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
Site-Speed That Sticks
csswizardry
10
810
Visualization
eitanlees
148
16k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Bash Introduction
62gerente
615
210k
Being A Developer After 40
akosma
90
590k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
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にしませんか?