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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
300
Other Decks in Programming
See All in Programming
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
530
AHC061解説
shun_pi
0
380
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
220
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
230
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
120
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
350
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
510
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
970
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
990
オブザーバビリティ駆動開発って実際どうなの?
yohfee
3
850
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
2.9k
Featured
See All Featured
Designing for Performance
lara
611
70k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
480
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Building the Perfect Custom Keyboard
takai
2
710
Agile that works and the tools we love
rasmusluckow
331
21k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
The agentic SEO stack - context over prompts
schlessera
0
700
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.9k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
290
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にしませんか?