AIコーディング、興味はあるけど「月8万」「金が溶ける」なんて話ばかりで尻込みしてしまう…。実際ちょっとコードを書かせただけで数ドル請求される…。
でもゲームも買いたいし焼肉も食べたい…、学生ならそもそも収入がない…。
そんなあなたに届けたい! お金をかけずにAIで遊ぶサバイバル術!
お金は節約したいけどAIコーディングを使いたい人のために、安くAIと戯れるための抜け道・裏道・けもの道を紹介します。
仕事でそのまま使えないけど 未来を感じてもらいます!
同時に、LLMやAgentといった用語や活用例なども解説予定です。
金をかけずにどこまでAIと遊べるのか?
お金をかけない代わりに、何を差し出すのか?(ヒント:創意工夫、時間、あるいは電気代?)
ご期待ください!
※ 日々進化する話題なので、内容は変わるかもしれません。完全無限無料AIがきてたらどうしよう。
PHPでの開発に慣れてきた若手エンジニアが次に直面するのは、「何をどう学べばいいのか分からない」という壁です。MVCフレームワーク、リファクタリング、SOLID原則、ペアプロ、ユニットテスト、アジャイル開発といった開発に関する考え方や実践はどこから生まれ、なぜ今も大切にされているのでしょうか?
本セッションでは、ケント・ベック、マーティン・ファウラー、ボブおじさん、DHHといった人物を中心に、それぞれの技術や手法が生まれた背景、当時の課題、そしてそれらがPHPを含む現在の開発スタイルにどう影響を与えてきたのかを、歴史の視点から紹介します。
こうした知識は本来「デキる先輩」が後輩に伝えてきたものでした。しかし、周囲にそのような先輩がいない場合もあると思います。このセッションでは、現場の課題を解決するために必要なことを効率よく学ぶための「知識の地図」を提供します。
皆さんは、ご自身が書いたコードがPHPによってどのように解析され、有効な構文として認識されているか気になったことはありませんか?
この発表では、構文解析の理解を深め、文法ファイルを読み解くスキルを身につけることで、
PHPの文法をより深く知るきっかけにしたいと思います。
話す内容は以下のことを予定しています:
この発表の対象者は、PHPの構文解析のしくみに興味を持つすべてのPHPerです。
この分野の知識がない方でも理解できる内容にします。
構文解析器の分野は非常に興味深く、言語設計の奥深さを知る入り口となります。
この発表を通じて、少しでも多くの方がこの分野に興味を持っていただけることを目指します。
「オブジェクト設計スタイルガイド」は、オブジェクト指向のパワーを引き出し、クリーンなコードを書きたいPHPerにとって必読の書籍です。本セッションでは本書の内容を紹介しつつ、チーム全員の目線が揃うアプリケーション設計やクラス設計に役立つ考え方を紹介します。
本セッションで紹介すること
・Service、EntityとValue Object、DTOの使い分け
・クエリメソッド・コマンドメソッド・モディファイアメソッドの違い
・インターフェースの作成基準
本セッションを通して理解できること
・MVCフレームワークから疎結合なアプリケーションとは何か
・サービス層とドメイン層という言葉が意味すること
本セッションに参加された方が現場に持ち帰って実践できること
・クリーンなコードを書くこと
・レビュー時にコードの良し悪しを言語化できること
・AIが出力するコードを採用するか判断できること
「抽象化していますか?」ーー抽象化と聞くと、設計やモデリングをイメージするかもしれません。他にも、interface のような言語機能を利用することを思い浮かべる方もいるかもしれません。たしかにこれらも抽象化の一つですが、それだけではありません。また、抽象化には難しそうなイメージを持たれがちですが、実はソフトウェア開発を行なっている私たちにとっては日々利用している身近なものです。
本セッションでは、抽象化(と具体化)という考え方を整理し、設計や言語機能だけでなく、物事の理解や共有、課題解決、トラブルシューティングといった開発現場の広い場面でも活用できる「思考の技術」として具体的な例とともに紹介します。
「使える思考のツール」として抽象化を一緒に見ていきましょう。
PHPの実行環境として長らく主流だったApacheやNginx+PHP-FPMに対し、近年登場したFrankenPHP。
本セッションでは、Laravelによる実アプリ検証を通じて、移行時に検討すべきポイントや設定値の相違点などの観点から紹介します。
従来環境との違いを踏まえ、FrankenPHP導入の難易度やメリット・デメリットをお伝えします。
ここ数年、私はRaspberry PiでCPUを作っています。
これは、Z80というCPUをコンピュータから取り外して代わりにRaspberry Piで作った自作CPUを取り付けて動かすというものです。
このトークでは私が作成した2つのバージョンのCPUを題材に、以下の様なことをお話します。
このトークを聞いた方が「CPUを作るというのはどういうことか」をちょっぴり理解し、CPUやハードウェア自作が好きになることを願っています。そしてあわよくば一緒に自作CPUを楽しみましょう!
ここ数年、Raspberry PiでCPUを作っています。
これは、CPUをコンピュータから取り外して代わりに自作CPUを取り付けて動かすというもので、オリジナルのCPUの名前のZ80にちなんでPiZ80と呼んでいます。
PiZ80はZ80採用のパソコン・MSXをあわよくば高速に動かすことを目標にしています。
現在のPiZ80はMSXと同じZ80採用のシングルボードコンピュータ・SBCZ80でZ80よりも高速に動作する様になっていますが、ここに至るまでにはさまざまな改善がありました。
このトークではCPUを作るというのはどういうことか、CPUを作る時にどこに速度的な課題があるのか、そしてMSXでPiZ80を動かすまでの道のりをお話します。
このトークを聞いた方がCPUやハードウェア自作が好きになり、そしてあわよくばPiZ80のソフトウェアをいっしょに改善していけることを願っています!
CPUやプログラムの実行といったコンピュータの"低レイヤ"を知るためにCコンパイラを作成するのはとても良いアイデアです。
Rui Ueyamaさんの「低レイヤを知りたい人のためのCコンパイラ作成入門」はまさにそんな目的で書かれていて、手順どおりに進めていくだけで演算、変数、関数やポインタなど十分にそれっぽいCコンパイラを作れます。
ですが、このドキュメント、C(言語)でCコンパイラを作っていて、それ自体はごく普通のことですがPHPerにとっては若干ハードルが高いんですよね…。
OK。それならPHPでやってみましょう。
このトークではRui Ueyamaさんのドキュメントに従いながらPHPでCコンパイラを作る方法を解説します。
このトークを聞いた方がご自身でもPHPでCコンパイラを作成し、コンピュータの低レイヤを楽しめる様になることを願っています。
継続的インテグレーションおよび継続的デリバリー(CI/CD)パイプラインは、昨今のソフトウェア開発ならびに運用・保守で広く普及するようになり、開発プロセスやセキュリティ対策を最適化させる上で欠かせないものになっています。一方、CI/CDパイプラインの使い方によっては攻撃者に標的にされてしまうケースが出始めています。
本トークでは、開発者の生産性を向上させるCI/CDツールとして広く利用されているGitHub Actionsで考慮すべき脅威やセキュリティ観点を解説し、保護策を検討する際のポイントや、ワークフローの改ざんおよび不正実行の防止に役立つツールを紹介します。GitHub Actionsにおける脅威や攻撃手法の対策を踏まえた上で、改めてGitHub Actionsのセキュリティを点検してみましょう。
ソフトウェア開発で、「モデル」という概念が使われるようになって数十年。モデルに関する解説も世に多く出ています。皆さんの慣れ親しんだフレームワークでも、モデルという要素が普通に存在し、日々の開発で使っているかと思います。
ところで、モデルって何なのでしょうか? 概念? ビジネスロジック?
これらはモデルの用途ではありますが、すべてではありません。
モデルが真に力を発揮するのは、自分でモデルを設計したときです。
このトークでは、よくある予約システムを例に、素朴な設計のモデルからひと工夫加えた設計を行うことによって小さなブレイクスルーが起きる過程を具体例を用いながら説明し、聞いている方にモデルの設計のパワーを追体験して頂きます。
このトークを通じて、聞いている方のモデルについての理解をアップデートし、ソフトウェア開発に登場するモデルに関する諸問題を柔軟に取り扱えるようになって頂きます。
数ある Symfony コンポーネントの中で、私が一番好きなのが ExpressionLanguage です。
私が関わる PHP のプロジェクトでは ExpressionLanguage を多く使っています。
とても便利で使い勝手の良い ExpressionLanguage ですが、情報が少なく、活用事例はほぼ皆無です。
みなさんにもっと ExpressionLanguage を活用してほしい!ということで、使い方や勘どころを活用事例を交えて紹介します。
本格的な DSL (Domain Specific Language: ドメイン特化言語) システムを作るのはかなり大変です。
でも、簡易の DSL システムであれば、ExpressionLanguage と YAML で簡単に構築できます。
DSL システムを構築することで今まで見えなかったものが見えてきます。
「テックリード」という響き、とてもかっこいいですよね!
そんなかっこいいテックリードが何をするのか知っていますか?
私は合議制による意思決定の遅さというチーム課題の解決と自身の成長を期してテックリードになりました。
しかし、待っていたのは「テックリードとして何をすべきか」が不明瞭な状況と、役割を見出すための深い葛藤でした。
本セッションでは、そんな暗中模索の時期から、どのように自身の役割を定義し、周囲の信頼を得て「自他共に認めるテックリード」になるに至ったか、そのプロセスと乗り越えた壁について、実体験に基づき、そのリアルな姿と乗り越えるヒントお伝えします。
テックリードを目指している方、テックリードという役割に悩んでいる方へ
皆さんの「テックリード」の解像度が少しでも上がれば幸いです。
普段当たり前のように使っている “Git”、その仕組みを理解していますか?
本セッションでは、Git の内部構造を理解するために「PHP で Git の再現」に挑戦した取り組みを紹介します。
実際に再現してわかった、Gitのデータ構造や差分管理の仕組み、そして再現を通じて学べた本質的な気付きについてお話しします。
普段なんとなくGitを使っている方も、このセッションを通じて仕組みへの理解を深めてみませんか?
PHPの実行環境は、アプリケーションのパフォーマンスやスケーラビリティに大きく影響します。
本セッションでは、Laravelで作成したCRUDアプリを用いて、次の環境のパフォーマンスを比較します。
対象の比較環境
各実行環境の特徴と、ユースケースごとの適性を実測データに基づいて比較・考察して、結果を共有し、
実行環境を選定するさいの実践的な知見を持ち帰っていただくこと目標にしています。
これらのお悩みを纏めて解決する、よくばりテスト技法として「階層化自動テスト」戦略についてお話します。
本トークは「品質とは何か?」を前提に進みます。
より理解を深めたい方は、PHPカンファレンス関西2024での登壇「『"品質"が高いコード』って何?」をご覧ください。
https://fortee.jp/phpcon-kansai2024/proposal/a60c9e18-bc61-4f60-80d0-0a0ea7a205c4
このトークで得られる知見
このトークで扱わない内容
会計システムを作る時にPHPの数値仕様をしっかり理解した上で作らないと、後々大変なことになってしまう可能性があります。
小数点以下の誤差によって1円が消えたり増えたりしてしまうことがあり、1円の行方を巡って終わりのない、解決もしない調査の旅に身を投じることになるでしょう。
それが今なのか、いつなのかは分かりませんが、知っていれば防げる問題でもあります。
本セッションでは数値にはどんな問題があり、扱う時に何を気をつける必要があって、さらに扱いやすくするためにおすすめの方法をお話しします。