SlideShare a Scribd company logo
「クソコード」
言い換えのご提案
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!

More Related Content

What's hot

アパレル業界の販売予測をフーリエ解析を用いてやってみました
アパレル業界の販売予測をフーリエ解析を用いてやってみましたアパレル業界の販売予測をフーリエ解析を用いてやってみました
アパレル業界の販売予測をフーリエ解析を用いてやってみましたTakahiro Yoshizawa
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門masayoshi takahashi
 
【論文紹介】Distributed Representations of Sentences and Documents
【論文紹介】Distributed Representations of Sentences and Documents【論文紹介】Distributed Representations of Sentences and Documents
【論文紹介】Distributed Representations of Sentences and DocumentsTomofumi Yoshida
 
並列プログラミング 入門!&おさらい!
並列プログラミング入門!&おさらい!並列プログラミング入門!&おさらい!
並列プログラミング 入門!&おさらい!道化師 堂華
 
テストを書こう!!
テストを書こう!!テストを書こう!!
テストを書こう!!拓 小林
 
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...Shinji Takao
 
圏論とHaskellは仲良し
圏論とHaskellは仲良し圏論とHaskellは仲良し
圏論とHaskellは仲良しohmori
 
高位合成におけるC++テンプレートメタプログラミングの効果
高位合成におけるC++テンプレートメタプログラミングの効果高位合成におけるC++テンプレートメタプログラミングの効果
高位合成におけるC++テンプレートメタプログラミングの効果Kenichiro MITSUDA
 
証明プログラミング超入門
証明プログラミング超入門証明プログラミング超入門
証明プログラミング超入門Kyoko Kadowaki
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainerYuta Matsumura
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型信之 岩永
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編Daiyu Hatakeyama
 
Probabilistic fasttext for multi sense word embeddings
 Probabilistic fasttext for multi sense word embeddings Probabilistic fasttext for multi sense word embeddings
Probabilistic fasttext for multi sense word embeddingsMakoto Takenaka
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側do_aki
 

What's hot (20)

アパレル業界の販売予測をフーリエ解析を用いてやってみました
アパレル業界の販売予測をフーリエ解析を用いてやってみましたアパレル業界の販売予測をフーリエ解析を用いてやってみました
アパレル業界の販売予測をフーリエ解析を用いてやってみました
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
【論文紹介】Distributed Representations of Sentences and Documents
【論文紹介】Distributed Representations of Sentences and Documents【論文紹介】Distributed Representations of Sentences and Documents
【論文紹介】Distributed Representations of Sentences and Documents
 
並列プログラミング 入門!&おさらい!
並列プログラミング入門!&おさらい!並列プログラミング入門!&おさらい!
並列プログラミング 入門!&おさらい!
 
Common Lisp ユーザへのScheme紹介
Common Lisp ユーザへのScheme紹介Common Lisp ユーザへのScheme紹介
Common Lisp ユーザへのScheme紹介
 
テストを書こう!!
テストを書こう!!テストを書こう!!
テストを書こう!!
 
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
 
圏論とHaskellは仲良し
圏論とHaskellは仲良し圏論とHaskellは仲良し
圏論とHaskellは仲良し
 
高位合成におけるC++テンプレートメタプログラミングの効果
高位合成におけるC++テンプレートメタプログラミングの効果高位合成におけるC++テンプレートメタプログラミングの効果
高位合成におけるC++テンプレートメタプログラミングの効果
 
セマンティックWebとオントロジー:現状と将来展望
セマンティックWebとオントロジー:現状と将来展望 セマンティックWebとオントロジー:現状と将来展望
セマンティックWebとオントロジー:現状と将来展望
 
証明プログラミング超入門
証明プログラミング超入門証明プログラミング超入門
証明プログラミング超入門
 
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
 
LBFGSの実装
LBFGSの実装LBFGSの実装
LBFGSの実装
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
MICの解説
MICの解説MICの解説
MICの解説
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
C# 8.0 null許容参照型
C# 8.0 null許容参照型C# 8.0 null許容参照型
C# 8.0 null許容参照型
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
 
Probabilistic fasttext for multi sense word embeddings
 Probabilistic fasttext for multi sense word embeddings Probabilistic fasttext for multi sense word embeddings
Probabilistic fasttext for multi sense word embeddings
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側
 

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

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

Similar to 「クソコード」言い換えのご提案 - 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拡張
 

More from Masanori Hayashi

More from 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
 

Recently uploaded

本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題についてMasatsugu Matsushita
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Toru Miyahara
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料Toru Miyahara
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例Kurata Takeshi
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubK Kinzal
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料Toru Miyahara
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介miyp
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上mizukami4
 

Recently uploaded (8)

本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
 

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

Editor's Notes

  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. ご清聴ありがとうございました。