SlideShare una empresa de Scribd logo
1 de 51
「クソコード」
言い換えのご提案
PHP Conference 2018
2018.12.15(Sat)
m_norii
自己紹介
@m_norii
林 正紀 (HAYASHI Masanori)
埼玉生まれ埼玉育ち埼玉川越市在住
埼玉大学/大学院・数学専攻
埼玉土着エンジニア
デザインワン・ジャパン㈱ Chief Tech Lead
Mr.Childrenは人生の道標
https://norii.hatenablog.com/
https://www.slideshare.net/m_norii
所属:デザインワン・ジャパン
https://www.designone.jp/
エキテン ─ 日本全国あらゆる店舗を網羅した口コミサイト
https://www.ekiten.jp/
免責
本資料の内容は、個人の見解であり
所属する組織の見解を代表するものではありません。
ご了承ください。
本題
世の中はクソコードへの
恨みで満ちている
https://togetter.com/li/544905
https://www.megamouth.info/entry/2017/08/01/083126
http://phpcon.php.gr.jp/2018/
本日のセッションにも…
クソコードの温床例:Commonクラス
https://twitter.com/zephiransas/status/973763724845621253
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
クソコードへの
恨みは絶えない
しかし、このような状況に
異を唱える方がいる
https://ppworks.hatenablog.jp/entry/2015/01/17/152545
https://twitter.com/hyuki/status/942791458133762048
わかる
一方で
https://twitter.com/kazuho/status/938645599280291841
https://twitter.com/bluerabbit777jp/status/937823454287429632
わかる
さらに
https://twitter.com/hgunsou/status/969595965219815424
わかる
しかし、この議論が起こるたび、
しばらく盛り上がり、
気がつくと下火になり
また時が経ち
また議論が起こる
・・・という繰り返しに。
なんか不毛に感じませんか。
この不毛な状況に
終止符を打ちたい
言い換えの提案の前に
確認事項
そもそも「クソ」とは何か?
くそ 【糞・屎】[名]
① 動物が肛門から排泄する、消化器で消化した食物の
かす。大便。ふん。
② あか。かす。
③ 他の語につけて、卑しめ、ののしり、または強めて
いうのに用いる語
④ ・・・など問題外だ
岩波書店『広辞苑 第七版』より
事実「クソ」という言葉には
卑しめ、ののしりの意味がある
でも、ダメなものを指摘できない
環境もよくない
どうすればよいか?
「クソコード」を
「クソ」と認めることと
「クソ」と表現することを
わけて考えるべき
つまり「クソ」である事実を伝える
「卑しめ、ののしり」のニュアンス
を含まない
言葉を使って表現すればよい
実は過去にも言い換えの提案はあった
https://twitter.com/lalha2/status/220828104971657216
https://twitter.com/mattn_jp/status/938559190527655937
https://twitter.com/_quantumman_/status/914676420437143553
しかしどれも
定着したとはいいがたい
なぜか?
新しい言葉が定着するには
1. 名が体を表していること
2. キャッチー、言いやすいこと
→ 今までの言い換えは、後者が欠けているのでは
以上を踏まえて
言い換えのご提案
おさらい:僕らが表現したいこと
「クソ」であることを体現しつつも
卑しめ・ののしりのニュアンスを含まない言葉
そんな言葉を
TV、メディアで聴いたことありませんか?
それは・・・
遺憾
遺憾とは
い-かん 【遺憾】
思い通りに行かず心残りなこと。
残念。気の毒。
▷公的な場で、釈明や不満の意を表すときにも
用いる。
岩波書店『広辞苑 第七版』より
これこそ
僕らが表現したいことでは!
そして、言葉が定着するための
もう一つの条件はどうか?
キャッチーさ
遺憾 コード
いかん コード
ダジャレっぽい!
ということで
クソコード
↓
遺憾コード
への言い換えをここに提案します!
クソコードを見かけたら
遺憾の意を表明しましょう
Thank you for listening!

Más contenido relacionado

La actualidad más candente

30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方
Daisuke Yamazaki
 
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
Hironori Washizaki
 

La actualidad más candente (20)

Hatena::Letの式年遷宮
Hatena::Letの式年遷宮Hatena::Letの式年遷宮
Hatena::Letの式年遷宮
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadog
 
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
 
SPAと覚悟
SPAと覚悟SPAと覚悟
SPAと覚悟
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
バイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryenバイナリアンを目指して For a binaryen
バイナリアンを目指して For a binaryen
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
GraalVMのJavaネイティブビルド機能でどの程度起動が速くなるのか?~サーバレス基盤上での評価~ / How fast does GraalVM's...
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
 
データセンターのエネルギーコントロールの仕組み
データセンターのエネルギーコントロールの仕組みデータセンターのエネルギーコントロールの仕組み
データセンターのエネルギーコントロールの仕組み
 
WHOIS教室 〜 JPOPM36 20190621
WHOIS教室 〜 JPOPM36 20190621WHOIS教室 〜 JPOPM36 20190621
WHOIS教室 〜 JPOPM36 20190621
 
レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法レコメンドアルゴリズムの基本と周辺知識と実装方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
 
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
 
HTTPを理解する
HTTPを理解するHTTPを理解する
HTTPを理解する
 
30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方30分でわかる広告エンジンの作り方
30分でわかる広告エンジンの作り方
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
Java でつくる 低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧Java でつくる低レイテンシ実装の技巧
Java でつくる 低レイテンシ実装の技巧
 

Similar a 「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018

Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張
Yuya Matsushima
 

Similar a 「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018 (20)

人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな  - レガシー感謝の日人のレガシーを笑うな  - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日
 
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう
 
Chatbot hack 登壇資料2017
Chatbot hack 登壇資料2017Chatbot hack 登壇資料2017
Chatbot hack 登壇資料2017
 
20180111サポーターズco lab
20180111サポーターズco lab20180111サポーターズco lab
20180111サポーターズco lab
 
20171127studycode_intro @HDE
20171127studycode_intro @HDE20171127studycode_intro @HDE
20171127studycode_intro @HDE
 
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
IT業界とソフトウェア技術者を取り巻く今日の様相と荒波の将来への船出
 
20170514 StartupWeekendOkyama_PreEvent
20170514 StartupWeekendOkyama_PreEvent20170514 StartupWeekendOkyama_PreEvent
20170514 StartupWeekendOkyama_PreEvent
 
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
[クリエイティブハント2018]LT 道場破りしたらできちゃった/// #ゴーハント
 
プログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのかプログラミングを学ぶと何が良いのか
プログラミングを学ぶと何が良いのか
 
SIerのDevRel術
SIerのDevRel術SIerのDevRel術
SIerのDevRel術
 
エンジニアのキャリアを考える
エンジニアのキャリアを考えるエンジニアのキャリアを考える
エンジニアのキャリアを考える
 
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方
 
新規事業担当者のためのカオスマップ解説
新規事業担当者のためのカオスマップ解説新規事業担当者のためのカオスマップ解説
新規事業担当者のためのカオスマップ解説
 
Scratchを使った CaT的脳トレのすすめ
Scratchを使った CaT的脳トレのすすめScratchを使った CaT的脳トレのすすめ
Scratchを使った CaT的脳トレのすすめ
 
レビューの自動化事業について
レビューの自動化事業についてレビューの自動化事業について
レビューの自動化事業について
 
レビューの自動化事業について
レビューの自動化事業についてレビューの自動化事業について
レビューの自動化事業について
 
20170708 smips
20170708 smips20170708 smips
20170708 smips
 
120204 linkedin(リンクトイン)を学ぶ
120204 linkedin(リンクトイン)を学ぶ120204 linkedin(リンクトイン)を学ぶ
120204 linkedin(リンクトイン)を学ぶ
 
個人的情報発信ノスゝメ~準備編~
個人的情報発信ノスゝメ~準備編~個人的情報発信ノスゝメ~準備編~
個人的情報発信ノスゝメ~準備編~
 
Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張Word pressの可能性とplugin拡張
Word pressの可能性とplugin拡張
 

Más de Masanori Hayashi (13)

20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
 
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
 
Phpstudy98
Phpstudy98Phpstudy98
Phpstudy98
 
Php blt-vol2
Php blt-vol2Php blt-vol2
Php blt-vol2
 
Symfony meetup-7
Symfony meetup-7Symfony meetup-7
Symfony meetup-7
 
Glt vol49
Glt vol49Glt vol49
Glt vol49
 
Glt vol48
Glt vol48Glt vol48
Glt vol48
 
ボトルネックを解消せよ
ボトルネックを解消せよボトルネックを解消せよ
ボトルネックを解消せよ
 
Glt vol47
Glt vol47Glt vol47
Glt vol47
 
PHP framework Phalcon
PHP framework PhalconPHP framework Phalcon
PHP framework Phalcon
 
俺的世界で一番暑い夏
俺的世界で一番暑い夏俺的世界で一番暑い夏
俺的世界で一番暑い夏
 
Soft bank ssl仕様変更について
Soft bank ssl仕様変更についてSoft bank ssl仕様変更について
Soft bank ssl仕様変更について
 
20081120 lt11th ace
20081120 lt11th ace20081120 lt11th ace
20081120 lt11th ace
 

「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018

Notas del editor

  1. よろしくおねがいします。 それでは「クソコード言い換えのご提案」というタイトルで発表させていただきます。 Twitterアカウント m_norii と申します。よろしくおねがいします。
  2. 自己紹介です。 埼玉生まれ埼玉育ち埼玉川越在住の埼玉土着エンジニアです。
  3. デザインワン・ジャパンという会社に勤務しています
  4. 日本全国あらゆる店舗を網羅した口コミサイト「エキテン」というサービスを運営しています。 名前だけでも覚えていただけたら幸いです。
  5. 本発表の内容は個人の見解であり、所属する組織の見解を 代表するものではありません。 ご了承ください。
  6. それでは本題に入ります。
  7. 世の中はクソコードへのうらみで満ちています
  8. たとえば、「俺が見たクソコード選手権」というハッシュタグが流行ったり
  9. 「プログラマをクソコードで殴り続けると死ぬ」というブログがバズったり
  10. 本日のセッションにも、クソコードを改革してきた話、という素晴らしい発表がありました。
  11. また、クソコードの温床としてよくみかけるのが 「Common」という、何が責務なのか全くわからないクラスです。
  12. 弊社にも残念ながらCommonクラスが存在します。 調べてみたところ、16,664行、348ものメソッドがありました。 また、PhpStormで開くと、右側のスクロールバーが真っ黄色です。 なかなか残念な一品です。
  13. このように、世の中のクソコードへのうらみは絶えません。
  14. しかし、このような状況に対し、 ときおり異を唱える人が現れ、 ネット上で賛否が議論されることがあります。
  15. たとえばこれは2015年のブログ記事ですが、「クソコードと呼ばない」というものです。
  16. また、「数学ガール」等の著者、 結城先生も以前Twitterで、 品性のない言葉遣いについて一石を投じています。
  17. わかる
  18. 一方で
  19. 「クソコード」というのはコードがダメだという指摘で 人格攻撃ではない、 ダメなものはダメと言えないとダメ、という意見もあります。
  20. クソなものをクソと言える文化は、その後の改善につながる、という意見もあります。
  21. これもわかる
  22. さらに
  23. クソなものはクソといえ、という人がいる一方。 それを言われて鬱になる人もいる。と。
  24. それもわかる
  25. しかし、この議論が起こるたびに、しばらくは盛り上がり、 なにか結論がでることもなく下火になり また時がたってまた議論が起こる・・・ というのを繰り返しているように感じています。 それって、不毛だと思いませんか。
  26. 私はこの不毛な状況に終止符を打ちたい、と考えています。
  27. まず、言い換えの提案をするまえに、きちんと確認しておくべきことがあります。
  28. そもそも「クソ」とはなにか? 広辞苑によると 1,2の意味はそのままですが、大事なのは3番目。 「いやしめ、ののしりに用いる語」とあります。
  29. ということで、辞書の上でも「クソ」という言葉には、 いやしめ、ののしりのネガティブなニュアンスがあることがわかります。
  30. とはいえ、さきの議論にもあったとおり、ダメなものをダメと指摘できない環境もよくないことも確かです。
  31. では、どうすればよいか。
  32. 「クソコード」を「クソ」と認めること、と、 「クソ」と表現すること、はわけて考えるべきです。
  33. つまり、「クソ」であるという事実を伝えつつも 「いやしめ、ののしり」のニュアンスを含まない言葉で言い換えればよいのです。
  34. 実は、過去にも、言い換えの提案はTwitter上で存在しました。 「ひよこーど」 「残念コード」 「レジェンドコード」 といった言い換えの提案が見受けられました。
  35. しかしどれも定着したという印象はないように思います。
  36. それはなぜか。
  37. 新しい言葉が定着するには 名が体を表していることはもちろんですが、もう一つ「キャッチーであること」が必要なのではないでしょうか。
  38. 以上を踏まえて、私からの「クソコード」言い換えのご提案です。
  39. おさらいですが 僕らが表現したいものは 「クソ」であることを体現しつつも 「いやしめ・ののしり」のニュアンスを含まない言葉です。 そんな言葉を・・・TVやメディアで聞いたことありませんでしょうか? この言葉です。
  40. (低めのトーンで) 「全く受け入れられず、極めて遺憾であり」
  41. そう、「遺憾」、という言葉です。
  42. この言葉も広辞苑で調べてみると 思い取りに行かず心残りなこと。 また、公的な場で、釈明や不満の異を表すときにも用いる、とあります。
  43. これこそ僕らが表現したかったことではないでしょうか!
  44. そしてもう一つ、言葉が定着するための条件がありました。
  45. キャッチーさです。 これはどうでしょう。
  46. 遺憾コードは・・・
  47. 「いかん」コードなわけです。もうわかりましたよね?
  48. ダジャレっぽい! どうでしょう、言いやすいし覚えやすいと思いませんか?
  49. ということで、公の場で発言する際には 物議を醸す可能性のある表現ではなく 「遺憾コード」という言い換えを、ここにご提案します!
  50. みなさんも、明日からクソコードをみかけたら、遺憾の意を表明してみてください。
  51. ご清聴ありがとうございました。