「メソッド」を含む日記 RSS

はてなキーワード: メソッドとは

2020-10-23

anond:20201022005749

継承必要だよ。継承がないと多態が表せないから。

馬鹿継承を扱わせると、仕事している感を醸し出すために継承活用せざるを得ない。だから継承はクソに見える。よって、増田の言いたいことはわかる。

しかし、冒頭で書いたとおり、多態を適切に扱うために継承必要なのだ。これ以上は書けない。これからクラスベースOOP は消えることないであろう。それを書くすべを私は持ち得ていないので、null が消えない事実を例にして語ろうと思う。

21世紀プログラミング言語チャレンジの1つはなにか、と言ったら「null 撲滅」であろう。関数型言語は null を排除することに努めたし、Swift 言語は Optional という null がはいっていないことを保証する仕組みを作ったり、Haskell圏論という数学概念で応対しようとし、Ruby 言語は &. という「null をスルーするメソッド」を開発した。でも、null は撲滅出来ないままである

そもそも null とは何か?C言語では、ポインタが指すとそこでお終いだし、Java だとヌルポ(例外)の要因だし、Ruby だと NilClass のインスタンスだし、SQL言語だと「3値論理」では未来のことを記述するためのものだし、言語によって null はバラバラである。つまり、null 自体には特に意味はないのだ。逆に null があると便利だと思わないかC言語ではポインタに死んでもらえるし、Java だとヌルポがあったら例外にできるし、Ruby だと nil があったらなにかの理由があるからだし、SQL言語だと未来のことは不明記述できるし。そうなのだ、null はプログラミング必要なのだ。null をちゃんと扱うのが難しいだけで、null 自体に罪はない。

これを継承、というか多態にあてはめてみよう。多態がないとどうなるか想像してくれ。とてもしんどいことになる。なぜなら...

(作者は眠たくなりました。続きが読みたかったら反応ください。)

anond:20201022183852

クラス間でメソッド共通化したいが、継承のように「置換可能性」を考慮したくない、というときのためにMixinやTraitがあるんじゃないのか

mixinもキチガイ刃物だと言いたいんじゃね?

前にな1000行を超えるTraitを使ってるプロダクトを見たことがあったが発狂しそうになったよw

anond:20201023005525

半分同感。

おっしゃる通りFW上で開発してる限り意識すべきはオブジェクト指向ではない。

オブジェクト指向勉強すると小さなクラスをnewして〜メッセージをやり取りして〜継承して〜ってなるが、クラスとはユーザー定義する単なる「型」。継承は親から差分。これだけで良い。

現場において向き合うべきはいかに最小限の変数コード量で実現するかが重要ってこと。

付け焼き刃の知識オブジェクト指向が〜というヤツに限って、無駄クラスを作りまくったり無駄メソッド変数が多い。

コピペプログラマOOPとか余計なこと考えずに素直にFW恩恵に乗っかっていれば良い。

ただ、こういう人たちがIT土方と呼ばれて使い捨てられる可能性も極めて高い。

そこから次のステージにあがりたいならOOP理解する必要があるだろうね。

オブジェクト指向っていらなくね?

フレームワークのレールに乗っかってれば設計もいらないし

必要共通コードがあれば親クラスにまとめておけばいいし

プロジェクト全体に必要コースがあればutilみたいな便利メソッド群作ればいい

おれはそうやってやってきたしプロダクトは動けばいい

「動けばいい」

この言葉アレルギーもってるやつは多すぎ

プロを気取るのはいいけどまずそこだから

そしてそこを満たすのにオブジェクト指向はいらないし邪魔

考えなくていいことは考えなくていいんです

この考えが当たり前になるのに何年かかるかな?

意識高いバカがあーだこーだ言うけど

いずれこの考えがマジョリティになる日は来る

オブジェクト指向はいりません

2020-10-22

anond:20201022005749

完全に正しい多段継承テンプレートパターン使いすぎて使い勝手最悪のライブラリを見たことがあるのでリスコフが全てだとは思わないかな。

継承より委譲には賛成。

> AをラップしたクラスA'を作り、A'とBに同じインタフェース実装する

これは一見無駄なAを呼び出すだけのメソッドを気にしない訓練が必要

言語レベルで簡潔な記述サポートしてくれてたらうれしいけど。

anond:20201022173715

なんで罵倒だけついて誰も教えてくれないんだ

クラス間でメソッド共通化したいが、継承のように「置換可能性」を考慮したくない、というときのためにMixinやTraitがあるんじゃないのか

違うとしたらMixinやTraitは何のための機能なんだ

気になって眠れないから誰か解説してくれ

anond:20201022013759

リスコフの置換原則は、継承したメソッド上下で型の変化を無くせ、というだけだろ?

全然違う件

anond:20201022005749

よし、お前の熱い気持ちしかと受け止めた。バズるのは時間帯が悪かったと思うので、次に投稿するときには夜ご飯ぐらいがいいよ。それでは添削してやろう。

継承はだめ、という主張はわかるぜ。継承ネストが深くなるとメンテナンス性が落ちるし、習い初めのバカ勝手クラスを使うからな。これは同意する。

そう、昨今の業務では継承とか使わない方が良い。何故か?フレームワーク上でビジネスロジック記載する時代からだろ?でもな、そのフレームワーク自体テンプレートパターンといったパターンが満載で、アスペクト指向を介してログ排出しているのよね。まぁ、素人継承を使わせるのはキチガイ刃物なのは事実だが、今という時代フレームワーク刃物ラップできている時代だと思えば、悪くないと思うよ。うん。

リスコフの置換原則は、継承したメソッド上下で型の変化を無くせ、というだけだろ?それは、ちょっと能力検定には弱いよね?SOLIDの原則について調べてみよう。

無闇矢鱈に継承を使うな、というのは正しい。だけど、禁止する程ではないと思う。

anond:20201022005749

AにBを持たせる

class A {
    private B b;
    // 実装
}

AをラップしてBと共通インタフェース実装する

interface IB {
    // Bのメソッド
}

class AWrapper implements IB {
    private A a;
    // 実装
}

class B implements IB {
    // 実装
}

継承禁止するべき

キチガイ刃物ゴミプログラマ継承危険ものは取り上げるべきだ。

オブジェクト指向プログラミングにおける継承は強力な手法であるが、これを正しく使えるプログラマは残念なことに極めて少ない。たいていの場合継承を使うことで却ってプログラム保守を困難にしてしまう。継承アンチパターンの最たるものは、単なるメソッドやメンバ変数の共有のために継承を使うパターンだ。これを行うとデータが密結合になってバグの原因になり、プログラムを把握することも極めて困難になる。

そもそも熟達したプログラマ感覚では、業務で書くアプリケーション実装継承を使うべき局面などほとんど無い。ライブラリ等のより低レベルな処理で仕様が確定しているものについては、継承効果的となる場合もあるが、複雑なアプリケーションロジック継承を使うのはほとんどの場合、時期尚早な抽象化となる。

また、凡庸プログラマ継承で実現したいと思うことは、ほとんどの言語でより適切な手段存在する。

継承を使う資格があるか、一発で判定できる質問

継承を誤って用いるプログラマが多いにも関わらず、実は継承の使い時ははっきりしている。以下は、一定水準のプログラマならば、誰でも答えられる質問である。これに答えられないプログラマ不勉強を恥じるべきである

問題
継承を使うべき/使ってもよいのは、どのようなときですか。
正解
リスコフの置換原則を満たすときリスコフの置換原則 - Wikipedia

答えられない人、自分の答えが正解の内容と一致しているか即座に判断できない人は、継承を使うべきではない。医学知識ゼロ素人外科手術をするようなものであり、非常識まりない。

リスコフの置換原則は、オブジェクト指向文脈で言えば、以下のようになる。

Baseを基底クラス、DerivedをBase任意派生クラスとするときBase型として生成されたオブジェクトをDerived型のオブジェクトに置き換えても問題なく振る舞うようにしなければならない」

問題なく振る舞う」というのは、以下のことを意味する。


継承を用いないやり方

ゴミプログラマ継承を使いたがる理由の99%は、以下である

こんなもん、何も難しいこと考えずとも、以下のどちらかの方法解決する。

AからBの機能を用いる場合は前者を、Aを変更できないがBと同じインタフェースを持たせたい場合後者を使えばいい。

2020-10-21

センスの無い奴はプログラマにならないでくれ

インタフェース型を呼び出すと、それをimplementするクラスメソッドが増えたときインタフェースクラスの両方にメソッドを追加しないといけないけど、クラス型なら基底クラスメソッドを追加するだけでいいから、基本的クラス継承させるべき。

こういう馬鹿プログラマやめろ。

2020-10-20

anond:20201020220641

宿題を終わらせられない子供に「宿題は!」と怒鳴るだけってのは、親側に教育メソッドがないことが問題だと思っちゃうなぁ。

小2は大人じゃないんだから、理性で刺激から興味をそらして本来やるべきことに集中するほどの集中力なんてなくて当たり前だと思う。

大人だって隣でガンガンテレビの音してたら仕事効率滅茶苦茶下がるでしょ。

まずはどうして宿題ができないのかを、叱るのではなく子供に寄り添ってヒアリングし、環境も含めコンサルティングして改善すべき。

親の方も仕事家事毎日疲れきっているのだからそういうことをする余裕なんかないよ、というのもわかるけど、子供ベターな家庭環境で育ってほしいならもう少し努力すべきだと思う。

2020-10-19

Numpyがキモいのだけど

import したらPython数学系のメソッドオーバーライドしてくれないかな?わざわざ np とかするのめんどくさいのだけど。

2020-10-18

anond:20201018123302

んで自分の好きなものに同じメソッドケチつけられた途端「カイジ読んでる奴がみんなギャンブラーだと思ってるのかよwww」みたいに手のひら返しちゃうから

えーそこで正気に返っちゃうのつまんねえなあって

2020-10-14

javascriptをいじってて思うのだけど

変数に型がないのが逆に面倒だし

IDEオブジェクトのもってるメソッド候補とかも出してくれなくてだるい

いんたぷりたってうんちなんじゃない?

2020-10-12

だいたいのことは阪神に例えて関西弁で喋ると大変分かりやすくなる

この手法のことを阪神メソッドと名付けよう。

このメソッドの良いところは内容に不満点があっても、なんでや阪神関係ないやろとか33-4と絡めておちゃらけたりとかできて殺伐としにくい点である

出版社によるブロガー人格改造

近年、ブロガーが本を出版したのを境に言動や行動が変化することが多くなってる気がする。

何というか、発言自己啓発臭くなり、本の内容を軸として露出が多くなる。

本を売りたいのだから仕方ない...というのは分かるけど、それでは説明が付かない変わり方というか、みんな1つの『型』にハマろうとする傾向があるように見える。

邪推すると、出版社にはブロガーをその気にさせる何らかの定番サクセスストーリーを持っていて、それにハマると出版社が用意した売れる本のメソッド思想最適化されてしまうのではないだろうか。

いま本業お金に困ってなくても、文筆一本で飯を食う生き方に憧れるのは分かる。ブログとして成立する文書が必ずしも売れる書籍として成立する訳ではなく、何らかの最適化必要な事もわかる。

でもそれは本当に自分意思なのか、自分意思だと出版社に信じ込まされ、書く内容に自ら制約をかけているんじゃないかと問いたい。

2020-10-09

○○難民という表現

とある化粧品会社Twitterを見ていたら「全国の眉メイク難民の方〜😂」という発信をしているのを見かけた。

かにネット上では、好みのもの場所めぐりあえないでいる人を「○○難民」と表現することは普通に行われてるし、表現として広く普及してるとは思う。

でも本来難民って、人権的に相当苦しい立場にいる人を指す言葉なはず。過去には難民虐殺も発生しているし、言葉が指す意味は相当深刻なものだと思っている。そんな言葉を、曲がりなりにも多様性やらコンプライアンスやら言ってる大手企業カジュアルに発信するってどうなんだろう、という気持ちになった。

「〇〇気違い」という表現をつかう企業が最早ありえないように、「〇〇難民」という言葉企業カジュアルに使うってのもありえないと思ってしまうんだけど、この気持ちって繊細チンピラなんだろうか。

同じように感じた人もいたらしくツイートで直接指摘してる人もいたのだけれど、企業側は「不快に思われたことを謝罪」というよく見るメソッドで逃げるだけで、ツイートの取り消しも行わないでいる。私には「気違い(基地外)」がNGで「難民」がOK理由がよく分からないでいる。

2020-10-08

でさ、ITより教育の充実してる業界ってどこよ

物知らずなおまえに教えてやるッメソッドによるツリーの充実を期待する。

anond:20201008142000

リアル世界でも第三者本人確認突破されるケースもあるんだから、「本人らしさ」を測る技術メソッド可能な限り高度化してくしかないでしょうよ

突破されるリスクを持って本人確認は出来ないという結論に至るのは極論すぎる

2020-10-06

ご飯論法 2.0

もはや「ご飯論法」は単体では語れない感があるなぁ。権力者自身は「ご指摘は当たらない」「丁寧に説明していく」と逃げ回っている間に、メディアSNS を通じて支持者達に真偽の不明な「疑惑」を代弁させて「敵が悪いのだから叩いて当然だ」「どっちもどっち」という世論を醸成して有耶無耶にする、という勝ちパターンが完全に確立している。

このメソッドが優れているのは、権力者自身は一切手を汚さずに政敵を叩き潰せるところだ。

これだけ同じパターンが何度も起きるということは、これは狙ってやっていると考えるべきだろう。代弁者たちの背後関係を洗いたいところだが、そう簡単尻尾を出すようなやり方もしてないだろうしなぁ。

2020-10-05

児童性愛を認めても関係ない人には今まで通りの人生が続くだけ

凄いな。

マジで◯◯の中に何入れてもだいたい通るじゃん。

モーリスメソッドと名付けよう。

この増田ホッテントリになっても関係ない人には今まで通りの人生が続くだけだからこの増田ホッテントリにしよう

ログイン ユーザー登録
ようこそ ゲスト さん