PHPによる"非"構造化プログラミング入門 -本当に熱いスパゲティコードを求めて- by きんじょうひでき

PHPerKaigi 2025
採択
レギュラートーク(20分)

PHPによる"非"構造化プログラミング入門 -本当に熱いスパゲティコードを求めて-

o0h_ きんじょうひでき o0h_
1

オブジェクト指向大好きPHPerのみんなで、構造化プログラミング以前のスタイルで考えてみよう というトークです
クラスも無ぇ、制御フローもマトモに無ぇ、globalやgoto頼り!!!
非構造化の世界で、ぼくらの「認知負荷」は、どうなっちゃうの・・!?


開発生産性や変更容易性が特に重んじられる昨今、「認知負荷」との闘いに多くの時間が費やされます。
プログラミング言語もまた、こうした課題を解決する「あるべき姿」へと進化してきました。

一方で、「解決済み」の問題は見えにくいものです。
関数を定義できる、if-elseが使えることに、感謝の気持ちを抱いていますか?

それを理解するためには、温故知新のアプローチが役立ちます。
時代を遡ってみましょう。
オブジェクト指向以前の・・・手続き型?いいえ、もっと根源へ──
脱・構造化です!

この探求の先に、「今とは全く違うように見えるパラダイム」と「現在の姿」が地続きであると実感することでしょう
そして今の世界にも通じる「良さ」の再確認へと繋がるトークを提供します

みんなでスパゲティを食べに行きましょう

対象者と得られること

  • 「どうしたら読むのに疲れるコードを生み出せるのか」に興味がある人
  • 逆説的に「普段の開発で避けるべきこと」を知る

話すこと

  • 構造化プログラミングの簡単なおさらい(定義・歴史)
  • 「非構造化」のルールに則って書いたコードの紹介: お題 => 簡易CMS
  • これらを踏まえ「我々が普段やっている&戦っていることはどんな意味があるの?」の確認

「非構造化」のルール(一部)

  • 使わない: クラスや例外、while(true)以外のループ、名前空間
  • 制限する: ユーザー定義関数 => 引数は使わない、値を返さない
  • 使う: gotoや標準関数は使う