タグ

ブックマーク / blog.tojiru.net (2)

  • PHPにおける例外クラスの設計考察

    この記事はPHP Advent Calendar 2017の2日目です。 ここ最近、業のほうが死ぬほど忙しく、すっかりブログを書いていなかった@Hirakuです。 だいぶ前のことですが、今年のPHPカンファレンス福岡で例外の話をしてきました。 この時の発表では例外に関する概要が主だったので、例外クラスそのものの設計について補足を書いてみることにします。 例外のある世界観 PHP7ではいくつかのエラーが例外と同じ挙動を示すようになり、エラーではなく例外機構を使う言語に様変わりしました。 例外というのは、かなり侵略性の高い概念であり、例外のある世界では以下の前提に立つことが暗黙のうちに強要されます。 どこでも例外が発生する可能性がある 例外によって中断されても、ソフトウェアが不適切な状態にならないように保証するのは各プログラマの責任(例外安全) たとえば、以下の関数で例外が発生する可能性があ

    PHPにおける例外クラスの設計考察
  • XMLとJSONの話(1) データフォーマットとしての比較

    XMLとJSONの相互変換を行うライブラリはいくつかありますが、完璧なものはどこにもありません。そもそもフォーマットに互換性がないからです。 XML_Builderを作る中でXMLとJSONを比較したのですが、一旦まとめておこうと思います。 XMLは文書の電子化に源流があります。そのため長いテキストをベースに何か情報を付加していくのには非常に便利なフォーマットです。反面、含めることができるのはテキストのみで、integerやboolean、nullといった基的な型は存在しませんし、バイナリデータを含めることもできません。(BASE64でエンコードするなどの工夫が必要です) 例えば、以下のような文章があった時、 PHPPHP: Hypertext Preprocessorの略で、プログラミング言語の一種である。 リンクを張るなど、文章の一部にメタ情報を付与し、 <dfn id="php"

    XMLとJSONの話(1) データフォーマットとしての比較
  • 1