正しいプログラムは綺麗なコードに宿る

公開日:

札幌市中央区TAKETOビル会議室(コワーキングスペース エレオ)で開催された『札幌)もくもく会×ライトニングトーク会』でライトニングトーク(5分)として発表しました。

Download PDF

スライドテキスト

Page 1

正しいプログラムは 綺麗なコードに宿る

A good program resides in clean code.

pixiv Inc.
USAMI Kenta

北海道LT大会

2022-04-15

Page 2

お前誰よ

  • うさみけんた (@tadsan) / Zonu.EXE / にゃんだーすわん
  • ピクシブ株式会社 pixiv事業本部 エンジニア
    • 最近はピクシブ百科事典(dic.pixiv.net)を開発しています
  • Emacs Lisper, PHPer
    • Emacs PHP Modeを開発しています (2017年-)
  • プログラミング言語にちょっとこだわりのある素人

Page 3

お前誰よ

(地元向け)

  • 砂川 → 宮の沢 → 代々木

(1990-2007) (2007-2011) (2012-)

  • 北海道工業大学 (えっ、北科大なにそれ知らん)
  • 2011年頃にPython札幌勉強会とかのコミュニティをやっていました
  • PHPカンファレンス北海道があれば帰省する生活 (2016, 2019)
  • 札幌Ruby会議2012スタッフ、札幌市中央区Ruby会議LT

Page 4

ふだんはEmacsとか PHPとかやってます

Page 5

さて

Page 6

綺麗なコード
書いてますか?

Page 7

コードの乱れは
心の乱れ

Page 8

正しいプログラムは 綺麗なコードに宿る

Page 9

綺麗なコードが
モダーンなコード

Page 10

美しいコードを書くのは
靴を脱いで揃えるのと同じ

Page 11

きたないコードは
争いを生む

Page 12

さあ美しいコードを
書きましょう…

Page 13

そう思いませんか?

Page 14

どうやってコードをインデントする?

https://www.emacswiki.org/pics/static/TabsSpacesBoth.png より

Page 15

均整でないソースコードの弊害

  • チーム内での認知的な摩擦
  • 同じリポジトリ内でも「ナワバリ」によってフォーマットの慣習が違う(!)
  • コードレビューで「ここにスペースを入れてください」「ここで改行してくださ
    い」などの不毛すぎる指摘をする羽目に…
  • 「レビュー対応」というコードスタイルを直すだけの最悪のコミットが履歴に積
    まれる (そういう些細な変更は(fixupで直して…という意見はある)

Page 16

誰がコードを書いても 同じスタイルにしたい

Page 17

Code Formatter

コードスタイルを整形
するツールの総称

Page 18

フォーマッター導入
待ったなし

Page 19

Page 20

Page 21

退屈なことは機械にやらせよう

  • ツールを呼び出すとフォーマッタが全てのコードを整形してくれる
  • 人間が細かいところに気をつけながらコーディングしなくていい
  • 最悪、人間がコードフォーマットをまったく把握してなくてもいい
  • コミットする前にフォーマッターをかけてくれることだけ徹底してくれれば

Page 22

それでだ

Page 23

モダーンな言語の定義

Page 24

言語標準の
フォーマッターがある

Page 25

go fmt
dart format
rustfmt

Page 26

われらが最新最高言語
PHPはどうだ

Page 27

Page 28

ただ普及してる
フォーマッターはある

Page 29

PHP-CS-Fixer
PHP_CodeSiffer

Page 30

_人人人人人人_ > 二つある <  ̄Y^Y^Y^Y^Y ̄

Page 31

語ると長いが…
設計思想の違いがある

Page 32

まじめなプロジェクトでは
どちらかを選んで使う

Page 33

で、あんたは どっち派?

Page 34

どうやってコードをインデントする?

CodeSniffer

CS-Fixer

両方

もちつけ

tadsan

https://www.emacswiki.org/pics/static/TabsSpacesBoth.png より

Page 35

PHPについては そのうちどこかで

Page 36

Page 37

続きはWebで