Upgrade to Pro — share decks privately, control downloads, hide ads and more …

責務と認知負荷を整える! 抽象レベルを意識した関心の分離

y_ahiru
February 21, 2025

責務と認知負荷を整える! 抽象レベルを意識した関心の分離

PHP Conference 名古屋 2025 の登壇資料です
https://phpcon.nagoya/2025/

y_ahiru

February 21, 2025
Tweet

More Decks by y_ahiru

Other Decks in Programming

Transcript

  1. 今年中に生き物と愛を実感してくるわ • (困惑) • 抽象度が上がると情報量が削られる • そのため、抽象度が高すぎると必要な情報が消えて理解不能になる ◦ 今日の夜 ->

    今年 ◦ 友達 -> 生き物 ◦ 食事 -> 愛を実感する行為※1 • 一方で、情報が削られた代わりに包含される具象の数は増える ※1 wikipedia 「食事」より
  2. 自然言語の説明と乖離が発生している 自然言語
 1. メールアドレスの重複がないか確 認
 2. 重複があればエラーを返す
 3. 重複がなければパスワードをハッ シュ化


    4. 入力値から会員を作成する
 プログラム 
 1. users テーブルから email カラム の値が一致するレコードを取得し、 レコードが空であるか確認する 
 2. 空でない場合は例外を投げる
 3. 重複がなければパスワードをハッ シュ化
 4. 入力値を元に users テーブルにレ コードを追加する

  3. なぜ自然言語? • 読みやすさ・読みにくさは読み手に依存している ◦ 関数型に慣れていると map や reduce は読みやすい ◦

    そうでない人は for 文の方が読みやすい • そのため、ある程度多くの人が馴染みやすいコードを目指していきたい • 自然言語との乖離が少ないものは多くの人に馴染みやすいのでは?