タグ

ブックマーク / nishiohirokazu.hatenadiary.org (5)

  • クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー

    某所のチャットで話題になって、流れ去りそうだったのでもったいないから転載しておいた。事後承諾で。 MIYAMOTO Daisuke: 型の継承と実装の継承を区別する方法がないんだよな。 西尾泰和(nishio.hirokazu): 型を継承させずに実装を継承させたい→それ移譲で ってことかな? MIYAMOTO Daisuke: そそ。そもそも、クラスに「型としての役割」と「実装としての役割」という複数の責務があることに、俺は長い間気づかなかった。これに気づかないと、型継承と実装継承が頭の中で整理できない。 西尾泰和(nishio.hirokazu): 僕が最近気づいたことも加えると、クラスには「ユーザ定義型」「インスタンスを作成する道具」「実装の再利用の単位」という3つの役割がある。 MIYAMOTO Daisuke: あぁ、インスタンスの生成器ね。 西尾泰和(nishio.hiroka

    クラスが持つ3つの役割 - 西尾泰和のはてなダイアリー
    ku-kai27
    ku-kai27 2010/10/13
    クラスの役割。
  • 多重継承まとめ - 西尾泰和のはてなダイアリー

    JavaはInterfaceという特殊な実装を持たないものだけ多重継承できる。実装を多重継承する仕組みはない。同じシグネチャのメソッドを持っている2つのInterfaceを継承した際にエラーにならないので衝突に気付けない。 Pythonはクラスを多重継承できる。同じ名前のメソッドを持っている2つのクラスを継承した際にどのメソッドが呼ばれるかはC3線形化を使って決定される。see: A Monotonic Superclass Linearization for Dylan RubyはModuleという「なにかを継承することはできなくてインスタンス化もできないもの」だけは多重継承できる。Moduleが別のものを継承できないためメソッドの解決は素朴な探索でOK(include A include BしたらBでの実装が優先) SmalltalkにはTraitという実装の多重継承ができるしくみがあ

    多重継承まとめ - 西尾泰和のはてなダイアリー
    ku-kai27
    ku-kai27 2010/09/24
    多重継承について
  • 不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー

    プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。 「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り返しで発展してきた。 というわけで言語間での設計判断のい違いとか失敗した設計とかを収集中。一部抜粋して講義資料に入れるつもりなので他の事例をご存知でしたらぜひ情報をいただけるとありがたいです。 if(x = 0) C言語では代入が式であるためif(x == 0)のつもりでif(x = 0)と書いてしまい、常に偽になってしまう。 x = 0の値はint、条件式はboolでないといけないので型エラーだよ派: Java x = 0は式ではないので条件式に入れたら構文エラーだよ派: Python 条件式にx = 0をいれたらx == 0と解釈するよ派: H

    不完全にしてかなり言葉足らずな比較プログラミング言語学 - 西尾泰和のはてなダイアリー
    ku-kai27
    ku-kai27 2010/07/25
    わかんないところばかりだけど、見てて勉強になる。
  • コードリーディングに何を使うか(まとめ) - 西尾泰和のはてなダイアリー

    Twitterだと流れ去ってしまうのでまとめて転載 nishio みんなソースコード読むときは何を使っているのかな? shibukawa grepとテキストエディタと、自作のログ出力デコレータ(Python限定)あたりかな?大したことしてないです。 hmori 色々ツールはあるけれど、別の意味で便利だったのはTextMate (OSX シュアウェア) プロジェクトを作ってプロジェクトフォルダーに放り込むだけでソースコードファイルがtreeで見られてクリック1つで開く。まあそれだけだけど。 voluntas vim と ctags くらい。 kumarobo less(lv), cat -n, grep, emacs(xyzzy) あたり。うっかりvisual studio起動することもあるけど jmuk テキストエディタやgrep、viewsvnなど以外だと、globalとかかなぁ。 ug

    コードリーディングに何を使うか(まとめ) - 西尾泰和のはてなダイアリー
  • 西尾泰和のはてなダイアリー

    前回の「最近Scrapboxを使っています」という投稿から約1年が経ちました。 その後、こちらはまったく更新されず、一方Scrapboxには続々と記事が投稿され、1000件を超えました。 そろそろきちんと「ここはもう更新されない場所で、今更新しているのはこちらのScrapboxだ」と明確化すべきかなと思います。 はてなダイアリーは僕が使ってきた色々な自己表現ツールの中で、最も長い期間使われたものでした。長らくありがとうございました。 最近はScrapboxを主に使っています。 Scrapboxで作成日付をタグに入れて新規ページ作成する方法 - organize-ideas - Scrapbox Scrapboxで文章オンリーのページを作った際に余白を有効活用する - organize-ideas - Scrapbox 前々からそろそろはてなダイアリーはobsoleteなのでどこへ移行しよう

    西尾泰和のはてなダイアリー
  • 1