OOP

オブジェクト指向 と FizzBuzz

OOP

OOP らしい FizzBuzz って難しいですね。 side-A このようなタイトルで記事を書いているのは、当然 http://codeiq.hatenablog.com/entry/2013/08/07/162935 さんに影響されてです。「つれづれ」ではなんだか変なテンションで随分と失礼なことを書いてしまっ…

「三大」

OOP

例の OOP の三大要素「カプセル化(≒情報隠蔽)」「継承」「ポリモーフィズム」は、有名なわりには「詠み人知らず」で、しかもあまり良いモノではありません。sumim さんによれば、もともとはC++でのOOPを説明する要素から「抽象データ型」「継承」「動的結…

ダックタイピングとポリモーフィズム

OOP

コンパイル時ダックタイピング - みねこあ にて、過去のわたしは ダックタイピングは ad-hoc polymorphism subtype polymorphism parametric polymorphism のどれにあたるか? コンパイル時ダックタイピング - みねこあ という点で悩んで、混乱していました…

MVACってなぁに?

OOP

良いことが書いてあるのでその内容に突っ込む意図ではなく、単に「MVAC」という語についての雑感です。Web Applicationを綺麗に設計するためのMVACという考え方 - $shibayu36->blog;わたしのアンテナが低いのか、MVAC というのは初耳でした。のでちょっとグ…

憂鬱本は死なぬよ。何度でもよみがえる

OOP

なんか定期的に JavaBlack さんからわたしの憂鬱本のエントリにトラックバックが飛んできます。本当に「憂鬱本は死なぬよ、何度でもよみがえる...」なのかしら。というわけで、JavaBlack さんのエントリの元のエントリを拝見させて頂きました。今回はいつも…

トレイトのフラッティング

OOP

Traits は、inline関数や Cのマクロに似ています。Traits を クラスに use した際に、継承や委譲と違い、メソッドの持ち主を指し示すのではなく、メソッドそのものをクラスに展開してしまいます。これは通常のコール/リターンする関数と、 inline関数や Cの…

トレイトについてのモヤモヤのメモ

OOP

Traits: Composable Units of Behaviour のイントロ部分を訳してみました の続きです。 * * * Traits は、平たく言えば 「has-a は委譲せよ!」の代替・・というか「えー?運用でカバーってカッコ悪くない?」みたいな物なのかな?と思います。そう考えると…

Traits: Composable Units of Behaviour のイントロ部分を訳してみました

OOP

トレイト・Traits、よくわかりません。・・なんとかくもやもやしてしまっていて、上手く咀嚼できていないのです。なので、理解のとっかかりとして Traits の 元論文 のイントロダクション部分を翻訳してみました。 Traits: Composable Units of Behaviour(PD…

クラスはサブルーチン由来(Simula)の補足

OOP

某しっくりこないな エントリですが、コメント欄でガンガンご本人が燃料を投下するというすさまじい事態になっています。炎上の鎮火方法に「燃やしつくす」ことを選ぶとは、なんとも恐ろしいことをする御仁です(これが生き残りの極意か....)。と、まぁ、人…

データ構造はクラスに任せた!だから、アルゴリズムはstatic関数で書くぜ!!(キリッ

OOP

きむら(K)さんち経由、実はオブジェクト指向ってしっくりこないんです!。いろいろ強烈なインパクトが満載で、スルーできませんでした。 特に「メンバー関数をstatic宣言すればインスタンス宣言をしなくてもいい」ということ知ってからは、メンバー関数を従…

スーパー ≠ ベース

OOP

新しい現場で、Super なんちゃら、というドメイン用語があって、それは元のなんちゃらに対して「より高機能で汎用性が高い」とか、もっと「広い範囲」とか言う意味なのだけれど、それが OO の super と意味が違うので紛らわしいから止めるべきだ、みたいにな…

Smart UI について、だらだらと

OOP

昨年のエントリー、 DDDについて、だらだらと からのびのびになってしまいました、 Smart UI アンチパターンについて。Smart UI アンチパターンは コの業界で非常に目にするパターンで、また、素人が素人のままで仕事が出来てしまう パターンなのですが、そ…

OOPとはオーバーライドとオーバーロードと継承とデータ隠蔽のことですか

OOP

「考え方云々というヤツ」の典型例なわたしです。 オブジェクト指向とは、 具体的に言えば、 オーバーライド、オーバーロード、継承、データの隠蔽(カプセル化) のことですか? オーバーロードは違うけど、でも、そういう認識で いいんじゃない?「具体的…

多態と総称

OOP

しかし、多態(または総称)まわりは面倒くさくって、「胡散臭い」以上のことをいうときっと嘘になります。ここら辺はジェネレーティブプログラミングの表がわかりやすいかな、と思うので引用しちゃいます 表6-1 不変的な多態の分類 文献に見る名称 閉じてい…

OOP用語ひとめぐり

OOP

「素人でもわかりやすい」かどうか、素人には分からない。- うっくつさん本を読む。さんに なるほど、と思いました。 「わかりやすい」とは「素人でもわかりやすい」の意。 「わかりやすい説明」を求める人はその分野に関して素人である。これは「素人」とい…

現実の構造を分析し、それをプログラムの構造にそのまま写すのが何故いけないか

OOP

わたしの以前のエントリー中の 例えば、カモノハシ本 の5章では、エイトクイーンパズルを解いていますが、これは Queen オブジェクト自体に「取られない位置に進む」「この位置を自分が攻撃できるか?を答える」という責務を持たせる Queen を各列に一づつ置…

でも、ifとelseの思考術に落とし込む必要があるのかもしれない

OOP

とか言いつつも困ってしまうのは、手続きプログラミングしかできない人 を「使え」という風に成ってきてしまっていること。Cは出来ても C++ は知りませんか、そうですか。勉強する気もないですか、そうですか*1。あ〜、どうしたもんかな、と思う頭の片隅で、…

ハイブリッドOOPLの呪い

OOP

手続きプログラミングとオブジェクト指向プログラミングはなんだかどうも癒着してしまって、別のプログラミングパラダイムという気がしてこないのが、実は諸悪の根源なのではないかと思ってしまいます。C++ なんかでは、OOPLになったといっても手続きを流し…

真のソフトウェア工学は存在していない

と、いうのは単なる釣りタイトルで、本当はJava Lightweight仮説について。タイトルに窮して斜め横にずらしてみたり。 * * * 「簡潔さは力なり」の通り、やっている内容(意味)の複雑さに関わらず、「その表現が如何に簡潔であるか」が 「力」になるのがプ…

UMLはプログラマの役に立つについて、簡潔に。

OOP

先日のエントリーで、抽象度が高いと図が有利で、具象的なのはテキストが有利 みたいに途中から脱線してしまいました。図とテキストの得意範疇は抽象度に強く依存しているわけじゃないです。複雑になってくると図のメリットが薄くなるということだけ。自分で…

UMLはプログラマの役に立つ

OOP

UMLは素人を騙すくらいにしか役に立たないらしい。 - 並列メモ?さんより、「UMLはプログラマの役には立たない」と言われて凹んだと言う話*1。コメント欄より、 単に統一された記法が必要なら、C#だって一応世界標準が決まってるわけで、C#でよいですよね? …

格好いい台詞

OOP

わたしの昨日のエントリー経由、 つまり会社員、学生をクラスとして定義した場合には、ある人が会社員になったり、学生になったりすることをオブジェクト指向プログラミング言語では直接表現できないのです。 オブジェクト指向は本当に「オブジェクト」指向…

OOとはなにか

OOP

自分の中でひっかがりを感じることを整理するため、なんとなく、こんな図を書いてみて、それからそれに文章を付けてみます。マルが OOPやOOの名前、四角がそれを構成する要素・・・みたいな感じの適当な図です。また、赤の四角がプログラムの構造についての考え…

OOPと自動メモリ管理

OOP

Simula は サブルーチンの不自由さに対し改善を施すことで、クラスとオブジェクトを発明しました。その副作用として、コールスタックによる自動メモリ管理が使えなく(←「コイツ使えね~っ」の「使えない」)なってしまいました。 * * * 「階層的プログラミン…

今時のOOP

OOP

根拠レスですが、なんかこんな感じに落ち込んでいるイメージはあります。 * * * 始めにオブジェクトがあった。オブジェクトがなにで出来ているかとかはどうでもよろしい。オブジェクトを基本構造単位としてプログラムを構造化する(分割する)。オブジェクト間…

メッセージメタファとOOP

OOP

「メッセージ」なんて単なる関数コールに、そんな大袈裟な名前を付けて...というのはよく聞くけれど、そりゃ、クラスがメソッドの束にしか見えていないからだと思うんです。こういうのを「木を見て森を見ず」と言うのかな? OOP なんて 人間が複雑さに立ち向…

抽象データ型とOOP

OOP

Simula が発明した クラスとオブジェクトは、処理とデータの両方を、しかも望むならば同時に抽象化することが出来ます。データには型があり、静的型付け言語では昔から、データ と データ のつなぎ目(または評価するとデータになる式との)を チェックする…

くまさんに質問するつもりで整理してみる

OOP

なんかぐちゃぐちゃになってしまいました。sumimさん、ごめんなさい。質問に出す前に、くまさんを目の前においてエントリーを書いてみよう。(くまさんは、実はいないから アリア社長に代理でいてもらおう) いったい何がしたかったの? オブジェクト指向で…

「疑り深いあなた」はインスタンスをOOPの本質と言われて納得できるのか

OOP

私が、なぜオブ本書評で前橋さんの講義「疑りぶかいあなたのためのオブジェクト指向再入門」を OOP じゃない、と言った問題について、神様なんて信じない僕らのために さんで議論になっています。 関数はひとつしかない事が問題なの? - 神様なんて信じない…

あなたの知っているOOPをすべて書き出しなさい(配点:5点)

OOP

「オブジェクト指向でなぜ作るのか」以来、OOP が解らなくなってしまった三猫です。あーー、もう、わっかんない、と混乱のまっただ中にいる私にかけられた、sumim さんの優しい言葉。 とりあえず、ケイのメッセージングのOOとストラウストラップら(リスコ…