Submit Search
Upload
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
•
Download as PPTX, PDF
•
17 likes
•
40,730 views
Masanori Hayashi
Follow
PHPカンファレンス2018 LT登壇資料
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 51
Download now
Recommended
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれから
Hiroshi Kawada
アジャイルとかDevOpsとかことばの整理
アジャイルとかDevOpsとかことばの整理
Osamu Watanabe
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
米国大学院に合格するためにやったこと
米国大学院に合格するためにやったこと
Tatsuya Nanjo
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
Hiroshi Tokumaru
Recommended
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれから
Hiroshi Kawada
アジャイルとかDevOpsとかことばの整理
アジャイルとかDevOpsとかことばの整理
Osamu Watanabe
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
米国大学院に合格するためにやったこと
米国大学院に合格するためにやったこと
Tatsuya Nanjo
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
Hiroshi Tokumaru
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
Mikiya Okuno
コンポーネント指向と余白の設計
コンポーネント指向と余白の設計
Manabu Yasuda
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
gree_tech
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
増田 亨
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
Tsuyoshi Ushio
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Hiroshi Maekawa
20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code
Shinichi Takahashi
クリーンランゲージについて
クリーンランゲージについて
nishio
Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)
Tomoaki Uchida
ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011
H Iseri
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
Kota Mizushima
私にとってのテスト
私にとってのテスト
Takuto Wada
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日
Masanori Hayashi
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう
Masanori Hayashi
More Related Content
What's hot
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
Mikiya Okuno
コンポーネント指向と余白の設計
コンポーネント指向と余白の設計
Manabu Yasuda
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
gree_tech
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
増田 亨
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
Tsuyoshi Ushio
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
Hiroshi Maekawa
20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code
Shinichi Takahashi
クリーンランゲージについて
クリーンランゲージについて
nishio
Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)
Tomoaki Uchida
ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011
H Iseri
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
増田 亨
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
Kota Mizushima
私にとってのテスト
私にとってのテスト
Takuto Wada
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
ドメイン駆動設計入門
ドメイン駆動設計入門
Takuya Kitamura
What's hot
(20)
リレーショナルな正しいデータベース設計
リレーショナルな正しいデータベース設計
コンポーネント指向と余白の設計
コンポーネント指向と余白の設計
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
サーバサイドの並行プログラミング〜かんたんマルチスレッドプログラミング〜
リーンなコードを書こう:実践的なオブジェクト指向設計
リーンなコードを書こう:実践的なオブジェクト指向設計
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
20171005 告白に学ぶ http status code
20171005 告白に学ぶ http status code
クリーンランゲージについて
クリーンランゲージについて
Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)
ユニットテストの保守性を作りこむ, xpjugkansai2011
ユニットテストの保守性を作りこむ, xpjugkansai2011
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
ドワンゴにおける新卒エンジニア向けScala研修について
ドワンゴにおける新卒エンジニア向けScala研修について
私にとってのテスト
私にとってのテスト
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
ドメイン駆動設計入門
ドメイン駆動設計入門
Similar to 「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日
Masanori Hayashi
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう
Masanori Hayashi
Chatbot hack 登壇資料2017
Chatbot hack 登壇資料2017
大輔 藤本
20180111サポーターズco lab
20180111サポーターズco lab
Hidemi Arai
20171127studycode_intro @HDE
20171127studycode_intro @HDE
Hidemi Arai
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
VOYAGE GROUP
20170514 StartupWeekendOkyama_PreEvent
20170514 StartupWeekendOkyama_PreEvent
Hidemi Arai
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
Hiroyuki Ishikawa
プログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのか
Haruo Sato
SIerのDevRel術
SIerのDevRel術
Taiji Hagino
エンジニアのキャリアを考える
エンジニアのキャリアを考える
MKT International Inc.
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方
Hiroyuki Sugimoto
新規事業担当者のためのカオスマップ解説
新規事業担当者のためのカオスマップ解説
Hidemi Arai
Scratchを使った CaT的脳トレのすすめ
Scratchを使った CaT的脳トレのすすめ
Masao Niizuma
レビューの自動化事業について
レビューの自動化事業について
ssuserf1e090
レビューの自動化事業について
レビューの自動化事業について
ssuserf1e090
20170708 smips
20170708 smips
Hidemi Arai
120204 linkedin(リンクトイン)を学ぶ
120204 linkedin(リンクトイン)を学ぶ
botyuki
個人的情報発信ノスゝメ~準備編~
個人的情報発信ノスゝメ~準備編~
Teruchika Yamada
Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張
Yuya Matsushima
Similar to 「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
(20)
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう
Chatbot hack 登壇資料2017
Chatbot hack 登壇資料2017
20180111サポーターズco lab
20180111サポーターズco lab
20171127studycode_intro @HDE
20171127studycode_intro @HDE
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
20170514 StartupWeekendOkyama_PreEvent
20170514 StartupWeekendOkyama_PreEvent
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
プログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのか
SIerのDevRel術
SIerのDevRel術
エンジニアのキャリアを考える
エンジニアのキャリアを考える
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方
新規事業担当者のためのカオスマップ解説
新規事業担当者のためのカオスマップ解説
Scratchを使った CaT的脳トレのすすめ
Scratchを使った CaT的脳トレのすすめ
レビューの自動化事業について
レビューの自動化事業について
レビューの自動化事業について
レビューの自動化事業について
20170708 smips
20170708 smips
120204 linkedin(リンクトイン)を学ぶ
120204 linkedin(リンクトイン)を学ぶ
個人的情報発信ノスゝメ~準備編~
個人的情報発信ノスゝメ~準備編~
Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張
More from Masanori Hayashi
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
Masanori Hayashi
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
Masanori Hayashi
Phpstudy98
Phpstudy98
Masanori Hayashi
Php blt-vol2
Php blt-vol2
Masanori Hayashi
Symfony meetup-7
Symfony meetup-7
Masanori Hayashi
Glt vol49
Glt vol49
Masanori Hayashi
Glt vol48
Glt vol48
Masanori Hayashi
ボトルネックを解消せよ
ボトルネックを解消せよ
Masanori Hayashi
Glt vol47
Glt vol47
Masanori Hayashi
PHP framework Phalcon
PHP framework Phalcon
Masanori Hayashi
俺的世界で一番暑い夏
俺的世界で一番暑い夏
Masanori Hayashi
Soft bank ssl仕様変更について
Soft bank ssl仕様変更について
Masanori Hayashi
20081120 lt11th ace
20081120 lt11th ace
Masanori Hayashi
More from Masanori Hayashi
(13)
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
Phpstudy98
Phpstudy98
Php blt-vol2
Php blt-vol2
Symfony meetup-7
Symfony meetup-7
Glt vol49
Glt vol49
Glt vol48
Glt vol48
ボトルネックを解消せよ
ボトルネックを解消せよ
Glt vol47
Glt vol47
PHP framework Phalcon
PHP framework Phalcon
俺的世界で一番暑い夏
俺的世界で一番暑い夏
Soft bank ssl仕様変更について
Soft bank ssl仕様変更について
20081120 lt11th ace
20081120 lt11th ace
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
1.
「クソコード」 言い換えのご提案 PHP Conference 2018 2018.12.15(Sat) m_norii
2.
自己紹介 @m_norii 林 正紀 (HAYASHI
Masanori) 埼玉生まれ埼玉育ち埼玉川越市在住 埼玉大学/大学院・数学専攻 埼玉土着エンジニア デザインワン・ジャパン㈱ Chief Tech Lead Mr.Childrenは人生の道標 https://norii.hatenablog.com/ https://www.slideshare.net/m_norii
3.
所属:デザインワン・ジャパン https://www.designone.jp/
4.
エキテン ─ 日本全国あらゆる店舗を網羅した口コミサイト https://www.ekiten.jp/
5.
免責 本資料の内容は、個人の見解であり 所属する組織の見解を代表するものではありません。 ご了承ください。
6.
本題
7.
世の中はクソコードへの 恨みで満ちている
8.
https://togetter.com/li/544905
9.
https://www.megamouth.info/entry/2017/08/01/083126
10.
http://phpcon.php.gr.jp/2018/ 本日のセッションにも…
11.
クソコードの温床例:Commonクラス https://twitter.com/zephiransas/status/973763724845621253
12.
Commonクラスという名の闇 $ ls -l
Common.class.php -rw-r--r-- 1 webmaster webmaster 532371 11月 21 10:05 Common.class.php $ wc -l Common.class.php 16664 Common.class.php $ grep function Common.class.php | wc –l 348
13.
クソコードへの 恨みは絶えない
14.
しかし、このような状況に 異を唱える方がいる
15.
https://ppworks.hatenablog.jp/entry/2015/01/17/152545
16.
https://twitter.com/hyuki/status/942791458133762048
17.
わかる
18.
一方で
19.
https://twitter.com/kazuho/status/938645599280291841
20.
https://twitter.com/bluerabbit777jp/status/937823454287429632
21.
わかる
22.
さらに
23.
https://twitter.com/hgunsou/status/969595965219815424
24.
わかる
25.
しかし、この議論が起こるたび、 しばらく盛り上がり、 気がつくと下火になり また時が経ち また議論が起こる ・・・という繰り返しに。 なんか不毛に感じませんか。
26.
この不毛な状況に 終止符を打ちたい
27.
言い換えの提案の前に 確認事項
28.
そもそも「クソ」とは何か? くそ 【糞・屎】[名] ① 動物が肛門から排泄する、消化器で消化した食物の かす。大便。ふん。 ②
あか。かす。 ③ 他の語につけて、卑しめ、ののしり、または強めて いうのに用いる語 ④ ・・・など問題外だ 岩波書店『広辞苑 第七版』より
29.
事実「クソ」という言葉には 卑しめ、ののしりの意味がある
30.
でも、ダメなものを指摘できない 環境もよくない
31.
どうすればよいか?
32.
「クソコード」を 「クソ」と認めることと 「クソ」と表現することを わけて考えるべき
33.
つまり「クソ」である事実を伝える 「卑しめ、ののしり」のニュアンス を含まない 言葉を使って表現すればよい
34.
実は過去にも言い換えの提案はあった https://twitter.com/lalha2/status/220828104971657216 https://twitter.com/mattn_jp/status/938559190527655937 https://twitter.com/_quantumman_/status/914676420437143553
35.
しかしどれも 定着したとはいいがたい
36.
なぜか?
37.
新しい言葉が定着するには 1. 名が体を表していること 2. キャッチー、言いやすいこと →
今までの言い換えは、後者が欠けているのでは
38.
以上を踏まえて 言い換えのご提案
39.
おさらい:僕らが表現したいこと 「クソ」であることを体現しつつも 卑しめ・ののしりのニュアンスを含まない言葉 そんな言葉を TV、メディアで聴いたことありませんか? それは・・・
40.
41.
遺憾
42.
遺憾とは い-かん 【遺憾】 思い通りに行かず心残りなこと。 残念。気の毒。 ▷公的な場で、釈明や不満の意を表すときにも 用いる。 岩波書店『広辞苑 第七版』より
43.
これこそ 僕らが表現したいことでは!
44.
そして、言葉が定着するための もう一つの条件はどうか?
45.
キャッチーさ
46.
遺憾 コード
47.
いかん コード
48.
ダジャレっぽい!
49.
ということで クソコード ↓ 遺憾コード への言い換えをここに提案します!
50.
クソコードを見かけたら 遺憾の意を表明しましょう
51.
Thank you for
listening!
Editor's Notes
よろしくおねがいします。 それでは「クソコード言い換えのご提案」というタイトルで発表させていただきます。 Twitterアカウント m_norii と申します。よろしくおねがいします。
自己紹介です。 埼玉生まれ埼玉育ち埼玉川越在住の埼玉土着エンジニアです。
デザインワン・ジャパンという会社に勤務しています
日本全国あらゆる店舗を網羅した口コミサイト「エキテン」というサービスを運営しています。 名前だけでも覚えていただけたら幸いです。
本発表の内容は個人の見解であり、所属する組織の見解を 代表するものではありません。 ご了承ください。
それでは本題に入ります。
世の中はクソコードへのうらみで満ちています
たとえば、「俺が見たクソコード選手権」というハッシュタグが流行ったり
「プログラマをクソコードで殴り続けると死ぬ」というブログがバズったり
本日のセッションにも、クソコードを改革してきた話、という素晴らしい発表がありました。
また、クソコードの温床としてよくみかけるのが 「Common」という、何が責務なのか全くわからないクラスです。
弊社にも残念ながらCommonクラスが存在します。 調べてみたところ、16,664行、348ものメソッドがありました。 また、PhpStormで開くと、右側のスクロールバーが真っ黄色です。 なかなか残念な一品です。
このように、世の中のクソコードへのうらみは絶えません。
しかし、このような状況に対し、 ときおり異を唱える人が現れ、 ネット上で賛否が議論されることがあります。
たとえばこれは2015年のブログ記事ですが、「クソコードと呼ばない」というものです。
また、「数学ガール」等の著者、 結城先生も以前Twitterで、 品性のない言葉遣いについて一石を投じています。
わかる
一方で
「クソコード」というのはコードがダメだという指摘で 人格攻撃ではない、 ダメなものはダメと言えないとダメ、という意見もあります。
クソなものをクソと言える文化は、その後の改善につながる、という意見もあります。
これもわかる
さらに
クソなものはクソといえ、という人がいる一方。 それを言われて鬱になる人もいる。と。
それもわかる
しかし、この議論が起こるたびに、しばらくは盛り上がり、 なにか結論がでることもなく下火になり また時がたってまた議論が起こる・・・ というのを繰り返しているように感じています。 それって、不毛だと思いませんか。
私はこの不毛な状況に終止符を打ちたい、と考えています。
まず、言い換えの提案をするまえに、きちんと確認しておくべきことがあります。
そもそも「クソ」とはなにか? 広辞苑によると 1,2の意味はそのままですが、大事なのは3番目。 「いやしめ、ののしりに用いる語」とあります。
ということで、辞書の上でも「クソ」という言葉には、 いやしめ、ののしりのネガティブなニュアンスがあることがわかります。
とはいえ、さきの議論にもあったとおり、ダメなものをダメと指摘できない環境もよくないことも確かです。
では、どうすればよいか。
「クソコード」を「クソ」と認めること、と、 「クソ」と表現すること、はわけて考えるべきです。
つまり、「クソ」であるという事実を伝えつつも 「いやしめ、ののしり」のニュアンスを含まない言葉で言い換えればよいのです。
実は、過去にも、言い換えの提案はTwitter上で存在しました。 「ひよこーど」 「残念コード」 「レジェンドコード」 といった言い換えの提案が見受けられました。
しかしどれも定着したという印象はないように思います。
それはなぜか。
新しい言葉が定着するには 名が体を表していることはもちろんですが、もう一つ「キャッチーであること」が必要なのではないでしょうか。
以上を踏まえて、私からの「クソコード」言い換えのご提案です。
おさらいですが 僕らが表現したいものは 「クソ」であることを体現しつつも 「いやしめ・ののしり」のニュアンスを含まない言葉です。 そんな言葉を・・・TVやメディアで聞いたことありませんでしょうか? この言葉です。
(低めのトーンで) 「全く受け入れられず、極めて遺憾であり」
そう、「遺憾」、という言葉です。
この言葉も広辞苑で調べてみると 思い取りに行かず心残りなこと。 また、公的な場で、釈明や不満の異を表すときにも用いる、とあります。
これこそ僕らが表現したかったことではないでしょうか!
そしてもう一つ、言葉が定着するための条件がありました。
キャッチーさです。 これはどうでしょう。
遺憾コードは・・・
「いかん」コードなわけです。もうわかりましたよね?
ダジャレっぽい! どうでしょう、言いやすいし覚えやすいと思いませんか?
ということで、公の場で発言する際には 物議を醸す可能性のある表現ではなく 「遺憾コード」という言い換えを、ここにご提案します!
みなさんも、明日からクソコードをみかけたら、遺憾の意を表明してみてください。
ご清聴ありがとうございました。
Download now