PHPカンファレンス2016

(2016/11/03)
  • 今年はLT1本だけ通った
  • メモ

  • PHP7で堅牢なコードを書く by @t_wada
  • 後でスライドURL貼る
  • ゴミコードを改善する話
  • どこがコケる可能性があるのか考える
  • 異常系の動作で発見しづらいバグや挙動を考える
  • 間違った使われ方をするリスクが高いものは危険度高い
  • 暗黙の連想配列のkey名とか
  • 不具合の発見が遅れれば遅れるほど傷は深くなる
  • 堅牢なコードは50%異常がエラーハンドリング
  • これなにかで読んだ気がする
  • 予防、、契約の3本立て
  • 予防
  • そもそも間違えないようにする
  • かもしれない運転
  • 防御的プログラミング
  • !== 悪いコードに絆創膏を当てることではない
  • タイプヒンティングEnumを活用
  • 攻撃
  • 攻撃的プログラミング
  • Fail Fast
  • コードにとってありえないことが起きたらfailさせる
  • どうせその先落ちるのだから落とす
  • 表明
  • 表明プログラミング
  • assertを使って表明する
  • PHP7だとphp.iniでassert.exception=1を明示して落ちるようにする
  • 表明すると読む人が暗黙の前提を理解することが出来る
  • 例外を投げるためでなく、起こり得ないことをチェックするためのもの
  • パフォーマンスがきになる?zend.assertionsをいじれば運用時はオフにできるぜ
  • php.iniいやだあああああああああああああああ
  • PDOを例外モードにする
  • 例外を握りつぶしてる時はプログラマーに問題があることが分かる
  • 契約
  • 契約プログラミング
  • あわせて読みたい: インターフェース指向設計
  • 事前条件と事後条件がある
  • どれに違反したかで問題の切り分けが可能になる
  • バグと例外を切り分ける
  • 常に失敗するのがバグ
  • たまに失敗するのは例外
  • PHP7の例外クラス達
  • Error, LogicException = バグ
  • assertionエラーはErrorにぶら下がってる
  • RuntimeException = 例外
  • コンストラクタで事前条件を表現する
  • php
  • public function __constructor(\PDO $pdo)
  • {
  • // スライドの後で写す
  • }
  • IPv6の話
  • スライド後で貼り付ける
  • 発表する人はIPv6の普及してる人とIPアドレス配布してる人
  • Googleへのアクセスは10%がIPv6
  • IPv6だからといって安全というと怒られる
  • IPsec必須だからいいんじゃないのかな
  • IPv4の延命
  • CIDR
  • IPマスカレード
  • IPアドレス移転
  • IPv6IPv4の量の差はバケツ一杯と太陽ぐらい
  • インターネット回線やPCはだいたいIPv6対応してきている
  • IPv4だけだと今後つらくなる
  • 変換のための魔法の箱に金を払うとか
  • 通信が遅くなるとか
  • ASTの話 by do_akiさん
  • 後でスライド貼り付ける

general(396)