「オブジェクト指向」を含む日記 RSS

はてなキーワード: オブジェクト指向とは

2023-12-16

オブジェクト指向勉強したいと言われたらPytorchを勉強しろと言えばいい

カプセル化継承ポリモフィズムの嬉しさが実感でき、かつ、職業選択可能性が広がる

逆に言えばML以外であればあえて使う意味がない

2023-11-16

オブジェクト

馬鹿オブジェクト指向をやると一つのクラスに全部の機能を突っ込んだりする

そういう状態になったものを神クラスといい、インスタンス化したものは神オブジェクトという

以前、そういう状態に陥った現場仕事をしていた

EchsSee(仮)という謎のクラスに全機能が詰め込まれていた

最初HTMLの表示をデバイスごとに振り分けるヘルパークラスしかなかったが、馬鹿が「便利だから」などといって無関係フィールドメソッドをどんどんEchsSeeに詰め込んだ

EchsSeeは高頻度に更新される上に、更新による失敗が全システムに影響を与えたため、開発者は「EchsSee触るの怖いんですよね」などと言うようになった

2023-11-15

オブジェクト指向人類の退化の象徴

オブジェクト指向とかかっこいい言い方をしても無駄だ。従来の構造プログラミングから進歩したことなど一つもない。オブジェクト指向がなぜダメであるのか、それを今から話すぜ。

 

1. データと処理をまとめるという発想。

データと処理をまとめてクラスとして置くという発想がある。しかし、このようなことをしなくとも、モジュールという単位で利用データと処理の集合をまとめればよかったので、クラスを使う必要はない。しかクラスインスタンス化のときに、不要情報まで持ってくるのでメモリ効率が明らかに悪い。コンピュータ進化しているかメモリのことはあまり考える必要がないとはいえ必要ない処理をまとめて閉じ込めるのは無駄が多い。なぜクラスという名詞概念分類できると考え始めたのかは不明だが、アルゴリズムデータ構造という構造プログラミング手法を、クラスと型というパラダイムに変換することで型にうるさいC++馬鹿を生み出し、彼らが発狂することになってしまった。しかデータと処理にわざわざ依存関係を持たせて、変更に対する柔軟性を失わせている。

 

2. 継承

継承によって既存構造を持ってこようとする必要性が全く無い。それどころか、継承を使うことによってプログラムスパゲティ化し、依存関係グラフがややこしくなってしまう。継承など使わず必要情報スコープの限られた共通変数、または関数引数として用意しておけば良い。もしクラスをどうしても使いたければ、共通インターフェイスをもたせたほうがマシであるインターフェイスを使えば、クラス利用者意識すべきpublicメソッドがなんであるか把握できる。

 

3. カプセル化

オブジェクト指向の中で役立つ概念カプセル化だけであるしかし、カプセル化クラスなしで構造プログラミング方法実装できる。pythonでは、モジュールの中でアンダースコアから始まる関数を用意しておけば、それがprotectedやprivateと似たように機能させることができる。オブジェクト指向がなぜカプセル化独自概念だと言い始めたかは謎。

 

4. ポリモーフィズム

同じ名前メソッドを、入力に応じて処理の内容を変える。このようなことはオブジェクト指向などと誇大宣伝をするほどのことでもない。構造プログラミングで似たようなことができる。

2023-10-20

マジ頭湧いてるプログラマーがいるわ

プログラミングサッカーに喩えると、巷にいるプログラマー小学生サッカーレベルからJ1レベル選手まで全部いるんよ

他の人から見たら

リフティングできるのすごいね

ってなるんだけど、実際には小学生サッカーだったりする

だけど普通に会社とかフリーランスとかでドヤ顔プログラマーとして働いてるわけ

面接でそれを見抜くのはそれなりの能力を持った人、つまりスカウトじゃないと無理なので小学生レベルでも普通に採用される

その結果リフティングしかできないやつがJ3のチームに普通に所属してしま

小学生の昼休みサッカーでそこそこ上手いって言われてるレベルなのにJ3試合に出てくるっていう地獄

いざ試合になってボールが回ってきたらリフティングばっかしてて、いきなり敵にパスするみたいなことを平気でやって

パスミスはしょーがないでしょ」

みたいな感じだったりするわけでマジでヤバイ

具体的に言うとオブジェクト指向理解できてない状態TypeScriptanyを連発してバグだらけのクソコードを量産しておいて

オブジェクト指向とか古い考え方は必要無いです」

とか言うくせに

別にオブジェクト指向で書く必要はないけれど、だったらどこでメンテナンス性と堅牢性を担保してるのか教えて?」

って言うとフガフガ言いながら逃げるっていうね

まぁ見事に首になったけど、別のJ3のチームに行って試合するんだろうな

2023-10-19

からJavaScriptやってる人は困ってない(キリッ)

お前の書いたクソコードメンテしてる人が死ぬほど困ってるんだよアホかよ

そんでバグ放置してるせいでセキュリティ系の問題死ぬほど起きてる

そのくせ「JavaScriptでは型なんていらない」とか言い出してオブジェクト指向的なコード全然書かない

TypeScriptがなんで流行ってるのか分かってないんだろうな

JavaとかC++とかをずっとやってる人が「オブジェクト指向は古い」って言う意見とはレベルが違うんだよ

みんな「バグを無くそう」「メンテやすコードにしよう」とか考えてオブジェクト指向とかそれに代わる物を使ってるのに

JavaScriptしかやってないアホって自分の好きなコード書けたら別にいいよね、っていう感じで協調性なさすぎだわ

2023-09-27

anond:20230927200327

でもガチCS勉強しようと思ったらアルゴリズムデータ構造必須で、それに適した言語となるとC以下あれやこれやでしょ。

あと、デザインレシピかいう考え方なら OCaml とかの関数型言語が入門に適しているし、オブジェクト指向ならCじゃ無理だし。

オブジェクト指向で学ぶ人生

Microsoft本社入り口に貼ってあるらしいコード

時は金なりという意味か?

    public class Person {
        BasicInfo info;
        float stock;
        float Value;
        public string Name(bool isSpy){
            return isSpy ? info.Name : info.Name.ToSecondName();
        }
        public string Sex(bool isNormal){
            return isNormal == info.isMan ? "Man" : "Woman";
        }
        public float Earn(bool isExtra = false){
            float sexPad = info.isMan ? 1f : 0.5f;
            float racePad = info.isWhite ? 1f : 0.5f;
            var delta = DateTime.Now - info.Birth;
            int age = (int)(delta.TotalDays / 365);
            float result = Value * sexPad * racePad * age;
            if(isExtra){
                Value += result;
            }
            return result;
        }
        enum Race{
            White, Black, Yellow
        };
        class BasicInfo{
            public string Name;
            public int NationalId;
            public bool isWhite;
            public bool isMan;
            public DateTime Birth;
            public BasicInfo(string Name, int NationalId, Race race, bool isMan){
                this.Name = Name;
                this.NationalId = NationalId;
                this.isWhite = race == Race.White;
                this.isMan = isMan;
                Birth = DateTime.Now;
            }
        }

2023-09-19

大半のプログラマー草野球レベルなんよ

40歳プログラマー目指すのは全然構わないけど

一線級のプロになれるとは思わない方がいい

40歳から野球始めてプロになれるわけないだろ?

それまで他のスポーツで一線級の活躍をしていて

センスや基礎体力が十分あるならワンチャンあるかもしれんけど

普通に考えたら無理だから

そんで巷に溢れてるドヤ顔するプログラマーも9割が草野球レベルなんよ

コードレビューしてみたらびっくりするレベルコード書いてるのに

本人はやたら自信満々でコメントに対しても

「これでは何故ダメですか?」

とか言ってくるの勘弁してくれ

必ずしもオブジェクト指向で書く必要はないけれどオブジェクト指向が何を目指しているか理解してくれ

パッと見た感じはちゃんとしてるように見えるけれどプロでは全然通用しないレベルなんよ

草野球めっちゃ上手い人って素人が見るとプロでも通用しそうだけど

実際にはそんな訳ないし、プロもっとレベルが高いところで競ってるんよ

高校野球甲子園出ました!」

っていう一般人から見ると神のような人材でもプロにはなれないんよ

プログラマーとかプロ野球ってそういう世界だし、だいたいどこもそういう世界から

2023-09-12

オブジェクト指向知らんやつのコードはクッソ汚い

20年ぐらいプログラミングやってるっていう40代の人とペアプロしてるんだけど

コードが汚すぎてPRにめちゃくちゃ時間かかる

変数ほとんどがグローバル的な扱いで独自命名規則宣言しるし

その命名規則全然守られてないしスペルミスも多くて読んでてイライラしてくる

根本的な作り方が無茶苦茶ちゃんと動いてるのかバグがあるのかも分からん状態

PR出てくる度に打ち合わせして、そもそもデータ構造とか機能分割について指摘してるんだけど

この前ふと

「そういやJavaで書いたことありますか?Javaだとこんな感じですよね」

って話したらJava知らんと言われた

で、聞いてみたらオブジェクト指向言語で書いたことないし勉強したことも無いとのこと

JavaなりC++なりオブジェクト指向言語で書ける必要は無いけれど

少なくともデータ堅牢性とか再利用性とかの考え方は知っといて欲しい

とはいえ20年もそれでやってきてるんだから今更無理だろうなぁ

2023-08-22

anond:20230822072927

ウェブなら素よりreactのほうがマシだけど、vue 1, 2くらいが一番良い気がする。vue 3になった瞬間理解不能になった。一般人理解できるのは現実の物のようにイメージできるオブジェクト指向までで、それ以上抽象化されると理解不能になる。ウェブ互換性のためにjavascriptをだましだまし使う必要があって、快適にするために過剰に複雑になっている気がする。Delphiマウスで開発してる時代が一番楽しかった

2023-08-01

エンジニアソフトウエア)の禁忌しぐさを教えてください

ソフトウエア・ウェア開発者で、こんなことを言うとアンタッチャブルにされるような発言を教えてください。個人的には、以下の感じかな?



こんな感じかな。

プログラマー言葉化学的に言い換えるなら

データ構造

結晶構造みたいなものリスト構造とか種類があるが、元素のように新規人類新規発見するのは困難になりつつある。

アルゴリズム

たとえば黒鉛炭素同位体であるダイヤモンドに変換できる可能性があるが、その変更プロセス多種多様であるコストエネルギー効率のためにベスト方法をチョイスされるように、計算量という律速段階のようなもの比較される。

ビットバイト

1mol が 6.0e23 個の原子と同じように、1バイトは8ビットであるバイトにするメリットは、英語圏だと 1バイトも有れば日常で使う文字コンプリートできるのだ。

理想気体実在気体】

計算機で使われる浮動小数点数は実は実数ではない。たとえば、0.4f - 0.3f は 0.1f でない。ただし、0.5f - 0.25f は 0.25f である

オブジェクト指向

アボガドロ分子論みたいなもの最初キモがられた。

ファンクショナルプログラミング

フッ素分子F2)を作ろうとした努力プログラミングでもやろうとしたもの

アスペクト指向

ポインターインターセプトするための道具。電気泳動するためのツール

オライリー

出版社シュプリンガーみたいな?

インフルエンサー

錬金術師(対価はカモの財布)

JAVA

ティーでなく、コーヒー

Ruby

Al2O3。

Perl

Pearl でない。

2023-07-31

anond:20230730145051

でもさ、未だに Python2 しか書けない残念なアラフィフもいるのさ。EOL 来ていても中途半端需要もあるせいか引退時期を間違えるやつも多いのがこの業界の悪いところなんだよ。そいつさ、未だに Private な関数の書き方がわかんないみたいだし、is とか使うのだぜ?オブジェクト指向かいレベルでないし、引数の型を指定する意味とかも「めんどくさいよね」とか言って勉強しないんだよ。はっきり言って、消えてほしい。だから、ほんとうは勉強しないと消えざるを得ない世界のがまともなんだよ。おそらく彼は3年以内には仕事がなくなるだろうけど、年金をもらえるまで20年ぐらい無職かもしれない。リカレント教育とかも、年齢制限あるからな。コンバートは早めにだな。

2023-07-03

オブジェクト指向関数プログラミングとか

コメント書いてcopilotに提案もらってテストグリーンで動けばヨシで事足りるわけだが勉強する意味ってなんだろう

コメントgptに考えて貰えばいいわけだし

2023-06-15

LGBTQQIAAPPO2S をオブジェクト指向表現すると

どういう構造になるんだろう。

 

とりあえず、orientation と identity のプロパティがあるのは確定だろうけど、それが持つ値を gender インターフェイス定義しなきゃいけないよな。

さらには現在の体の状態も持つ必要もあって、それは gender とは違うインターフェイスになるだろ?

アセクシャル場合、orientation はnull値だろうからnullableにする必要があり、バイのことを考えるとリスト表現する必要もある。

 

どこかに完全版を作った人いないかね。

2023-05-28

オブジェクト指向でよく見聞きする原則だのパターンだのは後出しじゃんけんだろう

今、どの設計が最適なのかなんてわかんねーよ

全体を見通して、こんな感じが良いだろうなんて想像つかねーよ

書いてから文句言われてもしらねーよ

お前ら未来予知でもしてんのか

2023-05-02

実はオブジェクト指向ってしっくりこないんです!から13年

もう永久に自説は曲げないで突っ走ってほしい

https://ameblo.jp/kenchaz/entry-12800985689.html

2023-04-22

ブラのカップ表記C++かにするべき18の理由


1. C++プログラミング言語として有名であり、ブラのカップ数をC++表記することで、テクノロジー精通していることをアピールできる。

2. C++はCよりも高度な機能を持っており、ブラのカップ数をC++表記することで、自分バストの質や機能性を高めることができる。

3. C++オブジェクト指向プログラミングサポートしており、ブラのカップ数をC++表記することで、自分バストオブジェクトとして扱うことができる。オブジェクト指向プログラミングでは、オブジェクト属性メソッドを持たせることができるので、自分バストにも色や形や大きさなどの属性や、揺れるや揉むや吸うなどのメソッドを持たせることができる。

4. C++は多重継承サポートしており、ブラのカップ数をC++表記することで、自分バスト複数クラスから継承することができる。多重継承では、複数クラスの特徴や機能を組み合わせることができるので、自分バストにも様々な特徴や機能を組み合わせることができる。例えば、自分バスト芸能人アニメキャラクターなどのクラスから継承することで、その人物キャラクターバストに似せることができる。

5. C++テンプレートサポートしており、ブラのカップ数をC++表記することで、自分バストテンプレート化することができる。テンプレートでは、型や値などのパラメータ指定することで、汎用的なコードを生成することができるので、自分バストにも型や値などのパラメータ指定することで、汎用的なバストを生成することができる。例えば、自分バストをint型やdouble型などの型に指定することで、整数小数などの値に変換することができる。

6. C++例外処理サポートしており、ブラのカップ数をC++表記することで、自分バストに発生する可能性のある例外対処することができる。例外処理では、エラーや異常などの例外が発生した場合に、適切な処理を行うことができるので、自分バストにもエラーや異常などの例外が発生した場合に、適切な処理を行うことができる。例えば、自分バストが垂れたり痛んだりした場合に、修正したり治療したりする処理を行うことができる。

2023-04-12

プログラミングできねえ

仕事で書くようなコードマジで書けなくないですか?ちなみに新卒です

これまで行き当たりばったりのとりあえず動いたから良し!メンテはしねえ!なのばっか作ってきたから先輩共のリポジトリ見て感動するとともに俺はこんなもの書けねえとなる

まだお客様期間とはいえこれでは終わりですよ終わり。まずはちゃんオブジェクト指向とやらに沿ってかきはじめるおべんきょしないといけません

ところでみなさんはオブジェクト指向理解してますか?僕はしていません。

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