オブジェクト指向を教えてくれ!★2

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/04/27(火) 15:02:28.94ID:mH9VXFld
オブジェクト指向について、調べれば調べるほど疑問が募ります。低レベルで粗末な疑問かも知れませんが、ご教授願いたいです。

・データと振る舞いをまとめる?
まとめると何か良いことあるの?
ファイルあるいはモジュールにはまとまってるよね?
丁度いい単位があるのに、何故わざわざオブジェクトという概念を導入するの?
(Javaには1ファイル1クラスという文化あるらしいけど)

・カプセル化?
モジュールのimport, exportでも実現出来るよね?
(構造体などへのアクセスを制限できれば)

・ポリモーフィズム?
別にデータと振る舞いをまとめなくても実現出来るよね?

・モノのように扱いたい?
モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1615881962/
2022/05/10(火) 02:42:32.34ID:rHAp8QQo
>>561
tp://video.twimg.com/ext_tw_video/1468168226110832640/pu/vid/1280x720/ATJP-r9qEAMT9bVE.mp4
(*・∀・)
2022/05/10(火) 17:59:20.16ID:nw8XwMLw
http://shibari.jp/img/portfolio/red_work/redwork01.jpg
2022/05/12(木) 03:23:02.52ID:vdQiTQch
https://video.twimg.com/ext_tw_video/1422398595555225606/pu/vid/480x852/1EmJyNhK1kNy0soK.mp4?tag=12
565デフォルトの名無しさん
垢版 |
2022/05/12(木) 14:14:23.46ID:xTHkJpvg
>>557
クリントン大統領の「不適切な関係」は、クリントンの再定義が求められる。
566デフォルトの名無しさん
垢版 |
2022/05/12(木) 15:30:08.79ID:ag5biT9N
クリントン大統領にどんな強大な権限が有っても、自らのチンポがしこしこしてしまうのは止められない!

class チンポ extends クリントン{
     super.不適切な関係;
}


クリントンーーーーーーーーーー
┃             ┃
┃             ┃
┃             ┃
┃             ┃
┃             ┃
ーーーーーーーーーーーーーーー
     ┃チンポ┃
      ̄ ̄ ̄ ̄

クリントンの再定義、クリントンの拡張された人格ということだ!

「不適切な関係」というのは、クリントン大統領が有するメソッドではなくて、偶発的に生じたオブジェクトだ。

  クリントン new() 不適切な関係 ;
567デフォルトの名無しさん
垢版 |
2022/05/12(木) 16:34:18.06ID:ag5biT9N
執務室におけるクリントン大統領の責務についてだが、

SRP(Single Responsibility Principle)
SRPでは、
「1つのクラスは1つの責務を持つ」を原則とします。複数の責務を 1つのクラスに持たせないこと。
1つの分かりやすい役割をクラス分割の境界 とすること。1つのクラス内に入る要素(属性や操作)が、
1つの目的に向かって凝集していること。これが原則です。
https://ubiteku.oinker.me/2017/12/02/skepticism-about-oo/

チンポがしこしこしてしまうのは、大統領の責務ではどうにもならない!

「継承」は、どうにもならない場合に限定されるべき!
568デフォルトの名無しさん
垢版 |
2022/05/12(木) 16:46:45.26ID:ag5biT9N
オシッコを出したり止めたりする時に、前立腺とか外尿道括約筋の機能を意識する必要無いよね?

 カプセル化とは、関連のあるデータとその操作をひとまとめにして、外部から直接内部データを操作すること
を禁止する代わりに、外部に操作の仕様だけを見せることです。カプセル化のメリットは大きく分けて2つあり、
1つめは、オブジェクトを利用する人はその操作の仕様だけを知っていれば、オブジェクト内の操作の実装や
データの内容を知る必要がないことです。
 2つめは、関連する操作がひとまとめになっているので、理解しやすく変更の影響も局所化できることです。
カプセル化するひとまとまりの単位のことを「クラス」、クラスの中の操作を「メソッド」、
データのことを「フィールド」と呼びます。
https://xtech.nikkei.com/atcl/nxt/column/18/00208/031300003/

チンポがひん曲がって尿が便器の外に出てしまわなきことに気をつけたい!

210 デフォルトの名無しさん 2021/07/30(金) 00:45:15.42 ID:T4chNKrF
>>208
> チンポはオシッコを出したりオシッコを止めたりする機能が備わっている。
…… まぁ、放っといたほうがいいんだろうが、ひとこと。
「オシッコを出したりオシッコを止めたりする機能」は前立腺とか
外尿道括約筋の機能であって、チンポの機能ではないと思うが。
569デフォルトの名無しさん
垢版 |
2022/05/12(木) 17:00:05.09ID:Ea81KCpq
>>7
>夏目くんの場合は、チンポが自我を圧倒し、体が自然に滝川さんの股間に近づいていったのだ。

ルソーは、「知識を与える前に、その道具である諸器官を完成させよ。感覚器官の訓練によって理性を準備する
教育を消極教育と呼ぶ」と自著『エミール』のなかで自己の教育観を提唱しています。
https://www.hoikuplus.com/post/usefulnurtureinfo/1030
2022/05/27(金) 08:12:53.21ID:fkDGjGAu
https://banners-hw.trafficfactory.biz/banners/3e/4a/74/5d6229497cfe6a8a9fb179cdfdebd9cc.mp4
2022/05/27(金) 08:17:53.51ID:fkDGjGAu
>>568
https://img.bestvibe.jp/images/goods/764/goods_desc/20220418/20220418124451_61507.jpg
572デフォルトの名無しさん
垢版 |
2022/06/01(水) 16:57:18.76ID:fNWyNagL
>>294
>「人格を『おちんちんに乗っ取られる時間』が、予告なしで高頻度で訪れる」

自分は自分の主人なのか? ハインライン『人形つかい』と操りについて考えていたら『デカルトの密室』に行き着いた。人形つかいと人形使いと人形遣い。
https://n-yuji.hatenablog.jp/entry/20140118/p1
2022/06/02(木) 10:08:51.92ID:JQ8DNO7l
カプセル化って函数化っぽい
2022/06/07(火) 06:50:31.18ID:KWlzTKKd
>>572
https://video.twimg.com/ext_tw_video/1473465965736198145/pu/vid/540x960/yBfrVtjAYLKLk8xW.mp4?tag=12
2022/06/14(火) 06:33:07.12ID:BpUEX0Lj
>>572
https://video.twimg.com/ext_tw_video/1510894418454511616/pu/vid/960x720/uDIhjfi-yq4at3ZG.mp4?tag=12
576デフォルトの名無しさん
垢版 |
2022/06/14(火) 20:45:44.21ID:grrQGIAG
オブジェクト指向プログラミングでは
アクセサーと呼ばれるメソッドを用意しますよね?
いわゆるセッターとゲッター。
これらをわざわざ介してアクセスする理由は何ですか?
例えばセッターの場合、受け取る値をセッターで検証するのでしょうか?
ゲッターは何をしますか?
2022/06/14(火) 22:49:00.89ID:/Eif446V
JavaBeansのプロパティを間違って真似した説に一票
2022/06/15(水) 00:01:45.70ID:KmXapabn
変形して合体します
2022/06/15(水) 06:24:33.83ID:brnJdNXi
https://i.imgur.com/6VNGbOp.gif
2022/06/15(水) 06:42:31.25ID:brnJdNXi
>>576
特に意味はありません
あなたはだまされていたのです
581デフォルトの名無しさん
垢版 |
2022/06/15(水) 08:17:44.28ID:ABEwp2pC
コンバートを行うコンバータ関数ばかりを集めてクラスを作るの、
ありですか。メソッドだけで構成されたクラスです。
2022/06/15(水) 09:58:07.75ID:vcWMx0nD
>>576
一種の宗教みたいなもの
プロパティは全てプライベートにしてアクセサによるアクセスのみにしましょうみたいな事を言う人がいるが
パブリックにして直接参照しても特に問題無い
(C#などはそれでもアクセサが用意されていればアクセサ経由でのアクセスになるが)
ただ仕事ではコーディング規約やルールがある場合があるので従うしかない時はある

>>581
ユーティリティクラスみたいな言い方をする場合があるけど全てスタティックのメソッドだけみたいなのは
割と良く利用されているし普通にありだけど、こういうのばかりになるとスタティックおじさんみたいな
事を言う人がたまにいるw
あくまでクラスに属さない処理をさせる場合に適応してクラス内の処理が妥当な場合はそちらに移動させましょう
583デフォルトの名無しさん
垢版 |
2022/06/15(水) 15:45:38.93ID:IEWflW3G
JAVAは結局コボラーをジャバラーにしただけだったな
584581
垢版 |
2022/06/16(木) 14:21:45.56ID:zg4/+aoO
>>582
ユーティリティクラスですか。とても勉強になりました。
助言くださってどうもありがとうございました。
585デフォルトの名無しさん
垢版 |
2022/06/18(土) 01:22:20.46ID:4r3KcqQj
セッターとゲッターがあればそれはオブジェクト指向ではない
586デフォルトの名無しさん
垢版 |
2022/06/19(日) 00:38:43.38ID:f6Moswor
カプセル化はもう時代遅れ
教科書プログラム用の練習教材ですよ
とはいえケースバイケースで使ったほうが便利な時は使えばいい

しかしあまりに膨大なパラメーターを必要とするならthisでやり取りすべきだろう
その場合はメソッドを作るというよりは冗長なプログラムを分割するためのテクニックとして使われるはずだ
カプセル化とは意味合いが全く異なるということだ

従って綿密な注釈を入れて区別化を明確にしておくべきだろう
capsule voidという新しいコマンドができることを強く望む
587デフォルトの名無しさん
垢版 |
2022/06/19(日) 01:02:00.90ID:f6Moswor
もっと簡単に言えば
長いプログラムを組んでいればたくさんのファイルが必要となる
そのファイルすべてをカプセル化するのはじつにナンセンスと思われる
中には特定のファイルに紐づけされたファイルを作ったほうがプログラミングしやすい場合が多々発生するだろう

しかしながら教科書にはすべてカプセル化しなければならないかのような記述がある
おそらくその教科書の作者は長いプログラムを組んだことがないのだろう

そこで私はこれからのプログラムはハイブリット化が必要だと提言したい
2022/06/19(日) 02:04:16.11ID:i76g8bvS
>>586
「カプセル化」についてもう少し勉強しようね
589デフォルトの名無しさん
垢版 |
2022/06/19(日) 02:45:28.44ID:oAfhYtH9
>>576
オブジェクトのインターフェイスを統一して
いろんなアプリで利用できるようにしましょうっていう
考え方が1990年代にあったんよ

JavaBeansやMSのComponent Object Modelなど

クライアントアプリのGUI構築には役に立った
いまでもJavaBeansやCOMで動くアプリはある

あくまでもオブジェクト指向の応用の一つでしかないので
真似する意味はあまりないよ
590デフォルトの名無しさん
垢版 |
2022/06/19(日) 03:04:29.39ID:oAfhYtH9
カプセル化はアクセサーを用意することではなくて
データと操作を一体化すること

オブジェクト指向は小さい部品を組み合わせて大きい部品を作り
さらにそれを組み合わせてシステムを作るみたいな
レゴブロックのようにプログラムを構築できるから作ってて楽しい
2022/06/19(日) 05:34:06.82ID:SdXdUMni
データとメソッドは全然別物
一体化なんてしねぇだろ
何適当なこと言ってんだこいつ
2022/06/19(日) 08:56:58.57ID:8ceGs1P+
>>586
そこでpackage/moduleですよー
なおそれをbless()してOOP機能を実装してしまった言語の末路…
2022/06/19(日) 09:46:45.68ID:MGBoiv+i
>>589
それだね。
DIの考え方が根底にあって、外部から列挙可能であることも重要なんだが
getter/setterの形式だけ真似しても意味が分からないのは無理もない。
2022/06/23(木) 18:47:48.02ID:BThIF1pE
オブジェクト指向はもう古い
たとえ重複するプログラミングコードがいくつになろうとも
メンテナンスのしやすさを考えると
合理化より複合化を選択するべきだろう
それが実用だ
教科書う通りにしたがるガリ勉くんは講師でも目指したほうがいい
これからはプログレッシブル指向という新概念を私は提唱したい
2022/06/23(木) 22:06:20.59ID:+cDMNReP
関数の引数を無くすか
新しく演算子を考えてよ
2022/06/25(土) 03:43:53.27ID:KzvU/G5K
スクリプト言語はポリモーフィズムを積極的に使うことでいわゆる型による条件分岐を内部に委ねられるから往々にしてその部分の実行速度を上げられる
2022/06/28(火) 13:40:13.28ID:WEtlXn3s
積極的に使うほどそもそもポリモーフィズム使うか?
jsとかだと余計に使わないかと
ゲームとかなら敵の種類毎にクラスにするとかあるけど
業務や管理画面みたいなので使う所あるか?
2022/06/29(水) 00:29:20.28ID:HEPc8j2N
私は数年前からオブジャクト指向は廃止するべきだと思っている
なぜならオブジュクトごとに変数を設定しるため、ぱっと見でわかりにくいからだ
膨大なプログラムを組む場合このぱっと見は極めて重要だ
そこで私はプログレッシブ指向をかねてから提案してる
具体的にはメインクラスで重要な変数を全て設定して
サブクラスにthisで受け渡す包括方式だ
オプジェクト指向は数式遊びになってしまった感がある
このへんで初心に戻るべきだろう
599デフォルトの名無しさん
垢版 |
2022/07/15(金) 20:52:22.59ID:YmDPrO4S
正答率が1桁から50.3%に改善
 それに対してMinervaによるMATHデータセットの正答率は50.3%にも達する。過去のSOTAを大幅に上回った。
グーグルは他の問題データセットでもMinervaの性能を試した。優秀な中学生であれば満点が取れる小学生レベル
の算数問題のデータセット「GSM8k」のMinervaによる正答率は78.5%(SOTAは74.4%)で、
高校と大学レベルの工学、化学、数学、物理学などの問題からなるデータセット「MMLU-STEM」の正答率
は75.0%(SOTAは54.9%)だった。いずれもSOTAを上回った。
https://xtech.nikkei.com/atcl/nxt/column/18/00692/070600084/
600デフォルトの名無しさん
垢版 |
2022/07/19(火) 10:11:55.94ID:2mzjLS5j
>>594
template みたいに重複しまくりでメンテナンスもし難いのが最強ですね判ります
2022/07/27(水) 22:15:41.34ID:a67r2woD
お爺ちゃん、今は2022年ですよ?
オブジェクト指向を廃止だのカプセル化が時代遅れだの、そんな御託を述べる前に言葉の意味を理解しようね
602デフォルトの名無しさん
垢版 |
2022/07/27(水) 22:46:47.88ID:hi2YYXJ0
今更遅すぎだろうけど
>>1みたいに賢い人間はRustをやってみるべきだよ
君は対象者だ
603デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:39:35.59ID:ogiMaWw7
>>601
2022年は、去年ですよ??
2022/07/31(日) 23:31:05.92ID:Dl7jaJ3a
冗談を真に受けるなよ
605デフォルトの名無しさん
垢版 |
2022/08/06(土) 23:39:31.15ID:w2Zzmanz
米国のMIT(マサチューセッツ工科大学)で行われた研究によれば、大学レベルの数学の問題を「解く」
「説明する」「新たに生成する」の3つが実行可能なAIを開発した、とのこと。
これまで開発されたAIは一部を除き人間用に書かれた数学の問題文から直接答えをを導き出そうとして失敗してきました。
しかし新たに開発されたAIは、人間用に書かれた数学の問題文をコンピューター用の正しいプログラムコードに
自動的に変換・合成する訓練がなされており、わずか数秒で既存のAIの
10倍にあたる81%の精度で正しい回答を行うことが可能となっています。
https://nazology.net/archives/112943
606デフォルトの名無しさん
垢版 |
2022/08/11(木) 15:58:24.47ID:9jOXbBjR
ニューラルネットワークは高度な数学の問題を解くことはできないと広く信じられてきた。
MITはこの神話を打ち破るため、ニューラルネットワーク「OpenAI Codex」を用いてテキストで事前学習し、
コードで微調整することで、大学レベルの数学問題を正答率81%で解くことに成功した。
これまでの正答率は8.8%だったという。さらに問題について解説したり、新たに問題を生成したりすることも可能だ。
https://atmarkit.itmedia.co.jp/ait/spv/2208/09/news151.html
2022/08/14(日) 20:30:37.05ID:stKmrYi1
オブジェクト指向出てきてから50年くらいたつのか?
じゃあ古いじゃん
2022/08/20(土) 13:17:29.92ID:Z0uFASkB
オブジェクト指向とかデザインパターンとかまとめてゴミになりそうね
2022/08/21(日) 11:02:50.87ID:xAkmNWWM
デザインパターンがゴミになると思ってるやつは総じてゴミ
2022/08/21(日) 11:10:39.17ID:3/zo/+gQ
パターンwとか言っている方がゴミだけどなw
そんなのプログラムしていれば分かるような事ばかりなのに
そういう本から入った奴らって低能ばかりなんだよなぁw
2022/08/21(日) 15:18:48.70ID:b/J0dnQp
>>610
マジでパターン理解してないんだな
まぁ頑張ってね
2022/08/21(日) 16:22:21.87ID:3/zo/+gQ
>>611
だから本から入ったんでしょ?w
で偉そうになんとかパターンですwとか言っているのは滑稽だという話w
理解できないなら相当頭が悪そうだけどw
613デフォルトの名無しさん
垢版 |
2022/08/21(日) 16:45:03.52ID:ecIOs+Jg
ブリッジパターンとストラテジパターンを覚えたが良い
614デフォルトの名無しさん
垢版 |
2022/08/22(月) 02:47:49.95ID:FoS4qmMu
デザインパターンは言語機能の欠陥を埋め合わせるパッチワークでしかない
デザインミスを隠蔽するためのパターン集だと言うことを分かって使ってる奴がいないよな
こう言うのは大体JavaかC#しか言語触ってないと相場が決まってる
615デフォルトの名無しさん
垢版 |
2022/08/22(月) 02:54:22.43ID:FoS4qmMu
パターン名を言う奴のほとんど、それを使う理由を写経レベルでしか理解していない説

君はデザインをやってるつもりなんだろうけど、実際はコピペプログラマからコピペプログラマ未満になってることを自覚した方がいい
コピペプログラマは、「うは、これ便利」と思ってコピペするけど、
デザインパターン厨は長々しい実用性のない議論と先駆者への謎の敬意と引用の後に
結局なぜそれを採用するかの説明から逃げるからな

説明から逃げる上流気取りは総じてカス
誰もその基本を指摘しないから、致命的な段階になるまで錯誤し続けるんだよな
616デフォルトの名無しさん
垢版 |
2022/08/22(月) 09:43:55.60ID:MD3tlYEu
この世には2種類の人間がいる
・ブリッジパターンを知らない人
・ブリッジパターンを知ってる人

どちらになるかはその人しだい
617デフォルトの名無しさん
垢版 |
2022/08/22(月) 09:45:38.54ID:MD3tlYEu
>>614
バカ乙、お前はブリッジパターンを何も理解してないことがお前の発言から明らか
よってお前はブリッジパターンを知らずにただ漫然と時が過ぎるのを是とし
過ぎ去る日々をボーと眺めてるに等しいボケ老人
618デフォルトの名無しさん
垢版 |
2022/08/22(月) 09:49:16.82ID:MD3tlYEu
>>615
パターン名は覚えていないと車輪の再発明になるよ
一生涯をかけてプログラムに磨きをかけてブリッジパターンを再発明しました
みたいな悲しいことになっちゃうからブリッジパターンはいまのうちに覚えておこうよ
2022/08/22(月) 09:53:07.23ID:mXL4Ef7K
世界的に使われるアプリ作った人が
「〇〇パターンを採用しました」とか言ってるのは見たことないからそういう事

アプリの中のソースコードにも様々なセクターがあって色んな設計、言語が織り交ざるんだから
デザパタ云々の話ってどこでやるのって思う
620デフォルトの名無しさん
垢版 |
2022/08/22(月) 10:01:20.65ID:MD3tlYEu
>>619
そんなの当たり前だろ
ユーザにソースコード説明してどうすんだアホw
621デフォルトの名無しさん
垢版 |
2022/08/22(月) 10:03:10.09ID:MD3tlYEu
このように何もかもをごっちゃにしてバグった頭で日々を過ごすアホになりたくなかったら
ブリッジパターンを勉強して整理する力を身に着けて圧倒的成長を遂げよう
2022/08/22(月) 10:04:39.87ID:mXL4Ef7K
>>620
創設者がインタビューされた記事で
使った言語とか経緯とか歴史を喋る事ってあるでしょ

そこで"デザパタ"の話は出てきた事あるだろうか・・・
623デフォルトの名無しさん
垢版 |
2022/08/22(月) 10:07:42.18ID:MD3tlYEu
>>622
ちょっと何言ってんのかわからない
624デフォルトの名無しさん
垢版 |
2022/08/22(月) 10:08:21.97ID:MD3tlYEu
何を創設したん? 何の話? 統一協会の話してんの?
2022/08/22(月) 10:17:00.75ID:mXL4Ef7K
別にGARAMでもなんでもw
探せば何か喋ってるよ

デザパタって単に手足として働く役割の社畜マにコードリーディングさせるときのヒントだと思うよ
一流の人はもっと違う場所の事考えてるから話題にならない

高負荷や技術的障害はなんちゃらパターンが解決してくれること無いし
最も優秀な人は、全体の1%のコードのボトルネックとなる部分を負荷軽減する発想や技術があって
残り99%は社畜マでも作れるからデザパタで組もうが何しようがどうでもいい事なのよ
626デフォルトの名無しさん
垢版 |
2022/08/22(月) 10:26:35.12ID:MD3tlYEu
GARAM創設の話? それってブリッジパターンとなんか関係あるんすか?
627デフォルトの名無しさん
垢版 |
2022/08/22(月) 10:28:03.79ID:MD3tlYEu
会社作ったときのサクセスストーリーをインタビューしてブリッジパターンを引き出したら
そのインタビュワーはただものじゃないな
628デフォルトの名無しさん
垢版 |
2022/08/22(月) 10:31:45.95ID:MD3tlYEu
> 創設者がインタビューされた記事
起業の話かな?

> 高負荷や技術的障害
運用の話かな?

ブリッジパターンと全然関係ない話を自分でして
ブリッジパターンは役に立たないんだという結論を導く
みなさんこれがアホです
629デフォルトの名無しさん
垢版 |
2022/08/22(月) 10:32:42.31ID:MD3tlYEu
ブリッジパターンを勉強してこなかったツケがこの有様です
2022/08/22(月) 12:30:53.49ID:mj9/qE/D
>>619,622
すごい
バカ丸出しwww

デザパタコンプレックス拗らせてるのはこの手の人だったのか
2022/08/22(月) 12:38:32.92ID:r2RmnMFB
>>625
>高負荷や技術的障害はなんちゃらパターンが解決してくれること無いし
デザインパターンとはレイヤーが異なるだけ
サーキットブレイカーとか知らないでしょ?
2022/08/22(月) 12:48:42.80ID:RW5O1kus
パターンというものの本質的価値を理解せず
デザパタの表面だけみてる人は抽象化思考能力が著しく低い

抽象化思考能力の低い人はまともなソフトウェアは作れない
ソフトウェア開発者の適性がないと言い換えてもいい

つまり>>609
633デフォルトの名無しさん
垢版 |
2022/08/22(月) 13:55:06.32ID:KX6mg0Ol
デザパタの名前なんて後付けだしな
634デフォルトの名無しさん
垢版 |
2022/08/22(月) 13:58:03.19ID:KX6mg0Ol
>>615
ほんそれ
めっちゃ判りますωωω=2πf
635デフォルトの名無しさん
垢版 |
2022/08/22(月) 14:01:45.39ID:MD3tlYEu
>>633
お前の名前だって後付だろ
だからといってお前に価値が無いわけではないだろ
生まれてきてくれてありがとう
636デフォルトの名無しさん
垢版 |
2022/08/22(月) 14:10:48.49ID:MD3tlYEu
エドガー・ダイクストラはGoTo文のパターンを整理してIfやForといった名前をつけた
今日のプログラミングではIfやForを使ってプログラムを作る
プログラミングにおいて名前を付けることは新たな道具の発見である
637デフォルトの名無しさん
垢版 |
2022/08/22(月) 14:12:05.65ID:MD3tlYEu
道具としての設計、深いね
2022/08/22(月) 15:06:13.89ID:3On+wPab
GARAMって何やねんw
マサラか?Racebookか?
2022/08/22(月) 17:37:57.52ID:mXL4Ef7K
>>636
社畜風情が勘違いしすぎw
社畜マがどのように何を考えて「誰でも出来る範囲の」コーディングをしようが
天才たちの知る話ではないという事だ

所詮、デザパタやオブジェクト指向含め、社畜マが何か真理とかと勘違いして勉強するけど
結局はただ世の中にあるソースコードに一貫性・規則性持たせる努力義務を課し
社畜達が保守点検しやすい規格をポンっと用意してるだけ
おわかりかな?
640デフォルトの名無しさん
垢版 |
2022/08/22(月) 17:53:24.28ID:MD3tlYEu
>>639
天才ねえ弱小少数派の意見は参考にならないな
所詮少数派だろ
641デフォルトの名無しさん
垢版 |
2022/08/22(月) 17:53:55.66ID:MD3tlYEu
天才にはそういうの必要ないとか、そういう詭弁の方が必要ないだろ
2022/08/22(月) 18:22:02.42ID:nNSUvGkU
>>639
やっぱりな 実装面しか 見えてない
底辺社畜の デザパタ嫌悪
643デフォルトの名無しさん
垢版 |
2022/08/22(月) 19:39:35.57ID:9gSL1iVp
GoFによると、会話の中で用いるために、デザインパターンに統一された名前がついていることは大切らしいぞ。
644デフォルトの名無しさん
垢版 |
2022/08/22(月) 19:44:10.29ID:9gSL1iVp
建築家クリストファー・アレグザンダーが提唱したパターン・ランゲージの一部として捉えると理解しやすいかもしれない。
2022/08/22(月) 19:44:59.09ID:mXL4Ef7K
天才が考えた正規表現を見てみるか、オブジェクト指向だったら
replace(regex , "$1,$2,$3")
こんな実装許されないよ? 可読性低すぎ 引き継ぐ次の人の事考えてない社畜としてあるまじき関数だ
こんな自作関数定義したらすぐクビだね


何らかのデザインパターンに沿ったオブジェクト指向なら、こうするべきだろう 異論は認めるよ
o = obj.new(str)
o.replace(regex)
o.Regex["$1"]
o.Regex["$2"]
o.Regex["$3"]
646デフォルトの名無しさん
垢版 |
2022/08/22(月) 19:47:53.25ID:IDLZh6tD
あああれね
647デフォルトの名無しさん
垢版 |
2022/08/22(月) 21:05:25.05ID:MD3tlYEu
>>645
デザインパターン以前に正規表現に対する理解が不足してるように思われる

正規表現は式からオートマトンを生成して
オートマトンに文字列を入力してオートマトンが終端状態に達するか確認するものなんよ

よって作成するオブジェクトはオートマトンを内部に保持するものだよ

こんな感じ
re = Regexp.Compile(expression)

使うときはこんな感じ
re.Replace(source, destination)

式が固定ならオートマトンオブジェクトを使い回すことで式からオートマトンを生成する処理を減らせる
直感的で性能の良いオブジェクトのできあがり
2022/08/22(月) 22:06:19.63ID:7j1cHr1r
>>645
何らかのデザインパターン!?
何らかのデザインパターン!?
何らかのデザインパターン!?
wwwwww
2022/08/22(月) 22:06:29.75ID:mXL4Ef7K
>>647
正規表現って文字列だけだと思ってるだろ
プログラミング言語には実装されてないだけで正規表現は文字列に限定しないぞ

そもそもコンピュータにおいて文字列と配列って言語によっちゃ近いものなんだよ
配列を正規表現できるってことは、構造体も正規表現できるだろ
じゃあ次は構造体を正規表現したらアプリケーションも正規表現できるぞ
なぜやらないんだ
2022/08/22(月) 22:12:22.43ID:mXL4Ef7K
正規表現で配列・構造体・アプリケーションを書かれると、人が理解できないからだぞ
人が理解できないと、限りなく短縮された表記を捨てて
一次変数や、コメントや、オブジェクト指向という冗長したものをソースコードに入れる必要がある

でざいんぱたーんもそのひとつ

理解(りかい)できない人(ひと)のために冗長(じょうちょう)したものをプログラミング(ぷろぐらみんぐ)言語(げんご)にいれる必要(ひつよう)がある
2022/08/22(月) 22:14:42.04ID:IED0fuHl
>>645
>replace(regex , "$1,$2,$3")
string.replace(regex, "$1,$2,$3")と書きたかったのかな?
じゃないならreplaceする入力値はいずこ?
652デフォルトの名無しさん
垢版 |
2022/08/22(月) 22:15:58.07ID:MD3tlYEu
>>649
正規表現はあくまでも有限オートマトンなので限界があるよ
JSONさえ書き表せないのにアプリケーションは無理じゃないかな
2022/08/22(月) 22:22:53.84ID:mXL4Ef7K
>>651
this selfくらい知っておけw

>>652
文字列は配列であり、配列は構造体である
って分からないのかな?
C言語でポインタまともに学んでるかどうかだな
654デフォルトの名無しさん
垢版 |
2022/08/22(月) 22:24:54.46ID:MD3tlYEu
>>653
それは実装によるでしょ
JavaScriptでは文字列を木構造で管理してるよね
655デフォルトの名無しさん
垢版 |
2022/08/22(月) 22:28:36.05ID:MD3tlYEu
仮に文字列が配列だったとしても
正規表現はあらゆる文字列を扱えるわけではないよね
たとえばJSONは正規表現では扱えない
JSONも扱えないのにアプリケーションを正規表現で書くのは無理じゃないかな
656デフォルトの名無しさん
垢版 |
2022/08/22(月) 22:30:36.09ID:MD3tlYEu
木構造やリストなど再帰的データ構造は正規表現では無理
657デフォルトの名無しさん
垢版 |
2022/08/22(月) 22:32:35.76ID:MD3tlYEu
「文字列は配列だ」

「アプリケーションを正規表現で書ける」

間には大きな隔たりがあるよ
658デフォルトの名無しさん
垢版 |
2022/08/22(月) 22:39:44.17ID:MD3tlYEu
オブジェクト指向の話に戻すと
オブジェクト指向では文字列オブジェクトの内部で配列を使ってるかを気にする必要はないよ
オブジェクトの内部に依存するプログラムを書かなければいけないならオブジェクトの設計がよろしくない
2022/08/22(月) 22:46:38.86ID:DzJdXfIv
>>653
>this selfくらい知っておけw
いや何言ってんのw
マジでw
2022/08/22(月) 22:48:11.12ID:mXL4Ef7K
>>654
実装っていうかね
最もコンピュータにとって素早く無駄なく処理できる構造体って、ようはCの文字列、バイナリだろ
正規表現ってのはC言語で使えば実感わくだろうけど、メモリーマップにある指定場所のバイナリを弄ってるんだよ
そしてC言語ってのは文字列と配列と構造体の敷居が非常に薄い
あとはもうわかるでしょw
難しい話だねw
2022/08/22(月) 22:52:49.94ID:mXL4Ef7K
>>659
経験した言語が少なすぎる・・・
this self省略したソースも見たことないのか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況