Slide 1

Slide 1 text

コードをBlackにしよう

Slide 2

Slide 2 text

自己紹介 ● Twitter / GitHub ○ ikura1 ● 仕事 ○ スポーツデータを用いた統計や機械学習 ● 最近やってること ○ Djangoと戯れてる

Slide 3

Slide 3 text

好きなスタイル教えてください

Slide 4

Slide 4 text

どのスタイルが好きですか? 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

Slide 5

Slide 5 text

人によって好きなコードは違う

Slide 6

Slide 6 text

Pythonを使っていても PEP8に守っていても 違いは出る

Slide 7

Slide 7 text

人のコードを読む機会はよくある ● ブログ ● 仕事 ○ チーム ○ 前任者 ● OSS ● 1ヶ月前の自分のコード

Slide 8

Slide 8 text

読みにくいコードもある

Slide 9

Slide 9 text

わたしの場合は前任者のコード ● 仕事としては機能追加 ● 来たコードは ○ スタイルが意識されていないコード ○ 可読性がなくて読むのに時間がかかる ○ 人力で直すのはつらいコード量

Slide 10

Slide 10 text

フォーマッターは使った ● 指定されたフォーマットに直してくれるだけの機能 ● 人が処理できない行数を簡単にフォーマットできる ● コーディング時にスタイルを気にする必要がなくなる ● レビュー時にスタイルを指摘することがなくなります

Slide 11

Slide 11 text

考えることが減らせる! 必要な所に集中できる!

Slide 12

Slide 12 text

フォーマッターはいいぞ!

Slide 13

Slide 13 text

有名なフォーマッター ● autopep8 ● YAPF ● Black

Slide 14

Slide 14 text

Blackはいいぞ ● 名前がかっこいい ● 設定をすることができない

Slide 15

Slide 15 text

Blackは設定することができない ● それが魅力でそれが全て ○ 使っているコードならスタイル気にせず読める ○ 細かい調整をする必要がない ○ チームでスタイルの議論をする必要がなくなる ○ 個人の好みでスタイルが変化することがなくなる

Slide 16

Slide 16 text

Pythonを使っていても PEP8に従っていても 違いは出る

Slide 17

Slide 17 text

Blackを使えば違いは出ない

Slide 18

Slide 18 text

Blackが使われているプロダクト ● pytest ● SQLAlchemy ● Pyramid ● Sanic ● Tornado ● Poetry ● Pipenv

Slide 19

Slide 19 text

Blackが使われているプロダクト ● pytest ● SQLAlchemy ● Pyramid ● Sanic ● Tornado ● Poetry ● Pipenv

Slide 20

Slide 20 text

DjangoもBlackが提案され承認されている ● 既存・新規の障壁を取り除ける ● スタイルを気にする必要がない ● 設定を調整する必要がない ● ハードルが一つ少なくなる ● ベータなので安定したら実行する

Slide 21

Slide 21 text

Blackの使い方 $ pip install black $ black hoge.py reformatted hoge.py All done! ✨ ✨ 1 file reformatted.

Slide 22

Slide 22 text

コードをBlackにしませんか?