オブジェクト指向について、調べれば調べるほど疑問が募ります。低レベルで粗末な疑問かも知れませんが、ご教授願いたいです。
・データと振る舞いをまとめる?
まとめると何か良いことあるの?
ファイルあるいはモジュールにはまとまってるよね?
丁度いい単位があるのに、何故わざわざオブジェクトという概念を導入するの?
(Javaには1ファイル1クラスという文化あるらしいけど)
・カプセル化?
モジュールのimport, exportでも実現出来るよね?
(構造体などへのアクセスを制限できれば)
・ポリモーフィズム?
別にデータと振る舞いをまとめなくても実現出来るよね?
・モノのように扱いたい?
モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?
※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1615881962/
探検
オブジェクト指向を教えてくれ!★2
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2021/04/27(火) 15:02:28.94ID:mH9VXFld130デフォルトの名無しさん
2021/06/25(金) 20:51:07.41ID:8d9Ppd4I (続き)
確かにクラスやインスタンスはプロパティの変数を
内部に保持できるところは新しいが
しかしそれをドットで格納や参照しちゃうと
肝心のカプセル化が壊れてしまうっていうんだから
結局は関数のローカル変数と同じだ
インスタンス内で保持するプロパティは
そもそもコンストラクタの引数か
メソッドの引数を経由して流れてくるものなんだから
そういう意味では、クラスとインスタンスは
関数と根本的な意味で違いがないのでは?
わざわざクラスとインスタンスとメソッドのように
複雑にしたのなら、
関数にはない何か素晴らしいメリットがあるのだろうか?
そうじゃなきゃ単に構文が複雑になっただけのように思えるが。
(疑問終わり)
確かにクラスやインスタンスはプロパティの変数を
内部に保持できるところは新しいが
しかしそれをドットで格納や参照しちゃうと
肝心のカプセル化が壊れてしまうっていうんだから
結局は関数のローカル変数と同じだ
インスタンス内で保持するプロパティは
そもそもコンストラクタの引数か
メソッドの引数を経由して流れてくるものなんだから
そういう意味では、クラスとインスタンスは
関数と根本的な意味で違いがないのでは?
わざわざクラスとインスタンスとメソッドのように
複雑にしたのなら、
関数にはない何か素晴らしいメリットがあるのだろうか?
そうじゃなきゃ単に構文が複雑になっただけのように思えるが。
(疑問終わり)
131デフォルトの名無しさん
2021/06/25(金) 21:25:10.29ID:7fH3vpXY ゼロリスクとかないし
上流の人が下流の変な行いを制限するための仕組み
上流の人が下流の変な行いを制限するための仕組み
132デフォルトの名無しさん
2021/06/25(金) 22:05:11.75ID:5F2XL1Xe スコープがクラス内である変数(クラス変数)に相当するものが、
関数にあったっけ?
クラス変数がカプセル化のキーだと思う。
関数にあったっけ?
クラス変数がカプセル化のキーだと思う。
133デフォルトの名無しさん
2021/06/25(金) 22:24:11.75ID:5F2XL1Xe 以下でfileとfがカプセル化および、手続き化できてると思う。
マネージャーからは、Catalogが保持するfileとfは見えないのが正しい。
class Catalog
atter_reader :file
atter_accessor :f
def initialize(file:)
@file = file
end
def open
@f = open(file, 'r')
end
def output(var:)
f.puts(var)
end
end
class Manager
def makeCatalog
c = Catalog.new(file: 'カタログ名.txt')
c.open
c.output(var: '書き込みたい内容')
end
end
マネージャーからは、Catalogが保持するfileとfは見えないのが正しい。
class Catalog
atter_reader :file
atter_accessor :f
def initialize(file:)
@file = file
end
def open
@f = open(file, 'r')
end
def output(var:)
f.puts(var)
end
end
class Manager
def makeCatalog
c = Catalog.new(file: 'カタログ名.txt')
c.open
c.output(var: '書き込みたい内容')
end
end
134デフォルトの名無しさん
2021/06/25(金) 22:40:21.64ID:5F2XL1Xe 外側に影響を出さずに修正する例
class Catalog
atter_accessor :f
def initialize(file:)
@file = file
end
def open
@f = open(file, 'r')
end
def output(var:)
f.puts(var)
end
private
def file
"#{@file[0, 2]}\#{@file}"
end
end
class Manager
def makeCatalog
c = Catalog.new(file: 'カタログ名.txt')
c.open
c.output(var: '書き込みたい内容')
end
end
class Catalog
atter_accessor :f
def initialize(file:)
@file = file
end
def open
@f = open(file, 'r')
end
def output(var:)
f.puts(var)
end
private
def file
"#{@file[0, 2]}\#{@file}"
end
end
class Manager
def makeCatalog
c = Catalog.new(file: 'カタログ名.txt')
c.open
c.output(var: '書き込みたい内容')
end
end
135デフォルトの名無しさん
2021/06/25(金) 22:53:02.93ID:eNSUt1x8 クラス変数はいつになったら出てくるのん?
136デフォルトの名無しさん
2021/06/25(金) 23:10:24.13ID:YN5s3pHX すまぬ。
インスタンス変数の間違いだった・・・。
インスタンス変数の間違いだった・・・。
137デフォルトの名無しさん
2021/06/26(土) 01:49:46.90ID:WPp8qNv5 関数の場合はクロージャでキャプチャする変数がインスタンス変数みたいなもの
fileやfをキャプチャした一連のクロージャを連想配列や構造体に入れて返す関数を書けばいい
Catalog = Struct.new("Catalog", :open, :output)
def make_catalog(file:)
f = nil
Catalog.new(
open: -> { f = open(file, 'a') },
output: -> var: { f.puts(var) }
)
end
c = make_catalog(file: 'カタログ名.txt')
c.open.()
c.output.(var: "Write Something")
fileやfをキャプチャした一連のクロージャを連想配列や構造体に入れて返す関数を書けばいい
Catalog = Struct.new("Catalog", :open, :output)
def make_catalog(file:)
f = nil
Catalog.new(
open: -> { f = open(file, 'a') },
output: -> var: { f.puts(var) }
)
end
c = make_catalog(file: 'カタログ名.txt')
c.open.()
c.output.(var: "Write Something")
138デフォルトの名無しさん
2021/06/26(土) 02:05:19.25ID:jug2ShuU その書式でメソッド書くのはきつくない?
139デフォルトの名無しさん
2021/06/26(土) 05:29:29.35ID:+EKqv5Ba >>129
結局何が聞きたいのかさっぱり分からん。
カプセル化は「必要最小限の物だけを見せる」単純化の方法であって
オブジェクト指向とは直接関係がない。
インスタンスのメリットはごちゃごちゃ言ってないでコード書けば一発で分かる。
畳の上で水泳の練習をして泳げるようになるのは天才だけ。
凡人は実際に水に入って泳がないと上達しないよ
結局何が聞きたいのかさっぱり分からん。
カプセル化は「必要最小限の物だけを見せる」単純化の方法であって
オブジェクト指向とは直接関係がない。
インスタンスのメリットはごちゃごちゃ言ってないでコード書けば一発で分かる。
畳の上で水泳の練習をして泳げるようになるのは天才だけ。
凡人は実際に水に入って泳がないと上達しないよ
140デフォルトの名無しさん
2021/06/26(土) 10:59:04.51ID:Rie4kKQj まぁ OOで終わっている人が多いからな。 Cで仮想テーブルまで作ってやっている人が居たが、単にOOオタクというだけだった。
OOの上にコンポーネントやバウンタリー構造を構築する方が大事で、SOLID原則を実現するためにOOPを使うという事を知らない人だらけ。
企業のファイナンスや基幹経験も無しに、小規模ユーティリティーでビジターとかデザパタハイが歳食っても治らない。
ビジターで一回、全修正でひどい目に合わないとわからないのかも。
OOの上にコンポーネントやバウンタリー構造を構築する方が大事で、SOLID原則を実現するためにOOPを使うという事を知らない人だらけ。
企業のファイナンスや基幹経験も無しに、小規模ユーティリティーでビジターとかデザパタハイが歳食っても治らない。
ビジターで一回、全修正でひどい目に合わないとわからないのかも。
141デフォルトの名無しさん
2021/06/27(日) 06:53:14.21ID:edyl0XAn がん細胞の如くソース撒き散らされたマジックナンバー。
定数ラベルにしてあれば1行の修正。
難しいこと言ってるが原点は定数記号。
定数ラベルにしてあれば1行の修正。
難しいこと言ってるが原点は定数記号。
142デフォルトの名無しさん
2021/06/27(日) 08:14:48.33ID:sNBPWRnW143デフォルトの名無しさん
2021/06/27(日) 11:40:01.24ID:N2ruTaG4 変化はポインタtoポインタ、ジャンプテーブルで解決。
144デフォルトの名無しさん
2021/06/27(日) 11:44:04.42ID:U1pSP8r9 π って
#include <math.h> で
M_PI
使うのと
#define myPI 3.14hogehoge
するのとどっちが良い?
#include <math.h> で
M_PI
使うのと
#define myPI 3.14hogehoge
するのとどっちが良い?
145デフォルトの名無しさん
2021/06/27(日) 12:16:41.98ID:FB9ZSvE6 オブジェクト嗜好って、C言語的には所詮構造体、共用体、ポインタの組み合わせなんだよなと思ってしまう。
146デフォルトの名無しさん
2021/06/27(日) 12:37:46.84ID:2gHjXwTf それと関数へのポインタな
147デフォルトの名無しさん
2021/06/27(日) 12:41:11.83ID:G7M856dZ 大抵のオブジェクト指向ω言語は
c で構造体 (FILE *) の例が一番良く合うと思うが
self とか this とかを第一パラメータ省略出来るだけで
やってることは同じ
c で構造体 (FILE *) の例が一番良く合うと思うが
self とか this とかを第一パラメータ省略出来るだけで
やってることは同じ
148デフォルトの名無しさん
2021/06/28(月) 21:49:59.55ID:hb08z3M6 「ループって結局gotoなんだよな」って謎のうわごと言ってる変な人が涌いたなぁ…
というこの感じ、わかりますかね?
というこの感じ、わかりますかね?
149デフォルトの名無しさん
2021/06/29(火) 09:39:43.72ID:FQiEOJle150デフォルトの名無しさん
2021/06/29(火) 19:18:22.85ID:B7EiqjVa >>148
まぁ形としてgotoを使わず書くのが構造化ってことやから
まぁ形としてgotoを使わず書くのが構造化ってことやから
151デフォルトの名無しさん
2021/06/29(火) 19:20:40.15ID:z+Vt20Ug 下らん。自明。
152デフォルトの名無しさん
2021/07/01(木) 15:09:55.43ID:i0Niwzqk >>150
強盗退治のダイクストラ大先生の気持はわかるのだが、
goto を退治しようと思うと、変数スコープをどうするかとか、
受け皿としての構造化ステートメントをどうするかとかいった
問題もある。
LOOP - UNTIL - DO - REPEAT 構文なんかは、
変数スコープとか無限ループの中からの break とか、
けっこうややこしい話がある。
べつに批判というわけではなくて、
爺いの繰り言だと思ってくれ。
強盗退治のダイクストラ大先生の気持はわかるのだが、
goto を退治しようと思うと、変数スコープをどうするかとか、
受け皿としての構造化ステートメントをどうするかとかいった
問題もある。
LOOP - UNTIL - DO - REPEAT 構文なんかは、
変数スコープとか無限ループの中からの break とか、
けっこうややこしい話がある。
べつに批判というわけではなくて、
爺いの繰り言だと思ってくれ。
153デフォルトの名無しさん
2021/07/02(金) 06:08:53.71ID:1mPaPsjo >>152
変数のスコープとgotoって何か関係するの?
変数のスコープとgotoって何か関係するの?
154デフォルトの名無しさん
2021/07/02(金) 10:44:14.20ID:xu7tv1xS155デフォルトの名無しさん
2021/07/02(金) 10:46:12.72ID:xu7tv1xS >>152 のじじいには是非とも longjump と exception の違いについて解説してもらいたい
156デフォルトの名無しさん
2021/07/02(金) 21:54:55.09ID:QH8xfbBh157デフォルトの名無しさん
2021/07/06(火) 14:46:59.64ID:C2l77xOE 「仕事ができる社員には、入社した頃から優秀で何でもできちゃうというタイプもいますが、経験を積んで
段階的に良くなっていくということがあります。一方、仕事ができない社員は、せっかく経験を積んでも、
教育訓練を受けても、能力・スキルがなかなか上がりません。自分の能力やパフォーマンスが低いという自覚
がないから、そういう残念な状態がずっと続いてしまうんでしょうね」(サービス)
https://toyokeizai.net/articles/amp/437325?page=2
段階的に良くなっていくということがあります。一方、仕事ができない社員は、せっかく経験を積んでも、
教育訓練を受けても、能力・スキルがなかなか上がりません。自分の能力やパフォーマンスが低いという自覚
がないから、そういう残念な状態がずっと続いてしまうんでしょうね」(サービス)
https://toyokeizai.net/articles/amp/437325?page=2
158デフォルトの名無しさん
2021/07/08(木) 09:45:26.96ID:55hhGJGn >>155
> 是非とも longjump と exception の違いについて解説してもらいたい
階層のあるロジックで、途中の階層でファイル開けたりするじゃん。
まぁ、最近の実行環境とかだったら、自働的に閉じてくれるだろうけど、
ハックアタックとか喰らったりすると、処理がおっつかなくなって
システムが落ちたりするわけだよ。
例外を拾うと、戻ってくる途中で後始末してさらに上に例外を投げる、とか
できるから、なんぼか安全でユーザに親切なコードを書ける。
ただし、これは OO に限った話じゃなくて、昔の Lisp にも
キャッチ&スローはあった。
Lisp 的な使い方だと、「タイマーを仕掛けておいて、あるアルゴリズムを
実行中にタイムアウトしたら、例外で呼び元に戻って別のアルゴリズムを
試す」みたいなこともできる。
> 是非とも longjump と exception の違いについて解説してもらいたい
階層のあるロジックで、途中の階層でファイル開けたりするじゃん。
まぁ、最近の実行環境とかだったら、自働的に閉じてくれるだろうけど、
ハックアタックとか喰らったりすると、処理がおっつかなくなって
システムが落ちたりするわけだよ。
例外を拾うと、戻ってくる途中で後始末してさらに上に例外を投げる、とか
できるから、なんぼか安全でユーザに親切なコードを書ける。
ただし、これは OO に限った話じゃなくて、昔の Lisp にも
キャッチ&スローはあった。
Lisp 的な使い方だと、「タイマーを仕掛けておいて、あるアルゴリズムを
実行中にタイムアウトしたら、例外で呼び元に戻って別のアルゴリズムを
試す」みたいなこともできる。
159デフォルトの名無しさん
2021/07/08(木) 11:23:32.18ID:2xQyyxJV ロングジャンプするとスタックはどうなるの?
160デフォルトの名無しさん
2021/07/08(木) 11:37:56.66ID:qzQUzceM そのままじゃないの?
ロングジャンプと関数呼び出しのちがいがわからない
ロングジャンプと関数呼び出しのちがいがわからない
161デフォルトの名無しさん
2021/07/08(木) 11:40:31.56ID:qzQUzceM アセンブラの話かと思った
162デフォルトの名無しさん
2021/07/09(金) 15:21:32.46ID:CPOxdqYe >>159
>>160
ローカル変数を積んだヒープもリターンアドレスを積んだスタックも、
ぜーんぶチャラにされてしまうので、C 言語だったらそういった情報は
グローバル変数に積んでおくしかないと思う。
C 言語というのは、
C のソース ⇒ マクロ 展開の後のソース ⇒ マクロアセンブラのソース
⇒ 展開後のネイティブアセンブラのソース ⇒ ネイティブなマシンのコード
ということになっているので、「マクロアセンブラのソース」と
「逆アセンブルしたネイティブなコード」(でなければダンプしたバイナリ)を
比較すりゃあいいんじゃねぇ? つーてもそこからリンカが動くわけだから、
シンボルは解決されていないわけで、「あっちゃとこっちゃでラベルの
シンボルが同じなのに型が違う」とかいった話があったりするので
けっこう面倒臭いんだが。
つーても、こういう話は OO とはなんにも関係がなくて、
単に Java が間に仮想機械を挟んでいるだけの話だと思うが。
>>160
ローカル変数を積んだヒープもリターンアドレスを積んだスタックも、
ぜーんぶチャラにされてしまうので、C 言語だったらそういった情報は
グローバル変数に積んでおくしかないと思う。
C 言語というのは、
C のソース ⇒ マクロ 展開の後のソース ⇒ マクロアセンブラのソース
⇒ 展開後のネイティブアセンブラのソース ⇒ ネイティブなマシンのコード
ということになっているので、「マクロアセンブラのソース」と
「逆アセンブルしたネイティブなコード」(でなければダンプしたバイナリ)を
比較すりゃあいいんじゃねぇ? つーてもそこからリンカが動くわけだから、
シンボルは解決されていないわけで、「あっちゃとこっちゃでラベルの
シンボルが同じなのに型が違う」とかいった話があったりするので
けっこう面倒臭いんだが。
つーても、こういう話は OO とはなんにも関係がなくて、
単に Java が間に仮想機械を挟んでいるだけの話だと思うが。
163デフォルトの名無しさん
2021/07/09(金) 15:28:01.63ID:CPOxdqYe >>161
> アセンブラの話かと思った
うん、本当に その通りだ。
隠蔽体質が限界に来ちゃったんで、「いっぺん VM で切り分けようよ」と
いう話になって、IEEE の数値表現とかで「C の構造体の穴」とかの
話は別枠にしようというのが、もともとの話(OO と全然関係のない
話でスマソ)だ。
> アセンブラの話かと思った
うん、本当に その通りだ。
隠蔽体質が限界に来ちゃったんで、「いっぺん VM で切り分けようよ」と
いう話になって、IEEE の数値表現とかで「C の構造体の穴」とかの
話は別枠にしようというのが、もともとの話(OO と全然関係のない
話でスマソ)だ。
164デフォルトの名無しさん
2021/07/09(金) 15:34:42.87ID:CPOxdqYe >>160
> ロングジャンプと関数呼び出しのちがいがわからない
正確にいうと「関数呼出しの戻り」だと思う。
一段上に戻るのが、普通の「関数呼出しの戻り」で、
途中の呼出しのためにスタックやヒープに積んどいた
情報をぜんぶすっ飛ばしてチャラにしちゃうのが longjump 。
そのときの情報が半端に残っているもんだから、
うっかり別プロセスから呼ばれたときにゴミを拾ってややこしいことになる。
Java でも「これ、スレッドフリーで実装してるから」というのを
宣言してないメソッドを使うと、ややこしいことが起きた時代があったげな。
どっとはらい。
> ロングジャンプと関数呼び出しのちがいがわからない
正確にいうと「関数呼出しの戻り」だと思う。
一段上に戻るのが、普通の「関数呼出しの戻り」で、
途中の呼出しのためにスタックやヒープに積んどいた
情報をぜんぶすっ飛ばしてチャラにしちゃうのが longjump 。
そのときの情報が半端に残っているもんだから、
うっかり別プロセスから呼ばれたときにゴミを拾ってややこしいことになる。
Java でも「これ、スレッドフリーで実装してるから」というのを
宣言してないメソッドを使うと、ややこしいことが起きた時代があったげな。
どっとはらい。
165デフォルトの名無しさん
2021/07/10(土) 13:45:47.10ID:keCdkflV 馬鹿だw
166デフォルトの名無しさん
2021/07/11(日) 13:38:07.40ID:AB3pchpm167デフォルトの名無しさん
2021/07/11(日) 18:06:50.71ID:UkcAZW7O 自覚はあるようだ
168デフォルトの名無しさん
2021/07/12(月) 14:49:21.34ID:LBA0QktL 自覚があれば許されるって問題じゃないがな
169デフォルトの名無しさん
2021/07/12(月) 15:07:01.79ID:aEttnyn+ アセンブラのジャンプ命令のロングのものは
当たり前だけどスタックエリアもスタティックエリアもヒープエリアも触ることはないよ・・・
何の言語?
当たり前だけどスタックエリアもスタティックエリアもヒープエリアも触ることはないよ・・・
何の言語?
170デフォルトの名無しさん
2021/07/15(木) 14:20:57.31ID:fe/M1r5r オブジェクト同士は常に二人称で、「俺」←対話(メッセージング)→「チンポ」。
つまりチンポは独立し自ら考えて行動する別の生き物なのである。
この考え方に至ってからは、オブジェクト指向の理解もすんなり進みました。
上手くオブジェクトを定義して、上手く会話させてやるのがオブジェクト指向
での設計なんだなーと今でも思っています。
https://blog.mah-lab.com/2014/03/18/object-oriented/
チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650
<俺>
「 部屋の英子がこちらを向いた気配に、彼は勃○した陰○を外から障子に突きたてた。障子は乾いた音をたてて破れ、
それを見た英子は読んでいた本を力一杯障子にぶつけたのだ。本は見事、的に当って畳に落ちた。 」
<チンポ>
「 その瞬間、竜哉は体中が引き締まるような快感を感じた。彼は今、リングで感じるあのギラギラした、
抵抗される人間の喜びを味わったのだ。 」
まさに独立した人格を有したチンポという、もう一人の俺がそこに現れるのである!
【藤子・F・不二雄】「みきおとミキオ」現在と未来、憧れの入れ替わり生活!
https://www.google.com/amp/s/middle-edge.jp/articles/0izbO.amp
つまりチンポは独立し自ら考えて行動する別の生き物なのである。
この考え方に至ってからは、オブジェクト指向の理解もすんなり進みました。
上手くオブジェクトを定義して、上手く会話させてやるのがオブジェクト指向
での設計なんだなーと今でも思っています。
https://blog.mah-lab.com/2014/03/18/object-oriented/
チンコの随意筋と不随意筋
http://d.hatena.ne.jp/tottokotokoroten/20130516/1368716650
<俺>
「 部屋の英子がこちらを向いた気配に、彼は勃○した陰○を外から障子に突きたてた。障子は乾いた音をたてて破れ、
それを見た英子は読んでいた本を力一杯障子にぶつけたのだ。本は見事、的に当って畳に落ちた。 」
<チンポ>
「 その瞬間、竜哉は体中が引き締まるような快感を感じた。彼は今、リングで感じるあのギラギラした、
抵抗される人間の喜びを味わったのだ。 」
まさに独立した人格を有したチンポという、もう一人の俺がそこに現れるのである!
【藤子・F・不二雄】「みきおとミキオ」現在と未来、憧れの入れ替わり生活!
https://www.google.com/amp/s/middle-edge.jp/articles/0izbO.amp
171デフォルトの名無しさん
2021/07/15(木) 15:05:02.15ID:ygp86UHP みんな教えてくれ
Chrome の右上に 「タブを検索」 ってバカ見たいなアイコンがまた出て来た
以前は chrome://flags から enable-tab-search を選んで disable にすれば非表示に出来たんだが
ある日を境にそれも出来なくなってまた現れたんだ
今度は消せない
css とか何かの hack で良いから消す方法を教えてくれ
緊急事態なんだ
Chrome の右上に 「タブを検索」 ってバカ見たいなアイコンがまた出て来た
以前は chrome://flags から enable-tab-search を選んで disable にすれば非表示に出来たんだが
ある日を境にそれも出来なくなってまた現れたんだ
今度は消せない
css とか何かの hack で良いから消す方法を教えてくれ
緊急事態なんだ
172デフォルトの名無しさん
2021/07/19(月) 09:58:54.74ID:aT6h1Owq (中学入学当時の思い出)
女子の着換えブルマ姿に欲情してチンポがシコシコしてたらケツの穴が緩んでおならブー、慌ててトイレに
駆け込んでセンズリとウンコを済ませて教室に帰ると、みんなが臭い臭い屁をコイタのは誰だと騒いでた。
女子の着換えブルマ姿に欲情してチンポがシコシコしてたらケツの穴が緩んでおならブー、慌ててトイレに
駆け込んでセンズリとウンコを済ませて教室に帰ると、みんなが臭い臭い屁をコイタのは誰だと騒いでた。
173デフォルトの名無しさん
2021/07/20(火) 15:25:50.08ID:8LncYo8+ 授業中にオナニーした自慢してる同級生がいた母校
174デフォルトの名無しさん
2021/07/26(月) 16:14:40.27ID:h3NNUVW3 オブジェクト志向というのは、
かつて「算体志向言語」と呼ばれていて、
数学基礎論関係の人から支持されていたのだが、
「チンポチンポチンポチンポチンポチンポチンポチンポチンポチンポチンポ
チンポチンポチンポチンポチンポチンポチンポチンポチンポチンポチンポ!」
と叫び続ける人には、どんなトラウマがあるのだろう、と、
ソフトウェア技術とは別のカテゴリー(メンヘラ板とか)的に
興味が出てきた。
かつて「算体志向言語」と呼ばれていて、
数学基礎論関係の人から支持されていたのだが、
「チンポチンポチンポチンポチンポチンポチンポチンポチンポチンポチンポ
チンポチンポチンポチンポチンポチンポチンポチンポチンポチンポチンポ!」
と叫び続ける人には、どんなトラウマがあるのだろう、と、
ソフトウェア技術とは別のカテゴリー(メンヘラ板とか)的に
興味が出てきた。
175デフォルトの名無しさん
2021/07/26(月) 16:28:41.26ID:h3NNUVW3 正直な話、C 言語みたいな「記憶空間上の位置」というイメージは、
「仮想メモリ」あたりが絡んでくると、非常に面倒臭い話に
なるわけだよ。
アセンブリ言語の時代は、プロテクト上のテクニックとして、
「ROM に書き込む命令を実行しておいて、あとでチェックする」
みたいなネタがあったわけだが、プログラムが巨大化してくると、
そういうチマチマした工夫というのは用済みになってしまって、
「それなりに大きいシステムを動かす」というのに重点が
置かれてきたわけだ。
そういう意味では、オブジェクト志向というのは
「順当」で「つまらん」コンセプトではある。
「仮想メモリ」あたりが絡んでくると、非常に面倒臭い話に
なるわけだよ。
アセンブリ言語の時代は、プロテクト上のテクニックとして、
「ROM に書き込む命令を実行しておいて、あとでチェックする」
みたいなネタがあったわけだが、プログラムが巨大化してくると、
そういうチマチマした工夫というのは用済みになってしまって、
「それなりに大きいシステムを動かす」というのに重点が
置かれてきたわけだ。
そういう意味では、オブジェクト志向というのは
「順当」で「つまらん」コンセプトではある。
176デフォルトの名無しさん
2021/07/26(月) 16:47:29.54ID:y8y7Lt86 支離滅裂
177デフォルトの名無しさん
2021/07/26(月) 18:44:37.57ID:Mq5VCN/i >>174
「拡張された自我」というのはダメなのか?
「拡張された自我」というのはダメなのか?
178デフォルトの名無しさん
2021/07/26(月) 20:05:01.57ID:0k++frUQ 志向じゃねえと何度行ったらわかるんだ
179デフォルトの名無しさん
2021/07/26(月) 21:03:06.65ID:Sy50UqPQ180デフォルトの名無しさん
2021/07/26(月) 21:41:28.75ID:xfwXuIQ4 部分的には意味があるが話のつながりが全然わからん
181デフォルトの名無しさん
2021/07/26(月) 21:42:49.37ID:h3NNUVW3 >>178
OO はオブジェクト・オリエンテッドだと何度言ったらわかるんだ。
高校のときの世界史の教科書を引っ張り出してきて、
「光は東方より」とか「オリエント文化」とかいった
用語を確認しておいてほしい。
「オリエンテーション」とか「オリエンテーリング」とかいう
言葉もあるだろう。
「指さす(指向)」だけで動かないんだったら、
なんの役にも立たんだろうがよ。
OO はオブジェクト・オリエンテッドだと何度言ったらわかるんだ。
高校のときの世界史の教科書を引っ張り出してきて、
「光は東方より」とか「オリエント文化」とかいった
用語を確認しておいてほしい。
「オリエンテーション」とか「オリエンテーリング」とかいう
言葉もあるだろう。
「指さす(指向)」だけで動かないんだったら、
なんの役にも立たんだろうがよ。
182デフォルトの名無しさん
2021/07/26(月) 23:32:09.15ID:XZlTnvY0183デフォルトの名無しさん
2021/07/27(火) 05:27:08.07ID:Q2Vxfcf1 >>181
それ、仕事場でも同じようなこと言って無理矢理通してるの?
それ、仕事場でも同じようなこと言って無理矢理通してるの?
184デフォルトの名無しさん
2021/07/27(火) 06:09:15.19ID:LcJHa8Ez 正規表現も周りに合わせず自分だけ正則表現と言ってそう
185デフォルトの名無しさん
2021/07/27(火) 11:08:22.21ID:/Iqls6o1 GoFのデザインパターン勉強したいんだけど
何からはじめればいい?なんか良書ない?そもそも現代においては最早学ぶ必要すらなし?
Javaの素養もなくJava言語で学ぶデザインパターン入門は20年前くらいに一度挫折した
何からはじめればいい?なんか良書ない?そもそも現代においては最早学ぶ必要すらなし?
Javaの素養もなくJava言語で学ぶデザインパターン入門は20年前くらいに一度挫折した
186デフォルトの名無しさん
2021/07/27(火) 11:32:43.58ID:v0U2tVBR >>185
オブジェクト指向における再利用のためのデザインパターン
↑これ買っとけば間違いない
英語が出来るなら原書を買えばさらに間違いはない
GoFが主張したかったことがそのまま書いてあるのが大事
ほかのJavaでうんたら〜とかネットの素人記事とかは
すべて二次情報になっており危ない
独自解釈や拡大解釈で焦点をどんどんボカされてしまう恐れがある
あるいは、今は手を出さないほうがいい
糞設計、糞コードの山を既に作りまくってて
困り果てた挙句に手を出してみるのがデザパタ
少しでも設計の助けになるヒントを求める先がデザパタ
糞設計にまみれた人でないと必要性がまずわからんはず
オブジェクト指向における再利用のためのデザインパターン
↑これ買っとけば間違いない
英語が出来るなら原書を買えばさらに間違いはない
GoFが主張したかったことがそのまま書いてあるのが大事
ほかのJavaでうんたら〜とかネットの素人記事とかは
すべて二次情報になっており危ない
独自解釈や拡大解釈で焦点をどんどんボカされてしまう恐れがある
あるいは、今は手を出さないほうがいい
糞設計、糞コードの山を既に作りまくってて
困り果てた挙句に手を出してみるのがデザパタ
少しでも設計の助けになるヒントを求める先がデザパタ
糞設計にまみれた人でないと必要性がまずわからんはず
187デフォルトの名無しさん
2021/07/27(火) 16:49:37.67ID:2/5jRvjl デザパタは「批判的に継承する」ことが前提とされているので、
それを踏まえて気長につきあってくれ。なお、そもそもの語源は建築分野だ。
「GoF」の元ネタは「四人組」で、
> 四人組はプロレタリア独裁・文化革命を隠れ蓑にして極端な政策を実行、
> 反対派を徹底的に弾圧し、迫害して殺害したが、
> 中国共産党中央委員会主席である毛沢東の死後に失脚した。
だ。
それを踏まえて気長につきあってくれ。なお、そもそもの語源は建築分野だ。
「GoF」の元ネタは「四人組」で、
> 四人組はプロレタリア独裁・文化革命を隠れ蓑にして極端な政策を実行、
> 反対派を徹底的に弾圧し、迫害して殺害したが、
> 中国共産党中央委員会主席である毛沢東の死後に失脚した。
だ。
188デフォルトの名無しさん
2021/07/27(火) 17:38:09.84ID:SIzlx99/ >>181
指向は、物事の基本として位置づけるって意味だよ
オブジェクト指向プログラミングはオブジェクトを基本としたプログラミングって意味だよ
オブジェクト志向プログラミングだと、俺はオブジェクトになるんだって思いながら行うプログラミングになっちゃうよ
オブジェクト志向は間違いなので今後はオブジェクト指向と書くように
指向は、物事の基本として位置づけるって意味だよ
オブジェクト指向プログラミングはオブジェクトを基本としたプログラミングって意味だよ
オブジェクト志向プログラミングだと、俺はオブジェクトになるんだって思いながら行うプログラミングになっちゃうよ
オブジェクト志向は間違いなので今後はオブジェクト指向と書くように
189デフォルトの名無しさん
2021/07/27(火) 17:53:36.60ID:SIzlx99/ 一番重要なデザインパターンはイテレータパターンとデコレータパターン
2つ覚えておけばあとはおまけみたいなもん
2つ覚えておけばあとはおまけみたいなもん
190デフォルトの名無しさん
2021/07/27(火) 18:30:55.17ID:3rBo4v1y191デフォルトの名無しさん
2021/07/28(水) 10:14:10.51ID:TIa2mcNA192デフォルトの名無しさん
2021/07/28(水) 10:17:20.31ID:TIa2mcNA193デフォルトの名無しさん
2021/07/28(水) 10:44:13.49ID:Zb5hS091194デフォルトの名無しさん
2021/07/28(水) 10:57:50.22ID:Zb5hS091195デフォルトの名無しさん
2021/07/28(水) 23:54:33.04ID:GRHddmr5 >>192
イテレータパターンは逐次処理の基本で
デコレータパターンは機能を拡張する基本
JavaのStreamとか.NETのLINQは知ってるっしょ
イテレータパターンとデコレータパターンを知ってるとLINQ作るのは楽勝
こんな感じに
https://paiza.io/projects/JRTGnHvxgXmixjgoOGANhA
ラムダ式使うから他のデザインパターンはおまけと言って良いですね
イテレータパターンは逐次処理の基本で
デコレータパターンは機能を拡張する基本
JavaのStreamとか.NETのLINQは知ってるっしょ
イテレータパターンとデコレータパターンを知ってるとLINQ作るのは楽勝
こんな感じに
https://paiza.io/projects/JRTGnHvxgXmixjgoOGANhA
ラムダ式使うから他のデザインパターンはおまけと言って良いですね
196デフォルトの名無しさん
2021/07/29(木) 00:09:43.58ID:ODUB6YGJ 自分でLINQのようなもの作ってみるとわかるんだけれども
JavaのIteratorクラスも.NETのEnumeratorクラスもデザイン的にはよろしくない
JavaのIteratorは
hasNext : 値があるかを返す
next : カーソルを進め、値を返す
.NETのEnumeratorは
MoveNext : カーソルを進め、値があるかを返す
Current : 値を返す
nextやMoveNextは一つのメソッドで2つの処理をやってるんだよね
hasValue
getValue
move
の3つに別れてるといろんな処理が書きやすい
Iteratorは一度自分で作ってみるのをおすすめする
結果的に使わなくてもやってみると楽しい
JavaのIteratorクラスも.NETのEnumeratorクラスもデザイン的にはよろしくない
JavaのIteratorは
hasNext : 値があるかを返す
next : カーソルを進め、値を返す
.NETのEnumeratorは
MoveNext : カーソルを進め、値があるかを返す
Current : 値を返す
nextやMoveNextは一つのメソッドで2つの処理をやってるんだよね
hasValue
getValue
move
の3つに別れてるといろんな処理が書きやすい
Iteratorは一度自分で作ってみるのをおすすめする
結果的に使わなくてもやってみると楽しい
197デフォルトの名無しさん
2021/07/29(木) 00:31:12.53ID:YKvIUGd6 >>193
orientedを想像してほしいの
orientedを想像してほしいの
198デフォルトの名無しさん
2021/07/29(木) 00:37:09.24ID:YKvIUGd6 >>194
パスカルってローカル変数をメソッドの先頭にまとめて書かないといけないよね、あれって思考の妨げになりそうなものだけどすいすい書けるものなんかね、必要になったとき必要になったところに変数書けるJavaの方が読み書きしやすいように思えてしかたない
パスカルってローカル変数をメソッドの先頭にまとめて書かないといけないよね、あれって思考の妨げになりそうなものだけどすいすい書けるものなんかね、必要になったとき必要になったところに変数書けるJavaの方が読み書きしやすいように思えてしかたない
199デフォルトの名無しさん
2021/07/29(木) 01:43:55.64ID:oVQ0Ruxr >>191
あの著者は「デザパタにしろ」なんて言ってないw
そもそもデザパタに限らずアイデアというのは適合するものに適用するんであって、
馬鹿の一つ覚えで無理矢理使うものじゃないw
古い版持ってるけで悪くない本だと思うよ
マルチスレッド編は持ってるけど読んでないので知らん
あの著者は「デザパタにしろ」なんて言ってないw
そもそもデザパタに限らずアイデアというのは適合するものに適用するんであって、
馬鹿の一つ覚えで無理矢理使うものじゃないw
古い版持ってるけで悪くない本だと思うよ
マルチスレッド編は持ってるけど読んでないので知らん
200デフォルトの名無しさん
2021/07/29(木) 01:47:27.80ID:oVQ0Ruxr201191
2021/07/29(木) 02:10:42.11ID:+NG4dF8L >>199
>「デザパタにしろ」なんて言ってない
いやでもメリットは明確に提示すべきでしょ?
もちろん無理やり使う必要はないんだけど
どういう時に使うのかの基準が分からないと
あと似ているパターンの使い分けとかも曖昧
もちろん今は分かるようになったけど
>「デザパタにしろ」なんて言ってない
いやでもメリットは明確に提示すべきでしょ?
もちろん無理やり使う必要はないんだけど
どういう時に使うのかの基準が分からないと
あと似ているパターンの使い分けとかも曖昧
もちろん今は分かるようになったけど
202デフォルトの名無しさん
2021/07/29(木) 02:42:24.67ID:YKvIUGd6203デフォルトの名無しさん
2021/07/29(木) 02:45:10.28ID:YKvIUGd6 汎用的ではないよね
使い途が限定されるなら特化的
使い途が限定されるなら特化的
204デフォルトの名無しさん
2021/07/29(木) 02:48:21.13ID:YKvIUGd6 >>199
マルチスレッドのデザインパターンではワーカースレッドパターンとフューチャーパターンが一番大事であとはおまけ
マルチスレッドのデザインパターンではワーカースレッドパターンとフューチャーパターンが一番大事であとはおまけ
205デフォルトの名無しさん
2021/07/29(木) 02:56:23.90ID:YKvIUGd6 >>201
これはなかなか難しいよね
僕はLINQを例にあげてイテレータパターンとデコレータパターンの素晴らしさを鮮やかに示したけどそれは僕の知識と経験と明敏なセンスがあったからできたことであって常人にはなかなかできないこと
これはなかなか難しいよね
僕はLINQを例にあげてイテレータパターンとデコレータパターンの素晴らしさを鮮やかに示したけどそれは僕の知識と経験と明敏なセンスがあったからできたことであって常人にはなかなかできないこと
206デフォルトの名無しさん
2021/07/29(木) 03:00:39.17ID:sxXIkVXX207デフォルトの名無しさん
2021/07/29(木) 03:01:54.86ID:YKvIUGd6 なんだか空虚な人だな
208デフォルトの名無しさん
2021/07/29(木) 17:07:48.87ID:rnbNo3z7 >>174
チンポはオシッコを出したりオシッコを止めたりする機能が備わっている。
チンポはオシッコを出したりオシッコを止めたりする機能が備わっている。
209デフォルトの名無しさん
2021/07/30(金) 00:25:47.68ID:T4chNKrF >>198
Pascal は begin 〜 end だからめんどくさい。それがあるんで
変数スコープを明確にしようと思うとサブルーチンを使うことになって
プログラムが細切れになる。その意味では思考の邪魔ではあるな。
Java だと {} だから「そのループの中で遣う変数」だけを
示すのが(インデントも併用して)楽っちゃあ楽。
ただ、これに break が絡んでくると、けっこう面倒臭い話がある
(結果をどこに残すかとか)ので、ときどき珍妙なコードになったり
することがあって「これは private なメソッドにしよう」とかいって
悩んだりもする。
話は変わるが、C の struct みたいに、「複数の値を返すために、
ちょっとだけ使う」というのが Java だとめんどくさい。
まぁ、それは「どうせ他のところで使うだろうから外に出しとけ」
っちゅー話なんだろうが、OO が効くような大規模プロジェクトだと、
他人のコードを読まない奴がいるんだよなぁ … (-_-!)
Pascal は begin 〜 end だからめんどくさい。それがあるんで
変数スコープを明確にしようと思うとサブルーチンを使うことになって
プログラムが細切れになる。その意味では思考の邪魔ではあるな。
Java だと {} だから「そのループの中で遣う変数」だけを
示すのが(インデントも併用して)楽っちゃあ楽。
ただ、これに break が絡んでくると、けっこう面倒臭い話がある
(結果をどこに残すかとか)ので、ときどき珍妙なコードになったり
することがあって「これは private なメソッドにしよう」とかいって
悩んだりもする。
話は変わるが、C の struct みたいに、「複数の値を返すために、
ちょっとだけ使う」というのが Java だとめんどくさい。
まぁ、それは「どうせ他のところで使うだろうから外に出しとけ」
っちゅー話なんだろうが、OO が効くような大規模プロジェクトだと、
他人のコードを読まない奴がいるんだよなぁ … (-_-!)
210デフォルトの名無しさん
2021/07/30(金) 00:45:15.42ID:T4chNKrF >>208
> チンポはオシッコを出したりオシッコを止めたりする機能が備わっている。
…… まぁ、放っといたほうがいいんだろうが、ひとこと。
「オシッコを出したりオシッコを止めたりする機能」は前立腺とか
外尿道括約筋の機能であって、チンポの機能ではないと思うが。
> チンポはオシッコを出したりオシッコを止めたりする機能が備わっている。
…… まぁ、放っといたほうがいいんだろうが、ひとこと。
「オシッコを出したりオシッコを止めたりする機能」は前立腺とか
外尿道括約筋の機能であって、チンポの機能ではないと思うが。
211デフォルトの名無しさん
2021/07/30(金) 11:26:48.31ID:2fVUhjUZ ああ、オブジェクト分割に失敗してる訳ね。
下品なだけとはやれやれですな。
下品なだけとはやれやれですな。
212デフォルトの名無しさん
2021/07/30(金) 11:37:32.74ID:bcOJfzQj >>210
>「オシッコを出したりオシッコを止めたりする機能」は前立腺とか
>外尿道括約筋の機能であって、チンポの機能ではないと思うが。
合成
継承自体は悪くないので、誤解しないでほしいです。しかし、それをうまく利用するには、実装前に全部の条件を知る必要があります。
それはなかなかない贅沢なので、合成パターンを使います!
この場合の合成は何かというと、オブジェクトを、そのオブジェクトができる行動の組み合わせとして捉える考え方です。
https://qiita.com/jlkiri/items/2c07d3f0a32f5d3b62cb
>「オシッコを出したりオシッコを止めたりする機能」は前立腺とか
>外尿道括約筋の機能であって、チンポの機能ではないと思うが。
合成
継承自体は悪くないので、誤解しないでほしいです。しかし、それをうまく利用するには、実装前に全部の条件を知る必要があります。
それはなかなかない贅沢なので、合成パターンを使います!
この場合の合成は何かというと、オブジェクトを、そのオブジェクトができる行動の組み合わせとして捉える考え方です。
https://qiita.com/jlkiri/items/2c07d3f0a32f5d3b62cb
213デフォルトの名無しさん
2021/07/30(金) 13:12:02.56ID:5Dvgi7qY >>209
Javaではrecordが使えるようになったから
Cのstruct より簡単かも
record Person(String name, LocalDate birthDay) {}
public static void main(String[] args) {
var p = new Person("ますお", LocalDate.of(1990, 3, 5));
}
Javaではrecordが使えるようになったから
Cのstruct より簡単かも
record Person(String name, LocalDate birthDay) {}
public static void main(String[] args) {
var p = new Person("ますお", LocalDate.of(1990, 3, 5));
}
214デフォルトの名無しさん
2021/07/30(金) 14:53:00.06ID:NHDNKqZ7 >>212
チンポの利尿機能は、前立腺とか外尿道括約筋とかの、オブジェクトの合成によるものだ。
チンポの利尿機能は、前立腺とか外尿道括約筋とかの、オブジェクトの合成によるものだ。
215デフォルトの名無しさん
2021/07/30(金) 15:23:59.30ID:T4chNKrF >>213
ありがとう。おれは 1.4 以下のコードをほじくり返しているので、
7 以降の機能を使いこなしていないんだわ。
そういう意味では旧世代のジジイではあるのだが、
いまの世代だったら「おれだったらこう書く」というスタイルが
あると思う。わしら旧世代でも、トレンドくらい追いかけているので、
「なるほど。こういうことをやりたいのね?」くらいは解る。
そういえば、とあるプロジェクトで「加齢臭漂う古臭いコード。
未来ある若者は真似してはいけない。コンテナ変数に押しこめて
隠蔽するのが吉」というコメントを書いたら、上司に「顧客さんだって、
コード見るですからねっ!」と涙ながらに叱責された orz。
ありがとう。おれは 1.4 以下のコードをほじくり返しているので、
7 以降の機能を使いこなしていないんだわ。
そういう意味では旧世代のジジイではあるのだが、
いまの世代だったら「おれだったらこう書く」というスタイルが
あると思う。わしら旧世代でも、トレンドくらい追いかけているので、
「なるほど。こういうことをやりたいのね?」くらいは解る。
そういえば、とあるプロジェクトで「加齢臭漂う古臭いコード。
未来ある若者は真似してはいけない。コンテナ変数に押しこめて
隠蔽するのが吉」というコメントを書いたら、上司に「顧客さんだって、
コード見るですからねっ!」と涙ながらに叱責された orz。
216デフォルトの名無しさん
2021/07/30(金) 15:32:29.89ID:T4chNKrF Java には明示的な多重継承がないので、大規模なプロジェクトだと、
(継承関係の整理とかで)いろいろとメンバー間で調整をしないといけない。
面倒臭いといえば面倒臭いんだが、プロジェクトのキーパースンと忌憚のない
交流ができるのが、自閉系のおれとしては嬉しかった。
(継承関係の整理とかで)いろいろとメンバー間で調整をしないといけない。
面倒臭いといえば面倒臭いんだが、プロジェクトのキーパースンと忌憚のない
交流ができるのが、自閉系のおれとしては嬉しかった。
217デフォルトの名無しさん
2021/07/30(金) 18:38:22.49ID:6DFltda+ >>216
>Java には明示的な多重継承がないので、
多重継承は曖昧だというが、自然言語処理はその曖昧さが大切になる。チンポは随意筋であり不随意筋である。
最終的に,クラス階層は最上位クラスを含めた
最大8 階層から構成され,「伝統的な日本の絵画」
に属する用語に対応する 55 クラスと解説文中か
ら抽出した139 クラスが配置された。ただし,そ
のうち 32 クラスが複数の上位クラスをもつとい
う多重継承が示された。例えば,「ngyc:絵巻物」
は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の
形式」の下位クラスである「ngyc:巻子」の 2 つの
クラスを継承する(図 2)。こうした多重継承は,
本質属性をもつ基本概念と機能を表すロール概念
を分離することで,基本概念による属性継承に限
った階層関係に変更するという考え方もあり 10),
「ngyc:伝統的な日本の絵画」がロール概念で,
「ngyc:表具の形式」が基本概念と捉えることもで
きる。しかし,本研究ではテキストからの情報抽
出に即して配置し,多重継承を許容した階層を導
き出した。
http://www.mslis.jp/am2019yoko/05_kobayashi.pdf
随意筋 不随意筋
↖ ↗
チンポ
>Java には明示的な多重継承がないので、
多重継承は曖昧だというが、自然言語処理はその曖昧さが大切になる。チンポは随意筋であり不随意筋である。
最終的に,クラス階層は最上位クラスを含めた
最大8 階層から構成され,「伝統的な日本の絵画」
に属する用語に対応する 55 クラスと解説文中か
ら抽出した139 クラスが配置された。ただし,そ
のうち 32 クラスが複数の上位クラスをもつとい
う多重継承が示された。例えば,「ngyc:絵巻物」
は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の
形式」の下位クラスである「ngyc:巻子」の 2 つの
クラスを継承する(図 2)。こうした多重継承は,
本質属性をもつ基本概念と機能を表すロール概念
を分離することで,基本概念による属性継承に限
った階層関係に変更するという考え方もあり 10),
「ngyc:伝統的な日本の絵画」がロール概念で,
「ngyc:表具の形式」が基本概念と捉えることもで
きる。しかし,本研究ではテキストからの情報抽
出に即して配置し,多重継承を許容した階層を導
き出した。
http://www.mslis.jp/am2019yoko/05_kobayashi.pdf
随意筋 不随意筋
↖ ↗
チンポ
218デフォルトの名無しさん
2021/07/30(金) 18:46:54.49ID:m4720ds0 本人面白いと思ってるのかねこれw
馬鹿じゃねえの
馬鹿じゃねえの
219デフォルトの名無しさん
2021/07/30(金) 19:46:16.03ID:5Dvgi7qY 統失の振りしてたら本当に統失になっちゃったんでしょ
220デフォルトの名無しさん
2021/07/30(金) 19:57:20.25ID:Ozy22ut3221Mb
2021/07/30(金) 21:14:08.47ID:T4chNKrF >>220
> コメントにそんな辛辣なこと書くなよ……(困惑)
困惑させて申し訳ない m(_ _)m。
そんなわけで固定ハンドルを使うことにする。
うちらはアセンブラ育ちなので、データ構造というと
スタックかヒープであって、せいぜいリングキューなんだわ。
それが、OO になると「コンテナ」という概念が出てきて、
「sizeof で次のデータにアクセスする」とかするより、
「リンクで参照したほうが面倒臭くない」という話に
なっちゃったので、正直リソース貧乏人には馴染まない部分があるんだわ。
Z80 とかで、ROM 4K バイトで RAM 4K バイトの環境で
BASIC インタプリタを駆動して「スタートレック」をプレイしていた
世代もいるわけだし。
今だったら メモリ空間も広いし仮想メモリもあるし二次記憶のサイズも
ギガテラ単位だし、プロセッサの処理能力も半端ないけど、
うちらのような貧乏人は、ついついケチ臭いコードを書いてしまうのだよ。
若者には、現在の豊富なリソースを堪能していただきたい。
「戦後の焼け跡のスイトンとかラーメンとかを喰ってみたい」というなら
止めないが、二回三回とかやるのは変態だと思う。
> コメントにそんな辛辣なこと書くなよ……(困惑)
困惑させて申し訳ない m(_ _)m。
そんなわけで固定ハンドルを使うことにする。
うちらはアセンブラ育ちなので、データ構造というと
スタックかヒープであって、せいぜいリングキューなんだわ。
それが、OO になると「コンテナ」という概念が出てきて、
「sizeof で次のデータにアクセスする」とかするより、
「リンクで参照したほうが面倒臭くない」という話に
なっちゃったので、正直リソース貧乏人には馴染まない部分があるんだわ。
Z80 とかで、ROM 4K バイトで RAM 4K バイトの環境で
BASIC インタプリタを駆動して「スタートレック」をプレイしていた
世代もいるわけだし。
今だったら メモリ空間も広いし仮想メモリもあるし二次記憶のサイズも
ギガテラ単位だし、プロセッサの処理能力も半端ないけど、
うちらのような貧乏人は、ついついケチ臭いコードを書いてしまうのだよ。
若者には、現在の豊富なリソースを堪能していただきたい。
「戦後の焼け跡のスイトンとかラーメンとかを喰ってみたい」というなら
止めないが、二回三回とかやるのは変態だと思う。
222デフォルトの名無しさん
2021/07/30(金) 21:57:58.61ID:Ozy22ut3223Mb
2021/07/30(金) 22:07:04.26ID:T4chNKrF >>220
あ、誤解されてそうだから書くけど、おれが書いたコードのコメントだから。
「とりあえず動けばいい」というので、「配列に突っこんで馬鹿サーチで検索する」
という杜撰なコードを書いた(DB で処理するルーチンの合間に入る
ルーチンだったので、遅くてもよかった。高速化するか保守の利便性を
考えるか迷ったが、「こうやって目立つように書いておけば、
誰かがパフォーマンスとのバランスを考えて修正してくれるだろう」)と
思って書いておいたのだが、あとで模造紙サイズの ER 図とか見せられて、
「どう思う。忌憚のない意見を聞かせてくれ」(いや、SQL なんてよく
知らんし)とか訊かれたあげく、「全体進捗会議のオブザーバー」として
引っ張りだされて小一時間問い詰められた (-_-!)。
オブジェクト志向とはなんの関係もないのだが、「再帰」「リンク」「new」
とかいった概念が出てくると、けっこう苦労する人がいるんだわ。
Oracle の 9i 以降には CONNECT BY という再帰呼出しがあって、
たまたまその部分を担当しただけなんだけどね。
あ、誤解されてそうだから書くけど、おれが書いたコードのコメントだから。
「とりあえず動けばいい」というので、「配列に突っこんで馬鹿サーチで検索する」
という杜撰なコードを書いた(DB で処理するルーチンの合間に入る
ルーチンだったので、遅くてもよかった。高速化するか保守の利便性を
考えるか迷ったが、「こうやって目立つように書いておけば、
誰かがパフォーマンスとのバランスを考えて修正してくれるだろう」)と
思って書いておいたのだが、あとで模造紙サイズの ER 図とか見せられて、
「どう思う。忌憚のない意見を聞かせてくれ」(いや、SQL なんてよく
知らんし)とか訊かれたあげく、「全体進捗会議のオブザーバー」として
引っ張りだされて小一時間問い詰められた (-_-!)。
オブジェクト志向とはなんの関係もないのだが、「再帰」「リンク」「new」
とかいった概念が出てくると、けっこう苦労する人がいるんだわ。
Oracle の 9i 以降には CONNECT BY という再帰呼出しがあって、
たまたまその部分を担当しただけなんだけどね。
224Mb
2021/07/30(金) 22:19:17.71ID:T4chNKrF >>222
> いや自分のソースのコメントに
> 同じこと書かれたら嫌でしょw
気に入らなきゃ直しゃいいだけであって、
履歴はソースコード管理システムに残ってるわけでしょ?
開発者どうしがお互いのソースに手を突っこむのは、
アジャイル開発では普通のことでしょうが。
それより不評だったのが、「靴屋の小人」で、
「覚えのないうちにコードが変更されているのだが、
コーディングスタイルが自分と見分けがつかない」というので
自分の正気を疑った、というのがあった。
「コメントくらい入れとけっ!」と苦笑しながら面罵されて、
渋谷の「東電OL殺人事件」の現場近くの線路沿いのバーで
一緒に飲んだ記憶がある。
> いや自分のソースのコメントに
> 同じこと書かれたら嫌でしょw
気に入らなきゃ直しゃいいだけであって、
履歴はソースコード管理システムに残ってるわけでしょ?
開発者どうしがお互いのソースに手を突っこむのは、
アジャイル開発では普通のことでしょうが。
それより不評だったのが、「靴屋の小人」で、
「覚えのないうちにコードが変更されているのだが、
コーディングスタイルが自分と見分けがつかない」というので
自分の正気を疑った、というのがあった。
「コメントくらい入れとけっ!」と苦笑しながら面罵されて、
渋谷の「東電OL殺人事件」の現場近くの線路沿いのバーで
一緒に飲んだ記憶がある。
225デフォルトの名無しさん
2021/07/30(金) 23:22:04.07ID:bcOJfzQj . .,x;Ρ. . r'ニ、
.. с⌒l^ г、 .rョ .__|{_,..\ヒノ. .rュ _ n′
...、.=ニ.〉..、 `ゝ' ノ/. `¬¬;冖'''′ ,xヒ'.,コ;-、 ´\ `'
.´~ ̄⌒"|.Г~~` ノ/ ィ |_| -、 Υ//. 」.| ヘヽ、
、// ノァ′ l.} }|. `('x, 、/j'′ .ノン. `'´
,ンシ´. ⊂ニニ-'′. tノ 、|.| \ . ~ └`
... `´. `′ ~′
.. ∩... . ,、.._
. Л.. Lニニニ⊃.. |.| `^''''¬¬-ニr
」{. l|.
!イ. ;、 И ,.n
V. //. .-..、_ _.... Y- ィン´.. `〜ニ;-=ィ'√
´`:-コェz:シ ´`'. ̄-'⌒.  ̄ ̄ ̄  ̄.
.. с⌒l^ г、 .rョ .__|{_,..\ヒノ. .rュ _ n′
...、.=ニ.〉..、 `ゝ' ノ/. `¬¬;冖'''′ ,xヒ'.,コ;-、 ´\ `'
.´~ ̄⌒"|.Г~~` ノ/ ィ |_| -、 Υ//. 」.| ヘヽ、
、// ノァ′ l.} }|. `('x, 、/j'′ .ノン. `'´
,ンシ´. ⊂ニニ-'′. tノ 、|.| \ . ~ └`
... `´. `′ ~′
.. ∩... . ,、.._
. Л.. Lニニニ⊃.. |.| `^''''¬¬-ニr
」{. l|.
!イ. ;、 И ,.n
V. //. .-..、_ _.... Y- ィン´.. `〜ニ;-=ィ'√
´`:-コェz:シ ´`'. ̄-'⌒.  ̄ ̄ ̄  ̄.
226Mb
2021/07/31(土) 00:16:53.58ID:HS2AjqTr 要するに OO が嫌いだから叩き潰そうという勢力が
あるということなのか orz
漏れもいいかげん古い世代なので、OO に関しては批判的な
思いはあるのだが、コンセプトとしては悪くないと
思っている。
とはいえ、
「チンポシコシコ!」「チンポシコシコ!」「チンポシコシコ!」
「チンポシコシコ!」「チンポシコシコ!」「チンポシコシコ!」
「チンポシコシコ!」「チンポシコシコ!」「チンポシコシコ!」
というメッセージを、どう捉えたらいいのかわからない。
あるということなのか orz
漏れもいいかげん古い世代なので、OO に関しては批判的な
思いはあるのだが、コンセプトとしては悪くないと
思っている。
とはいえ、
「チンポシコシコ!」「チンポシコシコ!」「チンポシコシコ!」
「チンポシコシコ!」「チンポシコシコ!」「チンポシコシコ!」
「チンポシコシコ!」「チンポシコシコ!」「チンポシコシコ!」
というメッセージを、どう捉えたらいいのかわからない。
227デフォルトの名無しさん
2021/07/31(土) 03:59:01.35ID:MqeBrne9 コメントはどちらかというとコミュニケーションだからなあ悪口言われたらモチベーション下がるだけだ、それこそソースコードを適切に修正したら良いのに
228デフォルトの名無しさん
2021/07/31(土) 08:13:25.39ID:QYAnB91H >>226
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
229Mb
2021/07/31(土) 16:43:16.77ID:HS2AjqTr■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
