2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

新しいソフトウェア構築論を考えついた

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 ★