インターネットの複雑さのジョーク
ネタ元の記事 https://bliki-ja.github.io/TwoHardThings
台本
皆さんこんにちは。「雨宿りと WEB の小噺」へようこそ!ポッドキャスト配信者の Keeth こと桑原です。
この番組は,日々降り注ぐ情報の中でちょっと雨宿りしながら、様々な Web テクノロジーの成り立ちや裏話を小噺としてお届けする番組です.
今回の話題は「インターネットの複雑さについてのジョーク」をお話します.
本題
- はい
- 今回は、ソフトウェア開発の世界で重要な影響を与え続けているマーティン・ファウラー氏について取り上げたいと思います
- ファウラー氏といえば、アジャイル開発やリファクタリング、エンタープライズアーキテクチャなど、現代のソフトウェア開発の基礎となる多くの概念を体系化するなど、ソフトウェアアーキテクチャにおいて多くの功績を残された人物として知られています
- 彼は 1963 年にイギリスのウォルソールで生まれ、ロンドン大学で工学を学んだ後、コンサルタントとしてキャリアをスタートさせました
- その後、ThoughtWorks 社のチーフサイエンティストとして、世界中の開発者たちに影響を与える数々の著作や記事を執筆しています。
- 特に 1999 年に出版された名著「Refactoring: Improving the Design of Existing Code. 」は、コードの品質改善に関する体系的なアプローチを示した革新的な著作として、今でも多くの開発者に読み継がれています
- こちらは和訳も出ていますのでご興味ある方は是非ご一読くださいませー
- また、ソフトウェアエンジニアなら一度は聞いたことがある「Dependency Injection(依存性の注入)」という言葉の生みの親でもあります
- 今回は彼が執筆されているブログ「Bliki」から、「2 つの難しい問題」というライトな記事に触れてみたいと思います
- とても短いブログで、いわゆるジョークに関するお話です
記事の和訳から引用します
コンピュータサイエンスで難しいことは 2 つだけ。キャッシュの無効化と名前付けだ。 – Phil Karlton
これらは一見すると簡単そうですが、非常に難しい笑
- ちなみに、ファルカールトンは Netscape の開発者の 1 人です
- この課題を経験したことある方は共感あると思います
- ただ,もちろん難しい問題は他にもたくさんありますが、これら 2 つもまぁ難しい
- 例えば,2 つ目の名前付けはプログラミングの世界において、長年議論されていまして、毎年誰かしら名前に関するブログが公開されています
- 名付けにおいての難しさは
- 意味の明確さ,簡潔さのバランス
- パッと見てわからないと,しっかり関数やコードの前後を追わないといけなくなるし,長すぎると具体的ですが可読性が下がります
- これは生産性への足かせになる
- 抽象化の難しさ
- 先程の話と似ていますが,微妙にニュアンスが異なる話
- 具体すぎると可読性に加え,再利用性を損ない,モジュール化できない可能性があったり,そこまで具体にする必要性はそもそもないのでは?という話になります
- 逆に抽象的すぎると用途がわからないため,やっぱり前後を読む必要があったり,触らないようにして,新たに変数を作ったりして無駄にメモリを使う可能性もあります
- 重複や衝突
- これはリンターを使ったり,独自にスクリプトを組めばある程度は防げますが,それでも開発している途中ですぐに気付けるかというと怪しい
- 命名規則や文化
- こちらもリンターで防いだり,開発前にある程度チーム内でルールを定めたりすることで回避できますが,決めないと途端にカオスになります
- 他には,
- 英語の文法に沿って単数形・複数形をしっかり分ける
- 母国語に合わせるか英語に合わせるか
- 英語も,アメリカ・イギリスどちらに合わせるか
- 例えば,ユーザー名を管理する変数名だと,姓名の姓だと firstName, givenName, foreName, christianName などが候補に上がり,名だと lastName, familyName が候補として挙げられます -
- 意味の明確さ,簡潔さのバランス
- このように名前一つとってもいっろいろ考慮することがあり,それによってチリツモですが,開発チーム内でのコミュニケーションや認識齟齬により時間が取られ,生産性へのダメージが有ります
おわりに
- 今回はジョークの話でしたが,実は全然ジョークではないというのが笑えるようで笑えない話です()
- こちらに関してもう一つ記事内で引用されていた 𝕏 のポストをこちらでも引用して終わります
コンピュータサイエンスには 2 つの難しい問題がある。私たちにとって、このジョークはたった 1 つだけだから、笑い事じゃない。 – phillip bowden (@pbowden)
- それにしても,海外の方は本当にジョークが上手いなぁといつも思っていて,プログラミングのスキルよりも,そのジョークスキルが欲しいと思ったりします w
エンディング
さて、そろそろ今回もお時間になりましたのでエンディングです.
この番組面白かったよーという方は,ぜひチャンネル登録もお願いします.もし聴いていて気になることや、話してほしいトピック,感想などありましたら、概要欄のフォームや,𝕏 でハッシュタグ「WEB 小噺」でつぶやいてください!web はアルファベット,「小噺」は漢字でもひらがなでも大丈夫です!
それでは、また雨宿りしに来てください。今回もお聴きくださりありがとうございました!「雨宿りと WEB の小噺」お相手は Keeth でした。さようなら!