抽象化能力を身につけるのに役立つ、いくつかの切り口を手に入れよう というトークです。
設計に不慣れな人も、手軽に「抽象化に思いを馳せる」ようになることを目指します。
「優れた設計には、優れた抽象化が欠かせない!」
そんな声を聞いたことはありませんか?
プログラミングにおける抽象化は、
PHPコミュニティでも、これまでに何度も探求され、発信されてきたテーマです(末尾に一例を挙げます)。
「うまい抽象化を身に着けたい・・」そのためには、理解と鍛錬が求められるものと考えます。
体術のように反復や試行錯誤が欠かせませんが、当てずっぽうにやる訳にも行きませんよね。
◯◯アーキテクチャやパターンランゲージと呼ばれるものはどうでしょう?
それらも強力なヒントになりますが、どうしても「実装寄りの話」に閉ざしたものになってしまいます。
より一般的な = クラス設計より手前の「抽象化」も重要です。
このトークでは、頭の中の道具箱にしまっておけるような、
「こういう観点で思考実験をしてみると、抽象化が捗るかもよ」という複数の切り口を提供します。
本を読んでいますか?
良き本との出会いは一期一会であり、
もしかしたら次にあなたが読む本は、あなたの人生を強烈に変える1冊かもしれません。
本を読むためには、「買う」「借りる」「読み放題サービス等を使う」といった手段があります。
その前には、「探す」「出会う」といったステップがある訳です。
言い換えれば、必ず何かしらの「アンテナに引っ掛ける」アクションが必要です。それが、良書と出会う確率を高めるでしょう。
🌟LTのポイント①
では、どのように良さそうな本と出会うのでしょうか?
LTの話者自身が実践していること、周囲の人から聞いたことをベースにして
実践方法とポイントを共有します。
うまくアンテナを広げて引っ掛けられるようになると、「出会った本」「読みたい本」は増えていきます。
必然的に、「読みたい本と読めた本の比率」も変わるでしょう。
良き付き合い方を見つけてくいく必要があります。
大事なのは、「全ての本を、同じ濃度で読み切る必要はない」「途中で読み方を変えても良い」「将来また読み直しても良い」という点です。
これにより、「積読」を「不良在庫」化せずに、意味のある付き合い方を目指しやすくなるでしょう。
🌟LTのポイント②
その本を手にした動機があるはずです。
「じっくり読みたい」「ある事柄について知識を補いたい」「有名な言説の出自を抑えておきたい」など。
それに基づき、「読み方や使い方を変える」「読み出すタイミングを変える」といった戦術を実行します。
【対象】
【話さないこと】
phperの皆さんは、アルファベットや数字に記号などなどをファイル上に並べていきますよね。
私達が直接的に生産するのは、ただの「文字の羅列」に過ぎません。
これを文法の枠組みに則って解釈することで、文や句と行った構造が手に入るのです。
例えば class Hoge{}
と書かれていれば、「1つのクラスが定義されていて、そのクラスはHogeという名を持つ」といった具合です。
ASTの主な利用者はコンパイラでしょう。
人間が読み書きしやすい文字の羅列を、機械のための表現に変換する過程で現れます。
そして、「字句レベルではない、構造化されたレベルでコードを扱える」ことが、
コンパイラ以外にも色々な可能性をもたらします。
より抽象的な理解や操作が容易になり、色々な作業やコード品質の担保をお手軽なものにしてくれるのです。
そんなASTについて、「確かに面白いね!」と感じる人を増やしたいトークです
2025年ももうすぐ終わろうとしていますが
お兄さんお姉さんだけでなく、おじいちゃんもおばちゃんお隣さんも、皆でMCPサーバーに夢中になった1年でしたね
Symfonyユーザーのために、symfony/mcp-bundle というbundleがあります。
これを使うと、簡単に
を用意できます。
これって、普段のWebアプリケーション開発で、
「FWがやってくれる部分に任せて、やり取りする中身だけを気にしておけば、プロトコルやemitのタイミングなんて意識しなくてOKだよね」
って感覚に似ています。
触ってみると、「いつもPSR-7でやり取りしていた内容が、別のRequest/Responseに詰め込まれるだけだな!」という気持ちになれますよ
このLTでは、サンプルのWebアプリケーションを用意した上で、
「mcp-bundleを使ったら、Symfonyアプリケーションが簡単にMCPサーバーになった!」
という様子をお見せします。