「カプセル化」を含む日記 RSS

はてなキーワード: カプセル化とは

2024-09-21

anond:20240920173518

しわいが任天堂でも訴訟するは(どん!

モンスターを仲間にするという概念はおそらく「ラストハルマゲドン」「女神転生」「ドラクエV」などが元祖だが、

それをカプセル化するというところにオリジナリティがあったからだ!

もちろんドラゴンボールホイポイカプセルといった元ネタはあったのだろうが、

組み合わせたところにオリジナリティ帰結するからだ(どどん!

2024-04-01

anond:20240401153135

そもそもエンジニアじゃないじゃん

エンジニアなの?

ただの決めつけだし、対人論証ですね

Rustでは、pubで可視管理管理してカプセル化し、データ構造定義し、traitでデータ構造に対する操作インターフェース定義し、

ジェネリクストレイオブジェクトを使ってさまざまなデータに対して多相で処理を提供することが一般的です

「RustはOOPじゃないし」に対する反論としてはこちらの方が重要であり、私がエンジニアであるかどうか、どのようなプロダクトを書いたかなどはノイズしかなく、答える必要も、考える必要もありません

anond:20240401143900

俺は

まさかカプセル化OOPだと思ってる感じの人?

可視管理OOPとは関係いからね?

反論したい横入り増田だよ

anond:20240401143235

Rust言語公式で「Rustはオブジェクト指向もできるよ!」ってアピールするための3つの主張の2番目が「カプセル化もできるよ!」なんだぞ

そこから考えれば

カプセル化オブジェクト指向本質の1つとみなされている」

カプセル化オブジェクト指向はなんの関係もない」

ではどちらが確からいか

anond:20240401143037

OOPとよく紐づけられる

紐づけられるのとOOP本質であるって全然違うし、

Rustではモジュールレベルで各アイテムにpubつけるかどうかで可視管理してカプセル化してるよって書いてるよね?

anond:20240401142256

そんな Rust OOP だけでGoogle検索した結果だけ出されても

 

Rustではtraitでインターフェース定義して、traitさえ実装してればなんでも受け入れる多態性を確保した関数実装して、

構造体に紐づいたメソッド呼び出しを中心としたコードがRustで書かれたコードの9割だと思うけど、

それがOOPじゃなくて何?

 

まさかカプセル化OOPだと思ってる感じの人?

可視管理OOPとは関係いからね?

2024-03-25

私の思うオブジェクト指向貴方の思うオブジェクト指向はなぜ違うのか

同じプログラマなのに話が通じないと思ったことはないでしょうか

どうやら私の思うオブジェクト指向貴方の思うオブジェクト指向は別のもののようだ

A君はウィキペディアを見ながら、カプセル化継承多態性だと言う

B君はC++/C#/Java等でプログラムを書くことだと言う

C君は OOPとOO は区別しろとか言ってくる

D君はこの世界のすべてはオブジェクトだと言う

E君はSOLID原則の方が大事だと言う

なぜかみんな見ている世界が違うようだ

どうしてこうなったのか

2024-01-31

anond:20240131143125

そのアプローチは非常に効果的ですね。メイン関数内での処理をシンプルに保つことで、コードの可読性と保守性が向上します。以下にその考え方を反映したサンプルコードを示します。

import json

# ビジネスロジック関数
def business_logic(data):
    # ビジネスロジックの詳細
    pass

# 設定情報ロード
def load_config(config_file):
    with open(config_file, 'r') as f:
        config = json.load(f)
    return config

def main():
    # 設定情報ロード
    config = load_config('config.json')

    # ビジネスロジックの実行
    business_logic(config)

if __name__ == "__main__":
    main()

このコードでは、メイン関数は設定情報ロードし、その情報を元にビジネスロジックを実行するだけです。技術的な詳細は関数内にカプセル化されており、メイン関数はそれらの関数を呼び出すだけです。これにより、コード自然言語を読むような形で読むことができ、技術的詳細は隠蔽されます。また、各関数担当者も明確になります。このような設計は、大規模なプロジェクトやチームでの開発に特に有効です。

[]メイン関数の書き方

メイン関数では主要な処理をざっと実行する。このときに、以下を気をつけると保守性が高くなる。

こうすると、自然言語を読むような形でコードを読めるようになり、技術的詳細は隠蔽するので、担当者をわかりやすく分離することができる。

2023-12-16

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

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

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

2023-12-09

anond:20231209145305

そんな変更ができる時点でカプセル化が徹底されてないんだよな

最短時間理解可能コードとは

コードを書く上で重要なことは?という質問に対して、アスペならば「実行できること」と答えるだろう。

当たり前なことしか言っていない。「実行できること」という文からは全く有益な知見を得られない。

実行できることは重要性ではなく、必要性である重要性とは、必要なことをすべてやった上でなおやる価値のあることを意味する。

そう考えた時に私がよく思うのは「最短時間理解可能であることが重要であると思うわけである

しかしここに宗教がある。そもそも人間物事理解するプロセスは人それぞれである

私は一度、関数モジュールで適切に分離するためのリファクタリングというものを行ったことがある。

というのも、一つの関数に万を超える行が書かれていたため、上司リファクタリング命令したためである

具体的詳細はprivateメソッドに、公開する必要のあるものはpublicメソッドに移した。

そして当初働いていた職場での反応はどうだったかというと、「スパゲッティコード」だというのだ。

スパゲッティコード?一つの関数に万を超える行があるほうがスパゲッティだと普通は思うだろう。

ところが、彼らの脳内では、「常にコードの詳細が見えていなければ気がすまない」という、カプセル化無視する思想で動いていたため、関数化すると関数の最下層まで辿らないと気がすまないらしかったのである

このようにして、教育の無い人間コードの読み方もカプセル化も知らないので、非生産的方法が最短の方法になってしまうのである

コードを最短で理解するためにはどうするのか。基礎知識教育された集団の中に身を置くのがまず先決である

例えばcalc_monthly_salary_yen(Person p)という行が存在した時、いちいちcalc_monthly_salary_yenの中身を常に見に行くような人たちはダメだ。

人間データ入力すれば円単位で月の給料計算してくれるんだろう」とざっくりと自然言語的に読み進められる人たちでなければ「最短理解」は難しい。

まり最短理解するためのコードを書いた時に、それが本当に最短理解されるためには事前の教養必要なのである

教養のないところに生産性はない。悪いことは言わない。ゴッドオブジェクト管理するような会社からは逃げ出せ。

2023-11-15

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

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

 

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

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

 

2. 継承

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

 

3. カプセル化

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

 

4. ポリモーフィズム

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

2022-09-09

オブジェクト指向ってこういうこと?

これまでいろいろな書籍サイトから情報を得てきて、オブジェクト指向プログラムを、「知識スキルを持った職人をいっぱい雇ったプロジェクト」というように理解している。

極論を言えば、オブジェクト指向擬人化思考というように捉えているけれど、この理解はどの程度あっているのだろうか?

会社プログラマー

職人=ありとあらゆるオブジェクト

知識データプロパティ

スキル関数メソッド

マニュアルクラス

職人マニュアルを読ませる=インスタンスを生成する

よその会社職人=外部ライブラリとか

とすると、

職人は、会社の指示によって働き、持っている知識スキルを使って仕事をする。

知識スキルは、各職人会社に指示されたマニュアルを読んで覚える。

とか

オブジェクト指向特に有用なのは特に複数会社と協力して作業する場合である

そのような大規模なプロジェクトであるならば、各企業職人一人一人に指示するよりも、マニュアル一つで指示した方が簡単だし、間違いが少ない。

かに置き換えて理解できて、(自分的には)理解やすい。

オブジェクト指向の三大概念として、いろいろな媒体で紹介されている「継承」「ポリモーフィズム」「カプセル化」も、それぞれ「一つのマニュアルを用意して、職人に利用してもらいやすくする」「各職人は、自分にとって必要マニュアルの一部を読んで知識スキルを手に入れる(ここの理解は自信がない)」「マニュアルは、職人によって勝手に書き換えられないようにするべき」みたいな感じでなんとなく理解している。

ただ、根本オブジェクト指向がよくわかっていないため、これが合っているのかもわからない。

のだけれど、なんとなく色々勉強してきて、複数人とプログラムを組むとか、大きなプロジェクトとかでもない限り理解していなくても問題なさそうなので、回収率100%を超える競馬プログラムが出来上がるのを夢見て寝ます

(書いたのを読み返してみると、「会社プログラマー」よりも「プログラマー会社」の方が一般的な気がする)

2022-08-11

anond:20220811120724

オブジェクト指向系ならカプセル化して各ブロックの中身わからんってのはよくあることやん

オブジェクト指向でなくてもライブラリ関数の中身知らずに使うなんてありがちやろうし

ビジュアルプログラミングブロックの中身わからんでええというのも同じ事なんちゃう

2022-01-17

anond:20220116164742

少しでも助けになるなら私の生存方法を書いてみる。

前提

この3点は私も共通している。両親については片親で過干渉ではあったが、しかし大切にはしてくれていた。それでもあなたと同じ思考から抜け出せない。これは、境遇個人努力を超えて、先天的な脳の作り(ADHD)が大きく関係しているのではないか。これに人間関係の失敗経験が積み重なりフィードバックとなり囚われの強化、すなわち脳の悪い思考プロセスネットワークの強化になっていくと仮定している。

人間関係の失敗でさらにこの自己評価が補強されてしまい、どうにも身動きができなくなってしまったのだけど、ここから脱するためにやったことを書く。

考え方

"考え方"についてはプロに任せ、むしろ考えない方法を身につけたほうがいい。

ADHD は考えるだけ無駄

まず、ADHDワーキングメモリが足りないため問題を大雑把にまとめて考えてしまう。

全体を捉えて、最も期待値の高い解決方法理性的に選べている自信はあるだろうか。あなたはある程度客観視できているだろうから落ち着いているときに考えればおそらく、高ストレス時に思っていたことが実は的外れだったという経験があるんじゃないかと思う。

例えば就労が困難だったというケース(あくま一般論の例)を考える。そうなる理由はそんなにシンプルではなく大量の変数が複雑に絡んでいる。 しかし、"自分馬鹿から仕事ができない"という形で問題カプセル化してしまえば、ワーキングメモリ節約できるため、ADHD問題単純化して自分を責める。一時的にはそれが一番ストレスが少ないのだ。本当は"環境が悪かった。定型発達でも仕事が原因で自殺していることもある"など、別の可能性が考えられるのに。

では、いつも正しい判断をするにはどうしたらいいだろう?これは、"自分判断を常に保留する"が疲弊したADHDには正しい方針だと思う。判断は常にプロに任せる。それはどこに住んでどんな仕事をすればいいか、という大局的な判断だけでなく、"誰が悪いのか"、"なぜこうなったのか"、"どうして不快なのか"なども含めてだ。特性上、強力に単純化してしまうので疲弊してIQが下がっている今はどれも的外れになる。

 寝て起きたら、デモデモダッテ思考が顔を出した。父と離れたいなんて、私のわがままじゃないかと疑っている。よく分からいから、今日相談支援専門員さん(何回かソーシャルワーカーさんと書いてるけど、勘違いでした)に電話してみようかと思う。

からこれで電話できたあなたはとても賢いし、自分客観視するセンスがある。

考えない方法

マインドフルネス瞑想がよい。方法適当ぐぐるとでてくる。(大きいトラウマがあると難しい場合がある。↓に追記あり) 浮かんだアイディアを0.5秒以内に棄却できるようになってくれば、鬱でも躁でも、脳の暴走状態を食い止めやすくなる。

人生史を書くとか考えたものをすべて紙に出すとか、自分トラウマを再認識するようなセラピーは無理に実践しないほうがいい場合がある。プロセラピストでない限り PTSDトリガーになりかねないので、慎重に。

考えられる人になるには

疲弊する環境を脱するのが最優先だ。

ストレス回避反応を高める。ただでさえADHDは弱いとされる、長期的な価値評価するための前頭前野が働かなくなり、極端な単純化をし始める。生存のヒントを得るために(存在しないかもしれない)脅威をあちらこちらに探し始める。

IQを上げる方法はたくさんある。有酸素運動無酸素運動を組み合わせたインターバルトレーニング読書楽器演奏、人との会話、人と比べて自分が優れていると実感する、など。しかし、どれもそれができる基盤が無ければ成り立たない。基盤は、どんな形であれ"安心できる生活"だ。

生活

プロ相談して模索しているのはとても素晴らしい。これこそ良い判断だと思う。

あなた場合愛着のある肉親だろうが、親元、実家から離れるのは最優先だ。トラウマ体験のある場所にいると記憶トリガーが多く、思考ノイズ高まる瞑想を頑張っていても考えの棄却という技術では捌ききれない量になる。例えるなら、イラク戦争PTSDになった米兵戦後もその戦場の脇で延々とセラピーを受けるなんてことがあるだろうか。アメリカに帰って湖で犬とキャンプでもしているべきだろう。

孤独

追記や他へのレスを見ると、同居した者と揉めた経験からグループホーム同棲抵抗があると言っている。

父に笑顔で頷き続けるか、他の障害者暴力を振るわれるかの2択しかない。

↓もそう。私もこの囚われとは長年付き合っている。 自分場合、親には愛されているはずなのに。

 環境を変えても、私がダメからダメだと、ずっと思ってた。愛されるためには愛される能力必要で、残念ながら私にはそれが決定的に欠けていると思えるから

ちょっとつらいかもしれないから今は受け入れられなくてもいいのだけど、これこそADHD特有の極度な問題単純化の例になっている。あのときうまくいかなかったという一例を以って、だからあれはやめたほうがいいのだ、というように考えるとワーキングメモリが大幅に節約できる。実際は、相手特別クズだったとかグループホームガチャとか色々分解できて、次の一手はまたフラットに考えることもできるはずなのに。

今は総括(判断)せず、プロに任せて、最善の環境に居れるまで模索するのがよい。次がダメだったとしても単純化せず、また次のチャンスを模索する。単純化バイアスを除いて考えれば、定型発達でも転職離婚病気のような失敗は何度も経験するのだ。

人間のつながりが欲しいと思ったとき、そうできている人とのライフスタイル比較するのがいいと思う。親族、家、お金車など財産ではなく、朝起きて何をしているのか、どんな本を読んでいるのか、どんなご飯を食べているのか、どんな娯楽を好んでいるのか。"考える"代わりに"行動する"のがよい。考えても考えても財産ライフスタイルも変わらないどころか極度の単純化で誤った判断をするのが疲弊したADHDの末路だ。

安全生活が得られるようになってきたら、形から入る。脳は考えて変わるわけではなく、運動、適度な負荷(勉強練習など)、食事で変わるのだ。脳に振り回されて困っていたのだから、脳を手なずけるのがよい。だから順番を変える。"まともな自分になれば孤独ではない生活が得られる"というのはやめて、"孤独じゃない人の生活を真似てみればまともな自分になれる"ということ。

増田について

私も自分自身そう思いたいという部分はあるんだけど、見ている文章を見る限り全然馬鹿ではない。というか文章のみのコミュニケーションであれば誰も重度の発達障害とは感じない。

これはこの番組の予告だけ見ても思った。もし道路出会ったらまるで思考が通じない人にしか見えないのに、文章は物凄く理知的で美しいのだ。

https://www2.nhk.or.jp/archives/tv60bin/detail/index.cgi?das_id=D0009050591_00000

我々は入出力や瞬発的な行動については困難があるかもしれない。しかし、中身までおかしいわけじゃない。

親さえもそれはわかってくれなかったかもだけど、今は世の中に知見が溜まってきているし、お互いこのようにネットで話すこともできるようになってきた。だから幼少期よりはまだ模索できる道は多いはずだ。

おせっかいかもしれないけど増田きっかけで過集中に入ったので最後まで書きました。

ブコメ言及など

スターがついていたので。

hamamuratakuo 個人的な見解だが、頭が悪い人に共通している特徴は「嘘つき」であること。全てを曖昧にしており、現実直視できず、被害妄想に耽溺。それゆえ認識が歪んで知性も劣化している。嘘をやめることが改善スタート地点

言っていることの大筋は私と同じだ。しかし、それを「頭が悪い」「嘘つき」という主観性の強い表現であえて言い直す必要は無い。今回で言えば頭が悪いのではなくワーキングメモリが小さいと言えるし、嘘つきなのではなくワーキングメモリ節約無意識に行っている、というようにより具体性のある話にしたつもりだし、「嘘をやめる」に対応する極度の単純化をやめる方法も示したつもり。

これも脱線するが、自分発達障害自覚する前、定型発達的な人々に対してリスペクトを欠いた態度を取っていた。彼らは(今思えばADHDの私に比べれば、だが)会議発言しない、積極性が無い、すぐ行動しない。「頭が悪い愚鈍な人々だと思っていた。つまり自分が得意なことができない人を簡単に「頭が悪い」と言うのは主観的すぎる。特に今回の文脈では発達障害という特異な脳の状態について話しているのだから、少し配慮してもいいんじゃなかろうか(隙自語同士なのでまぁいいけど)。発達障害知的障害は異なる。高IQ発達障害大勢いるし、発達障害の診断時にIQテストを受けるのでむしろ発達障害者のほうが自分IQを正しく理解している。

misarine3 嘘ではなく現実を正しく把握できなsので偏って間違った認識を伝えてしまうケースもある。あとADHDかと思ったら発達性トラウマ障害複雑性PTSD)というケースもあるので一考してほしい。

programmablekinoko マインドフルは合わなかった。多動優先だとじっとしているのが難しい。有酸素運動強制的に頭空っぽにするか、NBackやラジオ流しながら何かを音読するなど、脳内ノイズをかき消す方法自分には良かった。

https://anond.hatelabo.jp/20220118124641

元増田ではないけどマインドフルネス瞑想トラウマ持ちだと困難だったぞ

TFT自己否定強いと自分を叩き出して失敗した

ブクマにもあったけど発達性トラウマ考慮しないと危ない

これはそうかもしれない。実は自分場合自己流の荒療治でトラウマ追体験を繰り返してみたり瞑想でつらいことを棄却する訓練をやってみたりと実験してみた。この中で瞑想継続できたということなので、n=1 なのは確か。カウンセラー精神科医などプロ相談しながらがよい。

本当は睡運瞑野がうまくかみ合えばいいのだけど、睡運瞑野ができるのは睡運瞑野がうまくいっているときだけという難しさがある。 瞑想の代わりに運動する、それもできないなら何もせず寝てしまうなどで、あまり考えないようにできるといい。

sisya 前提が少しおかしい。「頭が悪いから人に大事にされない」ではなく「考えが足らずに人が傷つくことをしてしまっているが、そのことに自分が気づけないので遠ざけられる」なので、相手にその旨先に伝えてくといい。

自分アイディアはこれとも違う。そもそも大事にされていない」「遠ざけられている」という認識が正しくないかもしれないというのが私の立場だ。元増田についても、すでにこのスレッドブクマで多くの人から大事にされているのだから大きな反例になっている。 少なくとも汲める事実は「両親からモラハラがあった」「グループホーム暴力を起こした人がいた」ということだけだ。これを「遠ざけられている」と読み取ることは、私が何度も言っている極端な単純化だ。

もし「自分の考えが足りず人を傷つけるのだ」というところに根拠を置いてしまうと、「自分の考えを洗練させなければならない」という出来もしない曖昧課題が作られてしまう。私もおそらく元増田も、このような袋小路でさんざん自分を苦しめてきた。私の主張が伝わっていれば、期待値が高い対処は例えば「なるべく親元から離れる」「相性のいいグループホームを探し、医師など専門家支援を受ける」などになる。的外れな自省をさせる意味は無い。

aox ASMRに限らず増田さんみたいにスパスパ考えられて実行できるなら誰も苦労しないのでは ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔ•̫͡•ʕ•̫͡•ʔ•̫͡•ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʕ•̫͡•ʕ•̫͡•ʔ•̫͡•ʔ•̫͡•ʕ

私も偉そうに書いてしまっているので労せずこれに至ったと思われても仕方ないが、これに至るまでは大変な苦労をした。自殺未遂をして警察保護されそのまま措置入院(強制)というのを何度かやった。ずっと不登校だったが一念発起して就職した会社も、それで復職できず退職した。短絡的な行動で多くの人間関係を失った。何年も睡眠が浅く、悪夢で夜中に飛び起きることが多かった。今もギリギリバランスでやっと立っているが、それでも以前に比べれば前向きに暮らせている。むしろ読む人がこんな苦労をせず役立ててくれるなら幸いだ。

2021-11-18

OOP信仰大分抜けてきた

最近はもうカプセル化とか継承とか面倒くさくて、「処理の使い回しとか、関数使った方が明示的だし、十分じゃない?」とか「インターフェイスさえ定義できれば良くない?」とか考えたりしている。

あらゆる言語イミュータブルな構造体が欲しい。

2021-11-01

anond:20211101171948

Python みてるとカプセル化とかなんやったんかとか思うが、JavaRuby とかの継承比較すると、特に変な感じがする。ここ見ても、イマイチよくわからん。多重継承とかも、本当にコントロールできとるのかね? 雰囲気で書く言語だと思うことにしてる。 https://postd.cc/pythons-objects-and-classes-a-visual-guide/

Pythonオブジェクト指向はなぜ出来が悪いのか……

2021-07-12

anond:20210712140857

局所化の話はカプセル化の話やろ

動物キリンさんが出てくるのは、継承インタフェースの話やろ

なんで混ぜたん

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