■ このスレッドは過去ログ倉庫に格納されています
新しいソフトウェア構築論を考えついた
- 1 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:44:33 ID:FrUcohQjM.net
- 結局のところ、目的があるわけだろ?
ならその目的をAnswerと仮定して
それに紐づくロジックをクラス内に規定し、外部要因をテンプレート化すればいいと思うんだ
- 2 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:45:33 ID:nt8KAVjUp.net
- 天才ですわ
- 3 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:46:38 ID:FrUcohQjM.net
- たとえば
アクセルを踏むと走る車
オブジェクト指向だと想像つくだろ?
これは
class Answer :motor
answer():motorpower × torq
こうなる
- 4 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:47:11 ID:tnNWCUy0M.net
- すまん、仕様変更でAnswerの型が変わったんだわ
- 5 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:47:42 ID:FrUcohQjM.net
- これはmotorが変わってもロジックは変わらないんだよ
- 6 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:48:16 ID:tnNWCUy0M.net
- IT屋なら全角括弧とかコロンとか使うなよな
- 7 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:48:21 ID:FrUcohQjM.net
- >>4
その回答もtemplateで戻せばいい
- 8 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:48:37 ID:FrUcohQjM.net
- >>6
スマホだから仕方ないんだよ
- 9 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:49:50 ID:tnNWCUy0M.net
- >>8
どこが仕方ないのか分からない
スマホでも打てるけど……
- 10 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:51:30 ID:FrUcohQjM.net
- たとえば、社員クラスが単価を持ってて、労働時間クラスに登録されたら、労働表に社員クラスの単価と労働表クラスの時間をかけて給与クラスの……みたいなオブジェクトに縛られることがなくなる
金払うanswer:社員,労働時間
answer=単価×時間
こうなる
templateですべてをつけて返すんだ
- 11 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:51:34 ID:Pxd2D6Fnd.net
- 何が新しいの?
- 12 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:51:51 ID:FrUcohQjM.net
- >>9
出ないんだよ
- 13 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:52:17 ID:4Lym3mTm0.net
- オブジェクト指向じゃね?
- 14 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:53:22 ID:FrUcohQjM.net
- >>11
関数型プログラミングでもオブジェクト指向プログラミングでも構造化プログラミングでもないから
回答はオブジェクト指向になりえず
テンプレートを使えない関数型プログラミングでもなく
内部にロジックを持たない構造化プログラミングでもないから新しい
- 15 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:53:40 ID:FrUcohQjM.net
- >>13
回答はオブジェクトにならないよ
- 16 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:54:06 ID:91yCHgpD0.net
- 世間ではそれを引数を持ったメソッドと呼ぶ
- 17 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:54:44 ID:4Lym3mTm0.net
- アンサーの型は?
- 18 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:56:44 ID:FrUcohQjM.net
- オブジェクト指向だと社員クラス、給与クラス、会社グラス
社員クラスと給与クラスのインスタンスをもつ会社クラスの給与振り込み関数、みたいな感じになる
実体を持つものがクラスになる
それに対して、給料は社員単価かける時間って事実、fact要素と、その回答、Answerはメソッドになれてもクラスになれない
だから、逆にAnswerをクラスにして、factをtemplateにする手法を取るべきなんだよ
- 19 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 07:57:37 ID:FrUcohQjM.net
- >>17
Answerはユーザ型のクラスになる
それを用いるクラスのtemplateになる
- 20 :キュアヒセイキロウドウシャ ◆If1CqqUxLs :2022/04/21(木) 07:58:39 ID:X5PmsqdGH.net
- 今は目的が不明確な仕事してるな……
稀によくある
- 21 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:01:29 ID:FrUcohQjM.net
- >>20
その場合は不明確目的型、UAnswerを使うんだ。
UnknownAnswer型は不明確なままAnswerになる
- 22 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:02:25 ID:Pxd2D6Fnd.net
- 誰か解説よろ!
- 23 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:03:23 ID:FrUcohQjM.net
- わけのわからない計算 UAnswer
わけのわからない計算2 UAnswer
UanswerQueに突っ込んで、UanswerとUanswerを使い計算してUanswerを作る
目的まで行けばAnswerにすればいい
- 24 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:04:37 ID:xRhZ20VG0.net
- だいたいJAVAと変わんない
- 25 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:05:55 ID:FrUcohQjM.net
- 例えば
鉄鋼クラス派生のニッケルクラスの素材比重計算メソッド
鉄鋼クラス派生のアルミクラスの素材計算比重メソッド
こういうのから開放され
素材計算クラス、テンプレートにアルミをつけるようになる
- 26 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:06:16 ID:FrUcohQjM.net
- >>24
JAVAはオブジェクト指向になる
- 27 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:06:52 ID:FrUcohQjM.net
- factor templateの切り口は普通のプログラミング経験者は思いつかないと思う
- 28 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:08:14 ID:FrUcohQjM.net
- 例題として
型番をユーザーが入れると、アマゾンと楽天市場から最安値を持ってきて表示するソフトがある
これのクラス構成を考えてみてよ
- 29 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:09:42 ID:0YTvbhDl0.net
- 最安値を取得するクラス
テンプレートに楽天やアマゾンをつけれ
- 30 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:11:58 ID:FrUcohQjM.net
- ショップクラス
virtual 情報取得
最安値サーチ(型番)メソッド
派生→アマゾンクラス
派生→楽天クラス
アマゾンクラス
情報取得メソッド
楽天クラス
情報取得メソッド
最安値計算ソフトクラス
ショップインスタンス配列
全店舗最安値表示メソッド
こうなるだろ?
- 31 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:12:28 ID:FrUcohQjM.net
- >>29
そうなる。やるじゃん
- 32 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:12:44 ID:FrUcohQjM.net
- >>30
これがオブジェクト指向なんだよ
- 33 :🐙🐙🐙🐙🐙🐙🐙🐙:2022/04/21(木) 08:14:05 ID:ZmLhq9Cmr.net
- ストラテジーパターンとは違うの?
- 34 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:14:10 ID:0YTvbhDl0.net
- >>31
てへぺろ
- 35 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:14:47 ID:FrUcohQjM.net
- これが今回の構造だと
UAnswer アマゾン取得クラス
UAnswer 楽天取得クラス
Answer 最安値取得 template アマゾン、楽天
こう書ける
- 36 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:16:26 ID:FrUcohQjM.net
- タコじゃん、あぶねえ
- 37 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:16:28 ID:4Lym3mTm0.net
- 変数の型は?
- 38 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:16:34 ID:rFZkt5nrd.net
- インターフェイス?
- 39 :🐙🐙🐙🐙🐙🐙🐙🐙:2022/04/21(木) 08:16:46 ID:ZmLhq9Cmr.net
- >>36
は?
- 40 :🐙🐙🐙🐙🐙🐙🐙🐙:2022/04/21(木) 08:17:43 ID:ZmLhq9Cmr.net
- 抽象クラスとストラテジーパターンじゃん
- 41 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:17:58 ID:FrUcohQjM.net
- >>37
全部を共用体で抱いたUAnswerとAnswerに、内部構造は通常組込型
- 42 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:19:18 ID:FrUcohQjM.net
- >>38
インターフェースは楽天とアマゾンの処理の振る舞いを分けるための機構で
Answer,UAnswerは回答を得るための機構
- 43 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:21:13 ID:FrUcohQjM.net
- 使ってる言語機能と構築論は別物だよ
構造化プログラミングでもオブジェクト指向プログラミングでも抽象クラスは使うが構築方法が違うだろ
- 44 :🐙🐙🐙🐙🐙🐙🐙🐙:2022/04/21(木) 08:22:34.431 ID:ZmLhq9Cmr.net
- 型がキモいことになりそうで嫌だな
- 45 :🐙🐙🐙🐙🐙🐙🐙🐙:2022/04/21(木) 08:23:49.266 ID:ZmLhq9Cmr.net
- その接頭語Uは何
- 46 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:23:50.268 ID:FrUcohQjM.net
- いや、シンプルになると思うよ
クラスが1/10になると思う
- 47 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:24:37.257 ID:FrUcohQjM.net
- Unknown
Answerではないが、Answerとして処理すべきもの
- 48 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:24:37.762 ID:pPIhn7vwd.net
- まずクラス連呼してるってことはオブジェクト思考が必須条件なの?
- 49 :🐙🐙🐙🐙🐙🐙🐙🐙:2022/04/21(木) 08:25:25.114 ID:ZmLhq9Cmr.net
- >>46
実装のときにってこと?
もっといいパターンあると思うよ
- 50 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:25:30.820 ID:FrUcohQjM.net
- >>48
いや、オブジェクト指向ができるだけの言語知識があればいい
- 51 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:29:50.898 ID:qIqZ/LlZd.net
- まぁ、中途半端に知った気になってる無知にはいろんなことが新しく感じる時期があるから生暖かく見守ろうや
- 52 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:37:39.650 ID:pPIhn7vwd.net
- 1/10になる理屈は何でなの?
- 53 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:41:04.117 ID:jMly4Xmu0.net
- テンプレートメタプログラミングと何が違うん
- 54 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:42:06.078 ID:E5DB2sF30.net
- OOPというかインターフェイス志向と何が違うんだ?
- 55 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 08:43:36.511 ID:D7hTVIaSd.net
- あー分かった
プログラミング習いたての超初心者が作った全部入りの巨大クラスに比べてってことか
最安値計算ソフトクラス
ショップインスタンス配列
全店舗最安値表示メソッド
こうなるだろ?
↑
少なくとも俺はこうならない
- 56 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 09:35:50 ID:Er3SU2mZM.net
- 普通のOOPと違いが分からない
- 57 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 09:50:36.092 ID:FrUcohQjM.net
- >>55
いや、そうなってないなら厳密なオブジェクト指向になってない
- 58 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 09:51:39.964 ID:FrUcohQjM.net
- オブジェクト指向はルールが遭って、アクセサを通してそのグラスが持つ属性しか置いてはならないんだよ
だからそうならないなら完全なオブジェクト指向になってない
- 59 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 09:55:08.383 ID:FrUcohQjM.net
- 最安値計算ソフトクラス←ソフト本体の定義
ショップインスタンス配列←ショップの最安値メソッドをforeachで呼び出さないと得られない。なぜならソフト本体はショップクラスを持っているわけで、ソフトが最安値を持っているわけではないから。
全店舗最安値表示メソッド←ソフトの機能として、全店舗最安値をどう操作するかの機能は最安値計算ソフトクラスを持つ必要がある。
こうなるだろ?
少なくとも俺はこうならない
↑オブジェクト指向はデメリットもあって、より効率的なコードはルールを破れば書けるよ。だがそれは初心者だからではなく無法なコードを書くバカのせいだから
- 60 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 09:57:27.904 ID:SwuhbxHCM.net
- テンプレートがいっぱいできそう
- 61 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 10:23:33.878 ID:tQURtCKH0.net
- 実装をテンプレートに移譲しただけ
馬鹿でかテンプレートができて保守できなくなるね
- 62 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 10:32:09.363 ID:FrUcohQjM.net
- >>60
出てくるよ
>>61
保守できるよ
- 63 :🐙🐙🐙🐙🐙🐙🐙🐙:2022/04/21(木) 10:39:48 ID:0LABuyvpr.net
- 結局何のメリットがあるの?
- 64 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 11:10:39 ID:tQURtCKH0.net
- オブジェクト指向は、1960,70年代のソフトウェアクライシスの時にデータとメソッドが別々だったものを、データ側に着目してデータにそれ自身を操作するメソッドを追加しよう、そうすればデータの修正はデータと付随するメソッドのみになるから保守性上がるねという考え方で、そのために各オブジェクトが疎結合になるようにアクセッサ等が考え出された
そうして先人たちがソフトウェアクライシスを乗り越えたのに、またその時代に戻ろうとしてる愚策
- 65 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 11:13:48.572 ID:6hBDoays0.net
- 理論はいいけど実践してくれ
- 66 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 11:26:38.614 ID:SwuhbxHCM.net
- >>62
結局テンプレートがいっぱいできるししかも実装が自明じゃなくなってる
実際answerの引数のパターンもいっぱいあるだろうし
メリットがよくわからない
- 67 :以下、?ちゃんねるからVIPがお送りします:2022/04/21(木) 11:32:00 ID:LNKIyq8Gd.net
- こういうマニアックな会話でも付いて行ける奴がこの時間帯にいるのすげぇ
総レス数 67
15 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★