id:k-z-h RSSフィード

!!! 年中無休で受け付け中 !!!

2012-01-09

怠惰は罪

怠惰であるということは罪です。


なぜこのようなことを主張するのかと言いますと、最近世の中の多くの人が怠惰であるというように感じられてきたからです。怠惰であるということは罪です。惰性を脱ぎ捨て、勤勉になるべきです。


このようなことを指摘しますと「いやそのようなことを言われる筋合いはない、私は勤勉である」と反論される方がおられますが、往々にしてそのような方々は怠惰です。なぜかと言いますと、私が述べている怠惰、勤勉というものがそのような方々のおっしゃる勤勉、怠惰とは認識が異なっているからです。彼らのおっしゃる勤勉とは、私の言うところの怠惰なのです。


それでは私が言う怠惰、勤勉とはいかなるものでしょうか。これは非常に簡潔に説明することができます。それは、自己の幸せに対して積極的に取り組んでいるかということです。怠惰であるということは自己の幸せを顧みないことであり、勤勉であるということは自己の幸せについてしっかりと向き合っていることです。


世間で言われる怠惰、勤勉とは生活態度であったり、あるいは勤務態度であったりするのですが、はっきり申しましてそのようなことはどうでも良いことです。朝6時に起きようが夕方の6時に起きようが、働いていようが無職であろうがどうでもよいのです。好きにすればよろしい。


対して、自己の幸せについて取り組むことは生きるものの義務であります。生きるということは自らの幸せを追求することに他なりません。それを放棄したのであれば、もはや生きていると呼べるようなものではなくなります。このようなものを私はゾンビと呼んでおります。健常な人間を襲って仲間を増やそうとするあたり、とても似ているのではないでしょうか。


怠惰であることをやめ、勤勉に生きましょう。怠惰の道に誘う悪しき輩を、強い心で押しのけましょう。人間は人間として生きるべきなのです。

2011-12-21

退職

今月いっぱいを持ちまして、ドワンゴを退職いたします。次の職場は1月頭から出社予定です。

ドワンゴ入社したのは「面白いことをやりたい」「独自性のある場所で働きたい」という動機からでした。そのときから3年と9ヶ月経ち、やりたいことが「システムの足下を作りたい」に変化したことが、今回の転職の動機です。それがドワンゴでできないという訳ではないですが、自分にとっては次の会社の方がより良い経験が積めると思い、転職を決意しました。


3年と9ヶ月、短いというには長い気もするし、長いというには短いという気がします。たくさんのことを経験させていただきました。とくにインターネットの先にいるユーザーの皆様を実感を持って体感できたことは他では経験できないことだと思っています。書籍では重要なタスクの舵取りも任せてもらいました。


ドワンゴはこれからも面白くて独自性のあることを続けていくと思います。今まではそうやってユーザーの皆様を楽しませる立場でしたが、これからはいちユーザーとしてドワンゴを楽しんでいきたいと思います。

全然関係ないです

2011-12-11

namespace

namespace

namespace は php 5.3 から導入された構文です。5.3 以前では一般にクラスの階層構造はクラス名の命名規則で表現していましたが、namespace では構文としてクラスの階層構造を表現できます。

  • 5.3 以前
    • HTTP_Request
  • 5.3 以降

メリット

従来のクラス名で階層構造を表現する命名規則だと、どうしてもクラス名が長くなるという問題が有りました。これを nemespace で表現することによって、クラス名は短くなると同時に、明確に階層構造を表現できるようになります。また、頻出する長い名前のクラスが有るような場合には、省略した名前でインポートすることもでき、使い勝手が向上します。


デメリット

namespace 構文は php 5.3 以降でなければ使用できないため、使用できる php のバージョンが狭まります。より広い層をターゲットとしたいような場合には検討が必要です。


see other

正直ここ読めば全部書いてるんで読めばいいと思います

2011-12-10

10日目 例外(サブクラス)

BadFunctionCallException / BadMethodCallException

未定義の関数/メソッドをコールしたときに発生するエラーです。ドキュメントには引数が指定されなかったときとも書いていますが、個人的にはその際は InvalidArgumentException がふさわしいと思います。


InvalidArgumentException

不正な引数が指定されたときに発生するエラーです。


DomainException

データが不正な場合に発生するエラーです。引数が不正な場合 InvalidArgumentException が適当です。


LengthException

長さが不正な場合に発生するエラーです。具体的な例がドキュメントには有りませんが、例えば長さが10までの string が必要な場合に10以上の長さの string が指定された場合に発生します。


OutOfBoundsException

キーが不正な場合に発生するエラーです。配列の未定義のキーにアクセスしたときなどに発生します。


OutOfRangeException

OutOfRangeException はコンパイル時に検出される OutOfBoundsException ということですが、正直何のことかよくわからないです。普通に OutOfBoundsException を使えば良いと思います。


OverflowException

名前の通りオーバーフローが発生した場合のエラーです。あまり使う機会はないでしょう。


UnderflowException

名前の通りです。OverflowException よりは使う場面は有るでしょう。


RangeException / UnexpectedValueException

InvalidArgumentException / LengthException / OutOfBoundsException / DomainException で良いでしょう。

2011-12-09

9日目 例外

はじめに

例外処理はおざなりになりやすく、Exception にメッセージを入れて適当に済ませてしまうことがあります。しかし、php にはいくつか例外が定義されていますので、うまく例外のタイプを利用して例外が発生したときのデバッグを楽にしましょう。


例外ツリー

  • Exception
    • ErrorException
    • LogicException
      • BadFunctionCallException
        • BadMethodCallException
      • DomainException
      • InvalidArgumentException
      • LengthException
      • OutOfRangeException
    • RuntimeException
      • OutOfBoundsException
      • OverflowException
      • RangeException
      • UnderflowException
      • UnexpectedValueException

解説

前提ですが、それぞれの例外をどのように使うかの絶対の答えは有りません。ここで解説するのは私が考えるベストプラクティスです。

ErrorException

ErrorException は既存の Exception にならないエラーをラップする用途で使うのが良いです。

LogicException ・ RuntimeException

厳密にいえば LogicException はコードの過ちによって発生する例外、RuntimeException はそれ以外の例外とするべきですが、その違いは曖昧です。そもそも PHP には RuntimeException しか存在しえないので、割り切ってサブクラスにあたらない例外はすべて RuntimeException としてしまうのが良いと思います。