X



新しいソフトウェア構築論を考えついた
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:44:33.148ID:FrUcohQjM
結局のところ、目的があるわけだろ?
ならその目的をAnswerと仮定して
それに紐づくロジックをクラス内に規定し、外部要因をテンプレート化すればいいと思うんだ
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:45:33.535ID:nt8KAVjUp
天才ですわ
0003以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:46:38.423ID:FrUcohQjM
たとえば
アクセルを踏むと走る車
オブジェクト指向だと想像つくだろ?

これは

class Answer :motor
answer():motorpower × torq

こうなる
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:47:11.132ID:tnNWCUy0M
すまん、仕様変更でAnswerの型が変わったんだわ
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:47:42.178ID:FrUcohQjM
これはmotorが変わってもロジックは変わらないんだよ
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:48:16.099ID:tnNWCUy0M
IT屋なら全角括弧とかコロンとか使うなよな
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:48:21.341ID:FrUcohQjM
>>4
その回答もtemplateで戻せばいい
0008以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:48:37.500ID:FrUcohQjM
>>6
スマホだから仕方ないんだよ
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:49:50.445ID:tnNWCUy0M
>>8
どこが仕方ないのか分からない
スマホでも打てるけど……
0010以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:51:30.735ID:FrUcohQjM
たとえば、社員クラスが単価を持ってて、労働時間クラスに登録されたら、労働表に社員クラスの単価と労働表クラスの時間をかけて給与クラスの……みたいなオブジェクトに縛られることがなくなる

金払うanswer:社員,労働時間
answer=単価×時間

こうなる
templateですべてをつけて返すんだ
0011以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:51:34.617ID:Pxd2D6Fnd
何が新しいの?
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:51:51.536ID:FrUcohQjM
>>9
出ないんだよ
0013以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:52:17.040ID:4Lym3mTm0
オブジェクト指向じゃね?
0014以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:53:22.445ID:FrUcohQjM
>>11
関数型プログラミングでもオブジェクト指向プログラミングでも構造化プログラミングでもないから
回答はオブジェクト指向になりえず
テンプレートを使えない関数型プログラミングでもなく
内部にロジックを持たない構造化プログラミングでもないから新しい
0015以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:53:40.766ID:FrUcohQjM
>>13
回答はオブジェクトにならないよ
0016以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:54:06.379ID:91yCHgpD0
世間ではそれを引数を持ったメソッドと呼ぶ
0017以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:54:44.704ID:4Lym3mTm0
アンサーの型は?
0018以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:56:44.331ID:FrUcohQjM
オブジェクト指向だと社員クラス、給与クラス、会社グラス
社員クラスと給与クラスのインスタンスをもつ会社クラスの給与振り込み関数、みたいな感じになる

実体を持つものがクラスになる

それに対して、給料は社員単価かける時間って事実、fact要素と、その回答、Answerはメソッドになれてもクラスになれない

だから、逆にAnswerをクラスにして、factをtemplateにする手法を取るべきなんだよ
0019以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 07:57:37.690ID:FrUcohQjM
>>17
Answerはユーザ型のクラスになる
それを用いるクラスのtemplateになる
0020キュアヒセイキロウドウシャ ◆If1CqqUxLs
垢版 |
2022/04/21(木) 07:58:39.490ID:X5PmsqdGH
今は目的が不明確な仕事してるな……
稀によくある
0021以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:01:29.946ID:FrUcohQjM
>>20
その場合は不明確目的型、UAnswerを使うんだ。
UnknownAnswer型は不明確なままAnswerになる
0022以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:02:25.545ID:Pxd2D6Fnd
誰か解説よろ!
0023以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:03:23.209ID:FrUcohQjM
わけのわからない計算 UAnswer
わけのわからない計算2 UAnswer
UanswerQueに突っ込んで、UanswerとUanswerを使い計算してUanswerを作る

目的まで行けばAnswerにすればいい
0024以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:04:37.996ID:xRhZ20VG0
だいたいJAVAと変わんない
0025以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:05:55.761ID:FrUcohQjM
例えば

 鉄鋼クラス派生のニッケルクラスの素材比重計算メソッド

 鉄鋼クラス派生のアルミクラスの素材計算比重メソッド

こういうのから開放され
 素材計算クラス、テンプレートにアルミをつけるようになる
0026以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:06:16.702ID:FrUcohQjM
>>24
JAVAはオブジェクト指向になる
0027以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:06:52.776ID:FrUcohQjM
factor templateの切り口は普通のプログラミング経験者は思いつかないと思う
0028以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:08:14.427ID:FrUcohQjM
例題として
型番をユーザーが入れると、アマゾンと楽天市場から最安値を持ってきて表示するソフトがある

これのクラス構成を考えてみてよ
0029以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:09:42.335ID:0YTvbhDl0
最安値を取得するクラス
テンプレートに楽天やアマゾンをつけれ
0030以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:11:58.910ID:FrUcohQjM
ショップクラス
 virtual 情報取得
 最安値サーチ(型番)メソッド

  派生→アマゾンクラス
  派生→楽天クラス

アマゾンクラス
 情報取得メソッド
楽天クラス
 情報取得メソッド

最安値計算ソフトクラス
  ショップインスタンス配列
  全店舗最安値表示メソッド


こうなるだろ?
0031以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:12:28.953ID:FrUcohQjM
>>29
そうなる。やるじゃん
0032以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:12:44.135ID:FrUcohQjM
>>30
これがオブジェクト指向なんだよ
0033🐙🐙🐙🐙🐙🐙🐙🐙
垢版 |
2022/04/21(木) 08:14:05.160ID:ZmLhq9Cmr
ストラテジーパターンとは違うの?
0034以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:14:10.285ID:0YTvbhDl0
>>31
てへぺろ
0035以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:14:47.248ID:FrUcohQjM
これが今回の構造だと
 UAnswer アマゾン取得クラス
 UAnswer 楽天取得クラス
Answer 最安値取得 template アマゾン、楽天

こう書ける
0036以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:16:26.486ID:FrUcohQjM
タコじゃん、あぶねえ
0037以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:16:28.790ID:4Lym3mTm0
変数の型は?
0038以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:16:34.720ID:rFZkt5nrd
インターフェイス?
0039🐙🐙🐙🐙🐙🐙🐙🐙
垢版 |
2022/04/21(木) 08:16:46.039ID:ZmLhq9Cmr
>>36
は?
0040🐙🐙🐙🐙🐙🐙🐙🐙
垢版 |
2022/04/21(木) 08:17:43.178ID:ZmLhq9Cmr
抽象クラスとストラテジーパターンじゃん
0041以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:17:58.346ID:FrUcohQjM
>>37
全部を共用体で抱いたUAnswerとAnswerに、内部構造は通常組込型
0042以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:19:18.395ID:FrUcohQjM
>>38
インターフェースは楽天とアマゾンの処理の振る舞いを分けるための機構で
Answer,UAnswerは回答を得るための機構
0043以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:21:13.509ID:FrUcohQjM
使ってる言語機能と構築論は別物だよ

構造化プログラミングでもオブジェクト指向プログラミングでも抽象クラスは使うが構築方法が違うだろ
0044🐙🐙🐙🐙🐙🐙🐙🐙
垢版 |
2022/04/21(木) 08:22:34.431ID:ZmLhq9Cmr
型がキモいことになりそうで嫌だな
0045🐙🐙🐙🐙🐙🐙🐙🐙
垢版 |
2022/04/21(木) 08:23:49.266ID:ZmLhq9Cmr
その接頭語Uは何
0046以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:23:50.268ID:FrUcohQjM
いや、シンプルになると思うよ
クラスが1/10になると思う
0047以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:24:37.257ID:FrUcohQjM
Unknown
Answerではないが、Answerとして処理すべきもの
0048以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:24:37.762ID:pPIhn7vwd
まずクラス連呼してるってことはオブジェクト思考が必須条件なの?
0049🐙🐙🐙🐙🐙🐙🐙🐙
垢版 |
2022/04/21(木) 08:25:25.114ID:ZmLhq9Cmr
>>46
実装のときにってこと?
もっといいパターンあると思うよ
0050以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:25:30.820ID:FrUcohQjM
>>48
いや、オブジェクト指向ができるだけの言語知識があればいい
0052以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:37:39.650ID:pPIhn7vwd
1/10になる理屈は何でなの?
0053以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:41:04.117ID:jMly4Xmu0
テンプレートメタプログラミングと何が違うん
0054以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:42:06.078ID:E5DB2sF30
OOPというかインターフェイス志向と何が違うんだ?
0055以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 08:43:36.511ID:D7hTVIaSd
あー分かった
プログラミング習いたての超初心者が作った全部入りの巨大クラスに比べてってことか


最安値計算ソフトクラス
  ショップインスタンス配列
  全店舗最安値表示メソッド

こうなるだろ?


少なくとも俺はこうならない
0057以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 09:50:36.092ID:FrUcohQjM
>>55
いや、そうなってないなら厳密なオブジェクト指向になってない
0058以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 09:51:39.964ID:FrUcohQjM
オブジェクト指向はルールが遭って、アクセサを通してそのグラスが持つ属性しか置いてはならないんだよ
だからそうならないなら完全なオブジェクト指向になってない
0059以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 09:55:08.383ID:FrUcohQjM
最安値計算ソフトクラス←ソフト本体の定義
  ショップインスタンス配列←ショップの最安値メソッドをforeachで呼び出さないと得られない。なぜならソフト本体はショップクラスを持っているわけで、ソフトが最安値を持っているわけではないから。
  全店舗最安値表示メソッド←ソフトの機能として、全店舗最安値をどう操作するかの機能は最安値計算ソフトクラスを持つ必要がある。

こうなるだろ?

少なくとも俺はこうならない
↑オブジェクト指向はデメリットもあって、より効率的なコードはルールを破れば書けるよ。だがそれは初心者だからではなく無法なコードを書くバカのせいだから
0060以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 09:57:27.904ID:SwuhbxHCM
テンプレートがいっぱいできそう
0061以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 10:23:33.878ID:tQURtCKH0
実装をテンプレートに移譲しただけ
馬鹿でかテンプレートができて保守できなくなるね
0062以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 10:32:09.363ID:FrUcohQjM
>>60
出てくるよ
>>61
保守できるよ
0063🐙🐙🐙🐙🐙🐙🐙🐙
垢版 |
2022/04/21(木) 10:39:48.065ID:0LABuyvpr
結局何のメリットがあるの?
0064以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 11:10:39.584ID:tQURtCKH0
オブジェクト指向は、1960,70年代のソフトウェアクライシスの時にデータとメソッドが別々だったものを、データ側に着目してデータにそれ自身を操作するメソッドを追加しよう、そうすればデータの修正はデータと付随するメソッドのみになるから保守性上がるねという考え方で、そのために各オブジェクトが疎結合になるようにアクセッサ等が考え出された
そうして先人たちがソフトウェアクライシスを乗り越えたのに、またその時代に戻ろうとしてる愚策
0065以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 11:13:48.572ID:6hBDoays0
理論はいいけど実践してくれ
0066以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 11:26:38.614ID:SwuhbxHCM
>>62
結局テンプレートがいっぱいできるししかも実装が自明じゃなくなってる
実際answerの引数のパターンもいっぱいあるだろうし
メリットがよくわからない
0067以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/04/21(木) 11:32:00.893ID:LNKIyq8Gd
こういうマニアックな会話でも付いて行ける奴がこの時間帯にいるのすげぇ
■ このスレッドは過去ログ倉庫に格納されています

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