Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コードをBlackにしよう
Search
Yuki Okuda
July 14, 2019
Programming
1
2.3k
コードをBlackにしよう
PythonのコードフォーマッターのBlackはいいぞというLTです。
Yuki Okuda
July 14, 2019
Tweet
Share
More Decks by Yuki Okuda
See All by Yuki Okuda
競技プログラミング入門
ikura1
1
260
Other Decks in Programming
See All in Programming
5分ぐらいで分かる、トリミング機能の作り方
tsutsuitakumi
0
140
競技プログラミングで 基礎体力を身につけよう / You can get basic skills through competitive programming
mdstoy
0
130
MoQとか勉強会#2 発表資料
yuki_uchida
1
120
React CompilerとFine Grained Reactivityと宣言的UIのこれから / The next chapter of declarative UI
ssssota
7
2.7k
イマのCSSでできる インタラクション最前線 + CSS最新情報
clockmaker
5
3.7k
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
400
気をつけたい!Desktop対応で陥りやすい罠とその対策
goto_tsl
0
160
Thoughts and experiences on Rust and TypeScript
unvalley
2
200
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
160
Swift Testing - iPlayground
chiaoteni
0
140
macOS なしで iOS アプリを開発する(※ただし xxx に限る)
mitsuharu
1
150
かんたんデザイン編集やってみた~「完全に理解した」までの道のり~
morit4ryo
1
110
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
24k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
1
210
Speed Design
sergeychernyshev
25
640
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
What's in a price? How to price your products and services
michaelherold
243
12k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Code Reviewing Like a Champion
maltzj
520
39k
Become a Pro
speakerdeck
PRO
25
5k
Raft: Consensus for Rubyists
vanstee
136
6.7k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
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にしませんか?