PHPのインストールは皆さんどうやっているでしょうか?
最近ですとDockerイメージを使ったり、Linuxディストリビューションのパッケージを使ったり、Homebrew使ったり、XAMPP使ったりなど、
配布されたバイナリを使うことが多いでしょうか。
PHPはC言語でできています。そのため、C言語をコンパイルする、という作業が必要です。
上述したバイナリとは、コンパイルされた成果物を指します。
実は、PHPのコンパイルは、手元でも行えてしまいます。
色々なツールが必要ですが、一つ一つ解説します。
PHPのコンパイルができるようになると、PHPへの理解が一つ深まります。
そういうわけで、コンパイルをしてみませんか?
世の中には数多くのシステムサービスがありますが、少額であっても利益化まで持っていけるサービスは本当に限られるかと思います。
そこで今回は自分がリリースしているサービスで、少しですが利益化できたサービスの技術構成やLaravelだからこそできるサーバー代節約術、どうやってユーザーを獲得したのか、どのような告知を打ったのか、その費用対効果はどうだったのかなど、「技術的な側面」と「ビジネス的な側面」両方から経験に基づいたお話をしたいと思います!
普段どういう風にlaravel開発を行なっていますか?
デバッグする時にddやlogなど使用していますか?
今回紹介するXdebugではより洗練され、便利で、直感的なデバッグが可能になります。
私自身、同僚にXdebugを教えてもらってからその利便性に驚かされました。
簡単なデモ動画でXdebgの初期設定、基本動作、共有できればと思っています。
皆さんの開発作業の効率が格段に向上するはずです。ぜひこの機会にXdebugの魅力を実感していただければ幸いです。
生成系AIの勢いは止まりません
OpenAI のGPT-4 TurboやAssistants API の衝撃により、更に生成系AIは利用が広がることだと思います
またAWS re:Invent 2023にてAmazon Bedrockのアップデートも期待されています
利用するのと利用しないのでは、差を感じずにはいられず
私達PHPerも生成系AIの知識を追う必要があることは語る必要もないと思います
今回PHPerは生成系AIとどう付き合うべきなのかを、
2つの生成系AIサービスを比較しながら考えます
生成系AIの比較を行いながら理解することで、
現状PHPerがどのように向き合っていくべきなのかを振り返るセッションになれば幸いです
アブストラクトマシマシ・シンタックス少し・ツリーマシマシ。このような呪文を見かけたことはありませんか。そう,二郎系ラーメンです。この呪文を「コール」と呼び,ラーメンの着丼前のトッピングとしてヒアリングされます。一見,二郎系ラーメンのコールは複雑そうに見えますが,ある一定の法則性があります。そしてスタッフは法則性に基づいて解釈し,ラーメンにトッピングをします。似たようなのを見たことがありますね。そう,お察しの通りプログラミング言語の構文解析器です。例えばramen(1, 2)という構文はramenという関数をコールし,1と2という引数を与えます。つまりトッピングです。このようにramenという関数の引数は 2つで…といった意味を与えるのが構文解析器です。
本トークでは,PHPで構文解析器で専らよく使われるAST解析を実装するにはどうしたらよいか,二郎系ラーメンのコールを題材として解説します。
フォーム等の入力があるシステムでは、必ず実装しなければならないバリデーション処理。
Laravelでは、標準で便利なバリデーションルールが定義されています。しかし、シンプルなチェックであれば実装は容易ですが、フォームが少し複雑になると、どのように実装するか悩むことも多いのではないでしょうか?
カスタムルールを定義して一からバリデーション処理を実装するのも一つの方法ですが、標準のバリデーションルールだけでも、ある程度複雑なパターンにも対応可能です。
今回は相関バリデーション(他の入力欄の値によって入力のチェック内容が変わる)の実装について、標準のバリデーションルールを活用して実現した方法を紹介します。
近年、急速に"(コードの)質と(それの高さからくる開発)スピード"が注目されるようになってきました。
一方で「何故、"質とスピード"を求めるのか」に対するお話はあまり見かけません。
このトークでは「孫子の兵法」から見た「"質とスピード"は何のために必要なのか」、「"質やスピード"は本当に必要なのか」についてお話します。
このトークで得られる知見
このトークで話さない事
DDDを始めるにあたってしんどい気持ちになるのが「事前に用意しておくべきドメイン層のコードが案外ある」こと。
また、DDDを中心に据えた場合「ドメイン層のコードがどうあるかは本質ではない」とされ、具体的な指標がなく座りの悪い状態になりがちです。
"TacDDD"(タックディー)はそんな「ドメインの話に集中したいので、極力コード側に注力したくない」をお助けするライブラリです。
このトークでは"TacDDD"を用いる事で何が省略できるのか、どんな所の「質」が向上するのかについてお話します。
なんとなく口にしがちな「"品質"が高いコード」。
定義があいまいで要領を得ないため、すり合わせはおろか万人が万人の「願望する"品質"」の話に終始してきました。
一方で「品質」は工業規格としての定義があります。
このトークでは工業規格の定める「品質」に基づいて、「"品質"が高いコード」の定め方と達成の仕方についてお話します。
このトークで得られる知見
このトークで話さない事
PHP に FFI が導入されてから、どういう用途で使えばよいか悩んでいる PHPer も多いかと思います。
また、PHP FFI のマニュアルも理解しやすいかというと、ハードルは若干高いと言えるのではないでしょうか。
そこで本トークでは、PHP FFI を介したモジュールの呼び出し方の解説、自作 の C/C++ のモジュールの作成からの呼び出し方、 そして libusb と呼ばれるモジュールで USB で接続された機器の一覧を取得する実践的な方法など、どのように FFI を活用していけばよいのかを解説します。
開発と運用が分かれていた時代、「コードを書く人」から見て「本番システムの監視」は遠い存在だったと聞きます
──「アプリ側」の自分から見て、「それって本当に勿体ないぜ」と強く感じるのです!
頑張って作ったWebアプリケーション、ユーザーに気持ちよく使ってもらいたいですよね
そのために、少しだけ視野を広げてみませんか?
開発者としてサービスに関わる人に、少しでも「良いものを届ける」ために「監視もやるぞ!!」という想いを持ち帰ってもらう
set_error_handler()していますか!
フレームワークを利用して開発をしている場合、あまり馴染みが無いかも知れません。
直接的に意識したり内容を把握していないケースも多そうです。
PHPを正しく安全に使う場合、重要な機構の1つだと考えます。
エラー発生時の挙動の理解がおろそかになると、開発効率が落ちるだけでなく、セキュリティ面でも問題に繋がることすらあります。
このトークを通じて、「普段見ているエラーの画面」がどの様に作られているかを理解しましょう!
先日、製造業で働いている友人からIT業界に転職したいという話をいただいたのですが、その際にある疑問が湧きました。
それは、完全な初心者が2か月間訓練したら、どれくらいPHPが書けるようになるのだろうか……?というものです。
お互いに平日はお仕事があるので、夜中や休日にひっそりとお勉強するしかありません。
IT未経験の若者が苦労の末 2か月間でPHPを習得する 話、 聞いてみたくない ?
具体的な内容
AWS Lambdaはうまくアーキテクチャに組み込む事で大きなメリットをもたらします。
今回はAWS Lambdaを利用した動的サイトをLaravelを使って構築する手法についてお話します。
皆さんに馴染み深いLaravelを利用して、サーバーレスの世界へ第一歩を踏み出しましょう!
お話すること
想定する聴講者
現場で働くうえでよく分からん&ほぼ必須な要素としてGitが存在します。
とはいえ、gitについて調べても「 commit や push みたいな基本操作は分かるけど、深いところが何も分からん……」となりがちではないでしょうか?
このトークでは、ベテランエンジニアはなぜか知っている git 知識についてお話ししようと思います。
具体的な内容
git init した際に構成される.gitディレクトリの中身について軽く見ていく
実際にgit addとgit commitをPHPで実装してみる
対象者
簡単なgitコマンドは扱える人(add, commitなど)
複雑な操作になると不安になってしまう人
あの日破壊したブランチのことをまだ忘れられない人
現場で働くうえでよく分からん&ほぼ必須な要素としてGitが存在します。
とはいえ、gitについて調べても「 commit や push みたいな基本操作は分かるけど、深いところが何も分からん……」となりがちではないでしょうか?
このトークでは、ベテランエンジニアはなぜか知っている git 知識についてお話ししようと思います。
具体的な内容
git init した際に構成される.gitディレクトリの中身について
GitHub上にあるgit/gitのソースコードを覗いてみる
実際にgit addとgit commitをPHPで実装してみる
対象者
ライブラリの管理やクラスのオートローディングはどのようにされていますでしょうか?
多くの現場ではComposerを使ってライブラリの管理やクラスのオートローディングを行っていると思います。
しかし、レガシーシステムではComposerを使っていないという現場も存在するのではないでしょうか?
レガシーシステムにComposerを導入した際の課題と効果について紹介します。
・Composerを導入するメリット
・Composerのオートロード機能の紹介
・レガシーシステムにComposerを導入するためのTips
・独特な開発環境による課題
・導入後から半年の効果と課題
すでにComposerを導入している方も、Composerの仕様をより知ることでより効率的にComposerを使えるようになるかと思います。
静的解析ツールは使っていますでしょうか?
昨今のPHPのバージョンアップでは型定義が厳しくなってきており、静的解析ツールを導入することの優位性が高まってきています。
15年以上続いているレガシーシステムにPHPStanを導入した際の課題と効果について紹介します。
・既存の静的解析ツールからPHPStanへの移行
・PHPStanの導入時の課題
・導入から半年での効果と課題
既存の静的管理ツールに課題を感じている方や、静的解析ツールを導入したいと考えている方にとって参考になる内容となっています。
弊社では文化として受け継がれている「条件分岐禁止」というのがあります。
条件分岐禁止バンドをつくっちゃうほどに
条件分岐があることでコードが複雑化してしまったり見にくくなってしてしてしまいます。
そのアンチパターンやどうしたら良いコードになるのかを話します。
対象者: PHPのコードを綺麗に書きたい人
みなさん、PHPを初めて学んだ時に感じた「?」を覚えていますか?
私の所属する開発チームでは、PHPマニュアルの精読を始めました。
精読してみて改めて感じたPHP独自の魅力について、皆さんに共有したいと思います。
このセッションでは、PHPの特殊な機能、他のプログラミング言語との比較、その機能ができた背景について、私なりに調べた結果や考察を発表します。
対象者: