ソフトウェア開発は不確実性が高いとされていますが、アウトドアにおける商業ツアーも「大自然」という巨大でコントロール不能な不確実性を相手にゲストに安全に楽しんでもらうための実践知を多数持っています。
このポスターセッションでは、「元ラフティングガイド」という異色の経歴を持つ私が、アウトドアの商業ツアーで日々実践していたリスクマネジメントの手法の具体例と
アジャイルソフトウェア開発で使用される手法の共通点について探求し、そこから見えてきたリスクマネジメントについての見解を発表します。
当日は、会場で参加者の皆さまの経験や現在直面しているリスク、そしてその対処法についてぜひ皆さまの貴重な経験を共有いただければ幸いです。
皆さん、昨年度はどのように成長しましたか?
そして、今年度はどのような成長を計画していますか?
このトークでは、以下の方を対象に
私自身が学習の速さにおいて一定の成果を上げてきた経験をもとに、次のような内容をお届けします。
このトークを通じて、皆さんが自身の成長を加速させるためのヒントを得られることを願っています。
PHPのInterface、使っていますか?
このトークでは
といった方を対象にサンプルコードをによる実践的な使い方を通して、
その根底にある原理原則を解説し、言語機能としてのInterfaceへの理解を深めると共に
を解説します
Interface、コワクナイヨ!
PHPUnitは、いわゆる「xUnitファミリー」といわれるソフトウェア群のいち実装であり、
2024年時点で最新版は11と、とても老舗のプロジェクトと言えます。
時代に適応して変わっている部分はあれど、根底にある思想は共有されているはずです。
昔から変わらない?変わった?じゃあ、クイズの時間ですね!!!
このLTを聞いて、明日からPHPUnit 1 (もしくはPHPUnit 11)にちょっとだけ詳しくなりましょう。
例えば、何かのテストケースを1つ実装します。 vendor/bin/phpunit
で、テストを実行します。
その後に起こることは何でしょうか?
「CLIの入力を解釈して」「設定ファイルを読み込んで」「実行可能なテストケースを列挙して」「実行対象のテストケースを選別して」「実行順序等のオプションがあればそれも考慮し」・・・
「普段は何気なく使っているPHPUnitも、良く考えたら色々なことをしていそうだ」なんて気持ちになりませんか?
PHPUnitを支える仕組みに、イベントシステム(Observerパターン)があります。
例えば https://github.com/sebastianbergmann/phpunit/tree/11.4.0/src/Event/Events を見てください、こんなに色々なイベントが定義されています!
これにより、複雑に要素が絡み合った「テスト実行」の全体の中で、要所要所の拡張性が高く保たれている訳です。
見方を変えると、PHPUnitの管理するイベントに着目することで、テスト実行のライフサイクルの骨子を掴めます。
つまり「イベントを知る」=「FWの思想に触れる」ための手掛かりになるのです。
また、エクステンションと呼ばれる機構を用いて、任意のイベントを利用した機能拡張も可能です。
知っているとPHPUnitとちょっとだけ仲良く慣れるかもしれない、どこかで役に立つかもしれない、
そんな仕組みに触れてみませんか?
みなさんPHPStanを使っていますか? PHPStanはオープンソースで開発されているので誰でもソースコードを読んで仕組みを学ぶことができ、理に適った提案であれば取り入れてもらうこともできます。
ところが静的解析ツールはPHPや標準関数の仕様通りに実装すれば完成すればるというわけでなく、さまざまな考慮事項や現実との折り合い付けかたなどがあります。
本トークでは私がこれまでPHPStanに送信したPull Request(※トークプロポーザル時点で未マージ含め49件)について分類して紹介します。
発表者は電子工作をする訳ではないのですが、書籍『雑に作る』が大好きです!
「下手っぴでもいいから、自分なりに動くものを作るのは楽しいよ」と、ものづくりの初期衝動を思い出させてくれる一冊でした。
部品選びから始めてゼロから作るのが難しくても、 「100均の商品を分解して、中身を見てみよう!」「改造できそうなオモチャのパーツを取り出して使ってみよう!」と
簡単に取り掛かれそうなアドバイスが、とてもたくさん書かれています!
部品も既製品も、安全にさえ気をつければどう使っても良し。分解して特定の機能だけを動かしたり、組み立て直すのも楽しい。
色々なモノが動いている仕組みを、そうやって自分の目と手で理解していくことは大きな学びをもたらすでしょう。
本書ではコレを「テクノロジーを自分のものにする」と表現しています。
同じことをソフトウェアでもやってみたら、絶対に楽しいし力がつきそうですよね!
本トークでは、身近なツールを「分解」して、へっぽこガラクタを作って遊んでみた体験を共有します。
PHPマニュアルって、マジで、マジでめちゃくちゃ読みやすくないですか?
駆け出しだったときにありがたかったし、なんなら今でも本当に感謝するレベルだし。あの丁寧さのおかげで今の私があります。
そんなわたしですが、2024年、はじめてPHPマニュアルの翻訳作業に貢献することができました・・・!
このトークでは、PHPマニュアル翻訳のOSSコントリビューション物語を通じて、「きっかけの掴み方」や「得られたこと」についてお話しします。
使うものから、みんなで育てていくものへ。
このトークがあなたの素敵な一歩の後押しになることを目指します!
私たちは、プロダクトコードの中でさまざまなコードをtry-catchで囲み、ばしばしエラーを処理しています。
そしてエラー処理にはさまざまな選択肢があることを知ります。
例外を投げっぱなしにする(そもそもキャッチしない)、例外をキャッチして処理する、あるいは例外をキャッチしてうまく戻り値を定義する、など...です。
これまでプロダクトコードのみでの経験だった私は、OSSのコードを見て、「こんなアプローチもあるんだ」と新たな視点を得ることが多くありました。
特に例外処理に関しては、さまざまな場面での使い方や選択肢を知り、自分の考え方が広がりました。
このトークでは、プロダクトコードを書いていく中で実践的に得た知見と、OSSを通じて新たに学んだ例外処理の手法や考え方を深掘りします。
話すこと
Language Server Protocol (LSP)は、2016年にMicrosoftが発表したJSON-RPCベースのプロトコルです。
LSPはモダンなテキストエディタなら必ずある機能(例: 定義ジャンプ)を提供していますが、一番の魅力は特定のテキストエディタに依存しない形での実装になっていることです。
これにより各テキストエディタでの実装の必要がなくなり、エディタ選択の自由度が飛躍的に高まりました。
PHPの言語サーバ実装はintelephenceとPhpactorがメジャーです。
本登壇ではPhpactorの実装に触れつつ活用テクニックを紹介していきます。
仕様確認の遅れや認識のズレで開発が滞ってしまった経験はありませんか?
私は「エンジニア↔︎営業」と「営業→ユーザー」の2つのフェーズで課題に直面しました。
「エンジニア↔︎営業」間では、話し合いが後回しになっていたため、仕様確認の遅れや認識のズレが原因で開発が滞りました。
「営業→ユーザー」間では、エンジニアが思い描くユーザーへのアプローチ方法が営業でうまく使ってもらえず、ユーザーへ価値がうまく届いていませんでした。また、営業にリリースした機能の価値が十分に伝わっていなかったこともありました。
そこで、以下の取り組みを行いました。
・ 何を決めたい時間かがひと目でわかる会議名をつける
・ リファインメントやランチで関係を深める
・ リリース後のアプローチ方法を営業と一緒に決める
このトークでは、エンジニアと営業が協力し、リリース後の価値を最大化するための取り組みと、その結果生まれた変化を紹介します!
WindowsでPHPをビルドする場合、PHP 8.0からPHP 8.3まではVisual Studio 2019を使ってビルドしていましたが、PHP 8.4ではVisual Studio 2022の使用が推奨されるようになっています。このトークでは、Windows環境におけるPHPのビルド手順や最新情報に興味がある方を対象に、ビルドに必要な準備や実際の手順についてデモを交えて解説します。Windows版のPHPをビルドするにあたって知っておきたい情報やPHP 8.4における変更点もあわせて紹介する予定です。
テストコードを書く中で、「モックとスタブの使い分けが分からない」「どちらを使うべきか迷う」と感じたことはありませんか?その原因は、テストコードの書き方そのものではなく、オブジェクト設計の曖昧さに起因している場合があります。
本トークでは、モックやスタブを「どう使うか」を直接学ぶのではなく、オブジェクト設計のアプローチを通じて、結果として自然に正しい使い分けができる状態を目指します。
具体的には、次のステップを通じてオブジェクト設計を進め、テストコードを構築する方法を解説します:
これらのステップを経ることで、モックとスタブの選択が「意図した設計の結果」として整理され、テストコードを書く際に迷う必要がなくなる状態になるでしょう。
「ライブラリが古いせいでやりたいことが出来ない」なんて経験はありませんか?
古いライブラリは技術的負債であり、セキュリティリスクにもつながります。
本トークでは定期的なライブラリバージョンアップを続けている実体験をもとに、継続的バージョンアップのメリットや始め方についてお話します。
「テストがないコードはレガシーコードだ!」
Webアプリケーション開発においてテストコードが書かれることは一般的になってきました。
ですが、テストにかかる時間は適切でしょうか? テストにかかる時間は開発スピードに大きな影響を及ぼします。
本トークでは自動テストを高速化するための考え方やテクニックについてお話します。
Laravelの魅力の一つであるORM「Eloquent Model」。
雰囲気でも動くものが書けてしまう反面、実は正しく動かなかったり、パフォーマンスの悪いコードを書いてしまう恐れがあります。
本トークではEloquent Modelを使うときにハマりがちなトラップを取り上げて、それらが「良くない理由」と「どうすれば良くなるか」をご紹介します。
古いコードベースを読み解く作業はしばしば「ソフトウェア考古学」と呼ばれ、多くの人にとって大変で辛い作業と思われがちです。
しかし、サービスの歴史を辿ることで当時の設計思想や変化の過程を知ることができ、それ自体が良い設計を体験し、学べる貴重な機会でもあります。
私の実体験としても20年もの歴史のあるWebサービスの考古学からは学べることがたくさんありました。
本トークでは、新卒5年目エンジニアである私が、20年以上稼働し続けるWebサービスの改善に向き合う中で試行錯誤したことをお話しします。
東京都が主催するオープンデータハッカソンは、プログラミングスキルがなくても誰でも参加できるイベントです。このLTでは、私がこのハッカソンに参加し、運良くファイナリストに選ばれた経験を共有します。
このハッカソンの特徴は、技術的なスキルよりもアイデアや実現性を競う点です。そのため、技術的な話題が中心となることが多いカンファレンスの中で、少しリラックスできるセッションになるかもしれません。
作品についての詳細は、以下のリンクでご覧いただけます:
東京都オープンデータハッカソン作品
https://odhackathon.metro.tokyo.lg.jp/collection/106/
今年の3月に実施されたPHPerkaigi2024でコードゴルフ大会に参加し、とても楽しかったため、「自分の会社でも実施したい!」と思い立ち、実際に開催しました。結果は大成功で、とても楽しい時間を過ごせたので、その時の話をします。
コードゴルフの内容は、「FizzBuzz」問題や、1時間で解ける程度のの難易度のものを採用しました。言語はPHPを使用しました。
具体的には以下のような内容を話す予定です。
•コードゴルフ大会を実施するにあたって、コードゴルフができるWEBアプリをどのように作成したか
•コードゴルフ大会の雰囲気や参加者からの評判
•参加者たちの感想
•コードゴルフ大会を定期的に開催していることでの社内への影響
•コードゴルフ大会を開催した私自身の感想
2024年、PHP界隈では日本各地で個性あふれるカンファレンスが開催されました。
それぞれの地域が持つ特色や、カンファレンスごとに感じられる独特の雰囲気、そしてコミュニティの良さがぎゅっと詰まった一年でした。
そこでこの記事では、各地域のカンファレンスが見せてくれた魅力をasumikam視点で語ります。
みて楽しい、いって楽しい、そしてやっぱり学び深い。
「次あれば行ってみたい!」「足をのばしてみようかな?」と思えるようなワクワク感をお届けします!
そして迎える2025年(もう迎えてる)、PHPカンファレンスはさらに進化を遂げ、新たな伝説が始まるかもしれません…。
伝説を一緒につくるのは、あなただ!