1. readline.fm
  2. EP128 プログラミングの心理学..
2025-09-12 33:04

EP128 プログラミングの心理学 PART1

spotify apple_podcasts

## とりあげた本

『プログラミングの心理学』G.M.ワインバーグ 日経BP 2011


## mixi2

https://mixi.social/communities/513e0bc9-582b-4962-a9c1-c5c076175e08/about


## ShowNote

https://gennei.notion.site/EP128-PART1-26ac645d4911808883d0f946347cd5db

サマリー

本エピソードでは、プログラミングと心理学の関係を探求しています。ワインバーグさんの著書『プログラミングの心理学』の背景や重要性について考察し、プログラマの心理的側面に焦点を当てています。また、プログラミングと人間行動との関係についても取り上げられ、特に過去のプログラムを読むことの重要性や難しさが議論されています。プログラミングの歴史的背景を考慮し、著者の意見や文献の価値についても話し合われます。さらに、プログラミングにおける心理学的側面が探求され、言語や関数の知識が開発者の思考に与える影響や、テストフレームワークのデザインがコードの可読性に及ぼす影響についても触れられています。

プログラミングについての導入
スピーカー 2
こんにちは、readline.fmです。readline.fmは、純読画趣味の2人が何かの本を読んだ感想を雑談するポッドキャストです。
ハッシュタグは、ハッシュリードラインFMです。
Mixi2にもコミュニティーがあるので、感想やワイワイお待ちしております。
ホスト役は、ゲイエイさんと金城です。それではゲイエイさん、よろしくお願いします。
スピーカー 1
よろしくお願いします。
スピーカー 2
今なんかこの定型文全然変えないで読んでて、変わり映えしないなーとか余計なことを考えてたらめっちゃ噛みました。
スピーカー 1
やっぱ慣れてくると、こうあれですね、うっかりしちゃうみたいな。
スピーカー 2
そうですね。いやー、CIA回しとかないとやっぱりダメですね。
はい、というわけで、今日もかの有名なワインバーグさんの本を読んでいくわけですが、プログラミングの心理学ですね。
スピーカー 1
はい。
スピーカー 2
これはあれですね、現代のザ・サイコロジー・オブ・コンピューター・プログラミングなんで。
うん。
スピーカー 1
まんまですね。
まんまですね。なんか珍しく放題と現代が一緒な本ですね。
スピーカー 2
うん。シルバーアニバーサリーエディション。
スピーカー 1
うん。
スピーカー 2
25周年記念版。シルバーアニバーサリーエディションって言うんだ。
スピーカー 1
これはあれですね、銀婚式。25年が銀婚式で、それにちなんでシルバーアニバーサリーエディションっていうのをどっか調べてて、なんでこれで言うんだろうなーと思って調べてたら出てきました。
著書の歴史と影響
スピーカー 2
そっかそっか。
スピーカー 1
なんかそういうちょっと気の利いたシャレたことをつけてたみたいですね。
スピーカー 2
うん。おしゃれですね。
なんかエピローグ読むと50周年記念版も書きたいなーみたいなことが書かれてましたね。
スピーカー 1
書いてましたね。
スピーカー 2
いやー書いてほしいな。
スピーカー 1
25年後って、今回読む本って、もともと1971年に出た本だって結構古いですよね。
スピーカー 2
そうだいぶですよね。
スピーカー 1
今まで我々が読んできた本で言うと、トムデマルコの構造化プログラミングとか、あの辺の本とかが70年代とかだったかな。
スピーカー 2
人月の神話と本を読む本、覗くと。
スピーカー 1
覗くと。
スピーカー 2
あれは100年近く経っちゃってるんで、あれを覗くと人月の神話が多分一番古いは古くて、どうなんだろうな。
スピーカー 1
今見ると1975年だそうですね。人月の神話は。
スピーカー 2
うん。
スピーカー 1
現状は。
スピーカー 2
だからデマルコのプログラミング系の本の方が前か?
スピーカー 1
しかしたら、ちょっと過去の、構造化分析とシステム使用が78年とかですね。
スピーカー 2
現状ですか日本語?
スピーカー 1
現状ですね。
品質と生産性を重視したのやつはちょっと、1982年って書いてありますね。
なので、やっぱりそれらよりも古いっていう感じですね。ちょっとこっちの方から。
スピーカー 2
ダメだな、80って聞くとちょっと、結構最近なんだみたいな気持ちになり、全然そんなことないので。
スピーカー 1
そうですね。
スピーカー 2
生まれる前のことを最近とか言うと頭が混乱するから。
スピーカー 1
どういう時間軸で生きてるんだっていう感じになりますね。
スピーカー 2
だいぶ古いですよね、かなり。
スピーカー 1
もう50年経っちゃいましたね。
スピーカー 2
ああ、経ってますね。
経ってますね、初版から。ただしワインバーグさんは亡くなっているので、21年に亡くなっているので、50周年版は書かれることができなかったという感じですかね。
いやあ、聞いてみたかったなあ。
スピーカー 1
いやあ、聞いてみたいですね。
スピーカー 2
聞いてみたいですね。
ソフトウェアが世界を飲み込むとか言ってた時代が?
スピーカー 1
2005年ぐらい?4年とか5年ぐらいかな?
スピーカー 2
違う、ごめんなさい。全然間違えました。ソフトウェア機器の方。
スピーカー 1
ソフトウェア機器が70年代とかじゃなかったかな。
スピーカー 2
あれ?70年代でしたっけ?
スピーカー 1
もうざっくり過去みたいな感じになっちゃってるかな。
昔。
60年代の末ってソフトウェア機器が。
スピーカー 2
そうですよね。
NATO会議みたいなやつですよね。
そうそうそう。だからそのぐらいの時期。
時期というか、プログラミングとかソフトウェアの社会的な産業においての重要性っていうのが十分高まってきた。
高まってはいる時代背景ではありますね。
まあそうだよな、本出すぐらいだもんな。
スピーカー 1
まあそうっすね。
スピーカー 2
じゃなやつ誰が買うんだよ。
スピーカー 1
まあでもこれ以上大規模なソフトウェアっていうのが作れるのか本当にみたいなこととかいうような不安がなされていたぐらい。
ソフトウェア的にもハードウェア的にも今後本当にこのまま成長できるのかみたいな話はあった中で書かれた本っていう感じですね。
いやー全然わかんねーなー。
スピーカー 2
これは昔の本だなーって感じがしましたね。
スピーカー 1
そうですね、なんかやっぱり読んでてちょっと時代が違うな、この前提がわからないみたいなことはいっぱい出てきましたね。
スピーカー 2
あまりにもピンとこないなーっていうところがありつつ、まだここは本当に変わらないし今でも見かけるよねっていうような話題もちょっと何割ぐらいかわかんないですけど、全然普通にありましたね。
具体的な本当に事柄みたいなものに関してはあまりこう、7割8割とか今もあるよねーとは言い難いんですけど、
より抽象的なというか本質的な部分だと、ここは全然今も変わってないんだなーっていうところは多々ありましたね。
スピーカー 1
そうですね、そうですね。
スピーカー 2
なんかそういう間違い探しをしながらじゃないですけど、ここは変わってないね、ここはもう見なくなったね。
スピーカー 1
見なくなったとしたらなんで解決できたんだっけ、それとも回避してるだけなのかなとか、そういうところで思いを巡らせながら読むのがいい読書体験につながるんじゃないかなーという気がしました。
スピーカー 2
キレイごと言うとそんな感じ。
心理学的側面の重要性
スピーカー 1
そうですね、今キレイごと言ってもらってそれすごく賛同だったので、ちょっとキレイごとじゃない視点で自分の感想を喋ると。
スピーカー 2
汚れ役を押し付けたみたいになってしまった。
スピーカー 1
やっぱなんか帯に永遠の名著、大謀の復刊とかついてるんですけど、やっぱちょっと今の人が読むには結構厳しいものがあるなーっていう気がするし、
通じづる話はたくさんあるものの、その部分って別にじゃあこの本じゃないといけないかって言われたらそんなことないっていうことが多々あるし、
今まで読んできた中のトムデマルコだったりワインバグだったりの他の本でも同じような話ってされてる部分もあるので、
なんかわざわざそこ、この本にこだわって読まなくても全然いいかなっていうような気持ちになりました。
なのでちょっと読んでて、うーんっていう気持ちになりながら結構読むことが自分は多かったですね。
スピーカー 2
そうですね、いやそうなんだよな。
コンサルタントの秘密とかね、スーパーエンジニアへの道とか、やっぱりここからどうやって追従していこうかみたいなエッセンスが非常に多かったなと思うんですけど。
なんかこっちは何ですかね、時代っぽい話が多かったんだよな。
もうちょい抽象的な書き方できそうなんですけどね、この人。
スピーカー 1
そうですよね、そうでしたね。
スピーカー 2
よりエッセイ風にするとか。
なんかずっと酷いプロジェクトの、よくプログラマーとかエンジニアの話をしてるなーって思って。
スピーカー 1
忙しいけど、じゃあワインバーグに寄り添ってそのレスポンス、その疑問に答えようと思ったら、
多分この本って、この本の後にさっきのコンサルタントの秘密とか、ライトついてますかとか、スーパーエンジニアへの道とか、いい本っていうのがどんどん書かれていったので、
割とこういうプログラミングの心理学みたいな本を書いて、そこから得られたような知見だったり、フィードバックだったりっていうのが、その後の本に生きてたんじゃないかなっていう、ちょっと肩を持つようなアングルを取ってきたんですがどうでしょうかみたいな。
スピーカー 2
すごい、交互に綺麗なことを言うみたいな展開になってる。
スピーカー 1
忙しい人みたいになってしまったけど。
スピーカー 2
でも前書きかな、25周年版の方かな、ちょっと忘れちゃったんですけど、プログラミングないし、プログラマーに焦点を当てた心理学的な話ってされてないよね。
より、この後に人間学っていう話とかもどんどんやっていくと思うんですけど、人間的側面とか、ハードスキルソフトスキルとかっていう意味でのソフトな部分とかっていうのを無視していくわけにはいかないよねっていうのを本格的にここから探究し始めた感じはありますよね。
だからこそ、このめちゃくちゃクソデカタイトル、プログラミングの心理学っていうふうに生きてると思いますし。
だから逆に言うと、ゲインさんが今言った通りで、この後にどんどんどんどん宣伝されていくし、やっぱり発信した人のところにフィードバックが集まってくると思うので。
こういう出版とかしたり、講演とかしたり、ワークショップやったりっていう中で、ワインバーグ自体の絵がすごい短中を深めていったんじゃないかなっていうような感じがしますね。
だから、すごい乱暴な言い方をすると、このテーマについてはまだまだ入り口にいる青臭いワインバーグの語り口みたいなところはあるかもしれなくて。
それがさっき言った、全然抽象化もっとできそうなのになっていうふうに感じる部分だったりだとか、本人の中ではまだまだ上流がこれからやっていくんだっていうような段階で出してるのかな的な気がしますけど。
50年前にこんな話をしてる中で、やっぱりすごいなぁはすごいなぁなんですか。
スピーカー 1
そうですね。なんか先見の目がありすぎるというか、まだまだみんながソフトウェア機器だったりとかの話をしてる中で、ここからはもちろんソフトウェアのことも大事なんだけども、人間の方。
この本の前書きの書き方でいくと、工学や数学ってものは、工学っていうのはエンジニアリングですね。数学は洗練されているが、心理学的側面はまだまだ未熟であるっていうようなところを言い方をしてて、その心理学的側面の方に、じゃあもっとフォーカスしましょうねっていうことを言ってて。
いやいや、でもソフトウェア機器みたいな話があって、まだまだ、こういうエンジニアリングっていうのはソフトウェアエンジニアリングっていうよりはもうちょっと広いエンジニアリングだと思うんだけども、でもソフトウェアエンジニアリングだってまだまだ未熟というか、まだまだ考えないといけないことがたくさんある中で、心理学的側面っていうところに目を向けるっていうのは、なんかちょっとみんなと見てる視点が違うんじゃないかなって。
プログラムの歴史と価値
スピーカー 1
当時いたわけじゃないんで、自分がいたわけじゃないんでわかんないけども、残ってる本とかを読んでいくと、この人はちょっと違うところを見てたんだろうなっていうふうにちょっと感じる部分はやっぱありますね。
スピーカー 2
すごいですよね。いや売れなさそうですよね。
スピーカー 1
そうですね。
スピーカー 2
出版社に企画持ち込んで断られたとか、担当編集担当してくれた人がクビになったとかっていう話がなされていて、でなんかそんな話を前に読んでた2冊もどっかでもしてた気がするし、だから早すぎるんですよね多分時代に対して。
スピーカー 1
確かに。
そうですね。
まあまあ早すぎるというか生き残ってるから、ギリギリ時代は追いついてきてるのかっていう感じもありつつ。
でもなんか無理矢理頑張って25周年版復刊させたみたいな感じだったような気がするから、若干この残らなさもあったんだけど、まあこれはやっぱり生き延びる必要のある本でしょっていうところで、当時があったみたいな感じ。
スピーカー 2
結構ギリギリではありそうっていうのはありましたね。
でもこれ25周年版として面白いのは、なんか1章とか1部ごとにこの部を振り返ってとかこの章を振り返ってみたいな、ワインバグ自体自身の言葉が載せられていて、そこの中で今だったらこの話はもう書かないなとか、ここは見方が変わってるなとか。
もちろんこの章は今でも変わらず価値を持っているだろうっていうようなコメントもあるところにあるんですけど、なんかいいですよね、ちゃんと自分で批判してるというか。
本に書かれたことってやっぱり時を経ても変わらぬ、普遍の本質的な価値を持ち続けるものだって思うとやっぱり読んでて辛いじゃないですか。
こいつやっぱ昔だから見方が古くせぇし間違ってんなぐらいの感じで、ちょっと読んでいくぐらいの態度が本当に古典とかクラシックって言われるような本であっても、そこが大事なのは変わらないと思うので。
なんかそういう意味でワインバグ自体が自分の言葉で、いやここはもう古いねとか言ってるっていうのはすごい面白いなって思いましたね。
スピーカー 1
そうですね、やっぱ過去の自分を肯定するのかなと思ったら結構バッサリ、いやここはもう古いねとか、当時の自分はこれ書いたけど今だったらもうこの章まるごと書かないかもねみたいな感じまで言ってるから。
スピーカー 2
言ってましたね、言ってましたね。
スピーカー 1
なんかそういう意味ではすごく、ちゃんと時代が変わってるとか成長してるとかっていうところを本人が捉えながら、過去の自分がやってきたことの良かったところ悪かったところみたいなところをバッサリ言ってるっていうのは、なんかすごく態度としてもなんていうか真摯だったり正しい、いいなって思いますね。
スピーカー 2
そこまでやるんだったらじゃあもう一回リライトすればみたいなところはあるんですけど、多分意図的にこの形式でやってる部分はあって、25周年版に寄せての2ページ目とか見ると、
通常若い人たちには欠けている歴史的視点を示すためとか、当時推察していたことを改めて検証するチャンスとしてっていうようなことが書いてあって。
どこまで立てつけているかあれかわかんないんですけど、そういう機能を持たせるためには本部はなるべくそのまま残して、ちょっとレビューを自分で入れるっていうのは確かに面白い提災だなっていう気はしますよね。
スピーカー 1
まあいっぱい書いたんでね、新しい本いっぱい書いたから、もう一回その新しいことに関しては新しい本を読んでもらえばいいし、というところは多分あるから、じゃあこの本を25周年っていうところで出す価値みたいなところを考えた時には、
そういうような過去のものはそのまま残しながら、それに対してコメントしていくっていうフォーマットが良かったんだろうなっていう気がしますね。
スピーカー 2
まあ滅多なところで言うとそんなところですかね。
と言われているプログラミングの心理学に。ちょっとじゃあ本編入ってきますか。
プログラミングの構成
スピーカー 1
そうですね。
スピーカー 2
全体の流れとしては、五部構成でしたっけ。
スピーカー 1
まあ五部構成なんだけど、実質四部構成で五部はエピローグみたいな感じですね。
スピーカー 2
そうですねよく見る。
スピーカー 1
この本とよく見ますね。
最初が第一部人間の行動としてのプログラミング、第二部が社会活動としてのプログラミング、第三部が個人の活動としてのプログラミング、第四部がちょっとアングル変わっててプログラミングの道具って感じですね。
メインが第一から第三部かなという感じ。
そうですね。
スピーカー 2
第四部はどっちかというと個人の活動としてのプログラミングにちょっと別の領域から踏み込んでいくというか、通路によってどういう影響を与えているんだっけというような話が入ってくると。
スピーカー 1
そうですね。
スピーカー 2
まあ素直に前からいきますか。
スピーカー 1
そうですね前からいきますか。
スピーカー 2
人間の行動としてのプログラミングですね。人間の行動としてのプログラミングというのは何だつまり。
スピーカー 1
一応章立てとしては3章あってプログラムを読むっていうのと、良いプログラムとは何か。でプログラミングをどのように研究するかっていうふうな章立てにはなってますね。
スピーカー 2
そうだから機械の上で動くものだよとか、そういうのに対して人間活動としてってそこにお話をしていくよっていうような部のタイトルですね。
スピーカー 1
とりあえずちょっと第一章触れてみますか。なんとなくどういう感じかわかるかどうか。
スピーカー 2
そうですね。
スピーカー 1
まあプログラムを読むなんですよね第一章が。ただ現代の多分我々の感覚のプログラムを読むっていったときにIDの上とかVSコードとかPHPストームとかいうとこで多分コード読むっていうのと
多分この1970年ぐらいのコードを読むっていうのは多分前提が全然違うんだなって気がしますよね。
スピーカー 2
そうそうこの本は基本的にあれですもんねパンチカードかなに食わせる。手元でコンパイルも動作確認もできないんですよね。
スピーカー 1
そうですねだから紙の上で書いたりとかパンチカードだったりとかみたいな時代背景って思うとなんか全然そのプログラムを読むぞっていったときのその読む前提が違うよねと思って
ちょっとここは最初面食らうというかなんか全然違うんだなとりあえず頭を切り替えなきゃなっていう風にまず思ったりもしましたね。
スピーカー 2
めちゃくちゃ今の我々からするとめちゃくちゃフィジカルな活動ですよね。
スピーカー 1
そうそうそう
めっちゃ物理みたいな。印刷我々今の我々でもわかるような感覚で言うとプリンターで印刷するのを待つとかそういうのに近い。あれをGitプッシュの代わりにやるんだろうなみたいな感じですよね。
一応上の世代の人と喋ったときにギリギリ紙に書いてたことありますよみたいなそれはなんかパンチカードとかではなく紙に書いていてその紙に書いたものを
いわゆるあのデカいコンピューターパソコンじゃなくてデカいコンピューターが会社にあってそれに打ち込んで実行するみたいな体験はしたことありますというのはギリギリ上の世代で話は聞いたことあるんですけど
同年代とかちょい上ぐらいになるともうパソコンあったからもうわかんないんだよなーそういう話すら聞けないんだよなーみたいな。
スピーカー 2
僕の絵にプログラム用紙ありますよ。
スピーカー 1
すごい。
スピーカー 2
登壇するためのインプットをちょっと整えようと思って買った本がこぼれの本だったんで、付録でプログラム用紙がついてますね。
スピーカー 1
じゃあそれを印刷してみんなで書いていくわけですよね。
スピーカー 2
そうですね。いや大変だよな。大変だよなというかそこら辺からわかんないんですよねちょっとこの本が何騒いでいるのかが。
スピーカー 1
大変だったのかすらよくわかんないんだよですよね。
なんか逆に多分今の我々からしたら例えばそのフィジカルにその複雑さみたいなものってその紙というものの制約があるからむしろわかるんじゃねとか一望できるというか希望感が。
今だとなんかその業数とかバイト数とかでサイズ全体のサイズがどれぐらいですかとかいう話はわかるんだけども。
物理的な感覚としての希望感みたいなものはやっぱりわかんないからむしろ昔の方がわかりやすかったのではみたいなことをちょっと思ったりもしましたね。
スピーカー 2
なるほど。いやでもコードジャンプできないの厳しいよな。
スピーカー 1
でもコードジャンプできなくてもわかる程度の複雑さまでしか多分できないと思うんですよね。
スピーカー 2
人間の脳に収まるところで耐えてるというかまあまあ規模大きくなっちゃうと全然そんなことないのかもしれないですけど。
我々なんかね最近で言うともう人間の脳に収まるわけねえじゃんっていうのを前提にして構造化して隠して隠してみたいなことやってるわけで。
スピーカー 1
そうそうそう。
スピーカー 2
まあとはいえねあの別にアセンブラー、アセンブリ言語ばっか出てくるみたいな話ではなくてちゃんとアルファベット使ってアルファベット書かれてるんで。
サンプルコードとか。
スピーカー 1
そうですね。
スピーカー 2
まだ読めますよねプロシージャーとか書いてあってGoToとかそんなに出てきてないからジャンプとか。
スピーカー 1
そうそうそうなんかドゥホワイルみたいのもあるしエンドっていうのもあるからなんかこの辺ループしてんだなとかここからここまでがなんかクリなんだなとかいうのはなんとなくなんとなくわかりますね。
スピーカー 2
そうですねだからスパゲッティコードではない。
スピーカー 1
そうそうそう。
スピーカー 2
まあでもそんな背景がありつつの第1章プログラムを読むですけどなんかここはどうですかどこら辺が面白かったなとか。
プログラムを読むっていうのがまあクリエイティブかっこよく言えばクリエイティブだしすごい難しい複雑な活動だよねっていうところはやっぱり変わらないよねって感じはしますね。
スピーカー 1
そうですねそうですね。
スピーカー 2
なんか心に染みた部分とかありますか。
スピーカー 1
でもそうですね金城さんもメモで書いてくれてるけどあの言語の制約みたいなところによってこう書かれ方が変わってきたりとかする部分みたいなところとかいうところはまあやっぱり現代においてもまあ一緒だよねみたいな気持ちになりましたね。
スピーカー 2
10ページとかですよね言語の機能を十分に知らないこれを語彙の制約ぶらぶらりの語彙の制約と呼ぼうという以外にもプログラマーの制約はある例えば特定のアルゴリズムを知らなかったとか問題を大きな視点で捉えられなかったために重複を避けられなかったという場合もあるって書かれてて
いきなり言語の機能以外にもって話になっちゃったんですけど知らないとは知らないことってわからないですもんねって言うこともないけどそこなんですよね。
プログラミング言語の理解
スピーカー 1
この似た話で現代においてもよくあるなって思うのが配列からなんかの要素だけをディクショナリーの配列からこのキーの値だけを取ってきた配列を作りたいみたいなときにPHPでfor eachでぐるぐる回しながらその値を取ってきて配列に追加して作り上げるみたいな
っていうのをなんか行動を見たりするんですけどでもこれあれからも使った立派2で1行で書けるじゃんみたいなこととかあるなっていうのをたまに思うんですけど
でもこれ多分なんかその人がなんかあえてそうしてるってよりはただ単にその関数を知らなかったからそう書いて自分が持ってる手札で精一杯やった結果はそれであって
スピーカー 2
それって別に実は言語にはそういう機能があるんだよねとか逆に言うと言語にそういう機能がなければそうやってループで書くしかないんだよねとかいうことはあったりするよねみたいなことをちょっと思ったりしましたね
かといって全部の標準関数だったりだとかっていう語彙をみんながちゃんと知らないといけないかっていうとなかなか水準どこでしようみたいなのはありますよね
PHPの配列とか関数めっちゃ多いからな
スピーカー 1
あれいっぺけっぺけって何回あのドキュメントの一覧を眺めに行ってなんかそれっぽいのないかなみたいなの探したりとか定期的に見るけどなんかこんなのあったんだとか知らないものとかって知らないもあるしなんか使い方が思い浮かばないから頭の中に残ってなくて後々こう他の人が書いてることを見てこうやってこれ使えるんだとかいうこともよくあるし
まあ知ってるものでもなんか第三引き数に実はこれが設定できるんだってこれ設定するとこういう振る舞いするんだみたいなとかその細かい挙動まで全部把握してるかって言ったらそんなこともないしやっぱ全てを知るっていうのはやっぱ無理なんで
そうですねフレームワークのコレクション系のライブラリとかめっちゃなんで法一してるんだろうみたいなところで自問自答してみると確かにみんなコレクションライブラリのAPI全部覚えてるわけじゃないからかみたいな気持ちになったり
スピーカー 2
あとね普段書いてる言語にはあるけどこっちの言語だとやっぱそれがないみたいなことでいっぱいあるじゃないですか そう我々で言うとやっぱりバーダンプがどこにでもあってほしいなって
そうですね 別の言語を言った瞬間にバーダンプしたいんだけど何て書けばいいんだろうみたいな コンソールどっかバーダンプどっちかあってくれみたいな
でもあれですよねよりプリミティブなそれこそマップリリースとか使わないで全部ループで回すとか
まあ法一ぐらいは知っててほしいのはPHPGではあるんですけど そうですよね
スピーカー 1
ある程度の基準式一みたいなものがあってそこの語彙レベルに達してないコードになってくるとやっぱり結構しんどいなってなっちゃいますもんね
スピーカー 2
小学生にはわかるように話すみたいなのと近い思考の切り替えというか思考負荷みたいなものが発生するなという気はしていて
そうですね ループするんだからって言ってじゃあループを入れて全部書かれたらそれはそれでやっぱしんどさもあるしな
スピーカー 1
僕ちょっと前から全部GoToで書けるようになったんで ループをGoToにすることができます
それをミスなく実装できるかと言われたら
スピーカー 2
メンテはする気もあるんですね
知ってるものを全部継ぎ込めばいいかっていうと自分が書いてるうちにわけわかんなくなりますからね
スピーカー 1
これは全部あれぺけぺけで書けるからつってマップとあれマップとあれDDSとかで全部書き換えていって結局そのマップのスコープの中がめちゃくちゃでかくなってきて
何やってんだっけなみたいなのがやたらif elseいっぱいあるなとかになっちゃうと結局メンテナンスができないみたいなことが起きちゃったりして
なんかfor eachとかで書いたほうがもっとすんなり勇気出しこれ別メソッドに切り出しも簡単だったのではみたいなこととかいっぱいあるんでね
スピーカー 2
あとね昔あれじゃないですかPHPユニットのassert equalsに引数が7個ぐらいあったので
それ本当に全部使うみたいな名前付き引数がない時代ですからねまだ
スピーカー 1
辛い
スピーカー 2
5番目がヌルだからこのテストはフレーキーですとか言われても5番目なんだっけみたいな
スピーカー 1
IDがあればまだ5番目が何かっていうの見えるけどそうじゃないと結局ドキュメントを読みに行かないといけなかったりしますからね
スピーカー 2
面白いですよねなんかプログラミング言語の設計みたいな話が最後の出てきましたけど
やっぱりテスティングフレームワークとかテストツールってなんだそのプロダクトコード本来のコードの読みやすさをサポートするべきっていう役割があるにもかかわらず
PHPユニットが持ってるassertionメソッドがバッドデザインになってるせいでなんか良くないコードを書く
良くないテストコードを書けるようにするってことは良くないコードを書くことに助長してると思うので
そういう道具によって人間の思考が影響されるみたいなこのプログラミングの心理学的な側面を感じて非常に面白いなーっていう気がしたところで第二章いきますか
テストツールの影響
スピーカー 1
いきますか
33:04

コメント

スクロール