なぎせゆうき Python風言語でプログラミングするゲーム「農家は Replace() されました」のエンドコンテンツ、リーダーボードでは、より効果的な農場をプログラミングして世界中のプレーヤーとタイムを競います。
タイムを縮めるためには計測が大切です。どのようにタイムを縮めるのか、その考え方を紹介します。
araya Webサービス開発、特に自社事業の開発では、機能要件と非機能要件がしばしば明確に分けて扱われます。
企画や施策を実現し、売り上げるを上げるものは「機能要件」、パフォーマンス・UX・セキュリティ・アクセシビリティなどの領域は、「非機能要件」として扱われます。
果たしてここで分類された非機能要件は、本当に非機能的なものでしょうか。
本セッションでは、「機能要件」と「非機能要件」と二分化された分類を1からもう一度捌き、これらが離散的ではなく連続的に捉えるものであり、エンジニアだけではなく全ロールの人が向き合う必要があるという考察をします。
想定参加者:
Keycloakで始める認証基盤入門 — 1年半の運用で学んだ飴と鞭
初心者向け
Keycloak という OSS をご存知でしょうか?
昨今、SSOや2段階認証など、認証・認可にまつわる話題が絶えません。
Keycloakは、そんな認証・認可に必要な機能を汎用的に実現できる、セルフホスティングが可能なOSS認証基盤です。
発表者は実務で Keycloak を導入し、1年半ほど運用してきました。
導入の簡単さや、豊富な拡張機能、そして個々の要望への対応の苦労など、飴と鞭を等しく味わっています。
本発表では、そんな Keycloak について興味を持っていただき、将来的な"飴"の量を増やすことをねらいとしています。
これらの知見の共有を通して、これからKeycloakを検討される方、すでに使っている方、どちらにも参考になれば嬉しいです。
Masaki Suzuki 【テーマ】
・ AWS の IAM RoleやIAM Policy、およびAWSにおけるアクセス可否の判定の仕組みなど
【想定する参加者層】
・ AWSを業務・私用問わず触っている方
・ IAM RoleやIAM Policyについて詳しく知りたい方(特にIAM RoleのAssumeRoleやPrincipalなど)
・ アイデンティティベースポリシー、リソースベースポリシーなどポリシーの種類やそれによる最終的なアクセス可否の判定について知りたい方
【トーク概要】
2025年もいろいろなセキュリティ事故がニュースになり、特に2025年後半はサプライチェーン大手企業に対する攻撃により、我々の生活に関係するほどの影響がありました。
このようなセキュリティ事故ですが、「セキュリティ関連の設定不備」が原因となる事例がかなり多いのも事実です。
IPAの「情報セキュリティ10大脅威 2025」でも3位となっていることからも、「セキュリティ関連の設定不備」がどれほど致命的であるかがわかります。
そしてAWSにおいてセキュリティの基本であり、かつ最も重要なもの、それはIAM PolicyとIAM Roleです。
しかし、それだけ重要なIAM PolicyとIAM Roleですが、意外と十分に理解しきれていない、という方もいらっしゃると思います。
特にIAM RoleのAssume RoleやPrincipal、そしてアイデンティティベースポリシー、リソースベースポリシーなどの各種ポリシーが
複雑に絡み合った場合のアクセス許可・拒否判定の挙動がどうなっているかについて、なかなか把握できないという方もいらっしゃると思います。
そこでこのセッションでは、そんなセキュリティ的に最重要項目であるIAM PolicyとIAM Roleについて、
・ IAM PolicyとIAM Roleの基本
・ IAM RoleのAssume RoleやPrincipal
・ 各種ポリシーが複雑に絡み合った場合のアクセス許可・拒否判定のしくみ
についてお話しし、皆さんが携わっているシステムにおいて、思わぬセキュリティ事故が発生することを防ぐためのお役に立てればと思います。
【セッションゴール】
・ IAM PolicyとIAM Roleの基本、およびAssume RoleやPrincipalなどの仕組みを理解できるようになる
・ AWSにおけるアクセス許可・拒否判定のしくみを理解できるようになる
Daichi KUDO 人生で何度も入力したことのある住所フォーム。
しかし、入力するたびに「郵便番号のハイフンの有無でエラーになる」「全角しか受け付けない」「ブラウザの自動補完が効かない」など、細かな苛立ちを感じたことはないでしょうか。
では、ユーザーにとって使いやすく、迷いのないフォームを作るにはどうすればよいでしょうか。
その判断の指針となる考え方として、「驚き最小の原則」があります。
この原則は「どう振る舞うべきか迷ったときには、相手が最も驚かない選択をする」という考え方です。
このセッションでは、住所フォームを題材に「驚き最小の原則」を具体的な設計判断に落とし込む方法を紹介します。
具体的には次のような内容を予定しています。
日々 UI を設計・実装するエンジニアに向けて、ユーザーが自然に感じる動作を実現するための具体的な指針を提供します。
セッションを聞いた後、判断に迷ったときには「驚き最小の原則」に立ちかえり、より良い選択ができるようになることをゴールとします。
Koya Masuda 【テーマ】
アプリケーション設計において、「この処理はどこに置くべきか?」という問いは常につきまといます。
特にオブジェクト指向言語では、クラスやオブジェクトが自由に設計できる反面、責務と状態の境界が曖昧になりやすく、気づけば副作用があちこちに散らばります。
一度拡散した副作用は、バグやテストの不安定さを呼び、まるで割れ窓理論のように保守性の低下を加速させます。
本テーマでは、オブジェクト指向設計の原則(単一責務・不変条件・副作用の分離)に立ち返り、
「コールバック・イベント・非同期処理といった選択肢の中で、どのように責務と状態の境界を見極めるか」を体系的に整理します。
具体的な設計判断の基準と、現場で使える“判断ツリー”を共有することで、日々の開発における「処理をどこに置くか問題」に自信を持って向き合えるようになることを目指します。
【想定する参加者層】
※発表者はRailsエンジニアであり、サンプルコードはRubyで示しますが、設計原則は言語・フレームワークを問わず応用可能です。
【トーク概要】
「コールバックに書くべき?」「イベントに切るべき?」「非同期に逃がすべき?」
日々の開発で誰もが悩む“副作用をどこに置くか問題”に悩むかと思います。この判断をセンスや慣習に頼らず、オブジェクト指向設計の原則に基づいて整理するのが本トークの目的です。
副作用を
という3層に分類し、それぞれをコールバック/ドメインイベント/非同期ジョブに対応づけた「設計判断ツリー」を提示します。
また、現場で陥りがちなアンチパターンとして
といった問題を、責務と状態の境界設計の観点から分解します。実際のコード例(Rubyで示します)を通じて、「副作用をどこに置くべきか」を説明できるようになることを目指します。
いけち Webアプリケーションにおけるファイルアップロード機能のセキュリティリスクと、実装時に考慮すべきベストプラクティスを解説します。
初心者〜中級者のエンジニア
CSV一括登録、プロフィール画像の登録、動画音声ファイルのアップロード――これらは多くのWebサービスに不可欠な機能ですが、その実装、本当に安全ですか?
「拡張子をチェックしているから大丈夫」
「Content-Typeを見てるから大丈夫」
こんな風に思っていませんか?実は、それだけでは不十分かもしれません。
本セッションでは、以下の4つのステップで当たり前の機能の裏に潜むセキュリティリスクを解説。ファイルを介した深刻な攻撃手法を具体的に示し、安易な対策では防げない見落とされがちなポイントと、いますぐ導入できる具体的な防御策をお伝えします。
1. 実際に動く「危険なコード」のデモ
2. ファイルアップロードに潜む主な脆弱性
3. セキュアな実装のベストプラクティス
4. 実装チェックリスト
このLTを通じて、ファイルアップロードの「危険性」に対する意識が変わり、皆さんのコードのレベルを引きあげることができるはずです。
もう「拡張子をチェックしたから大丈夫」とは言わないはず。
安心・安全なサービス開発を、共に実現しましょう!
araya Webブラウザはこれまで、数々の機能を実装し、セキュリティを強化し、相互運用性を高めながら発展してきました。
現在では情報アクセスの一部がAIを介した対話的UIへと移り始め、ブラウザでUIを提供する時代は終わるという声も聞かれるようになりました。
現代、もしくは近い未来私達が情報の消費者としてもコンテンツを作り出す開発者としても、Webブラウザに何を求めるのかを問い直します。
また、モダンブラウザと呼ばれる主要なブラウザエンジンに加えて、新興ブラウザエンジンの開発も進んでいます。
実際に1つのブラウザエンジンプロジェクトにコントリビュートしている発表者の視点から、ブラウザ開発に関わるモチベーションを紹介し、日本人開発者が参加する意義についても考察します。
もりしげ React 19の楽観的更新で、日常のUIをもっと気持ちよく、操作体験を磨くヒントを届けます。
React 19の正式リリースから1年。
主要なライブラリやフレームワークでも対応が進み、今では実際のプロダクト開発でも十分に使える段階に入りました。
本セッションでは、React 19で追加された「新しいレンダリングの考え方」と「フック(useTransition / useOptimistic)」を活用し、「待たせない」「引っかからない」「自然に感じる」UI体験をどう実現できるのかを、実例を交えて紹介します。
非同期処理やサーバー通信が当たり前になった今、「読み込み中」「遅延」「再描画のちらつき」は避けられません。
しかし、React 19のuseTransitionやuseOptimisticを使えば、ユーザーに「遅れ」を感じさせないアプローチを実装できます。
フォーム送信、フィルタリングUI、ボタン操作など日常的なインタラクションを題材に、「技術でUXをなめらかにする」ための発想と実装パターンを一緒に探ります。
(主に初中級者〜中級者の現場エンジニアを想定)
React 19では、useTransitionやuseDeferredValueを使って「急ぎの更新」と「ゆっくりしてもいい更新」を分けることで、UIの引っかかりを減らす仕組みが整いました。
さらにuseOptimisticを組み合わせることで、サーバー応答を待たずにUIを「先に動かす」ことができます。
この「先回りするUI」は、ユーザーに「軽快でスムーズな操作感」を与える鍵になります。
正式リリースから1年が経過した今、これらの機能は既に安定しており、Next.jsやReactRouter(Remix)などの主要フレームワークでも標準的に採用されています。
つまり、「もう試す段階ではなく、使いこなす段階」です。
本トークでは以下の3つのテーマを中心に進めます
useTransitionとuseDeferredValueの具体的な活用例useOptimistic + Actionで即時応答を実装<ViewTransition>で実現するシームレスな画面遷移難しい理論を詰め込むよりも、「これなら自分のプロダクトで使えそう」と思える具体例を中心に構成します。
セッション後には、参加者が「自分のUIをもっと気持ちよくできそう!」と感じられることを目指します。
ASANO Masaki 耐量子計算機暗号 (PQC)、暗号技術、セキュリティ、NIST標準化 (FIPS 203, 204, 205)
耐量子計算機暗号(Post-Quantum Cryptography: PQC)は、将来登場が予測される高性能な量子コンピュータによる解読の脅威に耐え得る、新しい暗号技術の総称です。
PQCの基盤となる数学的問題は一つではなく、様々なアプローチが研究・開発されています。
特に大きな動きとして、2024年8月、NIST(米国国立標準技術研究所)は2016年から進めてきたPQC標準化プロジェクトの成果として、FIPS 203、204、205という3つの標準を正式に発表しました。
これにより、PQCは研究段階から「実装段階」へと大きくシフトし始めています。
本トークでは、まず「なぜ今PQCが必要なのか?」という背景や、NISTによる標準化の最新動向といった概要を解説します。
その上で、標準化されたPQCがどのような仕組みで安全性を担保しているのか、代表的な方式(例:格子ベース暗号など)の技術的な仕組みを分かりやすく紐解きます。
最後に、私たちエンジニアが最も関心のある、主要なプログラミング言語(Java, Go, Rust など)におけるPQCライブラリのサポート状況を紹介します。
daiki Nxの被害など、npmパッケージのサプライチェーン攻撃が現実の脅威となった今、開発環境のセキュリティ対策は全ての開発者にとって避けられない課題です。
本セッションでは、実際の攻撃事例から学ぶ教訓をもとに、今すぐ実行できる対策から1Password CLIとコンテナ技術を組み合わせた理想形まで、段階的にセキュリティを強化していく現実的で実践的なアプローチを紹介します。
森 友梨映 AIと共創する時代に、プラットフォームをどう設計すべきか?
AIやAIエージェントが開発のパートナーとなったAgentic AIの時代には、「生成AI/エージェントとのコラボレーションを支えるプラットフォームづくり」が欠かせません。
開発者が創造性を発揮できる「自由」を確保しながら、AIが扱う膨大な開発データや知識をどう「統制」するか。プラットフォームの自由と統制のバランスを見失うと、生産性の低下だけでなく、情報漏洩やシャドーAIのリスクにもつながります。
開発者が創造性を発揮できる「自由」を確保しながら、AIが扱う膨大な開発データや知識をどう「統制」するか。そのバランスを見失うと、生産性の低下だけでなく、情報漏洩やシャドーAIのリスクにもつながります。Agentic AI時代においては、プロンプトエンジニアリングを超えて、AIのコンテキストとなるデータをどう整備し、プラットフォーム全体をどう設計するか――つまり、AIが“理解しやすい環境”そのものを構築することが必要です。
本セッションでは、Platform Engineering と Context Engineering をひとつなぎで捉え、AIのパフォーマンスを最大化するための開発基盤設計と、プラットフォームにおける最適なデータマネジメントを探ります。また、機密データの漏洩、モデル汚染、プロンプトインジェクションなどの「生成AI時代ならではのプラットフォームに対する脅威」にどのように備えるか、ガードレールとしてのDevSecOpsやポリシー設計の観点から、「ゴールデンパスとしての自由」「統制しすぎないガバナンス」「AIとの安全なコラボレーション」を実現するためのプラクティスを、具体的なアーキテクチャや事例を交えてご紹介します。
Agileがクライアントと開発者の協調に挑んだように、DevOpsがDevとOpsのコラボレーションを追求したように、
Agentic AI時代は、人とAIのコラボレーションのためのエンジニアリングをどのように実現するかが問われています。
人と人、AIと人とのコラボレーションについてinsightを得たい方、AI-readyな開発プラットフォームの構築/運用に興味がある方はぜひご参加ください!
■対象レベル
中〜上級
■想定する参加者
■必要な前提知識
佐藤智樹 Claude Codeは自律して実装を行えるAIコーディングエージェントです。
Claude Codeは特定のオプションを与えると持ちうる権限の範囲内の操作は何でも行います。
悪い方向に働くと、ホームディレクトリが削除されたり、大事なデータが削除された事例も…
本セッションでは、そんなClaude Codeや他のAIコーディングエージェント全般を如何にして安全に扱うのかプラクティスを紹介します。
具体的には、脅威モデリングの手法であるSTRIDEモデル(なりすまし、改ざん、否認、情報漏えい、サービス拒否、特権の昇格の6つの観点)を応用してClaude Codeがもちうる脅威を分析します。それぞれの脅威に対して、どんな対策が講じられるか、DockerやIaCのサンプルコードを用いてご紹介します。
AIコーディングエージェントは今後生産性を向上する要となりますが、組織として扱うには権限と制約のバランスを考える段階がどこかで発生します。2026年はおそらくその年になるので備えましょう。
セッションという場ではありますが、一方的にお話するというより自分たちのチームで改めて脅威を考えるためのきっかけや、組織での考え方の一助として使っていただければ幸いです。
hmatsu47(まつ) 「IPv4 のアドレスがもうすぐ枯渇する!」と言われ続けてはや◯年。
これは決してオオカミ少年的な話ではなくて IPv4 アドレスの節約・やりくりを頑張っている人たちのおかげでもあると思うのですが、そんな「努力の限界」がいつ来るかについてはわれわれ素人には正確にはわかりません。
そこで、X デー(?)がいつ来ても良いように、今のうちに「完全に理解した」とは言わないまでも「雰囲気は掴んだ」というレベルになっておこう!というのが当セッションの目的です。
■話す内容(一部)
などなど
■想定する参加者層(前提知識)
Makky(Michiya Maki) 明日から使える!ソフトウェアテストの歩き方
主にソフトウェア開発に携わる一般エンジニアを対象としています。
テストを我流で行っている方、または単体テストや結合テストの品質をもう一歩上げたいと考えている初学者〜中堅エンジニアを想定しています。
JSTQBなどの体系的なテスト知識がなくても理解できる内容ですが、仕様を読みコードを書いた経験があると理解が深まります。
テストエンジニアだけでなく、開発者・PM・デザイナーなど「自分の成果物の品質に責任を持ちたい」と考えている方にもおすすめです。
テストって、どこまでやればいいんだろう?
機能は動いているけど、なんとなく不安。レビューでは「テストケースが浅い」と言われる。
そんな経験をしたことがある方は多いのではないでしょうか。
このセッションでは、現場で本当に役立つ「ソフトウェアテストの考え方」を、明日から実践できる形でお伝えします。
テーマは「同値分割を基本としたテスト技法」「経験ベーステスト」「生成AIを活用したレビュー技法」の3つ。
教科書でおなじみのテスト技法に加え、現場で実践している生成AIの活用方法を紹介します。
テストは、実際のプロジェクトでどう活かすかとなると、途端に難しく感じる人が多い分野でもあります。
私自身、スタートアップでQAエンジニアとして日々開発と向き合っています。
IT業界20年。開発者やマネージャーとしての経験を経て、「理論通りにやってもうまくいかない現場」と、「時間がない中でも品質を守る工夫」を何度も経験してきました。
そこで気づいたのは、テストは“やり方そのもの”ではなく“テストの考え方”を学ぶことが大事だということ。
同値分割の前に「どんな違いが意味を持つのか」を見抜く目。境界値分析の前に「どこが境界なのか」を見つける力。
そして、マニュアルに載っていない「勘」や「経験」は、実は“多くは理屈で説明できる”ものだということです。
本セッションでは、JSTQBの定義をベースにしつつ、
・仕様の読み方をどう変えるとテストがしやすくなるか
・チームで納得できるテストを作るために必要な考え方
・不具合を探索する道標の作り方
など、「ものづくりのラストワンマイル」を埋めるヒントをお話しします。
単に「テストをやる人」ではなく、
「品質をつくる人」として一歩踏み出すためのきっかけになればと思っています。
テストを専門にしていなくても大丈夫。
むしろ、今までは“なんとなく動作確認していた”という方にこそ聞いてほしい内容です。
セッション後には、自分のプロダクトや関わっているプロジェクトを少し違う視点で見られるようになり、
「ここは確認しておこう」「ここが危なそう」と、自然にテストの意図が浮かぶことを期待して準備します。
テストは退屈な作業ではなく、プロダクトを深く理解するための一番身近な探求です。
このセッションを通じて、あなたのテストが「やらされるもの」から「やりたくなるもの」に変わる。
そんな体験をお届けしたいと思っています。
「自分のテストがなんとなく不安」「レビューで指摘されがちでしんどい」そんな方に、
明日から試せる“ソフトウェアテストの歩き方・付き合い方”を持ち帰ってもらえるセッションです。
大山奥人 HTMLのbutton要素とa要素の正しい使い分け、マークアップ、アクセシビリティについてを主題とします。安易な実装が引き起こすバグやアクセシビリティ低下という課題に対し、Web標準に基づいた「ボタンの定義」についてを改めて見直す内容を提供します。
今やWebサイトやアプリケーションに必ず存在するようになった「ボタン」というUI。私たちは毎日当たり前のように実装していますが、「ボタンとは何か?」と聞かれたら、明確に定義できるでしょうか?
<a>タグをボタン風に装飾したUI、type属性を忘れて意図せず画面をリロードさせる<button>、そして歴史の彼方に消えつつある<input type="button">...。なぜこんなにも多様な『ボタンのようなもの』が生まれ、そしてバグの温床となるのでしょうか。
私はこれまで、マークアップのセマンティクスを重視する立場として、こうした「残念な」実装が溢れる現状を常にもどかしく感じてきました。「動けば良い」という流れの中で、なぜ「本来あるべき姿」が失われてしまうのでしょうか。
このセッションでは、「type属性の指定漏れ」でバグを踏んだ経験や、デザイナーと「ここはリンクか?ボタンか?」で実装方針が割れた際の苦い議論を基に、このボタンUIを深掘りします。
HTML仕様やアクセシビリティの観点から「ボタンとは何か」を再定義すると同時に、私が実務のコードレビューや設計議論で直面してきた葛藤と、それを乗り越えるための知見を共有します。
この発表を経て「たかが」と思っていたボタンUIについての考えを変えるきっかけになるかもしれません。
Makky(Michiya Maki) 不確実性に立ち向かう品質マネジメント
開発現場では、品質に関する判断に迷ったり、リスクを後追いで発見してしまう経験のあるエンジニアを想定しています。
職種としては、開発者・QAエンジニア・テックリード・マネージャーなど、チームでプロダクト開発に関わる方を幅広く対象としています。
品質マネジメントやリスクマネジメントの専門知識がなくても理解できる内容ですが、日々の開発プロセスに課題意識を持っている方ほど共感しやすいと思います。
特に「不確実な環境での意思決定」や「リスクとどう向き合うか」に興味のある方におすすめです。
私は全てのマネジメントの目的は"リスクを見つけ「なるべく早く」対処することが本質だと考えています。
このトークでは、リスクを「なるべく早く」見つけるために工夫しているノウハウを共有します。
変化の激しい開発環境では、不確実性に起因する判断ミスやリスクの見落としが、重大な品質問題へと発展することが多くないと思います。
本トークでは、私がエンジニアとして取り組んできた、そうしたリスクに向き合う考え方と実践について発表します。
過去には、曖昧な仕様や品質知識の不足により十分なテストが行えず、リリース遅延や品質低下を招いた経験があります。
現在、その経験を教訓に、リスクを「プロジェクトリスク」と「プロダクトリスク」に分類し、それぞれに応じた対応を開発プロセスに実施する取り組みを行ってきました。
具体的な例としては、リスクを見分けるのための会議体を設け、開発チームと早期に情報を共有し、設計段階から品質に向き合えるプロセスを整備しました。
これにより、仕様検討段階での認識のずれや改善事項を前倒しで発見・対処する等、リスクの顕在化を未然に防ぐ効果があった。
不確実性が高まるなかで、品質に向き合うためのマインドセットと品質マネジメントの両面から対応した実践的アプローチを紹介します。
皆様にとって、現場で再現可能な品質マネジメントのヒントを提供できれば幸いです。
本トークは、昨年YAPC函館や本年開催のSQiP2025に関連する内容です。
YAPC函館)https://fortee.jp/yapc-hakodate-2024/proposal/da4c92fe-0a90-4fd1-9eec-946ce046c1e2
SQiP2025)https://www.juse.jp/sqip/symposium/detail/day2/#b3-2
muo 本セッションでは、次の内容を紹介します。
4G・5Gといった現代スマホの通信方式について、うっすらと知識がある方を対象とします。
4G(LTE)回線の通信バンドについての事前知識があると内容を聞きやすいと思います。
Android SDKについての知識、Unixシェルの知識があると楽しく聞けると思います。
登山や海のレジャーといったアウトドアアクティビティーに馴染みのある方は興味を持ちやすいと思います。
主要通信キャリアの4G回線の人口カバー率は99.9%を超えていますが、実際の国土エリアカバー率は60-70%と言われています。
日本には山岳部や島嶼部が多くあり、スマホの電波が入らない場所もまだまだ多いです。
投稿者は登山を趣味としていますが、少しマイナーな山へ登ったら登山口からすでに圏外というケースも多いです。
2025年、au Starlink Directサービスの開始により、日本国内でスマホが人工衛星と直接通信(Direct to Cell; D2C)できる時代がついに幕を開けました。
今年2026年にはau以外の主要キャリア各社のサービスも本格スタートする見込みです。
投稿者は、D2Cの可能性調査と実用的なユースケース探索、そして自分自身や友人の安全確保を目的として、主に登山の文脈でD2C回線を使ってリアルタイムに家族へ位置情報を送信し圏外の安全を確保する「AnzenMap」というサービスの開発とベータ版運用を2025年5月から継続しています。
これは、「遭難してから衛星通信で助けを呼ぶ」のではなく、「圏外行動中つねに位置情報を家族へ定期送信し、不測の事態が発生したら最後の消息地点を家族が確実に把握できるようにする」というコンセプトのものです。
山岳で滑落して気を失ったら連絡できない、スマホを谷底へ落としたら連絡できない、雪山でスマホの電源が切れて連絡手段がなくなる、といったシビアなケースも想定し、それでも可能な限りの情報を家族へ伝えるためのセーフティー策といえます。
このなかでは、いくつかのシステム要素へ取り組む必要がありました。
また、この派生物として、公開されている非公式の衛星軌道情報をもとにして「現在の」Direct to Cell接続可能エリアが分かるマップも作成しました。
https://d2c-map.muo.jp/
実用面について、2025年8月末にはau Starlink DirectがSMS/RCS送受信だけではなくデータ通信に対応しましたが、Androidではごく一部の機種でのサポートに留まる(2025年10月現在)ため、「SMSベースで何が出来るか」という思考・システム運用は依然として重要な要素です。
また、D2C接続は「スマホが地上基地局の電波を掴んでいない時だけ接続される」という特性を持ちます。人里において適切に空が見える状態の圏外を見つけるのは困難であるため、テストも難航しました。
本セッションでは、D2Cの現状を把握するための概要、AnzenMapの開発とフィールドテストから得られた通信特性、スマホアプリ開発上の注意点、周辺地形に関して考慮すべき点を紹介します。
おすすめのテストスポットと、その探し方も紹介できれば、と考えております。
5hun 【テーマ】
複雑なビジネスロジックを持つ機能の設計についての、現実的なアプローチ
【想定する参加者層(前提知識)】
要件定義や設計から開発まで担当しているソフトウェアエンジニアを主な対象とします。
特に、複雑なビジネスロジックの実装で悩んだ経験のある方はきっと共感できる内容となっています。
他には、今後そのような業務を行う予定、または興味を持っている方も歓迎します。
MVCやオブジェクト指向、アジャイルな開発手法についての知識があると、より深くトークを楽しめると思いますが、それらを特別に意識しない、普遍的な「設計思想と現実的な判断基準」に焦点を当てたトークをする予定です。
※特定の業界知識は不要です。
※スピーカーは、Ruby on Railsで開発を行っていますが、設計思想と現実的な判断基準が中心となるため、他言語・他フレームワークのエンジニアにも十分応用可能な知見を提供します。
【トーク概要】
私の所属する会社では、クライアントと保証契約を締結するために必須の与信審査をRuby on Railsでプログラムのソースコードに落とし込んで自動化し、現在に至るまで約2年間運用してきています。
月間1万件を超えるこの審査業務は、与信に関する高度な専門知識や経験、柔軟な判断を要し、「プログラミングによる自動化に向かない」領域とされてきました。
しかし、私たちは、アジャイルなアプローチで開発を進め、「将来が読めない」という現実と向き合いながら、必要に応じて進化できるシステムを、泥臭くも丁寧に築き上げてきました。
本セッションでは、教科書的な設計原則と現実が衝突した際に、どのように設計判断をすればよいのか、具体例を交えながら、私自身の経験を踏まえて知見を共有します。
具体的には、以下のような内容について話します。
・拡張性を生む骨格設計:すべての土台となる基本ルールを、一番初めに明確化することの必要性
・Fat Modelを恐れない:ロジックをModelに集約させることで得られる凝集度と保守性
・判断基準を「設定」として切り出すコツ:個別パターンのビジネスロジックをカテゴリ化し、設定として切り出すことのススメ
・それでも吸収できない例外パターンへの対処法:可能な限りのグループ化と、最終手段としての影響を最低限に留めるハードコーディング/割り切りの判断基準
これは単なる「実装事例」ではなく、複雑なドメインロジックに日々格闘する全てのエンジニアに贈る、泥臭くも強いコードを生み出すための設計哲学と実践録です。
理想と現実のギャップに悩むあなたの現場に、即戦力となる「泥臭くも強いコード」を生み出すためのヒントを持ち帰ってください。
yukyan テーマ: 文字コード、PHP、PHP_CodeSniffer
想定する参加者層: 中級者ぐらい。ソースコードの文字コードに悩まされている人。
トーク概要:
EUC-JPで書かれたPHPアプリケーションのコードベースを触ったことはあるでしょうか?
多くのツールはソースコードがUTF-8であることを前提に作られているため、そうしたアプリケーションの開発に関わっていると、まれに困ることがありました。
そのアプリケーションの開発をしているときは課題を感じつつ、自身の体感では大きな問題なく開発していました。しかし、、EUC-JPを上手く扱えないClaude Codeの登場をきっかけに、思い切ってUTF-8への移行の着手を決意。アプリケーションのコードを全てUTF-8に置き換えるべく動きました。
単にソースコードを一気にUTF-8に変更すればいいかというと、そういうわけではありません。EUC-JPのコードの中にマルチバイトの文字列リテラルがある場合、UTF-8にそのままコードを変えると動作が変わる可能性があります。
では、ソースコードにマルチバイトの文字列リテラルが「ない」状態を保証できたらどうでしょうか?
このLTでは、i18nを参考にしたUTF-8化の作戦と、PHP_CodeSnifferのカスタムルールを使った工夫、そして苦労、最後にこれからの展望ををお話しします。
同じくEUC-JPやShift_JISなど、UTF-8以外のマルチバイトエンコーディングのコードをどうにかしたいと考えている開発者の参考になれば幸いです。