この世の中には、何かを決定する機会がとても多いです。
例えばサービスのある仕様を決める時、例えば技術選定をする時、例えば設計で悩んでいる時・・・
そんな時、たった一つのシンプルなルールとして、「何かを決める時は、より質良く / より多く理由を言える方が良い」を提案したいと思います。
このLTではそのルールについての解説や、具体例について話していきます。
このLTで話すこと
Docker の登場で、開発環境の構築はとても容易になりました。
コンテナを利用することで、実行環境の差異を隠蔽できるほか、複数の異なるバージョンの環境を 1つのマシン内で実現することもできます。
一方で、実際に PHP 製のアプリケーションを Web サーバー上で動かす際には、動作環境についての理解が必要です。
特に、フレームワークを利用したアプリケーションが、手元では動作するのにデプロイ先で 500 エラーを返す、といった経験はないでしょうか?
本トークでは、 PHP の動作環境を一から構築する方法についてお話しします。
PHP の本体だけでなく、 Web サーバーやデータベースといった、 Web アプリケーションを動かす上で必要不可欠な要素についてもお話しします。
手軽に動作環境を構築できるようになった今だからこそ、あえて PHP の動作環境を自分で構築してみませんか?
PHP書き初めて半年経っていない初心者が、爆速と噂(要出典)のphalconでWEBアプリケーションを作った所感について話します。
Larabelや他フレームワークとの比較をしつつ、果たして開発で使うべきなのか、初心者に優しいのかというような観点から、
個人の独断と偏見を元に、5分間という短い時間の中を爆速で紹介していきます。
「開発環境でクラスが読み込めないからとりあえず打つ」
「手順書に打てって書いてあるから実行する」
composer dump-autoloadを実行する時にこのように場面に遭遇したことはないでしょうか?
実は、dump-autoloadを打つべきタイミングには、明確な場面があります。内容をよく知ることで、「とりあえず打ってるけど、よく分からなくて不安…」を解消しませんか?
話すこと
対象者
私は首都圏企業の札幌開発拠点のエンジニアとして働いており、弊社では定期的に札幌市内でエンジニア向けのイベントを開催しています。
イベントで学生や初学者の方々と交流する中で、
「エンジニアを目指していく上でどんなことを学べば良いのか」「実際の開発の現場ではどのようなことをしているのか」
という情報を特に地方都市では得る機会が少ないと感じました。
少しでもきっかけになればと思い、「Laravelを用いて勤怠管理システムを作成する」というお題で、要件の検討や設計も実施するソフトウェア開発を体験いただくハンズオンを開催し
道内の学生や初学者の方計10名に参加いただきました。
本セッションではイベントを通して自身が気づいたことと経験、エンジニアを目指す人々がどんなことを気にしているのか
そして地方都市でこそもっとハンズオンイベントを開催した方が良い理由をお話しします。
PHP コードを実行するために必要なのが、PHP 実行環境です。
多くの Web アプリケーションでは、php-fpm や Apache httpd モジュールの mod_php を利用しているでしょう。こうした環境では、HTTP リクエストごとに独立したコンテクストで PHP コードが実行されます。個々のコンテクストは独立しているので、外部リソースを共有しない限り、お互いの干渉を気にせずにアプリケーションコードを実装できます。
本発表では、このような PHP の動作モデルをご存知無い方を対象に、どのように PHP コードが動作しているのかを図解を交えて解説します。
セッションのゴール
PHP アプリケーションがどのように動作するかイメージできる。
プログラミングの学習をして、開発経験を重ねて……
しかしながら「一人や少人数で行う個人的な開発」と「実務として行うお客様のためのシステム開発」には大きな違いがあります。
前者にはなくて後者にはあるものとは何でしょうか?
私たちは誰のために、何のためにコードを書いているのでしょうか?
システム構築〜保守・運用まで全て自社内で一貫して行う会社に異業種からエンジニアとして転職し、初めてシステム開発案件に参画して痛感した「実務経験」の話をします。
きっと今の私にしか話せない内容です。この先も大切にしたい”今だからこそ得られる気づき”をお話できればと思います。
【話すこと(予定)】
初めての案件で痛感した、実務におけるコードの書き方・開発の考え方
コードはコミュニケーションだという話
【隠れ目的】
実務経験をさらに重ねているであろう未来の私がこのLTを思い出して大切な初心を思い出せること
「アジャイルなんてオシャレな自社開発企業だけの特権でしょ?」
そう思っていた時期が自分にもありました。アジャイルを実践した今となっては、アジャイルはチーム単位や、ひとりからでも始められる!と確信しています。
このセッションでは、アジャイルの魅力、そして始め方についてお話しします。
PHP 8.1 で readonly property、そして PHP 8.2 で readonly class がサポートされるようになりました。
近年様々な言語でサポートされることが増えた「不変」であることが保証された変数やクラス。
PHP でもこれらの機能がサポートされたことで、中〜大規模なアプリケーションにおいて、バグを生みにくく、保守しやすい「堅牢」なコードを書けるようになりつつあります。
本トークでは readonly class を使う理由、そして実際に使って日々開発をする中で得たリアルな知見をお伝えしたいと思います。
※ PHP Conference 2023 でお話した内容をアップデートしたものです。
GitHub Enterprise には、自社サーバにインストールして利用する GitHub Enterprise Server (GHES) と GitHub Enterprise Cloud (GHEC) があります。
会社によっては、自社のサーバでデータを保持したい等の理由で GHES を使用していると思います。
サイボウズの Garoon 開発チームでも GHES で開発を進めてきましたが、最近その負荷が高まっており、運用の限界が見えていました。
そのため、リポジトリを github.com (GitHub Enterprise Cloud) に移行しています。
しかしながら、100 人規模のチームで利用しており、ほぼ毎日のリリースへの影響もあるため、移行はなるべく開発を止めずに行う必要があります。
このセッションではそのためにやったことや移行時の困りごとなどを共有します。
柔軟に小さく作る。言葉は簡単だが、実際には難しいところである。
顧客の欲しいものは本当のところ顧客自身もわかっていないことも多々ある。
我々も顧客に寄り添って価値を想像するために、小さく決めて開発をする必要が出てきた。
しかし時には、小さく作ることが開発チームのエゴになるときもありうる。顧客だけでなくチームとしてどの単位が最小価値なのか、悩まれる方も多いのではないだろうか。
小さな、動くものが正義。嘘か真か、顧客や世の中に問いながら細かく作り、大きな決定を遅らせる開発手法を紹介しようと思う。
eBPF(いいBPF、あるいはよかBPF)はLinuxの最先端技術の一つです。具体的用途として、ネットワークパケットのフィルターやフォワーディング、可観測性ツール、セキュリティ関係のツールの内部で利用されています。
eBPFはLinuxの謎技術なので一見難しそうですが、実は簡単な内容なら、C言語風DSLのパターンとPythonやRubyなどLLの若干の知識だけで、問題なく使えます。bpftraceという簡単に使えるコマンドツールも存在し、PHPのアプリ改善にも活用できるのです!
今回のトークでは、まず、PHPのためのeBPFの概要と、その周辺技術やツールなどを紹介します。その後、PHPと関連ミドルウェアを題材に、eBPFを使ってみましょう。例えばPHPの友達Apacheの計測であったり、PHP自体のアプリケーションprobeを利用した例をデモします。
PHPerKaigiでは、タイムゾーンの雰囲気実装を抜け出すための話をしましたが、タイムゾーンは政治的な理由でよく変更されたり、tz databaseの過去の設定が実は間違っているなんてことが実はあります。実際に変更された時に僕たち実装する人がどう対応していかなければならないのか?危ないケースはないのか?について、お伝えします。
どの企業でもPHPerのミドルクラス、テックリードクラスの採用とオンボーディングには苦労されていることと思います。特にオンボーディングにおいては、別言語をメインでやっていた方を採用し、活躍してもらうためにはこのくらいはキャッチアップできるだろうし、大丈夫!というサボりが、認知負荷を高め、活躍までのリードタイムを長くしたり、副業エンジニアの離職を招きます。このトークでは、実際にTechTrainの開発現場で行なっているオンボーディングを出来る限り見せながら、一般的に利用できる形式にしてお伝えします。
対象者
過去のPHP(特に5系まで)では、型システムが未熟であり、型の変換や関数の引数や返り値の型が厳密に管理されなかったため、関数を利用する際に適切な型の値を渡すことが難しかったり、返り値の型を信頼できない場合がありました。現在名前ベースで一致を調べる型システム(nominal type system) を採用していますが、他の言語と比べて、どうなのかを次の観点をベースにお伝えします。
文法のミスからビジネスロジックの違反など、コードを書くうえでは様々な例外が発生します。
本セッションでは、例外処理の機能であるカスタム例外を活用することで、
コードの責務を明確にし、より理解しやすく保守しやすいアプリケーションを構築する方法を紹介します。
こんな方にオススメ:
主に話すこと:
PHPerなら誰しも通ったことのある(?)オレオレフレームワーク作り
ルーティングやDIコンテナのライブラリをcomposer requireすることでオレオレフレームワークを作ることは簡単ですが、今回はあえて(四角い?)車輪の再発明をすることで、普段皆さんが使っているであろうフレームワークやそのコンポーネントがどんなことをやっているのか?を掘り下げていきます
一般的なFWがどのようにルーティングとコントローラーを繋げているか雰囲気をつかめた!
皆さんはPHPerでしょうか?
なぜPHPerを続けているのでしょうか?
このトークではある日突然職種も業種も変えることになった私が「なぜPHPerになることを選択したのか?」と、「なぜ今もPHPerを続けているのか?」という観点からPHPとそれを取り巻くコミュニティの良さについてお話したいと思います
皆さん、スクラム開発してますか?
このトークでは雰囲気でしかスクラムを知らなかった私が認定スクラムマスター(RSM)研修を通じて
を共有しつつ、知識のアップデートと適応により私の周りで実際に起きた変化についてお話します
「明日から始められる何か」を持って帰ってもらうことを目指します
みなさん三角関数覚えていますか?
本発表では、三角関数の基礎から説明し、それがどのようにソフトウェア開発のフロントエンドで活用されているのか、具体的な有用性を伝えることを目指します。
目標:
三角関数の基本的な概念を理解し、どのようにソフトウェア開発において生かされているのか理解する
話すこと(予定):
・三角関数の基礎: 三角関数の定義と基本的な性質
・実例
三角関数がどのように問題解決に役立つのか、円状のオブジェクトの接触判定を行うプログラムを通じ解説を行う。
対象:
三角関数を理解したい人
三角関数が実際にどのように使われているのか知りたい人