前スレ
オブジェクト指向って自然な文法だな 2
http://echo.2ch.net/test/read.cgi/tech/1490506257/
探検
オブジェクト指向って自然な文法だな 3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/04/02(日) 16:30:38.65ID:n7h/bBRg
2017/04/02(日) 16:45:28.24ID:n7h/bBRg
C 言語によるオブジェクト記述法 COOL ver.2
http://www.sage-p.com/process/cool.htm
http://www.sage-p.com/process/cool.htm
2017/04/02(日) 17:00:47.26ID:n7h/bBRg
モダンC言語プログラミング
http://ascii.asciimw.jp/books/books/detail/978-4-04-891309-6.shtml
統合開発環境、デザインパターン、エクストリーム・プログラミング、
テスト駆動開発、リファクタリング、継続的インテグレーションの活用
第3章 C言語とオブジェクト指向
3.1 概要
3.2 Cのモジュール化とオブジェクト指向
3.3 まとめ
第4章 C言語とデザインパターン
4.1 ステートパターン(State)
4.2 テンプレートメソッドパターン(Template)
4.3 オブザーバパターン(Observer)
4.4 チェインオブレスポンシビリティパターン(Chain of responsibility)
4.5 ビジターパターン(Visitor)
4.6 まとめ
第5章 C言語とリファクタリング
5.1 概要
5.2 テスト駆動開発
5.3 TDD入門編
5.4 リファクタリング
5.5 TDD実践編
5.6 まとめ
第6章 継続的インテグレーションとデプロイ
6.1 概要
6.2 継続的インテグレーションの前提
6.3 CIサーバの導入
6.4 CI入門編
6.5 メモリ破壊のバグと戦う
6.6 CI実践編
6.7 まとめ
http://ascii.asciimw.jp/books/books/detail/978-4-04-891309-6.shtml
統合開発環境、デザインパターン、エクストリーム・プログラミング、
テスト駆動開発、リファクタリング、継続的インテグレーションの活用
第3章 C言語とオブジェクト指向
3.1 概要
3.2 Cのモジュール化とオブジェクト指向
3.3 まとめ
第4章 C言語とデザインパターン
4.1 ステートパターン(State)
4.2 テンプレートメソッドパターン(Template)
4.3 オブザーバパターン(Observer)
4.4 チェインオブレスポンシビリティパターン(Chain of responsibility)
4.5 ビジターパターン(Visitor)
4.6 まとめ
第5章 C言語とリファクタリング
5.1 概要
5.2 テスト駆動開発
5.3 TDD入門編
5.4 リファクタリング
5.5 TDD実践編
5.6 まとめ
第6章 継続的インテグレーションとデプロイ
6.1 概要
6.2 継続的インテグレーションの前提
6.3 CIサーバの導入
6.4 CI入門編
6.5 メモリ破壊のバグと戦う
6.6 CI実践編
6.7 まとめ
2017/04/02(日) 17:02:31.63ID:n7h/bBRg
https://teratail.com/questions/37674
以前、Linuxのカーネルを読んだ時、オブジェクト指向的なプログラムされているなと思ったことが有ります。
データと関数ポインタをセットにしているイメージですね。(仮想関数的なテクニックだったように思います。)
以前、Linuxのカーネルを読んだ時、オブジェクト指向的なプログラムされているなと思ったことが有ります。
データと関数ポインタをセットにしているイメージですね。(仮想関数的なテクニックだったように思います。)
2017/04/02(日) 17:06:49.50ID:n7h/bBRg
Linuxシステムプログラミング - 60 ページ - Google ブック検索結果
https://books.google.co.jp/books?isbn=4873113628
> Linux のすべてのフアイルシステムの基本となる共通フアイルモデル
> 〈 c 。 mm 。 n 血 em 。 de ー)を導入し、抽象化を図っています。共通ファイルモデルでは、
> 関数ポインタやオブジェクト指向的な考え方†を採用したフレームワークを提供し、フアイル
https://books.google.co.jp/books?isbn=4873113628
> Linux のすべてのフアイルシステムの基本となる共通フアイルモデル
> 〈 c 。 mm 。 n 血 em 。 de ー)を導入し、抽象化を図っています。共通ファイルモデルでは、
> 関数ポインタやオブジェクト指向的な考え方†を採用したフレームワークを提供し、フアイル
2017/04/02(日) 17:52:12.44ID:KLExlLIQ
●ドア設計問題 (出典は初代スレ)
http://echo.2ch.net/test/read.cgi/tech/1488928012/422-423
http://echo.2ch.net/test/read.cgi/tech/1488928012/577-578
1 下記機能をオプションとして持つドアを設計せよ
(a)ドアストッパー
(b)ドアクローザー
(c)ドアの向こう側を目視できるガラス
(d)内部から外部の一方通行のみ目視できるのぞき穴
2. 1.で行ったクラス設計を破壊せずに下記性質を追加せよ
(e)異なる耐火性
(f)異なる開閉重量
(g)鍵がついており、サムターンか電子錠である
(h)異なる遮音性
(i)開き方は右開き左開き、内開き外開きスライドのいずれもありえる
(j)ドアノブはついていることもついてないこともある
3. 2.で行ったクラス設計を破壊せずに下記性質を追加せよ
(k)犬猫はドアノブを回転させることはできない
(l)犬猫はプッシュで動くドアなら、ある一定の重量以下で押すことができる
(m)数匹の犬猫が同時にドアを押すと合計重量で押すことができる
http://echo.2ch.net/test/read.cgi/tech/1488928012/422-423
http://echo.2ch.net/test/read.cgi/tech/1488928012/577-578
1 下記機能をオプションとして持つドアを設計せよ
(a)ドアストッパー
(b)ドアクローザー
(c)ドアの向こう側を目視できるガラス
(d)内部から外部の一方通行のみ目視できるのぞき穴
2. 1.で行ったクラス設計を破壊せずに下記性質を追加せよ
(e)異なる耐火性
(f)異なる開閉重量
(g)鍵がついており、サムターンか電子錠である
(h)異なる遮音性
(i)開き方は右開き左開き、内開き外開きスライドのいずれもありえる
(j)ドアノブはついていることもついてないこともある
3. 2.で行ったクラス設計を破壊せずに下記性質を追加せよ
(k)犬猫はドアノブを回転させることはできない
(l)犬猫はプッシュで動くドアなら、ある一定の重量以下で押すことができる
(m)数匹の犬猫が同時にドアを押すと合計重量で押すことができる
2017/04/02(日) 18:47:42.03ID:w0zTGR96
おつかれさまでした
2017/04/02(日) 20:12:49.88ID:0XahTNwQ
2017/04/02(日) 20:48:03.21ID:TvISwdcG
>>6
ドアをどういうソフトウェアの中でどう使うのかを説明しろよ
それなしに”設計せよ”とか意味不明だぞ
そこに書いてるのはドアの属性だけだから単なるデータ
クラスとかオブジェクト指向とか全く関係ない
ドアをどういうソフトウェアの中でどう使うのかを説明しろよ
それなしに”設計せよ”とか意味不明だぞ
そこに書いてるのはドアの属性だけだから単なるデータ
クラスとかオブジェクト指向とか全く関係ない
2017/04/02(日) 21:12:28.24ID:DzpU0i7z
ドアクラスの設計に上位クラスの意思が必要なら、それはモジュール分解できてないってことじゃね
2017/04/02(日) 21:21:56.68ID:l1VJjSJU
2017/04/02(日) 21:30:37.45ID:TvISwdcG
2017/04/02(日) 21:38:49.75ID:DzpU0i7z
ドアストッパーは回転角に制限を与える
ドアクローザーは、半開状態時にゆるやかに閉状態へと変化する機構
犬猫が突進すればドアタイプと重量によっては開き、場合によっては開かない
ドアクローザーは、半開状態時にゆるやかに閉状態へと変化する機構
犬猫が突進すればドアタイプと重量によっては開き、場合によっては開かない
2017/04/02(日) 22:03:35.89ID:TvISwdcG
建築家がCADで使うためのドアのモデル
ドアメーカーが生産管理のために使うためのドアのモデル
住宅メーカーが受注管理のために使うドアのモデル
ドア開け系のスマホゲームで使うためのドアのモデル
これらが同じになるわけがないんだから
どういう目的でどういう風にソフトウェア上で使われるのか
それがわからないものを設計しようとするのは時間の無駄
ドアメーカーが生産管理のために使うためのドアのモデル
住宅メーカーが受注管理のために使うドアのモデル
ドア開け系のスマホゲームで使うためのドアのモデル
これらが同じになるわけがないんだから
どういう目的でどういう風にソフトウェア上で使われるのか
それがわからないものを設計しようとするのは時間の無駄
2017/04/03(月) 01:16:59.01ID:LFQkDYJE
>>14
よくよく考えてみるととても難しいが完全不可能ではないしょ、具体的にこんなドアと呼んでないからこそ
どんな状況とパターンでもドアをドアと呼ぶに相応しい共通項を見つけるゲームや
投げる物ではないし食べる物でもないしまぁある程度までは
よくよく考えてみるととても難しいが完全不可能ではないしょ、具体的にこんなドアと呼んでないからこそ
どんな状況とパターンでもドアをドアと呼ぶに相応しい共通項を見つけるゲームや
投げる物ではないし食べる物でもないしまぁある程度までは
2017/04/03(月) 11:28:24.86ID:MWcUZH/3
なんでメソッド名って三単現じゃないことが多いの?
2017/04/03(月) 12:06:00.26ID:4MLmk5yA
開発者に嫌われているプログラミング言語 25
http://news.mynavi.jp/news/2017/03/30/133/
http://n.mynv.jp/news/2017/03/30/133/images/001l.jpg
Visual Basic 6
VBA
CoffeeScript
VB.NET
Matlab
Objective-C
Assembly
Perl
Lua
Hack
Groovy
Common Lisp
Dart
Erland
PHP
C
Ruby
R
Java
Julia
C++
SQL
Haskell
F#
JavaScript
http://news.mynavi.jp/news/2017/03/30/133/
http://n.mynv.jp/news/2017/03/30/133/images/001l.jpg
Visual Basic 6
VBA
CoffeeScript
VB.NET
Matlab
Objective-C
Assembly
Perl
Lua
Hack
Groovy
Common Lisp
Dart
Erland
PHP
C
Ruby
R
Java
Julia
C++
SQL
Haskell
F#
JavaScript
2017/04/03(月) 12:20:09.66ID:28dsjWMc
>>17
他のせんたくしが
他のせんたくしが
2017/04/03(月) 12:21:52.64ID:28dsjWMc
20デフォルトの名無しさん
2017/04/03(月) 13:17:31.81ID:DYsJriQe >>1
糞みたいなテンプル貼るのやめろ
糞みたいなテンプル貼るのやめろ
2017/04/03(月) 19:08:53.61ID:gZTdU5yD
>>17
名前さえ上がらないCobol
名前さえ上がらないCobol
2017/04/03(月) 19:16:57.14ID:Upl31vzs
まだやってんの?
23デフォルトの名無しさん
2017/04/03(月) 20:08:09.88ID:VDwG6zpG >>22
最後にレスした奴が勝者だからな
最後にレスした奴が勝者だからな
2017/04/03(月) 20:17:49.73ID:Upl31vzs
勝ち負けってあったの?
2017/04/03(月) 20:20:18.71ID:7vHtJU9B
俺2chの議論で負けたことない
変なこと言い出したり話がそれたりで、俺がレスしなくなるか
俺が相手をやりこめて、相手がレスしなくなるかだ
変なこと言い出したり話がそれたりで、俺がレスしなくなるか
俺が相手をやりこめて、相手がレスしなくなるかだ
2017/04/03(月) 20:23:36.71ID:Upl31vzs
勝負してないじゃん
27デフォルトの名無しさん
2017/04/03(月) 20:54:50.17ID:OUsiIH4G 土俵の下からヤジ飛ばしているだけで勝負している気になってるいつものあいつかw
2017/04/03(月) 20:57:17.28ID:LFQkDYJE
ウィナーオブジェクト作ろうぜ。とりあえずメソッドはコールだけ
2017/04/03(月) 21:47:10.19ID:7vHtJU9B
2017/04/03(月) 21:49:08.96ID:XYXk6jFX
2017/04/03(月) 21:57:16.66ID:XYXk6jFX
>>29
どういうシステムでどういう使われ方をするドアを想定した結果なのかを示せば
少しはマシだったろうけどそれをやったやつ前スレで1人でもいたか?
コンテキスト無しで現実をモデリングしようとしても設計力は高まるどころか低下するだけ
オブジェクト指向かどうかとか関係ない
無駄
どういうシステムでどういう使われ方をするドアを想定した結果なのかを示せば
少しはマシだったろうけどそれをやったやつ前スレで1人でもいたか?
コンテキスト無しで現実をモデリングしようとしても設計力は高まるどころか低下するだけ
オブジェクト指向かどうかとか関係ない
無駄
2017/04/03(月) 21:57:20.04ID:LFQkDYJE
>>30
つまりオブジェクト指向は哲学と言うことだな。納得出来る
つまりオブジェクト指向は哲学と言うことだな。納得出来る
2017/04/03(月) 22:05:05.77ID:Vb9tETQW
抽象化()
2017/04/03(月) 22:05:09.73ID:MrxLrKt6
2017/04/03(月) 22:18:18.28ID:MrxLrKt6
なるほど、そうか。
オブジェクト指向を「現実世界を構成しているクラスを見つけ出す作業」と
捉えるからややこしいことになるんだ。
手続き型でも関数型言語でも、現実世界を表現する関数を見つけ出す作業
なんて考えるやつはいない。
見つけ出す作業ではなくて、作り出す作業なんだ。
現実世界ではなくターゲットとする要件を実現する
クラスや関数を自分たちで作り出す作業。
だから最初に要件が決まらないとクラスも関数も作れない
あたり前のことだが、混ぜっ返すやつは
「そのクラス・関数では世界のすべてを表現できない」と言ってるわけだな。
オブジェクト指向を「現実世界を構成しているクラスを見つけ出す作業」と
捉えるからややこしいことになるんだ。
手続き型でも関数型言語でも、現実世界を表現する関数を見つけ出す作業
なんて考えるやつはいない。
見つけ出す作業ではなくて、作り出す作業なんだ。
現実世界ではなくターゲットとする要件を実現する
クラスや関数を自分たちで作り出す作業。
だから最初に要件が決まらないとクラスも関数も作れない
あたり前のことだが、混ぜっ返すやつは
「そのクラス・関数では世界のすべてを表現できない」と言ってるわけだな。
36デフォルトの名無しさん
2017/04/03(月) 22:25:42.68ID:VDwG6zpG プログラミングが目的になっちゃうと
そういう思考になるのかしらん?
そういう思考になるのかしらん?
2017/04/03(月) 22:25:47.59ID:XYXk6jFX
どんな状況でもドアをドアと呼ぶに相応しい共通項を見つけるってのは
ドアという言葉を定義づけるのと同じこと
言葉を定義づけるには「ドアと窓は何が違うのか?」とか
「ふすまや障子はドアなのか?」みたいに隣接する概念と比較する以外有効な方法はない
で「ドアと窓は何が違うか?」みたいな問いを考えるゲームがしたけりゃ
どっか他でやりなよ
ここは板違い
ドアという言葉を定義づけるのと同じこと
言葉を定義づけるには「ドアと窓は何が違うのか?」とか
「ふすまや障子はドアなのか?」みたいに隣接する概念と比較する以外有効な方法はない
で「ドアと窓は何が違うか?」みたいな問いを考えるゲームがしたけりゃ
どっか他でやりなよ
ここは板違い
2017/04/03(月) 22:42:21.43ID:MrxLrKt6
そう。我々がやってるのは、要件でドアと定義されたものを
クラスに落とし込む作業なのだ。
決しての中にあるドアがどういうクラスかを
解析する仕事ではないのだ。
クラスに落とし込む作業なのだ。
決しての中にあるドアがどういうクラスかを
解析する仕事ではないのだ。
2017/04/03(月) 22:42:49.69ID:MrxLrKt6
決して世の中にあるドアがどういうクラスかを
解析する仕事ではないのだ。
解析する仕事ではないのだ。
2017/04/03(月) 23:09:18.39ID:7vHtJU9B
>>31
同じドアを扱っているにもかかわらず
最初は小売りか設計かと思わせておいて
いきなり「猫に押される」っていうコンテキストも抽象度も異なるものが割り込んでくるのが
問題の肝
多少視点をゆさぶられても大丈夫なのを設計しろってことだろ
そこで状況がわかんないとか言ってたら降参してるようなもんじゃん
同じドアを扱っているにもかかわらず
最初は小売りか設計かと思わせておいて
いきなり「猫に押される」っていうコンテキストも抽象度も異なるものが割り込んでくるのが
問題の肝
多少視点をゆさぶられても大丈夫なのを設計しろってことだろ
そこで状況がわかんないとか言ってたら降参してるようなもんじゃん
2017/04/03(月) 23:57:11.85ID:7vHtJU9B
なんかわからんけど急にしにたくなった
2017/04/04(火) 00:16:51.37ID:L1aPO2JG
俺も俺も
2017/04/04(火) 00:32:31.54ID:Y80clcxw
いいぞ。遠慮なく死ね
2017/04/04(火) 00:33:57.09ID:Tk79CS9z
現実世界をモデリングできているか、とかいう謎の評価基準
迷宮を進むゲームでドアとして表現されたドアがあったとして、そのモデリングの良し悪しを
・家の内装をVR体験させるソフトでも使えるか
・大型家電通販でドア付きの部屋に搬入できるかをチェックするプログラムでも使えるか
・エアコンの空調のシミュレーションでも使えるか
で判断したことがあるのかな。そうだったら何も言えない。
迷宮を進むゲームでドアとして表現されたドアがあったとして、そのモデリングの良し悪しを
・家の内装をVR体験させるソフトでも使えるか
・大型家電通販でドア付きの部屋に搬入できるかをチェックするプログラムでも使えるか
・エアコンの空調のシミュレーションでも使えるか
で判断したことがあるのかな。そうだったら何も言えない。
2017/04/04(火) 01:01:13.36ID:AiGPoot5
オブジェクト指向にむりやり難癖つけてるけど結局
「具体性を持たせることで取り回しが楽になった」に対して
「これには対応できるのか!」「こういう例外はどうだ!」って難癖てるだけだから
「で、おまえの棲んでるとこの方は取り回しどうなの?」って
隠れ家に光浴びせると黙って棲んでる泥に潜っていくというね…
「具体性を持たせることで取り回しが楽になった」に対して
「これには対応できるのか!」「こういう例外はどうだ!」って難癖てるだけだから
「で、おまえの棲んでるとこの方は取り回しどうなの?」って
隠れ家に光浴びせると黙って棲んでる泥に潜っていくというね…
2017/04/04(火) 01:32:16.54ID:QcgfrUUh
>>40
問題の肝でもなんでもないわw
そういうふうに設計が変わった時に
安全な方法で設計を変更するのが
リファクタリングだよ。
どっかのバカ共は、汚いコードを修正するものだと
勘違いしているようだがね。
オブジェクト指向に限らず、変更はあるのだから
その変化についていく技術が重要
問題の肝でもなんでもないわw
そういうふうに設計が変わった時に
安全な方法で設計を変更するのが
リファクタリングだよ。
どっかのバカ共は、汚いコードを修正するものだと
勘違いしているようだがね。
オブジェクト指向に限らず、変更はあるのだから
その変化についていく技術が重要
2017/04/04(火) 01:37:41.67ID:TSsDdMVB
2017/04/04(火) 05:34:43.80ID:ld6GL0Sw
キャットドア問題解決したのか?
49デフォルトの名無しさん
2017/04/04(火) 07:33:17.45ID:gTa0RwdG 素材まで網羅した完璧なドアの設計を最初からしなくて良いのがオブジェクト指向の強みなんじゃね
難癖野郎の要望にも応えられる
難癖野郎の要望にも応えられる
50デフォルトの名無しさん
2017/04/04(火) 07:34:20.63ID:gTa0RwdG >>17
C#最高なだけじゃねえか
C#最高なだけじゃねえか
2017/04/04(火) 15:08:10.80ID:AeH3x9f/
今後も使い続けたいと思うかどうかの割合が低いもの
↓
嫌われている
さすがマイナビ
堂々とすり替えw
↓
嫌われている
さすがマイナビ
堂々とすり替えw
52デフォルトの名無しさん
2017/04/04(火) 18:42:21.83ID:PnaBNYoq データベース操作クラスって
アンチパターンらしいですけど
世間ではどうやって操作をまとめてるんですか?
アンチパターンらしいですけど
世間ではどうやって操作をまとめてるんですか?
2017/04/04(火) 18:44:12.01ID:pyoNKlrC
>>52
まず、アンチパターンだと言ってる人に聞いてみてください。
まず、アンチパターンだと言ってる人に聞いてみてください。
54デフォルトの名無しさん
2017/04/04(火) 19:01:23.29ID:12S8JRG0 オブジェクト指向って、
プログラミングを自動化=部品化してくれるものというイメージしかない。
プログラマはプラモデルを組み立てているような感覚。
プログラミングを自動化=部品化してくれるものというイメージしかない。
プログラマはプラモデルを組み立てているような感覚。
2017/04/04(火) 19:22:07.15ID:6xG2515u
>>52
レコードセットとかフィールドとかトランザクションを抽象化することの話?
レコードセットとかフィールドとかトランザクションを抽象化することの話?
2017/04/04(火) 19:48:05.98ID:XraiJtPm
DAOみたいなのがクソなだけで、アクセスを抽象化したクラスは必要。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 [Hitzeschleier★]
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 [少考さん★]
- 【日本人の旅行離れ】国内旅行すら行けなくなった……オーバーツーリズムだけじゃない 旅行者減少の異常事態 ★2 [ぐれ★]
- ベトナムのバイク「脱ガソリン」、シェア8割のホンダに打撃…政府が電動二輪普及を主導 [煮卵★]
- “ひとり焼肉”でおなじみ「焼肉ライク」が閉店ラッシュ。なぜ「コスパが悪い」と言われてしまうのか [Gecko★]
- なぜ安っぽく見えてしまうのか…? ダウンジャケット姿が垢抜けない人の"意外な盲点" (ビジネスマンのためのスタイリスト) [少考さん★]
- 【実況】博衣こよりのえちえちドラクエ1&2リメイク🧪
- 「SCORE」←これなんて読むんや?🙋🏡
- 【高市朗報】鈴木大臣「嫌儲のデマに騙されないで。お米券の使い勝手は悪くない。卵味噌醤油も買えます。現金と変わりません」 [517459952]
- 【悲報】東京40代「生活苦しい!戸建てなんて絶対無理…」地方20代「家と車買って子供できた~今日は家族でモールで買い物」 [732289945]
- 【悲報】ワンピースの尾田栄一郎の描く女が気持ち悪過ぎると大炎上中wwwwwwwwwwwwwwwwwwww [802034645]
- 【求人】年収3140万円貰えるけど、ずっと海の上で生活しないといけない仕事wwwwww [786473582]
