前スレ
オブジェクト指向システムの設計 172
http://mevius.2ch.net/test/read.cgi/tech/1467992113
オブジェクト指向システムの設計 173
http://mevius.2ch.net/test/read.cgi/tech/1502182334/
類似スレ
手続き型システムの設計 1
http://mevius.2ch.net/test/read.cgi/tech/1500282714
探検
オブジェクト指向システムの設計 174 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
2017/09/26(火) 07:20:38.98ID:qu+DPehL
828デフォルトの名無しさん
2017/11/10(金) 22:57:56.01ID:7i6+bCDW >>827
ガチアスペルガー症候群患者乙
ガチアスペルガー症候群患者乙
829デフォルトの名無しさん
2017/11/10(金) 23:30:07.23ID:Ww/tyRwt どうやったらこんなつまんないレスを返せるんだよ...
重症やな w
重症やな w
830デフォルトの名無しさん
2017/11/10(金) 23:31:12.69ID:8c9+Jy54 どうやったらこんなつまんないレスを返せるんだよ...
重症やな w
重症やな w
831デフォルトの名無しさん
2017/11/10(金) 23:34:23.55ID:x9Tf8I1u832デフォルトの名無しさん
2017/11/10(金) 23:43:05.04ID:hftGMpVC ガチとか低能過ぎるやろ
834デフォルトの名無しさん
2017/11/11(土) 00:30:35.12ID:lcuwgMKR ガチじゃなくてガチンコな
835デフォルトの名無しさん
2017/11/11(土) 00:42:07.97ID:Sl8bQtQ2 ガはいらなくない?
836デフォルトの名無しさん
2017/11/11(土) 01:09:18.75ID:QwHnz2ZY >>832
オッサンか?
オッサンか?
837デフォルトの名無しさん
2017/11/11(土) 01:17:31.05ID:TdmokUpS ひょっとしてガチが若いとか思ってるんじゃないよな w
838デフォルトの名無しさん
2017/11/11(土) 01:21:19.20ID:QwHnz2ZY 若いと思ってるっつーか実際若いしな
ガチとか使う奴=低脳、バカっぽいって発想がオッサンぽい
ガチとか使う奴=低脳、バカっぽいって発想がオッサンぽい
839デフォルトの名無しさん
2017/11/11(土) 04:47:12.59ID:TdyG/ulQ アスペ指向スレッドの会話 174
840デフォルトの名無しさん
2017/11/11(土) 09:58:35.10ID:TdmokUpS >>838
ごめん、どうみてもお前の方がおっさんだよ ww
ごめん、どうみてもお前の方がおっさんだよ ww
841デフォルトの名無しさん
2017/11/11(土) 10:09:10.57ID:Lx/BUCVW842デフォルトの名無しさん
2017/11/11(土) 11:01:18.10ID:Zi5KnTyx アスペクト指向プログラミングってのは具体的にどんなのかよく分からんわ
興味ないから
興味ないから
843デフォルトの名無しさん
2017/11/11(土) 13:24:33.88ID:n/0UZzMc 興味ないなら知る必要ない
844デフォルトの名無しさん
2017/11/11(土) 18:10:49.46ID:QwHnz2ZY >>840
え?おまえって未成年か何か?
え?おまえって未成年か何か?
845デフォルトの名無しさん
2017/11/11(土) 18:34:36.42ID:TdmokUpS もうそのレスがおっさん臭い w
846デフォルトの名無しさん
2017/11/11(土) 18:52:46.73ID:EGHwL5V1 おっさんは嫌いかい?
847デフォルトの名無しさん
2017/11/11(土) 18:53:43.53ID:EGHwL5V1 おっさんは知識と経験と優しさでできています
残りの9割は脂肪です
残りの9割は脂肪です
848デフォルトの名無しさん
2017/11/11(土) 19:41:06.94ID:nQmTPzFJ おっさんは別に嫌いじゃないけど>>838みたく勘違いしてる奴はキモい
849デフォルトの名無しさん
2017/11/11(土) 21:36:07.55ID:TdyG/ulQ オッサン指向ガチムチな設計 174
850デフォルトの名無しさん
2017/11/12(日) 11:03:42.20ID:hG4wTZ8S おっさん煽りでスレ消化して楽しいんだろうか
851デフォルトの名無しさん
2017/11/12(日) 11:10:51.09ID:H0u2BwIs アスペ志向プログラミング。
852デフォルトの名無しさん
2017/11/12(日) 13:09:56.66ID:CLpxq670 >>849
ホモはお帰りください
ホモはお帰りください
853デフォルトの名無しさん
2017/12/05(火) 13:42:11.58ID:x/Ziu4N3 やっぱり青木 淳いいな
若い時に心酔して、経験積むうちに忘れていたが
ようやく言わんとすることが分かつて来た
若い時に心酔して、経験積むうちに忘れていたが
ようやく言わんとすることが分かつて来た
854デフォルトの名無しさん
2018/01/04(木) 13:45:00.27ID:rLoh+wxC 2ちゃんねる自体、どこかの機能でデザインパターンつかわれてるの?
855デフォルトの名無しさん
2018/01/05(金) 18:43:53.01ID:kDZQv7Ud >>854
つこてるマメがちがうよ
つこてるマメがちがうよ
856デフォルトの名無しさん
2018/01/27(土) 22:10:53.07ID:FKF1aZVQ クラス図とER図の違いって継承関係が
あるかないかだと思ってるんだけど、
DBのテーブルって継承はないわけじゃん、
継承とか知識レベル/操作レベルってDB設計的には
どう対応するの?
あるかないかだと思ってるんだけど、
DBのテーブルって継承はないわけじゃん、
継承とか知識レベル/操作レベルってDB設計的には
どう対応するの?
857デフォルトの名無しさん
2018/01/28(日) 07:50:43.37ID:JtfoYsxK858デフォルトの名無しさん
2018/01/28(日) 08:06:43.20ID:9retBgHA CRUDは外部的だね
データ保護に対しては各種制約を設けるしかない
それらを言語側で埋めるのがORマッピングだったりDAOパターンだったり
データ保護に対しては各種制約を設けるしかない
それらを言語側で埋めるのがORマッピングだったりDAOパターンだったり
859デフォルトの名無しさん
2018/01/28(日) 20:53:59.18ID:iKmgvq7C >>857
いやそれは分かったが実際のテーブルはどうするんだよ
親クラスと 子クラスA 子クラスBのテーブル全部別々に
作るの?
ここでいいう親子は継承の親子関係のことで
外部キーでの関連のことではないものとする。
いやそれは分かったが実際のテーブルはどうするんだよ
親クラスと 子クラスA 子クラスBのテーブル全部別々に
作るの?
ここでいいう親子は継承の親子関係のことで
外部キーでの関連のことではないものとする。
860デフォルトの名無しさん
2018/01/28(日) 21:10:28.78ID:LAVjxJs1 考え方次第かな?
一つのテーブルに全カラム持たせるか差分情報だけのテーブルを連結するか
一つのテーブルに全カラム持たせるか差分情報だけのテーブルを連結するか
861デフォルトの名無しさん
2018/03/31(土) 13:51:12.70ID:O6Ruc86y オブジェクト指向の考え方を教えてください
指定した2点を通る線を描画するプログラムを作ろうと思っています。
・色
・線の太さ
こんなプロパティを持つクラス「DrawLine」を考えています。
さらにこのクラスを継承を用いて
・2点間のみ線を引く線分クラス
・2点を通る直線クラス
・2点のうち片方を始点に持つ半直線クラス
を派生させようかと思っています。
これとは別に描画のインターフェースを担うクラス「LineInterface」を用意しようと思っています
・線を引く
・線を消す
・2点の位置を変更を受け付ける
・色の変更を受け付ける
・線の太さの変更を受け付ける
・線分、直線、半直線の変更を受け付ける
さて、ここで疑問なのですが、インターフェースを担うクラス「LineInterface」は
内部に色や線の太さ、線分・直線・半直線の状態を記憶するbool値型のフラグ
ないしはenum型の値(線分・直線・半直線)を持つべきでしょうか?
最初はこの手のフラグには頼らない設計を心がけてみました。
色、線の太さ、線分・直線・半直線、これらの状態が変更されるたびに
クラス「DrawLine」のインスタンスを作成し直せばいいと思ったからです。
ただすぐに壁にぶち当たりまして、たとえば色を変更しようと思いクラス「DrawLine」の
インスタンスを作り直そうと思ったとき、それが線分クラスなのか半直線クラスなのか
直線クラスなのかは状態を記録しておかないと判断できないことに気付きました。
インターフェースクラスには最低限の内部状態はbool値enum値フラグとして保持しておくべきでしょうか?
指定した2点を通る線を描画するプログラムを作ろうと思っています。
・色
・線の太さ
こんなプロパティを持つクラス「DrawLine」を考えています。
さらにこのクラスを継承を用いて
・2点間のみ線を引く線分クラス
・2点を通る直線クラス
・2点のうち片方を始点に持つ半直線クラス
を派生させようかと思っています。
これとは別に描画のインターフェースを担うクラス「LineInterface」を用意しようと思っています
・線を引く
・線を消す
・2点の位置を変更を受け付ける
・色の変更を受け付ける
・線の太さの変更を受け付ける
・線分、直線、半直線の変更を受け付ける
さて、ここで疑問なのですが、インターフェースを担うクラス「LineInterface」は
内部に色や線の太さ、線分・直線・半直線の状態を記憶するbool値型のフラグ
ないしはenum型の値(線分・直線・半直線)を持つべきでしょうか?
最初はこの手のフラグには頼らない設計を心がけてみました。
色、線の太さ、線分・直線・半直線、これらの状態が変更されるたびに
クラス「DrawLine」のインスタンスを作成し直せばいいと思ったからです。
ただすぐに壁にぶち当たりまして、たとえば色を変更しようと思いクラス「DrawLine」の
インスタンスを作り直そうと思ったとき、それが線分クラスなのか半直線クラスなのか
直線クラスなのかは状態を記録しておかないと判断できないことに気付きました。
インターフェースクラスには最低限の内部状態はbool値enum値フラグとして保持しておくべきでしょうか?
862デフォルトの名無しさん
2018/03/31(土) 14:36:01.69ID:c97ae/y4 筋が悪い
863デフォルトの名無しさん
2018/03/31(土) 15:08:51.89ID:jo8oJ0bD864デフォルトの名無しさん
2018/03/31(土) 15:12:00.87ID:O6Ruc86y 出直してきまつ(´;ω;`)ウゥッ
865デフォルトの名無しさん
2018/03/31(土) 15:19:37.25ID:bjBtCztz なぜか観てしまう!!サバイバル系youtuberまとめ
http://tokyohitori.hatenablog.com/entry/2016/10/01/102830
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD
https://weekly.ascii.jp/elem/000/000/305/305548/
専業YouTuberがYouTubeでの稼ぎ方具体的に教えます。ネタ切れしない方法は〇〇するだけ。
https://www.youtube.com/watch?v=Co9a9fHfReo
YouTubeで稼げるジャンルは〇〇動画です。YouTube講座
https://www.youtube.com/watch?v=_Nps8xb5czQ
http://tokyohitori.hatenablog.com/entry/2016/10/01/102830
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD
https://weekly.ascii.jp/elem/000/000/305/305548/
専業YouTuberがYouTubeでの稼ぎ方具体的に教えます。ネタ切れしない方法は〇〇するだけ。
https://www.youtube.com/watch?v=Co9a9fHfReo
YouTubeで稼げるジャンルは〇〇動画です。YouTube講座
https://www.youtube.com/watch?v=_Nps8xb5czQ
866デフォルトの名無しさん
2018/03/31(土) 15:23:11.79ID:c97ae/y4 test
867デフォルトの名無しさん
2018/03/31(土) 15:28:08.71ID:vu/Huc/I 長文書いてしまう人はもうちょっと図や箇条書きして考えまとめた方がいいな
868デフォルトの名無しさん
2018/03/31(土) 16:04:12.88ID:fnj+62QA とりあえずC#で書くとこんな感じか
class abstract LineBase{
public float width{get; private set;}
public Color color{get; private set;}
public Point start{get; private set;}
public Point end{get; private set;}
// 初期値をセット
public LineBase(引数){}
public LineBase(LineBase instance){}
// 共通メソッドを実装
public void SetWidth(int width){}
public void SetColor(Color col){}
public void SetPoint(Point start, Point end){}
public void Eraser(){}
public virtual void Draw(){} // 仮想メソッド
}
class SegmentLine: LineBase{
public SegmentLine(引数): base(引数){}
public SegmentLine(LineBase instance): base(instance){}
public overrider void Draw(){} // 線分の描画処理を実装
}
class StraightLine: LineBase{
public SegmentLine(引数): base(引数){}
public SegmentLine(LineBase instance): base(instance){}
public overrider void Draw(){} // 直線の描画処理を実装
}
class abstract LineBase{
public float width{get; private set;}
public Color color{get; private set;}
public Point start{get; private set;}
public Point end{get; private set;}
// 初期値をセット
public LineBase(引数){}
public LineBase(LineBase instance){}
// 共通メソッドを実装
public void SetWidth(int width){}
public void SetColor(Color col){}
public void SetPoint(Point start, Point end){}
public void Eraser(){}
public virtual void Draw(){} // 仮想メソッド
}
class SegmentLine: LineBase{
public SegmentLine(引数): base(引数){}
public SegmentLine(LineBase instance): base(instance){}
public overrider void Draw(){} // 線分の描画処理を実装
}
class StraightLine: LineBase{
public SegmentLine(引数): base(引数){}
public SegmentLine(LineBase instance): base(instance){}
public overrider void Draw(){} // 直線の描画処理を実装
}
869デフォルトの名無しさん
2018/03/31(土) 16:07:03.50ID:fnj+62QA >>861
何のクラスかは正直どうでもいい
こんな感じで基底型のインスタンスをコンストラクタに渡してコピーしとけ
// 線分クラスを生成
LineBase segment = new SegmentLine(初期値を渡す);
// 線分のデータで直線クラスを生成
LineBase straight = new StraightLine(segment);
何のクラスかは正直どうでもいい
こんな感じで基底型のインスタンスをコンストラクタに渡してコピーしとけ
// 線分クラスを生成
LineBase segment = new SegmentLine(初期値を渡す);
// 線分のデータで直線クラスを生成
LineBase straight = new StraightLine(segment);
870デフォルトの名無しさん
2018/03/31(土) 16:42:41.66ID:O6Ruc86y >>869
最初線分を描いて、途中で気が変わってやっぱり直線を描きたいな、となったときは
インスタンスsegmentを消去したのち、インスタンスstraightを選択してDraw()を実行する
という理解でよろしいでしょうか?
さらにその状態で色を変えたいときはインスタンスstraightを選んだまま色を変えるということでしょうか?
インスタンスsegmentとインスタンスstraight、いま選んでいるのはどちらか?という情報は
どこかに格納しておくべきでしょうか?
最初線分を描いて、途中で気が変わってやっぱり直線を描きたいな、となったときは
インスタンスsegmentを消去したのち、インスタンスstraightを選択してDraw()を実行する
という理解でよろしいでしょうか?
さらにその状態で色を変えたいときはインスタンスstraightを選んだまま色を変えるということでしょうか?
インスタンスsegmentとインスタンスstraight、いま選んでいるのはどちらか?という情報は
どこかに格納しておくべきでしょうか?
871デフォルトの名無しさん
2018/03/31(土) 19:12:42.71ID:NUZUQ+fU >>861
・線の引き方の違いを継承で実装する
・線のデータをフラグで持つ
特にこの二点はオブジェクト指向として筋が良くない
・線の引き方はメソッドで実装
・データはフラグじゃなくオブジェクトで渡す
こっちの方がオススメ
・線の引き方の違いを継承で実装する
・線のデータをフラグで持つ
特にこの二点はオブジェクト指向として筋が良くない
・線の引き方はメソッドで実装
・データはフラグじゃなくオブジェクトで渡す
こっちの方がオススメ
872デフォルトの名無しさん
2018/03/31(土) 19:51:14.18ID:O6Ruc86y >>871
クラス「DrawLine」は単純なDraw()メソッドは廃止して代わりに
DrawStraightLine()…直線を描画するメソッド
DrawSegmentLine()…線分を描画するメソッド
DrawHalfLine()…半直線を描画するメソッド
を実装し、インターフェースからクラス「DrawLine」には
・2点の情報が格納された構造体
・色、線の太さの情報が格納された構造体
を渡す。
という理解でよろしいでしょうか?
ちなみにインターフェース上では線の引き方はフラグ等で格納しておいても構いませんか?
ユーザーがインターフェースに対して
SetSegmentLine()
などの命令を実行したらそれに応じてbool値に記憶させておくというのが常道でしょうか?
クラス「DrawLine」は単純なDraw()メソッドは廃止して代わりに
DrawStraightLine()…直線を描画するメソッド
DrawSegmentLine()…線分を描画するメソッド
DrawHalfLine()…半直線を描画するメソッド
を実装し、インターフェースからクラス「DrawLine」には
・2点の情報が格納された構造体
・色、線の太さの情報が格納された構造体
を渡す。
という理解でよろしいでしょうか?
ちなみにインターフェース上では線の引き方はフラグ等で格納しておいても構いませんか?
ユーザーがインターフェースに対して
SetSegmentLine()
などの命令を実行したらそれに応じてbool値に記憶させておくというのが常道でしょうか?
873デフォルトの名無しさん
2018/04/01(日) 03:19:52.65ID:qrIxuUzF >>872
前半はそう。継承を使うのはダメじゃないんだけど
継承を使いこなすのは非常に難しいので
慣れるまではメソッドをたくさん生やす方が分かりやすい
後半はフラグとかいらない
そういう発想がまだないんだろうけど
デザインパターン勉強するとよく分かる
オブジェクトの生成と使用を分けて
なるべく値の設定を生成の一回だけで済ますと
フラグの不整合のバグが減ってソフトが安定する
これがオブジェクト指向を使うメリットのひとつ
特にオブジェクトが常に動き回るゲームとかじゃなくて
作図ソフトだったら基本的に一度オブジェクトを作ったら
そのまま静的な図になるから位置は不変データにして
もし位置を修正するときにはオブジェクトを再生成する
なんでそうするかっていうとフラグがバラバラ増えていくと
どこで値を変更したのか不明で後でメンテが困難になってくるから
できる限り生成時に一括で設定するようにするの
前半はそう。継承を使うのはダメじゃないんだけど
継承を使いこなすのは非常に難しいので
慣れるまではメソッドをたくさん生やす方が分かりやすい
後半はフラグとかいらない
そういう発想がまだないんだろうけど
デザインパターン勉強するとよく分かる
オブジェクトの生成と使用を分けて
なるべく値の設定を生成の一回だけで済ますと
フラグの不整合のバグが減ってソフトが安定する
これがオブジェクト指向を使うメリットのひとつ
特にオブジェクトが常に動き回るゲームとかじゃなくて
作図ソフトだったら基本的に一度オブジェクトを作ったら
そのまま静的な図になるから位置は不変データにして
もし位置を修正するときにはオブジェクトを再生成する
なんでそうするかっていうとフラグがバラバラ増えていくと
どこで値を変更したのか不明で後でメンテが困難になってくるから
できる限り生成時に一括で設定するようにするの
874デフォルトの名無しさん
2018/04/01(日) 11:40:58.30ID:eiVy9NnE >>873
こんな感じでどうでしょうか。
インターフェースを担うクラス「LineInterface」から
実際に線を描画するクラス「DrawLine」に向けて
新たに以下のような3番目のクラス「Information」を作成し、このインスタンスを投げようかと思います。
クラス「Information」には2点の位置座標、色、線の太さ、半直線か直線か線分かの情報が格納されています。
Class Information
{
public:
double x1, y1, x2, y2;
int color;
int lineWidth;
bool leftExtendFlag, rightExtendFlag;
};
線を描画するのに必要な情報は全てこのクラスに格納・隠蔽します。
ユーザーから線に関する新たな情報を受け付けたら
こんな感じでどうでしょうか。
インターフェースを担うクラス「LineInterface」から
実際に線を描画するクラス「DrawLine」に向けて
新たに以下のような3番目のクラス「Information」を作成し、このインスタンスを投げようかと思います。
クラス「Information」には2点の位置座標、色、線の太さ、半直線か直線か線分かの情報が格納されています。
Class Information
{
public:
double x1, y1, x2, y2;
int color;
int lineWidth;
bool leftExtendFlag, rightExtendFlag;
};
線を描画するのに必要な情報は全てこのクラスに格納・隠蔽します。
ユーザーから線に関する新たな情報を受け付けたら
875デフォルトの名無しさん
2018/04/01(日) 11:44:40.29ID:eiVy9NnE あ、失礼。途中で書き込んでしまいましたorz
ユーザーから線に関する新たな情報を受け付けたら
クラスInformationに用意した専用メソッドを通してメンバ変数にデータがセットされます。
直接メンバ変数を操作するわけではないので(bool型のフラグを直接いじることはない)
安全面でも良いかと
このインスタンスを受け取った「DrawLine」クラスはメンバ変数を直接読み込み(publicで
宣言したのでアクセス可能)、線を描画します。
書き換えはせず、新たなデータを受け取とるたびに「DrawLine」クラスのインスタンスを
新規に作成しようと思います(なのでデータはコンストラクタで受け取るのみ)。
こんな感じでオブジェクト指向になるでしょうか?
ユーザーから線に関する新たな情報を受け付けたら
クラスInformationに用意した専用メソッドを通してメンバ変数にデータがセットされます。
直接メンバ変数を操作するわけではないので(bool型のフラグを直接いじることはない)
安全面でも良いかと
このインスタンスを受け取った「DrawLine」クラスはメンバ変数を直接読み込み(publicで
宣言したのでアクセス可能)、線を描画します。
書き換えはせず、新たなデータを受け取とるたびに「DrawLine」クラスのインスタンスを
新規に作成しようと思います(なのでデータはコンストラクタで受け取るのみ)。
こんな感じでオブジェクト指向になるでしょうか?
876873
2018/04/01(日) 20:00:03.25ID:qrIxuUzF877デフォルトの名無しさん
2018/04/01(日) 22:44:15.70ID:eiVy9NnE >>876
> 細かいとこでキリがないけど
> でもそれで組んでみればいいんじゃないの
了解しました、この方向で組んでみます
> OOPの要点を一言でいうと疎結合にすることで
> ゴチャゴチャするようだったらまた設計を見直していく
プログラムに関する本はちまたに溢れかえっているんですが
オブジェクト指向の設計に関する本ってなかなか見かけませんね
学ぶだけでなく説明する方も難しいのかもしれません>オブジェクト指向
> 細かいとこでキリがないけど
> でもそれで組んでみればいいんじゃないの
了解しました、この方向で組んでみます
> OOPの要点を一言でいうと疎結合にすることで
> ゴチャゴチャするようだったらまた設計を見直していく
プログラムに関する本はちまたに溢れかえっているんですが
オブジェクト指向の設計に関する本ってなかなか見かけませんね
学ぶだけでなく説明する方も難しいのかもしれません>オブジェクト指向
878デフォルトの名無しさん
2018/04/01(日) 23:09:11.53ID:qrIxuUzF879デフォルトの名無しさん
2018/04/01(日) 23:15:35.41ID:eiVy9NnE >>878
そうでしたか、本屋さん行って見ます(´・ω・`)ノ
そうでしたか、本屋さん行って見ます(´・ω・`)ノ
880デフォルトの名無しさん
2018/04/01(日) 23:54:31.59ID:voVzLJKC >>877
多分そもそもオブジェクト指向を「学ぶもの」と思っている時点で間違い。
あれは悟るものだ。
>>861
おそらくOOPの練習なのだろうけど、そもそも題材も悪い。
オブジェクトの切り方は例えば .NET でも見てみればいいでしょ。
Graphicクラスに全部メソッドが付いている。
https://msdn.microsoft.com/ja-jp/library/system.drawing.graphics(v=vs.110).aspx
というか、線分と半直線と直線を別のオブジェクトにする意味が分からない。
余計使いにくくなるだけだ。何をどう抽象化(共通化)すべきなのか、全く分かってない。
ただな、OOPを「初心者」が理解するのは不可能なんだよ。
心は>>873に書いてあるとおりだが、要するに、
・なかなか複雑になってメンテが辛くなってきた物を、多少なんとかするもの
であって、
初心者が組める範囲で複雑になることなんてあり得ないから、理解しようがない。
だから、「頭でっかち」方式で最初に学ぶのはかなり無理。
デタラメでもいいからやってみて、
自分で「ああこういう事をすると苦労するのか」と地雷を全部踏んでみれば納得するだろうし、
おそらくそっちの方が早い。そうしているうちに上達もするだろうし。
OOPで一番重要なのは「分割」だ。(粗結合化)
ところが初心者が組める規模では「分割」する必要なんてないから、
初心者は常に「継承」をこねくり回して練習しようとするが、それは明確な間違いだ。
それをいくらやっても意味がない。
「分割」しないと手に負えない規模の物を早く組めるようになり、
それを上手く「分割」出来るように努力することだ。
ここら辺の話は「プログラミング言語C++」に書いてある。
(今のOOPはC++作者が再定義したものだから当然ではあるが)
多分そもそもオブジェクト指向を「学ぶもの」と思っている時点で間違い。
あれは悟るものだ。
>>861
おそらくOOPの練習なのだろうけど、そもそも題材も悪い。
オブジェクトの切り方は例えば .NET でも見てみればいいでしょ。
Graphicクラスに全部メソッドが付いている。
https://msdn.microsoft.com/ja-jp/library/system.drawing.graphics(v=vs.110).aspx
というか、線分と半直線と直線を別のオブジェクトにする意味が分からない。
余計使いにくくなるだけだ。何をどう抽象化(共通化)すべきなのか、全く分かってない。
ただな、OOPを「初心者」が理解するのは不可能なんだよ。
心は>>873に書いてあるとおりだが、要するに、
・なかなか複雑になってメンテが辛くなってきた物を、多少なんとかするもの
であって、
初心者が組める範囲で複雑になることなんてあり得ないから、理解しようがない。
だから、「頭でっかち」方式で最初に学ぶのはかなり無理。
デタラメでもいいからやってみて、
自分で「ああこういう事をすると苦労するのか」と地雷を全部踏んでみれば納得するだろうし、
おそらくそっちの方が早い。そうしているうちに上達もするだろうし。
OOPで一番重要なのは「分割」だ。(粗結合化)
ところが初心者が組める規模では「分割」する必要なんてないから、
初心者は常に「継承」をこねくり回して練習しようとするが、それは明確な間違いだ。
それをいくらやっても意味がない。
「分割」しないと手に負えない規模の物を早く組めるようになり、
それを上手く「分割」出来るように努力することだ。
ここら辺の話は「プログラミング言語C++」に書いてある。
(今のOOPはC++作者が再定義したものだから当然ではあるが)
881デフォルトの名無しさん
2018/04/01(日) 23:59:53.19ID:eiVy9NnE882デフォルトの名無しさん
2018/04/02(月) 00:22:40.39ID:zddvN9B7 >>881
まあ君はやろうとしているだけかなりマシだよ。
やろうとせずに知ろうとだけする奴も多いからね。
そもそも、
・これこれこうで、後はよきにはからえ
と処理を投げられる物をオブジェクトにするべきであって、
逆に、そうでない物をオブジェクトにしても余計に話が混乱するだけ。
「隠蔽」も、初心者はとにかく「隠蔽」しようとするが、これも間違いで、
(外部から使うときに)そもそも見たくも知りたくもない物を「隠蔽」するんだよ。
といっても、やらないと分からないだろうから、まずは頑張れ。
まあ君はやろうとしているだけかなりマシだよ。
やろうとせずに知ろうとだけする奴も多いからね。
そもそも、
・これこれこうで、後はよきにはからえ
と処理を投げられる物をオブジェクトにするべきであって、
逆に、そうでない物をオブジェクトにしても余計に話が混乱するだけ。
「隠蔽」も、初心者はとにかく「隠蔽」しようとするが、これも間違いで、
(外部から使うときに)そもそも見たくも知りたくもない物を「隠蔽」するんだよ。
といっても、やらないと分からないだろうから、まずは頑張れ。
883デフォルトの名無しさん
2018/04/02(月) 04:18:10.81ID:3ewhMOuh >OOPはC++作者が再定義したもの
元凶だよな
Javaも再定義してるけど
元凶だよな
Javaも再定義してるけど
884デフォルトの名無しさん
2018/04/02(月) 08:32:10.05ID:i02Vx/uo (第1章 はじめに 2頁)
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。
『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル
たとえば、CycはFredという名前の男が朝にひげをそるという話が理解できなかった。
Cycの推論エンジンは、この話の中に矛盾を見つけた。Cycは人間には電気の部品がないことは知っているが、
Fredが電気カミソリを持っていたので、エンティティ「Fredがひげそり中(FredWhileShaving)」
には電気の部品が含まれていると考えた。したがって、CycはFredがひげをそっている間、
Fredはそれでも人間なのかと尋ねた。
『深層学習』
著者:
Ian Goodfellow, イアングッドフェロー,
Yoshua Bengio, ヨシュアベンジオ,
Aaron Courville, アーロンカービル
885デフォルトの名無しさん
2018/04/02(月) 23:04:05.50ID:d0x/o4SK アメリカのジョークはよく分からん。
きっと翻訳が悪いんだな
きっと翻訳が悪いんだな
886デフォルトの名無しさん
2018/04/03(火) 00:23:48.15ID:cU9BUIMs 電気の部品が誤訳か
887デフォルトの名無しさん
2018/04/03(火) 07:27:20.27ID:93hqFpFO888デフォルトの名無しさん
2018/04/03(火) 08:14:01.65ID:U8mOCWOb C++からSmalltalkにちょい戻したのがJavaのOOPじゃね
889デフォルトの名無しさん
2018/04/03(火) 08:14:49.22ID:U8mOCWOb Javaは抽象データ型のOOPをより純化させたとも言えるか
890デフォルトの名無しさん
2018/04/03(火) 14:49:04.54ID:W7EC8mO+ smalltalkの臭すぎて堪らんところをc++で置き換えたのがJava
891デフォルトの名無しさん
2018/04/03(火) 16:24:37.04ID:R6gDm2yr 一番上手くやってるのは Objective-C だと思う
892デフォルトの名無しさん
2018/04/03(火) 19:48:24.93ID:J58Y9OWc Obj-C好きなのだが中身がC丸出しなのがなぁ…
swiftは文法モダンに!でまた“ここで処理投げてます!”が
わからないようにする悪弊組み込まれちゃったし…
(それは退歩なんだってば)
swiftは文法モダンに!でまた“ここで処理投げてます!”が
わからないようにする悪弊組み込まれちゃったし…
(それは退歩なんだってば)
893デフォルトの名無しさん
2018/04/03(火) 20:48:38.44ID:MVEz7YW1 20年前はObjcet-Cなんて一部の物好きの研究者しか使ってなかった
FORTANやPascalと共に滅亡して時代はC++かJAVAの二強になると
堅く信じていた当時からすれば今のObject-Cの人気ぶりには隔世の感がある
FORTANやPascalと共に滅亡して時代はC++かJAVAの二強になると
堅く信じていた当時からすれば今のObject-Cの人気ぶりには隔世の感がある
894デフォルトの名無しさん
2018/04/03(火) 21:27:13.17ID:/J95OWxU objcが人気なんじゃなくてiPhoneが人気なだけ
swiftの普及の早さを見ればわかるでしょ、みんな嫌々objcを使ってたって
swiftの普及の早さを見ればわかるでしょ、みんな嫌々objcを使ってたって
895デフォルトの名無しさん
2018/04/03(火) 21:53:44.19ID:xHu3FOx+ 使われているかどうかと人気があるかどうかは別だからね
嫌いだけど選択肢が少ないから仕方なく使っているって人も多い
だって実際に
> 嫌われる傾向が強いほかの言語には、「PHP」「Objective-C」
>「CoffeeScript」「Ruby」などが挙がっている。
https://builder.japan.zdnet.com/tool/35109803/
> Stack Overflowは、この嫌われている言語ランキングに
> 使用したデータを、求職情報ページの「Developer Story」ページから
> 集めた。Developer Storyは、開発者が自分の職歴や実績などを
> まとめて公開できるサービスだが、このページには使いたい言語と使いたくない言語のタグを追加できるようになっている。
>
> 嫌われる傾向が強いほかの言語には、「PHP」「Objective-C」
>「CoffeeScript」「Ruby」などが挙がっている。
>
> 一方、嫌う人が少ない言語には、「R」「Kotlin」「TypeScript」
>「Rust」「Bash」「Clojure」「Swift」「Python」「JavaScript」「Go」などが並んだ。
嫌いだけど選択肢が少ないから仕方なく使っているって人も多い
だって実際に
> 嫌われる傾向が強いほかの言語には、「PHP」「Objective-C」
>「CoffeeScript」「Ruby」などが挙がっている。
https://builder.japan.zdnet.com/tool/35109803/
> Stack Overflowは、この嫌われている言語ランキングに
> 使用したデータを、求職情報ページの「Developer Story」ページから
> 集めた。Developer Storyは、開発者が自分の職歴や実績などを
> まとめて公開できるサービスだが、このページには使いたい言語と使いたくない言語のタグを追加できるようになっている。
>
> 嫌われる傾向が強いほかの言語には、「PHP」「Objective-C」
>「CoffeeScript」「Ruby」などが挙がっている。
>
> 一方、嫌う人が少ない言語には、「R」「Kotlin」「TypeScript」
>「Rust」「Bash」「Clojure」「Swift」「Python」「JavaScript」「Go」などが並んだ。
896デフォルトの名無しさん
2018/04/03(火) 21:59:40.75ID:xHu3FOx+ こっちは別のデータ
https://news.mynavi.jp/article/20170330-a133/
> fossBytesに3月28日(米国時間)に掲載された記事「Which Are The Most Loved and Most
> Hated Programming Languages|2017」が、Stack Overflow Developer Survey 2017の
> 調査結果を引き合いに出し、開発者に愛されているプログラミング言語と嫌われている
> プログラミング言語のトップ25を伝えた。愛されているプログラミング言語1位は
> Rustで、これにSmalltalkとTypescript、Swift、Goが続いている。
>
> 嫌われているプログラミング言語トップ25は次のとおり。
> Visual Basic 6
> VBA
> CoffeeScript
> VB.NET
> Matlab
> Objective-C
> Assembly
> Perl
> Lua
> Hack
略
https://news.mynavi.jp/article/20170330-a133/
> fossBytesに3月28日(米国時間)に掲載された記事「Which Are The Most Loved and Most
> Hated Programming Languages|2017」が、Stack Overflow Developer Survey 2017の
> 調査結果を引き合いに出し、開発者に愛されているプログラミング言語と嫌われている
> プログラミング言語のトップ25を伝えた。愛されているプログラミング言語1位は
> Rustで、これにSmalltalkとTypescript、Swift、Goが続いている。
>
> 嫌われているプログラミング言語トップ25は次のとおり。
> Visual Basic 6
> VBA
> CoffeeScript
> VB.NET
> Matlab
> Objective-C
> Assembly
> Perl
> Lua
> Hack
略
897デフォルトの名無しさん
2018/04/04(水) 03:20:59.36ID:h2UR4/YM >>895
なんでVBとかVBAが入ってないし
なんでVBとかVBAが入ってないし
898デフォルトの名無しさん
2018/04/04(水) 03:22:51.75ID:h2UR4/YM899デフォルトの名無しさん
2018/04/04(水) 06:54:46.68ID:ITrH2VCT Smalltalk死滅したと思ってたw普通に処理系とかある
https://dotinstall.com/lessons/basic_smalltalk
https://dotinstall.com/lessons/basic_smalltalk
900デフォルトの名無しさん
2018/04/04(水) 07:59:57.79ID:xIeCjOW7 Smalltalkは今でも現役だよ
日本では壊滅的に過疎ってるだけで
日本では壊滅的に過疎ってるだけで
901デフォルトの名無しさん
2018/04/04(水) 09:40:51.95ID:XMHeCdXK おまえの思いは要らない
現役である証拠を書けばいい
現役である証拠を書けばいい
902デフォルトの名無しさん
2018/04/04(水) 09:52:34.51ID:xIeCjOW7 お前のツッコミも余計
手ぶらの批判は誰でもできる
事実としてPharoの処理系は更新され続けてる
手ぶらの批判は誰でもできる
事実としてPharoの処理系は更新され続けてる
903デフォルトの名無しさん
2018/04/04(水) 13:33:18.19ID:1Ww7GQWk 最近ようやくしょぼい専用VCS諦めてしょぼいGitHubクライアントを組み込みにしだしたみたいだね
904デフォルトの名無しさん
2018/04/04(水) 15:35:00.13ID:AI7Zq0uN 更新されていたら現役なのか……
よし、Dは現役だな
よし、Dは現役だな
905デフォルトの名無しさん
2018/04/04(水) 16:05:22.98ID:1Ww7GQWk それはない
906デフォルトの名無しさん
2018/04/04(水) 16:15:15.27ID:Vp4f9mRG インスタンス造り機に「このクラスのインスタンスを作れ」ってぶち込むより
クラスに自分のインスタンス造る機能が入ってて
「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。
クラスに自分のインスタンス造る機能が入ってて
「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。
907デフォルトの名無しさん
2018/04/04(水) 17:04:03.96ID:Pmay6Vdj javascriptか
908デフォルトの名無しさん
2018/04/05(木) 00:06:12.16ID:gzVEs0yB909デフォルトの名無しさん
2018/04/05(木) 00:08:00.87ID:gzVEs0yB >>906
> 「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。
コピーしかできないのか?
なにもないところから作ることはできないのか?
コピーを作った後に、値を変更してインスタンスを完成させるのか?
> 「おまえのコピーをこの名前で作れ」の方が個人的には関与する言語機能が減って好き。
コピーしかできないのか?
なにもないところから作ることはできないのか?
コピーを作った後に、値を変更してインスタンスを完成させるのか?
910デフォルトの名無しさん
2018/04/05(木) 00:43:38.66ID:raTA0cM5 new Test() を Test.New() にでもすんのか?
911デフォルトの名無しさん
2018/04/05(木) 09:23:27.96ID:ZXf9eqYN それを言うなら Test.Default().Clone() とか Test.Default().Copy() かと
> 作った後に、値を変更してインスタンスを完成させるのか?
これってプロトタイプベースだから必要なわけではなく、クラスベースでもコンストラクタで普通にやってる作業だよね?
> 作った後に、値を変更してインスタンスを完成させるのか?
これってプロトタイプベースだから必要なわけではなく、クラスベースでもコンストラクタで普通にやってる作業だよね?
912デフォルトの名無しさん
2018/04/05(木) 09:31:20.59ID:ZXf9eqYN >>908
他の言語の場合は、更新程度なら必要条件にすらならないかもしれないけれど
Smalltalkみたいにドックフードとして食らうことが避けられず
動的かつ可塑性を最大の利点にしている言語・環境に限れば
更新(変化)し提供され続けていることは少なからぬ人に使われている証拠として十分だろうね
他の言語の場合は、更新程度なら必要条件にすらならないかもしれないけれど
Smalltalkみたいにドックフードとして食らうことが避けられず
動的かつ可塑性を最大の利点にしている言語・環境に限れば
更新(変化)し提供され続けていることは少なからぬ人に使われている証拠として十分だろうね
913デフォルトの名無しさん
2018/04/05(木) 09:36:41.34ID:zY62GpOZ ドックフードとして食らうことが避けられず
動的かつ可塑性を最大の利点にしている言語・環境
動的かつ可塑性を最大の利点にしている言語・環境
914デフォルトの名無しさん
2018/04/05(木) 13:36:49.22ID:ZXf9eqYN 説明必要だった?
915デフォルトの名無しさん
2018/04/05(木) 13:39:17.15ID:JfUQNi2M ドックフード
916デフォルトの名無しさん
2018/04/05(木) 14:17:43.32ID:NoTQwqd+ ドックフード
意味の説明もさることながら、どこの業界の用語か知りたい
意味の説明もさることながら、どこの業界の用語か知りたい
917デフォルトの名無しさん
2018/04/05(木) 14:33:11.81ID:JfUQNi2M 波止場食堂の料理ってことかな
https://tabelog.com/kanagawa/A1401/A140106/14031740/
https://tabelog.com/kanagawa/A1401/A140106/14031740/
918デフォルトの名無しさん
2018/04/05(木) 21:08:45.28ID:YQEitOA5919デフォルトの名無しさん
2018/04/05(木) 21:13:07.08ID:YQEitOA5 ああなんだグかクかって話かつまらん
920デフォルトの名無しさん
2018/04/05(木) 23:45:55.89ID:YZZKvgKX921デフォルトの名無しさん
2018/04/06(金) 07:23:27.16ID:LPJ18IcZ たとえばMatzはRubyをほとんど使わないけどRubyに変更を加え続けていたしそれは容易だ
Rubyに限らず通常の言語の場合たとえ使う人がゼロでもリリースし続けることは理論的に可能
しかしSmalltalkの場合、Smalltalkを使わずにそれに変化を加えることはできないんだよ
Rubyに限らず通常の言語の場合たとえ使う人がゼロでもリリースし続けることは理論的に可能
しかしSmalltalkの場合、Smalltalkを使わずにそれに変化を加えることはできないんだよ
922デフォルトの名無しさん
2018/04/06(金) 07:32:26.80ID:8wNEeXKm >Smalltalkの場合、Smalltalkを使わずにそれに変化を加えることはできない
それが正しいとしても
Smalltalk処理系の開発者はその処理系を使い続けている
ってことになるだけで
Smalltalk処理系の開発者以外の人がその処理系を使い続けている
かどうかは分からないよな
それが正しいとしても
Smalltalk処理系の開発者はその処理系を使い続けている
ってことになるだけで
Smalltalk処理系の開発者以外の人がその処理系を使い続けている
かどうかは分からないよな
923デフォルトの名無しさん
2018/04/06(金) 08:09:41.10ID:psgMbVRj RubyにできてSmalltlkにできないはずがない
924デフォルトの名無しさん
2018/04/06(金) 09:04:24.09ID:MsWWfJyW >>922
他の言語では 処理系開発者=利用者 には必ずしもならないが
Smalltalkではその特殊性から 処理系開発者=利用者 がほぼ成り立つ
したがって、Smalltalkは更新されリリースされていれば利用者は必ずいる
上にもあるがこれだけだよ君はいったい何と戦っていて何を証明したいんだ?
「利用者」の定義をしぼればいつかはSmalltalkの利用者はゼロにできるけど
それだと「俺ほどの人間のアンテナにひっかからないSmalltalkは死滅しているも同然」という情弱識者とたいしてかわらんぞ
もし本当にSmalltalkが実務等で使われているか知りたければ sorabito "smalltalk" とかでググるか
http://pharo.org/success/ にアクセスして事例を精査してみればいいと思うけど
実際のところSmalltalkがどうあろうが端から興味なんてないんだろ?
他の言語では 処理系開発者=利用者 には必ずしもならないが
Smalltalkではその特殊性から 処理系開発者=利用者 がほぼ成り立つ
したがって、Smalltalkは更新されリリースされていれば利用者は必ずいる
上にもあるがこれだけだよ君はいったい何と戦っていて何を証明したいんだ?
「利用者」の定義をしぼればいつかはSmalltalkの利用者はゼロにできるけど
それだと「俺ほどの人間のアンテナにひっかからないSmalltalkは死滅しているも同然」という情弱識者とたいしてかわらんぞ
もし本当にSmalltalkが実務等で使われているか知りたければ sorabito "smalltalk" とかでググるか
http://pharo.org/success/ にアクセスして事例を精査してみればいいと思うけど
実際のところSmalltalkがどうあろうが端から興味なんてないんだろ?
925デフォルトの名無しさん
2018/04/06(金) 09:42:07.15ID:sTfZcU1Y >>911
プロトタイプベースでもコンストラクタ定義すればいいだけだよな
プロトタイプベースでもコンストラクタ定義すればいいだけだよな
926デフォルトの名無しさん
2018/04/06(金) 09:43:26.17ID:8wNEeXKm Pharoを使っているのはPharoを開発している人たちだけってことか
https://pharo.org/
https://pharo.org/
927デフォルトの名無しさん
2018/04/06(金) 10:15:31.78ID:MsWWfJyWレス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 中国側が首相答弁の撤回要求、日本側拒否 [夜のけいちゃん★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 債券・円・株「トリプル安」に…長期金利1.755%まで上昇、円は対ユーロで史上最安値 [蚤の市★]
- 映画「鬼滅の刃」の興行収入急減、日本行き航空券大量キャンセル…中国メディア報道 [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★5 [ぐれ★]
- とらせん IPあり
- 巨専】
- 【DAZN】ワールドカップ欧州予選総合 ★5
- こいせん 全レス転載禁止
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 【ATP】テニス総合実況スレ2025 Part 211【WTA】
- トヨタ、反日だった。2027年に中国にレクサスのEV工場を設立。高市 [931948549]
- 日本政府、ネトウヨに媚びるために韓国との関係も悪化させてしまう [603416639]
- 【悲報】高市効果で「1ドル=160円」が相場へwwwwwwwwwwwwwwwwwwwwwwwwwwwww 止まらぬ高市円安💥💥 [871926377]
- 【悲報】SP500今日も暴落で完全に世界恐慌。高市恐慌として全世界で語り継がれそう [686538148]
- 自閉症が「んなっしょい」と連呼するお🏡
- FGOで好きなサーヴァントがアビゲイル、北斎、楊貴妃なんだが
