レギュラートーク(20分)
新潟枠

新卒から4年間、20年もののWebサービスと向き合って学んだソフトウェア考古学

_guri3 小栗 大輝 / ぐり

古いコードベースを読み解く作業はしばしば「ソフトウェア考古学」と呼ばれます。
ソフトウェア考古学を通してサービスの歴史から当時の設計思想や変化の過程を知ることは、良い設計を体験し、学べる貴重な機会です。

本トークでは、新卒5年目エンジニアである私が、20年以上稼働し続けるWebサービスの改善に向き合う中で試行錯誤し学んだことをお話しします。

お話すること

  • 古いコードベースを読み解き改善を行った事例とその課題
  • 複雑なコードベースを効率良く理解するための「鳥の目・虫の目」の考え方・具体的な進め方
  • ソフトウェア考古学の経験から学んだ理解しやすいコードを書くコツ・あると嬉しいドキュメントとは?

聴いてほしい人

  • コードベースが古い環境で悩んでいる人
  • 歴史のあるコードを改善したい人
  • 複雑なコードベースを効率的に理解する方法を知りたい人
レギュラートーク(20分)

try-catchを使わないエラーハンドリング!? PHPでResult型の考え方を取り入れてみよう

kajitack 梶川 琢馬

PHPではtry-catchを使った例外処理が一般的ですが、「この例外はどのレイヤーで処理すればいいのか?」や「どの場面で例外を使うべきなのかが曖昧だ…」と感じたことはありませんか?
例外の種類や扱い方が曖昧だと、混乱しますよね。
この課題に対するヒントとして、Rustなどの言語で採用されているResult型の考え方があります。

Result型は、失敗が起こり得るということを型として扱い、例外に頼らずエラーを管理する手法です。
これにより、エラーの種類や処理責任が明確になります。
このセッションでは、Result型をPHPに応用する方法を実装例を交えて解説します。

取り上げる内容:

  • エラーの種類の整理方法
  • Result型の基本的な考え方とPHPでの実装方法
  • try-catch採用プロジェクトでも活かせる学び

エラー処理を改善するヒントをお持ち帰りください!

1
レギュラートーク(20分)

「うわっ…うちのテスト、遅すぎ…?」 PHPUnit高速化テクニック

pinkumohikan pinkumohikan

「テストがないコードはレガシーコードだ!」
Webアプリケーション開発においてテストコードが書かれることは一般的になってきました。

ですが、テストにかかる時間は適切でしょうか? テストにかかる時間は開発スピードに大きな影響を及ぼします。
本トークでは自動テストを高速化するための考え方やテクニックについてお話します。

想定観客

  • テストにかかる時間を短縮したい方

お話しすること

  • Google提唱の「Test Sizes」を取り入れて、テスト対象をCIとローカルで変えるテスト戦略
  • テスト実行の並列化 (Makefile, xargs, paratest)
  • CIをジョブ分割して体感速度を上げる
  • テスト時も割と効くXDebug無効化 & OPcache有効化
4