前スレ
オブジェクト指向システムの設計 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
レス数が1000を超えています。これ以上書き込みはできません。
2017/09/26(火) 07:20:38.98ID:qu+DPehL
2017/09/26(火) 07:21:32.78ID:qu+DPehL
2getでオブジェクト指向消滅!
2017/09/26(火) 14:21:52.30ID:8TtfrkPc
デザパタ
2017/09/26(火) 21:00:17.36ID:XXa+nt+D
このスレは結局デザパタの話題になっちゃうの?
2017/09/26(火) 21:28:18.31ID:L4WBOAz6
デザパタとSmalltalkと…
2017/09/26(火) 23:00:24.75ID:wPSfJS/Y
smalltalk信者: 変化する環境に適応出来なかった絶滅種
デザパタ厨: 煽ることしか出来ない無能
次の患者、どうぞ
デザパタ厨: 煽ることしか出来ない無能
次の患者、どうぞ
2017/09/26(火) 23:21:32.01ID:U5HCny0u
>>6
お前は何て病気?
お前は何て病気?
2017/09/26(火) 23:57:05.71ID:wPSfJS/Y
無能な煽りは逆効果だとも分からないほど無能なんだな。
デザパタなんてイラネな俺がいくら無能でも、
デザパタを勉強する価値がある事にはならんだろ。
肝心のデザパタ厨が無能なんだから。
お前ら当たり前の論理も組み立てられないのな。
結局はデザパタ厨もやりすぎて手段が目的になってる。
上級者の実装パターンを学び、実装時にそれを生かすのが目的なのに、
デザパタの暗記が目的になり、undoすら実装出来ないのでは意味無いだろ。
しかも自分がその程度だと気付けてないのも救えない。
全スレ>>945は訂正しておく
・933の実力>>>デザパタ厨=自分がundoの実装すらマトモに出来ない事に気づけない
布教したいのなら、お前らがやるべき事は、
実装方式を悩んでいる初心者に対し、「そこは○○パターンで(キリッ」と丁寧に教えることであって、
いくら俺を叩いても意味無いだろ。
まあお前らにはこれをやる実力すらないわけだが。
デザパタなんてイラネな俺がいくら無能でも、
デザパタを勉強する価値がある事にはならんだろ。
肝心のデザパタ厨が無能なんだから。
お前ら当たり前の論理も組み立てられないのな。
結局はデザパタ厨もやりすぎて手段が目的になってる。
上級者の実装パターンを学び、実装時にそれを生かすのが目的なのに、
デザパタの暗記が目的になり、undoすら実装出来ないのでは意味無いだろ。
しかも自分がその程度だと気付けてないのも救えない。
全スレ>>945は訂正しておく
・933の実力>>>デザパタ厨=自分がundoの実装すらマトモに出来ない事に気づけない
布教したいのなら、お前らがやるべき事は、
実装方式を悩んでいる初心者に対し、「そこは○○パターンで(キリッ」と丁寧に教えることであって、
いくら俺を叩いても意味無いだろ。
まあお前らにはこれをやる実力すらないわけだが。
2017/09/27(水) 00:29:39.71ID:jZ7EahtZ
全スレが泣いた
2017/09/27(水) 00:46:50.85ID:jZ7EahtZ
心の中では「まえスレ」
2017/09/27(水) 01:46:12.14ID:SJAHc9Lg
設計パターンなんていらない
2017/09/27(水) 01:54:22.30ID:SJAHc9Lg
アーキテクチャパターンもいらない子
2017/09/27(水) 01:56:12.89ID:SJAHc9Lg
>>8
で、なんでデザパタイラネなんだっけ?
で、なんでデザパタイラネなんだっけ?
2017/09/27(水) 02:04:44.17ID:SJAHc9Lg
前スレ見てきた
> デザパタの暗記が目的になり、undoすら実装出来ないのでは意味無い
とか言ってる人がいたから、デザパタ厨とアンチデザパタ厨で実装対決してたのかと思ったら、誰もなにも実装してなかった
なるほど、undoすら実装できない人同士で設計論を争ってるのか
> デザパタの暗記が目的になり、undoすら実装出来ないのでは意味無い
とか言ってる人がいたから、デザパタ厨とアンチデザパタ厨で実装対決してたのかと思ったら、誰もなにも実装してなかった
なるほど、undoすら実装できない人同士で設計論を争ってるのか
2017/09/27(水) 02:10:07.97ID:60RbULmH
デザパタの持つ意味も理解してなければ
デザパタとundoの関係も理解してない人が
デザパタイラネと言ってたのが前スレ
デザパタとundoの関係も理解してない人が
デザパタイラネと言ってたのが前スレ
2017/09/27(水) 03:32:14.99ID:jZ7EahtZ
undoするものがないのに何を実装するんだ
こいつundoさえわからないのか
こいつundoさえわからないのか
2017/09/27(水) 06:51:39.93ID:mNYogTbA
どんなコンテナ概念も全部「それは構造体だから〜」にする
いつもの「自動車は馬なし馬車だから」さんが居たのは憶えてる。
いつもの「自動車は馬なし馬車だから」さんが居たのは憶えてる。
2017/09/27(水) 12:03:00.13ID:OelTm3Fw
un, deux, trios
19デフォルトの名無しさん
2017/09/29(金) 01:04:50.43ID:NSGi97+G 「注文」っていう動詞があったときに、
「振る舞い」と「操作」って何が違うんかな。
「振る舞い」と「操作」って何が違うんかな。
2017/09/29(金) 01:17:44.77ID:tjqo0EG6
2017/09/29(金) 02:19:10.82ID:RLeXl8wr
order.cancel() -> 注文の振る舞い
cancel(order) -> 注文に対する操作
ただしメソッドのことを操作と呼ぶ場合もあるから文脈による
cancel(order) -> 注文に対する操作
ただしメソッドのことを操作と呼ぶ場合もあるから文脈による
2017/09/29(金) 09:01:57.77ID:hpSK5POk
>>19
注文のように振る舞うオブジェクトを他のオブジェクトが操作するんだよ
注文のように振る舞うオブジェクトを他のオブジェクトが操作するんだよ
2017/09/30(土) 01:29:46.30ID:/jgYbdHq
だからデザパタってなんだよ
デザインパターンすら打つのが面倒くせえ奴はプログラミングなんかやめちまえ
デザインパターンすら打つのが面倒くせえ奴はプログラミングなんかやめちまえ
2017/09/30(土) 03:51:14.41ID:rw2PNEGc
デザパタ
2017/09/30(土) 06:58:20.29ID:SiFkWGTC
面倒くさがりはプログラマに向いてるだろ
2017/09/30(土) 07:00:21.91ID:REKxOj2c
オブジェクト指向ができなくて悩んでいるのですが、アドバイスお願いします
例として商品は10種類まで、今はつり銭の概念が入ってくるとややこしくて考えられないので投入金額 = 価格のみ購入可能というすごいシンプルな飲料自動販売機を想定しています
フローとしては購入する()内で飲料型の商品変数のメンバ価格と投入金額を比較し、イコールだった場合在庫数を減らす()を呼ぶというふうに考えているのですがどうなのでしょうか?
また自販機がわかりづらい場合、他の例を出して頂ければそちらで設計しますのでお願いします
クラス図を貼っておきます
https://i.imgur.com/0Sthq5O.png
例として商品は10種類まで、今はつり銭の概念が入ってくるとややこしくて考えられないので投入金額 = 価格のみ購入可能というすごいシンプルな飲料自動販売機を想定しています
フローとしては購入する()内で飲料型の商品変数のメンバ価格と投入金額を比較し、イコールだった場合在庫数を減らす()を呼ぶというふうに考えているのですがどうなのでしょうか?
また自販機がわかりづらい場合、他の例を出して頂ければそちらで設計しますのでお願いします
クラス図を貼っておきます
https://i.imgur.com/0Sthq5O.png
2017/09/30(土) 07:13:23.68ID:SiFkWGTC
どうなのって、正解があるわけじゃないから好きに作れよ
複雑そうなところはクラスの数を増やす、そうでないなら無理にクラス化しない
そういうことでどこまで作るかにもよるし
ユースケース図でも書け
複雑そうなところはクラスの数を増やす、そうでないなら無理にクラス化しない
そういうことでどこまで作るかにもよるし
ユースケース図でも書け
2017/09/30(土) 09:03:57.67ID:kOdc4YYr
>>26
お前が何がわからないのかわからない
お前が何がわからないのかわからない
2017/09/30(土) 09:04:38.47ID:fdjE74yE
デザパタ デザパタ デザパタ デザパタ デザパタ デザパタ デザパタ デザパタ
デザパタ デザパタ デザパタ デザパタ デザパタ デザハタ デザパタ デザパタ
デザパタ デザパタ デザパタ デザパタデザパタ デザパタ デザパタ デザパタ
デザパタ デザパタ デザパタ デザパタ デザパタ デザハタ デザパタ デザパタ
デザパタ デザパタ デザパタ デザパタデザパタ デザパタ デザパタ デザパタ
2017/09/30(土) 10:19:36.24ID:bL0j7tMv
デザパタ厨はこういう時こそ「○○パターンで!」とやるべきだろ。
そもそもデザパタ厨ですら全く使わない(=見かけない)から最初の質問、
「本当に使われているのか?」が発生するのであって。
そもそもデザパタ厨ですら全く使わない(=見かけない)から最初の質問、
「本当に使われているのか?」が発生するのであって。
2017/09/30(土) 10:25:41.46ID:kOdc4YYr
ねーよ
デザパタは使おうとすると
適応根拠が説明しきれない
デザパタは使おうとすると
適応根拠が説明しきれない
32デフォルトの名無しさん
2017/09/30(土) 10:37:51.13ID:aRvHHZYR StrategyとStateの違いって何よ
2017/09/30(土) 10:43:09.58ID:bL0j7tMv
2017/09/30(土) 10:43:56.11ID:bL0j7tMv
>>32
rgy
rgy
2017/09/30(土) 11:26:06.12ID:/L07O6Pa
2017/09/30(土) 11:46:25.29ID:bL0j7tMv
>>35
なら敢えて聞こう、どの位クソなのかと
なら敢えて聞こう、どの位クソなのかと
2017/09/30(土) 11:47:40.97ID:SoFMOodp
ところでリアルでデザパタって言ってるの?
2017/09/30(土) 11:52:30.69ID:/L07O6Pa
>>36
熱盛
熱盛
2017/09/30(土) 12:58:39.68ID:YEkb06JW
2017/09/30(土) 14:21:26.94ID:MuV6ZELy
>>26
オブジェクト指向かどうかに関係ないが
内部構造を考える前にシステム境界の内側と外側のインタラクションをまず考えること
システム境界の内側と外側のインタラクションを定義するためには
各インタラクションを自然言語で明確に記述することからはじまる
それができれば一番外側のクラスのインターフェースを考える(慣れるまで内部状態は一緒に考えない)
次に一番外側のクラスのインターフェースをサポートするために必要な状態やクラスを考える
で新しく必要だと考えたクラスのインターフェースを考える
これを繰り返す
オブジェクト指向かどうかに関係ないが
内部構造を考える前にシステム境界の内側と外側のインタラクションをまず考えること
システム境界の内側と外側のインタラクションを定義するためには
各インタラクションを自然言語で明確に記述することからはじまる
それができれば一番外側のクラスのインターフェースを考える(慣れるまで内部状態は一緒に考えない)
次に一番外側のクラスのインターフェースをサポートするために必要な状態やクラスを考える
で新しく必要だと考えたクラスのインターフェースを考える
これを繰り返す
2017/09/30(土) 14:26:12.80ID:MuV6ZELy
>>26
- 「お金の投入」と「商品の購入」を別インタラクション? お金はどうやって投入するの?
- 「購入する()」は何も渡さず何も返さない?
↑こういう点が必要なインタラクションを把握できてないと感じるところ
- 「お金の投入」と「商品の購入」を別インタラクション? お金はどうやって投入するの?
- 「購入する()」は何も渡さず何も返さない?
↑こういう点が必要なインタラクションを把握できてないと感じるところ
2017/09/30(土) 15:15:06.94ID:Rlso/pc7
デザパタなんてまだマシだろ
外人なんてDPって書く奴ざらにいるぞ
外人なんてDPって書く奴ざらにいるぞ
2017/09/30(土) 17:15:12.31ID:NS2YjOla
>>26
出庫(商品id, 出庫日, 個数)
入庫(商品id, 入庫日, 個数)
在庫管理 {
在庫数を取得する(p_商品id) {
a = (select sum(個数) from 入庫 where 商品id = p_商品id)
b = (select sum(個数) from 出庫 where 商品id = p_商品id)
return a - b
}
入庫する(商品id, 入庫日, 個数) {
insert into 入庫 (商品id, 入庫日, 個数)
}
出庫する(商品id, 出庫日, 個数) {
if (個数 > 在庫数を取得する()) throw 例外("在庫数が足りません")
insert into 出庫(商品id, 出庫日, 個数)
}
}
自販機 {
ボタンクリックイベント() {
商品id = 押されたボタンに紐付く商品idを取得する()
在庫管理.出庫(商品id, 現在時刻, 1)
押されたボタンに紐付く商品を取り出し口に落とす()
}
}
グローバル例外ハンドラ {
未処理例外イベント(例外) {
エラーログを出力する(例外)
}
}
出庫(商品id, 出庫日, 個数)
入庫(商品id, 入庫日, 個数)
在庫管理 {
在庫数を取得する(p_商品id) {
a = (select sum(個数) from 入庫 where 商品id = p_商品id)
b = (select sum(個数) from 出庫 where 商品id = p_商品id)
return a - b
}
入庫する(商品id, 入庫日, 個数) {
insert into 入庫 (商品id, 入庫日, 個数)
}
出庫する(商品id, 出庫日, 個数) {
if (個数 > 在庫数を取得する()) throw 例外("在庫数が足りません")
insert into 出庫(商品id, 出庫日, 個数)
}
}
自販機 {
ボタンクリックイベント() {
商品id = 押されたボタンに紐付く商品idを取得する()
在庫管理.出庫(商品id, 現在時刻, 1)
押されたボタンに紐付く商品を取り出し口に落とす()
}
}
グローバル例外ハンドラ {
未処理例外イベント(例外) {
エラーログを出力する(例外)
}
}
2017/09/30(土) 17:45:39.05ID:kkTNvqls
DAOさん
2017/09/30(土) 18:37:38.64ID:MuV6ZELy
2017/09/30(土) 19:20:14.20ID:kkTNvqls
>>43
手続き型との違いが分からない
手続き型との違いが分からない
2017/09/30(土) 19:22:12.04ID:NS2YjOla
>>45
要件に無いので無限に入庫できる
金銭の問題は質問者が別途考えることであり現在のコンテキストにはそぐわない
自販機において商品購入の並列処理は考慮しなくてよい
あまりにも馬鹿馬鹿しい指摘は今後スルーします
要件に無いので無限に入庫できる
金銭の問題は質問者が別途考えることであり現在のコンテキストにはそぐわない
自販機において商品購入の並列処理は考慮しなくてよい
あまりにも馬鹿馬鹿しい指摘は今後スルーします
2017/09/30(土) 19:27:44.53ID:bL0j7tMv
結局デザパタは自販機クラスを構成する時の説明に使えないのか?
ならばデザパタは存在価値が無く、デザパタ厨はゴミだって事になるが。
俺の見立てでは、デザパタはセンスがない奴の勉強してますアピール時のアリバイ程度にしかならない。
肝心の構造実装を説明する時にも他の用語の方が適切だって時点でゴミ確定。
使い物にならないから誰も使わず、「本当に使われてるんですか?」という質問が発生する。
デザパタ厨は老害だよ。
デザパタが有用だと主張するなら、デザパタ用語でより分かりやすい説明を提供できないといけない。
そもそも俺はデザパタ厨は実装能力が全くなく、非デザパタ用語での説明すら出来ないと見ているが。
ついでに言うとsmalltalk信者もこういう時こそメッセージング指向(キリッで
素晴らしい実装を披露するべきであるんだがな。
>>43
ところでそれは何言語で何指向なんだ?
(なお俺も>>45は揚げ足取りで、現段階で必要な議論ではないと思う)
ならばデザパタは存在価値が無く、デザパタ厨はゴミだって事になるが。
俺の見立てでは、デザパタはセンスがない奴の勉強してますアピール時のアリバイ程度にしかならない。
肝心の構造実装を説明する時にも他の用語の方が適切だって時点でゴミ確定。
使い物にならないから誰も使わず、「本当に使われてるんですか?」という質問が発生する。
デザパタ厨は老害だよ。
デザパタが有用だと主張するなら、デザパタ用語でより分かりやすい説明を提供できないといけない。
そもそも俺はデザパタ厨は実装能力が全くなく、非デザパタ用語での説明すら出来ないと見ているが。
ついでに言うとsmalltalk信者もこういう時こそメッセージング指向(キリッで
素晴らしい実装を披露するべきであるんだがな。
>>43
ところでそれは何言語で何指向なんだ?
(なお俺も>>45は揚げ足取りで、現段階で必要な議論ではないと思う)
2017/09/30(土) 19:38:34.22ID:Cb9Aht4V
>>48
自販機クラスの構成の説明に使えないものはゴミなら、プログラミングの世界ってゴミばかりだねw
自販機クラスの構成の説明に使えないものはゴミなら、プログラミングの世界ってゴミばかりだねw
2017/09/30(土) 19:49:34.96ID:bL0j7tMv
>>49
そもそもお前らデザパタ厨は「『何に役立つから』デザパタを学ぶべきだ」という主張なんだ?
当然だが俺は、何にも役に立たないからゴミだ、という主張だ。
実際ここで使わないで、いつ使うんだ?という状況だろ。
> プログラミングの世界ってゴミばかりだねw
他に何がゴミだと思っている?
そもそもお前らデザパタ厨は「『何に役立つから』デザパタを学ぶべきだ」という主張なんだ?
当然だが俺は、何にも役に立たないからゴミだ、という主張だ。
実際ここで使わないで、いつ使うんだ?という状況だろ。
> プログラミングの世界ってゴミばかりだねw
他に何がゴミだと思っている?
2017/09/30(土) 20:32:54.68ID:MuV6ZELy
2017/09/30(土) 20:34:28.53ID:/jgYbdHq
2017/09/30(土) 20:47:17.95ID:Lb08y44X
>>50
> そもそもお前らデザパタ厨は「『何に役立つから』デザパタを学ぶべきだ」という主張なんだ?
デザパタ本を最初に読んだ時、
俺がそれまで悩んでいたり自分で考えた設計が
紹介されていたから、やっぱりちゃんとした
本で勉強したほうが時間の節約になると
実感したから学ぶべきだって主張
あんたの世界が狭いんだろ?
フレームワークを使って、その中身だけを書いてる人は使わないだろうさ
自分の作ったアプリにプラグインの仕組みを取り入れようとしたり
テキストエディタなんかを作ろうと考えたら、必ずと行っていいほど使うよ。
> そもそもお前らデザパタ厨は「『何に役立つから』デザパタを学ぶべきだ」という主張なんだ?
デザパタ本を最初に読んだ時、
俺がそれまで悩んでいたり自分で考えた設計が
紹介されていたから、やっぱりちゃんとした
本で勉強したほうが時間の節約になると
実感したから学ぶべきだって主張
あんたの世界が狭いんだろ?
フレームワークを使って、その中身だけを書いてる人は使わないだろうさ
自分の作ったアプリにプラグインの仕組みを取り入れようとしたり
テキストエディタなんかを作ろうと考えたら、必ずと行っていいほど使うよ。
2017/09/30(土) 20:58:31.09ID:bL0j7tMv
2017/09/30(土) 21:05:07.39ID:bL0j7tMv
>>53
> 自分の作ったアプリにプラグインの仕組みを取り入れようとしたり
> テキストエディタなんかを作ろうと考えたら、必ずと行っていいほど使うよ。
ほう。何パターンを使うんだ?
前者は「DLL」、後者は前回も言ったがundoなら「逆方向履歴」等で、デザパタ用語は不要だろ。
これ以上に明快な説明をデザパタ用語でやってみろよ。
> 自分の作ったアプリにプラグインの仕組みを取り入れようとしたり
> テキストエディタなんかを作ろうと考えたら、必ずと行っていいほど使うよ。
ほう。何パターンを使うんだ?
前者は「DLL」、後者は前回も言ったがundoなら「逆方向履歴」等で、デザパタ用語は不要だろ。
これ以上に明快な説明をデザパタ用語でやってみろよ。
2017/09/30(土) 21:26:28.25ID:MuV6ZELy
要件定義をきちんとすれば自然に辿り着くことだけど
自動販売機をモデル化する場合に核になるのはステートマシン
それを理解せず設計したりコードを書いたりすれば
>>45で指摘したような問題が後から後から出てくる
設計時もコーディング時も
事前/事後/不変条件を常に意識することが大事
自動販売機をモデル化する場合に核になるのはステートマシン
それを理解せず設計したりコードを書いたりすれば
>>45で指摘したような問題が後から後から出てくる
設計時もコーディング時も
事前/事後/不変条件を常に意識することが大事
2017/09/30(土) 21:49:36.71ID:Lb08y44X
2017/09/30(土) 21:53:10.48ID:iRa5Yzik
デザインパターンな..
2017/09/30(土) 22:04:28.64ID:Lb08y44X
逆方向履歴という機能を実装するのに
デザインパターンが使われている
デザインパターンが使われている
2017/09/30(土) 22:23:39.23ID:bL0j7tMv
2017/09/30(土) 22:25:15.02ID:eDPmsgZ7
デザインパターンだっつってんだろ
馬鹿なの死ぬの?
馬鹿なの死ぬの?
2017/09/30(土) 22:26:30.68ID:bL0j7tMv
2017/09/30(土) 22:26:30.88ID:Lb08y44X
> デザパタは登場時の時点で「既に頻出」な物に名前を付けただけ。
たしかに世界にとっては頻出だろう?
だが勉強中の人にとっては知らない知識だ
だからその人が世界に追いつくために
勉強しなければいけないってことだ
なぜ頻出なものを自分で考え出さないといけないのか
それこそ時間の無駄だ
たしかに世界にとっては頻出だろう?
だが勉強中の人にとっては知らない知識だ
だからその人が世界に追いつくために
勉強しなければいけないってことだ
なぜ頻出なものを自分で考え出さないといけないのか
それこそ時間の無駄だ
2017/09/30(土) 22:27:41.01ID:eDPmsgZ7
2017/09/30(土) 22:31:39.91ID:Lb08y44X
結局デザパタを認めないやつは
自分で考えだしたものが
実は教科書に乗っているようなものと
認めたくないんだろうな。
自分で考えだしたものが
実は教科書に乗っているようなものと
認めたくないんだろうな。
2017/09/30(土) 22:38:00.59ID:bL0j7tMv
>>63
> なぜ頻出なものを自分で考え出さないといけないのか
> それこそ時間の無駄だ
使える物は全て言語機能に採り入れられてるから、言語を学べば「使い方」は理解出来る。
そしてせっかく覚えた「デザパタ用語」は使い道がない。
中途半端に抽象化した結果、「ストラテジーバターン」=動的に対象関数を切り替える
とした場合、実装は「継承/委譲/関数ポインタ」等になり、実装時にはこれらの区別も重要な為、
「継承/委譲/関数ポインタ」が使われ、「ストラテジーバターン」が使われることはない。
だったら最初から言語機能をきっちり押さえた方がいい、というのが俺の立場。
(ただしJavaみたいな制限がきつい言語だと、言語だけ学んでも駄目だが)
> なぜ頻出なものを自分で考え出さないといけないのか
> それこそ時間の無駄だ
使える物は全て言語機能に採り入れられてるから、言語を学べば「使い方」は理解出来る。
そしてせっかく覚えた「デザパタ用語」は使い道がない。
中途半端に抽象化した結果、「ストラテジーバターン」=動的に対象関数を切り替える
とした場合、実装は「継承/委譲/関数ポインタ」等になり、実装時にはこれらの区別も重要な為、
「継承/委譲/関数ポインタ」が使われ、「ストラテジーバターン」が使われることはない。
だったら最初から言語機能をきっちり押さえた方がいい、というのが俺の立場。
(ただしJavaみたいな制限がきつい言語だと、言語だけ学んでも駄目だが)
2017/09/30(土) 22:39:39.55ID:eDPmsgZ7
2017/09/30(土) 22:40:17.60ID:Lb08y44X
> 使える物は全て言語機能に採り入れられてるから、言語を学べば「使い方」は理解出来る。
言語を学ぶの中にデザパタを学ぶが含まれているんだが?
なにを言ってるのだろうこいつは
言語を学ぶの中にデザパタを学ぶが含まれているんだが?
なにを言ってるのだろうこいつは
2017/09/30(土) 22:41:49.90ID:Lb08y44X
ストラテジーバターンは継承/委譲/関数ポインタを応用して
作り出すパターン
単体の道具(継承/委譲/関数ポインタ)を
複数組み合わせて構造を作るのがパターン
やっぱりデザパタ分かってないんだなw
作り出すパターン
単体の道具(継承/委譲/関数ポインタ)を
複数組み合わせて構造を作るのがパターン
やっぱりデザパタ分かってないんだなw
2017/09/30(土) 22:42:49.94ID:eDPmsgZ7
>>69
ストバタにしろやカス
ストバタにしろやカス
2017/09/30(土) 22:43:01.60ID:bL0j7tMv
2017/09/30(土) 22:46:06.66ID:Lb08y44X
>>71
どの言語でも
継承ってなんですか?
→ 親クラスの機能をサブクラスが受け継ぐことです
継承を使うと何ができるんですか?
→ 応用例はいくつもあります。例えば〜のような使い方が出来ます。
このような使い方を○○パターンといいます。
っていうように道具を使った応用例として
デザパタがでてくるだろ
お前は継承という道具を勉強するだけで
その継承のいろんな応用例まで勉強中のやつが思いつくと思ってんのか?
どの言語でも
継承ってなんですか?
→ 親クラスの機能をサブクラスが受け継ぐことです
継承を使うと何ができるんですか?
→ 応用例はいくつもあります。例えば〜のような使い方が出来ます。
このような使い方を○○パターンといいます。
っていうように道具を使った応用例として
デザパタがでてくるだろ
お前は継承という道具を勉強するだけで
その継承のいろんな応用例まで勉強中のやつが思いつくと思ってんのか?
2017/09/30(土) 22:49:13.24ID:bL0j7tMv
>>69
> 単体の道具(継承/委譲/関数ポインタ)を
> 複数組み合わせて構造を作るのがパターン
これは俺は無駄なバリエーションで名前の数を増やしているだけという立場。
お前らはテンプレートメソッド=継承という立場だったはずだが、
その場合、テンプレートメソッド、ストラテジー、コンポジットを別々にする意味はあるのか?
そして、この程度の差異で無駄に名前を増産する意味があるのか?
何の為にストラテジーパターンを抽象化したんだ?
> 単体の道具(継承/委譲/関数ポインタ)を
> 複数組み合わせて構造を作るのがパターン
これは俺は無駄なバリエーションで名前の数を増やしているだけという立場。
お前らはテンプレートメソッド=継承という立場だったはずだが、
その場合、テンプレートメソッド、ストラテジー、コンポジットを別々にする意味はあるのか?
そして、この程度の差異で無駄に名前を増産する意味があるのか?
何の為にストラテジーパターンを抽象化したんだ?
2017/09/30(土) 22:51:54.36ID:bL0j7tMv
>>72
> → 応用例はいくつもあります。例えば〜のような使い方が出来ます。
> このような使い方を○○パターンといいます。
ねーよアホ。
デザパタが書かれる前から継承はあったし、使われてる。
継承は継承としか書いてない。
お前はデザパタ洗脳用の教科書を掴まされたんじゃないのか?
> → 応用例はいくつもあります。例えば〜のような使い方が出来ます。
> このような使い方を○○パターンといいます。
ねーよアホ。
デザパタが書かれる前から継承はあったし、使われてる。
継承は継承としか書いてない。
お前はデザパタ洗脳用の教科書を掴まされたんじゃないのか?
2017/09/30(土) 22:54:20.26ID:Lb08y44X
> その場合、テンプレートメソッド、ストラテジー、コンポジットを別々にする意味はあるのか?
使い方が違うからな。
第一な、無駄なリエーションで名前を増やしているというのなら、
言語なんて実は
・順次実行
・メモリ(I/O)読み書き機能
・演算機能
・(条件付き)ジャンプ機能
これだけの用語で十分。関数とか例外とかそんなものすらいない。
実際機械語はこのぐらいしか機能がない。
それ以外の機能は、これらの基本的な機能の応用例でしか無い。
だが、それだけじゃあまりにも基本的な機能すぎて
他の人と知識を共有できないから名前を増やすことで
短い単語で言いたいことを表現してるんだろうが
使い方が違うからな。
第一な、無駄なリエーションで名前を増やしているというのなら、
言語なんて実は
・順次実行
・メモリ(I/O)読み書き機能
・演算機能
・(条件付き)ジャンプ機能
これだけの用語で十分。関数とか例外とかそんなものすらいない。
実際機械語はこのぐらいしか機能がない。
それ以外の機能は、これらの基本的な機能の応用例でしか無い。
だが、それだけじゃあまりにも基本的な機能すぎて
他の人と知識を共有できないから名前を増やすことで
短い単語で言いたいことを表現してるんだろうが
2017/09/30(土) 22:54:51.73ID:eDPmsgZ7
2017/09/30(土) 22:55:19.24ID:Lb08y44X
>>74
> デザパタが書かれる前から継承はあったし、使われてる。
だからなんだ。
使われてるその応用例をカタログ化したのが
デザインパターンなんだろ
プロが長年かけて最適なパターンを教科書に乗せて
初学者がすぐに追いつけるようにしたんだよ。
> デザパタが書かれる前から継承はあったし、使われてる。
だからなんだ。
使われてるその応用例をカタログ化したのが
デザインパターンなんだろ
プロが長年かけて最適なパターンを教科書に乗せて
初学者がすぐに追いつけるようにしたんだよ。
2017/09/30(土) 22:57:54.56ID:Lb08y44X
> 継承は継承としか書いてない。
当たり前過ぎ・・・
基本と応用の違いも理解できんのか。
初学者に継承を教えるだけで、
すぐに応用例が思いつくわけ無いだろ
基本(継承)を教えてから、基本機能を組み合わせて
応用(パターン)を学ぶんだよ。
継承とパターンが違うんだから、
継承のストラテジーパターンって書くわけ無いだろw
継承=ストラテジーパターンではない。
色んなパターンの中で継承が使われてる
ストラテジーパターン以外でも継承が使われている。
この2つの単語は同一ではない
当たり前過ぎ・・・
基本と応用の違いも理解できんのか。
初学者に継承を教えるだけで、
すぐに応用例が思いつくわけ無いだろ
基本(継承)を教えてから、基本機能を組み合わせて
応用(パターン)を学ぶんだよ。
継承とパターンが違うんだから、
継承のストラテジーパターンって書くわけ無いだろw
継承=ストラテジーパターンではない。
色んなパターンの中で継承が使われてる
ストラテジーパターン以外でも継承が使われている。
この2つの単語は同一ではない
2017/09/30(土) 22:59:02.15ID:bL0j7tMv
2017/09/30(土) 23:00:35.25ID:wIKBotg5
>>69
> 単体の道具(継承/委譲/関数ポインタ)を
> 複数組み合わせて構造を作るのがパタ
これは俺は無駄なバリで名前の数を増やしているだけという立場。
お前らはテンメソ=継承という立場だったはずだが、
その場合、テンメソ、スト、コンポジを別々にする意味はあるのか?
そして、この程度の差異で無駄に名前を増産する意味があるのか?
何の為にストパタを抽象化したんだ?
> 単体の道具(継承/委譲/関数ポインタ)を
> 複数組み合わせて構造を作るのがパタ
これは俺は無駄なバリで名前の数を増やしているだけという立場。
お前らはテンメソ=継承という立場だったはずだが、
その場合、テンメソ、スト、コンポジを別々にする意味はあるのか?
そして、この程度の差異で無駄に名前を増産する意味があるのか?
何の為にストパタを抽象化したんだ?
2017/09/30(土) 23:01:38.79ID:bL0j7tMv
2017/09/30(土) 23:15:32.07ID:Lb08y44X
2017/09/30(土) 23:17:34.98ID:Lb08y44X
>>81
> 理由は「継承」は「デザパタ」よりも古いから。
古いから何なんだよ・・・
最初に継承が生まれ、それを使って
いろんなパターンが生み出された。
継承はパタ−ンよりも古くて当然だよ。
で「継承」は「デザパタ」よりも古いからなに?
> 理由は「継承」は「デザパタ」よりも古いから。
古いから何なんだよ・・・
最初に継承が生まれ、それを使って
いろんなパターンが生み出された。
継承はパタ−ンよりも古くて当然だよ。
で「継承」は「デザパタ」よりも古いからなに?
2017/09/30(土) 23:18:06.00ID:bL0j7tMv
>>78
> 初学者に継承を教えるだけで、
> すぐに応用例が思いつくわけ無いだろ
いやストラテジーパターンは応用例ですらない。使用例だ。
誰でも思いつくというか、この使い方をする為に設計された言語機能が継承だ。
そして使い方なら言語の説明で一通り為されて居るものだ。
> 継承=ストラテジーパターンではない。
(意見としては)違うね。
継承を使った場合、ストラテジーパターンに該当しない物を作れない。
抽象度が異なる為、これらは確かに単語としては同じではないが、しかし、
「ストラテジーパターン」という単語を使って説明する適切な場合がない。
要らない単語をいたずらに増やしただけだ。
> 初学者に継承を教えるだけで、
> すぐに応用例が思いつくわけ無いだろ
いやストラテジーパターンは応用例ですらない。使用例だ。
誰でも思いつくというか、この使い方をする為に設計された言語機能が継承だ。
そして使い方なら言語の説明で一通り為されて居るものだ。
> 継承=ストラテジーパターンではない。
(意見としては)違うね。
継承を使った場合、ストラテジーパターンに該当しない物を作れない。
抽象度が異なる為、これらは確かに単語としては同じではないが、しかし、
「ストラテジーパターン」という単語を使って説明する適切な場合がない。
要らない単語をいたずらに増やしただけだ。
2017/09/30(土) 23:20:26.38ID:Lb08y44X
>>80
> その場合、テンメソ、スト、コンポジを別々にする意味はあるのか?
応用例の説明見れば分かる通り
使い方が違うんだから意味あるだろうな。
シチューとカレーなんてどちらもほとんど同じ材料が使われてるが
別々の料理になってるだろ。
お前が言ってるのはそういうこと
いろんなパターンで継承が使われてるが、その継承の
使い方の違いでパターンの違いになるんだよ。
どっちも同じ材料が入ってるから、
「にんじん+たまねぎ+じゃがいも料理」だ!
じゃないの
> その場合、テンメソ、スト、コンポジを別々にする意味はあるのか?
応用例の説明見れば分かる通り
使い方が違うんだから意味あるだろうな。
シチューとカレーなんてどちらもほとんど同じ材料が使われてるが
別々の料理になってるだろ。
お前が言ってるのはそういうこと
いろんなパターンで継承が使われてるが、その継承の
使い方の違いでパターンの違いになるんだよ。
どっちも同じ材料が入ってるから、
「にんじん+たまねぎ+じゃがいも料理」だ!
じゃないの
2017/09/30(土) 23:21:33.84ID:bL0j7tMv
2017/09/30(土) 23:21:47.75ID:Lb08y44X
>>84
> 誰でも思いつくというか、この使い方をする為に設計された言語機能が継承だ。
最初にストラテジーパターンというパターンがあって
継承が生まれただと?
ハハハ
逆
なぜなら
> 理由は「継承」は「デザパタ」よりも古いから。
> 誰でも思いつくというか、この使い方をする為に設計された言語機能が継承だ。
最初にストラテジーパターンというパターンがあって
継承が生まれただと?
ハハハ
逆
なぜなら
> 理由は「継承」は「デザパタ」よりも古いから。
2017/09/30(土) 23:23:53.47ID:bL0j7tMv
2017/09/30(土) 23:24:28.98ID:Lb08y44X
>>86
> 前者は「DLL」、後者は前回も言ったがundoなら「逆方向履歴」等
DLLはダイナミックリンクライブラリ
動的にリンクするライブラリと言うだけで、
それだけではどんなものかがわからない。
> undoなら「逆方向履歴」
逆方向履歴という機能を実現するにはいろんなやり方がある。
それだけではどんな設計を使うのかが決まっていない
その設計にどんなパターンを使うのが良いのか?
そこでデザインパターンの中から適切なものを探そう
> 前者は「DLL」、後者は前回も言ったがundoなら「逆方向履歴」等
DLLはダイナミックリンクライブラリ
動的にリンクするライブラリと言うだけで、
それだけではどんなものかがわからない。
> undoなら「逆方向履歴」
逆方向履歴という機能を実現するにはいろんなやり方がある。
それだけではどんな設計を使うのかが決まっていない
その設計にどんなパターンを使うのが良いのか?
そこでデザインパターンの中から適切なものを探そう
2017/09/30(土) 23:26:32.68ID:Lb08y44X
>>88
あ、お前今が2017年だってわかってなのか?w
そりゃデザインパターンとしてカタログ化されてない
昔(1995)以前では、言語の勉強の中で
デザパタが登場するわけ無いだろwww
昔(お前の時代)にはデザパタ出てこないの当たり前だよーーーーw
今は言語の勉強の中で基本の応用として
デザパタを学習するんだよ。
あ、お前今が2017年だってわかってなのか?w
そりゃデザインパターンとしてカタログ化されてない
昔(1995)以前では、言語の勉強の中で
デザパタが登場するわけ無いだろwww
昔(お前の時代)にはデザパタ出てこないの当たり前だよーーーーw
今は言語の勉強の中で基本の応用として
デザパタを学習するんだよ。
2017/09/30(土) 23:27:35.90ID:Lb08y44X
いや、まかさ
俺の子供の時代にはそんなこと習わなかった
が根拠になっていたとはなwww
草www
俺の子供の時代にはそんなこと習わなかった
が根拠になっていたとはなwww
草www
2017/09/30(土) 23:29:01.75ID:bL0j7tMv
>>87
> 最初にストラテジーパターンというパターンがあって
> 継承が生まれただと?
お前は本当に馬鹿だな。
継承の典型的な使用例に「ストラテジーパターン」という名前を付けただけだ。
だけど実際は「継承」で全く問題なくて、しかも無駄に抽象化したから使いどころもなくなった。
というかどうやらデザパタ厨はマジで馬鹿で議論が出来ないのは分かった。
他の言葉が通じる連中が出て来たら再開する。
> 最初にストラテジーパターンというパターンがあって
> 継承が生まれただと?
お前は本当に馬鹿だな。
継承の典型的な使用例に「ストラテジーパターン」という名前を付けただけだ。
だけど実際は「継承」で全く問題なくて、しかも無駄に抽象化したから使いどころもなくなった。
というかどうやらデザパタ厨はマジで馬鹿で議論が出来ないのは分かった。
他の言葉が通じる連中が出て来たら再開する。
2017/09/30(土) 23:31:17.52ID:wIKBotg5
>>87
> 最初にストラテジーパターンというパターンがあって
> 継承が生まれただと?
お前は本当に馬鹿だな。
継承の典型的な使用例に「ストパタ」という名前を付けただけだ。
だけど実際は「継承」で全く問題なくて、しかも無駄に抽象化したから使いどころもなくなった。
というかどうやらデザパタ厨はマジで馬鹿で議論が出来ないのは分かった。
他の言葉が通じる連中が出て来たら再開する。
> 最初にストラテジーパターンというパターンがあって
> 継承が生まれただと?
お前は本当に馬鹿だな。
継承の典型的な使用例に「ストパタ」という名前を付けただけだ。
だけど実際は「継承」で全く問題なくて、しかも無駄に抽象化したから使いどころもなくなった。
というかどうやらデザパタ厨はマジで馬鹿で議論が出来ないのは分かった。
他の言葉が通じる連中が出て来たら再開する。
2017/09/30(土) 23:31:34.77ID:Lb08y44X
> 継承の典型的な使用例に「ストラテジーパターン」という名前を付けただけだ。
継承の応用例の一つとして「ストラテジーパターン」がある
応用例の一つであるということからもわかるように
継承を使った応用例はいくつも有るから
継承と言っただけで「ストラテジーパターン」を意味することにはならない。
だから「使い方」を言いたいときには「ストラテジーパターン」という必要がある。
継承はベースとなる機能
その継承の使い方がパターンなのである
継承の応用例の一つとして「ストラテジーパターン」がある
応用例の一つであるということからもわかるように
継承を使った応用例はいくつも有るから
継承と言っただけで「ストラテジーパターン」を意味することにはならない。
だから「使い方」を言いたいときには「ストラテジーパターン」という必要がある。
継承はベースとなる機能
その継承の使い方がパターンなのである
2017/09/30(土) 23:32:35.29ID:bL0j7tMv
2017/09/30(土) 23:33:05.80ID:Lb08y44X
> 継承の典型的な使用例に「ストパタ」という名前を付けただけだ。
継承の典型的な使用例と何度も言っていることからわかるように
ストラテジーパターンは継承の使用例の一つでしか無い
だから継承といっても使用例が定まるわけではない。
何度も言うぞ
継承の「典型的な使用例」がストラテジーパターンである
継承の典型的な使用例と何度も言っていることからわかるように
ストラテジーパターンは継承の使用例の一つでしか無い
だから継承といっても使用例が定まるわけではない。
何度も言うぞ
継承の「典型的な使用例」がストラテジーパターンである
2017/09/30(土) 23:35:25.33ID:bL0j7tMv
>>94
だから
・継承を使っているがストラテジーパターンには非該当
の例を出せるか?多分無理なんだよ。だから、
> だから「使い方」を言いたいときには「ストラテジーパターン」という必要がある。
この分離は必要ないんだよ。
この言い方では通じないとは思うが。
だから
・継承を使っているがストラテジーパターンには非該当
の例を出せるか?多分無理なんだよ。だから、
> だから「使い方」を言いたいときには「ストラテジーパターン」という必要がある。
この分離は必要ないんだよ。
この言い方では通じないとは思うが。
2017/09/30(土) 23:36:17.57ID:Lb08y44X
何度も言うぞ
継承の「典型的な使用例」がストラテジーパターンである
継承の使用例の一つがストラテジーパターンであるが
継承の利用例は他にも有る。
では聞こう
継承とは何パターンか?
答えるわけがない。
継承の使用例の一つがストラテジーパターンであるが
継承の他の利用例は別のパターン名がついているからである。
継承は道具。使用例がパターン。
使用例であるパターン名を言わないと、
どんな使用例かは答えられない
何度も言うぞ
継承の「典型的な使用例」がストラテジーパターンである 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
継承の「典型的な使用例」がストラテジーパターンである
継承の使用例の一つがストラテジーパターンであるが
継承の利用例は他にも有る。
では聞こう
継承とは何パターンか?
答えるわけがない。
継承の使用例の一つがストラテジーパターンであるが
継承の他の利用例は別のパターン名がついているからである。
継承は道具。使用例がパターン。
使用例であるパターン名を言わないと、
どんな使用例かは答えられない
何度も言うぞ
継承の「典型的な使用例」がストラテジーパターンである 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
2017/09/30(土) 23:37:23.69ID:Lb08y44X
もうそろそろ、継承の「典型的な使用例」がストラテジーパターンである
という言葉の意味が理解できたことだろうか?
そう使用例がパターンなのである
という言葉の意味が理解できたことだろうか?
そう使用例がパターンなのである
100デフォルトの名無しさん
2017/09/30(土) 23:37:53.05ID:wIKBotg5 >>94
だから
・継承を使っているがストパタには非該当
の例を出せるか?多分無理なんだよ。だから、
> だから「使い方」を言いたいときには「ストラテジーパターン」という必要がある。
この分離は必要ないんだよ。
この言い方では通じないとは思うが。
だから
・継承を使っているがストパタには非該当
の例を出せるか?多分無理なんだよ。だから、
> だから「使い方」を言いたいときには「ストラテジーパターン」という必要がある。
この分離は必要ないんだよ。
この言い方では通じないとは思うが。
101デフォルトの名無しさん
2017/09/30(土) 23:38:34.58ID:bL0j7tMv102デフォルトの名無しさん
2017/09/30(土) 23:39:35.12ID:wIKBotg5103デフォルトの名無しさん
2017/09/30(土) 23:40:59.93ID:Lb08y44X >>100
> ・継承を使っているがストパタには非該当
> の例を出せるか?
だせるが?
継承を使っている他のパターンはいくつも有るだろ?
だが、そのほかのパターンまで必要ない
継承の「使用例」がストラテジーパターンだ。
> ・継承を使っているがストパタには非該当
> の例を出せるか?
だせるが?
継承を使っている他のパターンはいくつも有るだろ?
だが、そのほかのパターンまで必要ない
継承の「使用例」がストラテジーパターンだ。
104デフォルトの名無しさん
2017/09/30(土) 23:49:17.59ID:Lb08y44X 一つのクラスが複数のパターンを使っているってことは有るが
有るパターンが有るパターンを内包しているってのはない。
継承を使ってる他のパターンがストラテジーパターンを内包していること無い。
なぜそんな愚かな勘違いをするのか?
それはストラテジーパターンという使用例を
基本機能である継承と同一視しているからだ。
継承を使っているパターンはあるが
それはストラテジーパターンとして使っているわけではない。
継承とストラテジーパターンを同一視しているから、
そんな馬鹿な結論に至る。
これこそが、継承(基本機能)と応用(使用例)を
別々にしておくべきだという回答の一つでも有る
有るパターンが有るパターンを内包しているってのはない。
継承を使ってる他のパターンがストラテジーパターンを内包していること無い。
なぜそんな愚かな勘違いをするのか?
それはストラテジーパターンという使用例を
基本機能である継承と同一視しているからだ。
継承を使っているパターンはあるが
それはストラテジーパターンとして使っているわけではない。
継承とストラテジーパターンを同一視しているから、
そんな馬鹿な結論に至る。
これこそが、継承(基本機能)と応用(使用例)を
別々にしておくべきだという回答の一つでも有る
105デフォルトの名無しさん
2017/09/30(土) 23:51:38.51ID:Lb08y44X > Strategy パターンは、コンピュータープログラミングの領域において、アルゴリズムを実行時に選択することができるデザインパターンである。
と説明してあるように
アルゴリズムを実行時に選択しないのであれば
それはストラテジーパターンではない
継承を使っているからと言って実行時に選択するとは限らないからな
アルゴリズムを実行時に選択したい(使用例)ときに使うのが
ストラテジーパターンである
と説明してあるように
アルゴリズムを実行時に選択しないのであれば
それはストラテジーパターンではない
継承を使っているからと言って実行時に選択するとは限らないからな
アルゴリズムを実行時に選択したい(使用例)ときに使うのが
ストラテジーパターンである
106デフォルトの名無しさん
2017/09/30(土) 23:55:48.04ID:bL0j7tMv107デフォルトの名無しさん
2017/10/01(日) 00:01:15.13ID:H5Asg8Dc 例えばRailsアプリだと一般的にモデルはActiveRecordクラスを継承して作るが
実行時にアルゴリズムを変えたりはしない
実行時にアルゴリズムを変えたりはしない
108デフォルトの名無しさん
2017/10/01(日) 00:03:26.64ID:GRIqwmf+ >>107
ではそれは何の為に継承しているんだ?
ではそれは何の為に継承しているんだ?
109デフォルトの名無しさん
2017/10/01(日) 00:07:41.09ID:H5Asg8Dc ActiveRecordクラスで実装されている
機能を利用するために決まってるだろw
蛇足だが
ActiveRecordクラスを使わないモデルもあって
その場合は例えばActiveModelを使う。
だが面白いことに、ActiveRecordクラスは継承するが
ActiveModelは継承ではなくinclude(MixIn)する
実際の所コードを再利用することが目的なので
継承以外にもやり方はあるということだ。
そう考えるとActiveRecordも継承するのは必須ではないということになるな。
まあ蛇足だがw
機能を利用するために決まってるだろw
蛇足だが
ActiveRecordクラスを使わないモデルもあって
その場合は例えばActiveModelを使う。
だが面白いことに、ActiveRecordクラスは継承するが
ActiveModelは継承ではなくinclude(MixIn)する
実際の所コードを再利用することが目的なので
継承以外にもやり方はあるということだ。
そう考えるとActiveRecordも継承するのは必須ではないということになるな。
まあ蛇足だがw
110デフォルトの名無しさん
2017/10/01(日) 00:12:57.26ID:GRIqwmf+ >>109
> そう考えるとActiveRecordも継承するのは必須ではないということになるな。
当たり前だ。
virtualに対して全くoverrideしないのなら継承の意味はない。
それはある意味、典型的な間違った使い方だ。
そしてお前はそれも分からない馬鹿だということ。
> そう考えるとActiveRecordも継承するのは必須ではないということになるな。
当たり前だ。
virtualに対して全くoverrideしないのなら継承の意味はない。
それはある意味、典型的な間違った使い方だ。
そしてお前はそれも分からない馬鹿だということ。
111デフォルトの名無しさん
2017/10/01(日) 00:13:18.18ID:H5Asg8Dc トーンが明らかに下がってきたなw
ようやくこのバカも理解出来あってことか。
デザインパターンは使用例(応用例)であって
そこで継承を使っているからって
継承が使用例(応用例)になるわけじゃない
ストラテジーパターンはアルゴリズムを実行時に
選択することができるようにするためのデザインパターン
そこで継承が使われていることは重要ではない。
継承を使うパターンは他にも有る。
使用例(応用例)が論点なのであって、何を使っているかは
デザインパターンとして考えるときには重要な事ではない。
ようやくこのバカも理解出来あってことか。
デザインパターンは使用例(応用例)であって
そこで継承を使っているからって
継承が使用例(応用例)になるわけじゃない
ストラテジーパターンはアルゴリズムを実行時に
選択することができるようにするためのデザインパターン
そこで継承が使われていることは重要ではない。
継承を使うパターンは他にも有る。
使用例(応用例)が論点なのであって、何を使っているかは
デザインパターンとして考えるときには重要な事ではない。
112デフォルトの名無しさん
2017/10/01(日) 00:16:02.84ID:H5Asg8Dc113デフォルトの名無しさん
2017/10/01(日) 00:16:29.39ID:GRIqwmf+114デフォルトの名無しさん
2017/10/01(日) 00:17:15.28ID:U1G3k+aG 自分だけはバカじゃないという前提
115デフォルトの名無しさん
2017/10/01(日) 00:21:43.29ID:H5Asg8Dc >>113
でも、継承の「典型的な使用例」がストラテジーパターンである
という言葉に反論できてないじゃないですかーw
所詮、継承は使用例の一つなんですよ。
ストラテジーパターンを継承と言ってしまうと
他の継承を使っているパターンは、すべてストラテジーパターン
アルゴリズムを実行時に選択することができることが重要
だってことになるじゃないですかーw
意味不明ですよね
これはデザパタがゴミなんじゃなくて、
すべてはあんたのストラテジーパターンを継承と呼ぶから
こういう意味不明な結論にいなるわけですよ。
そうならないように、基本機能(継承)とその応用例(パターン)
きっちり分けて考えましょうって話なるわけ
何度も言いますよ?
継承の「典型的な使用例」がストラテジーパターンである
「典型的な使用例」です。
でも、継承の「典型的な使用例」がストラテジーパターンである
という言葉に反論できてないじゃないですかーw
所詮、継承は使用例の一つなんですよ。
ストラテジーパターンを継承と言ってしまうと
他の継承を使っているパターンは、すべてストラテジーパターン
アルゴリズムを実行時に選択することができることが重要
だってことになるじゃないですかーw
意味不明ですよね
これはデザパタがゴミなんじゃなくて、
すべてはあんたのストラテジーパターンを継承と呼ぶから
こういう意味不明な結論にいなるわけですよ。
そうならないように、基本機能(継承)とその応用例(パターン)
きっちり分けて考えましょうって話なるわけ
何度も言いますよ?
継承の「典型的な使用例」がストラテジーパターンである
「典型的な使用例」です。
116デフォルトの名無しさん
2017/10/01(日) 00:29:59.36ID:GRIqwmf+ >>115
間違った使い方はいくらでも出来るんだよ。言い換えれば、
・継承の正しい使用例は常にストラテジーパターンになる
でいいか?
overrideしないで継承するってのは典型的な「便利関数置き場」であって、
駄目だろこれは。
というか、これがありならパターンにあるべきだが、無いだろさすがに。
間違った使い方はいくらでも出来るんだよ。言い換えれば、
・継承の正しい使用例は常にストラテジーパターンになる
でいいか?
overrideしないで継承するってのは典型的な「便利関数置き場」であって、
駄目だろこれは。
というか、これがありならパターンにあるべきだが、無いだろさすがに。
117デフォルトの名無しさん
2017/10/01(日) 00:31:39.13ID:xYp8c7mI >>115
間違った使い方はいくらでも出来るんだよ。言い換えれば、
・継承の正しい使用例は常にストパタになる
でいいか?
overrideしないで継承するってのは典型的な「便利関数置き場」であって、
駄目だろこれは。
というか、これがありならパタにあるべきだが、無いだろさすがに。
間違った使い方はいくらでも出来るんだよ。言い換えれば、
・継承の正しい使用例は常にストパタになる
でいいか?
overrideしないで継承するってのは典型的な「便利関数置き場」であって、
駄目だろこれは。
というか、これがありならパタにあるべきだが、無いだろさすがに。
118デフォルトの名無しさん
2017/10/01(日) 00:32:27.29ID:H5Asg8Dc > ・継承の正しい使用例は常にストラテジーパターンになる
> でいいか?
継承の正しい使用例は常に「アルゴリズムを実行時に選択することができる」
ためのも。
うん。明らかに間違いだなw
実行時に選択できる必要ないし
> でいいか?
継承の正しい使用例は常に「アルゴリズムを実行時に選択することができる」
ためのも。
うん。明らかに間違いだなw
実行時に選択できる必要ないし
119デフォルトの名無しさん
2017/10/01(日) 00:33:52.13ID:H5Asg8Dc >>117
> overrideしないで継承するってのは典型的な「便利関数置き場」であって、
> 駄目だろこれは。
だめでもなんでもない。
有るクラスが、有るクラスを踏まえているならば
(is-a関係)それを表現するために継承を使うべき
継承っていうのは「便利関数置き場」じゃないのよ?
それらの関数を使わなかったとしても
継承関係にあれば継承を使うんだよ。
> overrideしないで継承するってのは典型的な「便利関数置き場」であって、
> 駄目だろこれは。
だめでもなんでもない。
有るクラスが、有るクラスを踏まえているならば
(is-a関係)それを表現するために継承を使うべき
継承っていうのは「便利関数置き場」じゃないのよ?
それらの関数を使わなかったとしても
継承関係にあれば継承を使うんだよ。
120デフォルトの名無しさん
2017/10/01(日) 00:35:47.35ID:H5Asg8Dc overrideしない使い方として例えばRuntimeErrorみたいなのがあるな
その他の実行時エラークラスはRuntimeErrorを継承して作る。
そうすることで、全ての実行時エラークラスをRuntimeErrorとして
みなすことができるし、一部のクラスだけは例外的に
その他の情報をエラークラスに格納することができる。
その他の実行時エラークラスはRuntimeErrorを継承して作る。
そうすることで、全ての実行時エラークラスをRuntimeErrorとして
みなすことができるし、一部のクラスだけは例外的に
その他の情報をエラークラスに格納することができる。
121デフォルトの名無しさん
2017/10/01(日) 00:46:34.86ID:GRIqwmf+122デフォルトの名無しさん
2017/10/01(日) 00:49:35.69ID:H5Asg8Dc これのどこがメンバのオーバーライドをしているのか説明してほしいもんなんだがw
http://blog.toshimaru.net/ruby-standard-error/
# `Exception`ではなく
class MyError1 < Exception; end
# `StandardError`.
class MyError2 < StandardError; end
http://blog.toshimaru.net/ruby-standard-error/
# `Exception`ではなく
class MyError1 < Exception; end
# `StandardError`.
class MyError2 < StandardError; end
123デフォルトの名無しさん
2017/10/01(日) 00:51:22.19ID:H5Asg8Dc >>121
お前さ、基本
1. 自分が○○にたいして馬鹿なことを言う
2. 自分が言った馬鹿なことの対して馬鹿だと自分でツッコむ
3. そのツッコミを根拠に、○○はダメだという
というやり方やってるよね?
○○がだめなんじゃなくて
お前がダメなんだよw
お前さ、基本
1. 自分が○○にたいして馬鹿なことを言う
2. 自分が言った馬鹿なことの対して馬鹿だと自分でツッコむ
3. そのツッコミを根拠に、○○はダメだという
というやり方やってるよね?
○○がだめなんじゃなくて
お前がダメなんだよw
124デフォルトの名無しさん
2017/10/01(日) 00:53:40.85ID:GRIqwmf+ が、まあ、これらは通常は区別されているから、以下としよう。
・メソッドの継承の正しい使用例は常にストラテジーパターンになる
・メソッド/フィールド等全てについて(将来的にも)全くoverrideしない場合は継承する意味がない
これでいいか?
・メソッドの継承の正しい使用例は常にストラテジーパターンになる
・メソッド/フィールド等全てについて(将来的にも)全くoverrideしない場合は継承する意味がない
これでいいか?
125デフォルトの名無しさん
2017/10/01(日) 00:54:50.31ID:U1G3k+aG 何かよくわからんけどおもしろいなそれ
126デフォルトの名無しさん
2017/10/01(日) 00:57:27.86ID:H5Asg8Dc > ・メソッドの継承の正しい使用例は常にストラテジーパターンになる
ならないって何度も言ってるんだがw
> ・メソッド/フィールド等全てについて(将来的にも)全くoverrideしない場合は継承する意味がない
意味はある。その例も出した。
結局さぁ、お前、実装のことしか考えられてないんだよ。
設計能力が圧倒的に不足している。
どんな設計を見た所で、その実装が継承使っていれば、
これは継承と呼ぶべきだーって叫ぶつもりだろ?
ならないって何度も言ってるんだがw
> ・メソッド/フィールド等全てについて(将来的にも)全くoverrideしない場合は継承する意味がない
意味はある。その例も出した。
結局さぁ、お前、実装のことしか考えられてないんだよ。
設計能力が圧倒的に不足している。
どんな設計を見た所で、その実装が継承使っていれば、
これは継承と呼ぶべきだーって叫ぶつもりだろ?
127デフォルトの名無しさん
2017/10/01(日) 00:59:36.43ID:H5Asg8Dc 設計とはかならず「何のために」そういう設計をするのかという
目的が有る。それがデザパタの使用例や応用例なんだよ。
継承は「何のために」ではなく実現技術
だから継承といっただけでは何をしたいのか全くわからない。
だからデザインパターンで定義されている名前が必要
目的が有る。それがデザパタの使用例や応用例なんだよ。
継承は「何のために」ではなく実現技術
だから継承といっただけでは何をしたいのか全くわからない。
だからデザインパターンで定義されている名前が必要
128デフォルトの名無しさん
2017/10/01(日) 01:01:17.79ID:44WxUqLn が、まあ、これらは通常は区別されているから、以下としよう。
・メソの継承の正しい使用例は常にストパタになる
・メソ/フィー等全てについて(将来的にも)全くoverrideしない場合は継承する意味がない
これでいいか?
・メソの継承の正しい使用例は常にストパタになる
・メソ/フィー等全てについて(将来的にも)全くoverrideしない場合は継承する意味がない
これでいいか?
129デフォルトの名無しさん
2017/10/01(日) 01:02:05.70ID:H5Asg8Dc > ・メソッドの継承の正しい使用例は常にストラテジーパターンになる
ならないって何度も言ってるんだがw
> ・メソッド/フィールド等全てについて(将来的にも)全くoverrideしない場合は継承する意味がない
意味はある。その例も出した。
ならないって何度も言ってるんだがw
> ・メソッド/フィールド等全てについて(将来的にも)全くoverrideしない場合は継承する意味がない
意味はある。その例も出した。
130デフォルトの名無しさん
2017/10/01(日) 01:03:39.76ID:GRIqwmf+131デフォルトの名無しさん
2017/10/01(日) 01:05:28.40ID:H5Asg8Dc132デフォルトの名無しさん
2017/10/01(日) 01:05:32.81ID:GRIqwmf+133デフォルトの名無しさん
2017/10/01(日) 01:07:40.92ID:GRIqwmf+134デフォルトの名無しさん
2017/10/01(日) 01:09:09.45ID:GRIqwmf+ >>131
いや派生しまくってんだから、既にoverrideされまくっているはずだが。
いや派生しまくってんだから、既にoverrideされまくっているはずだが。
135デフォルトの名無しさん
2017/10/01(日) 01:10:27.50ID:H5Asg8Dc >>133
> お前は継承使ってても「これは継承ではない!」というのか?
いや? 継承使っていてもストラテジーバターンでなければ
ストラテジーパターンではないと言うつもりだよ?
お前はストラテジーバターン=継承と呼ぶべきだって言ってるんだから、
お前はストラテジーパターンでないパターンを見ても、
ストラテジーバターン(=継承)だって言うんでしょ?
っていう話をしてるんだが?
> お前は継承使ってても「これは継承ではない!」というのか?
いや? 継承使っていてもストラテジーバターンでなければ
ストラテジーパターンではないと言うつもりだよ?
お前はストラテジーバターン=継承と呼ぶべきだって言ってるんだから、
お前はストラテジーパターンでないパターンを見ても、
ストラテジーバターン(=継承)だって言うんでしょ?
っていう話をしてるんだが?
136デフォルトの名無しさん
2017/10/01(日) 01:11:52.96ID:44WxUqLn >>132
あんたが表現のロジックを統一しないから代弁してやってんだよ
あんたが表現のロジックを統一しないから代弁してやってんだよ
137デフォルトの名無しさん
2017/10/01(日) 01:12:07.31ID:H5Asg8Dc >>134
え? なに?
世界中の何処かで誰かがオーバーライドしていれば
それは継承使っていいって言ってるわけ?
その理屈だと継承が適切じゃないものなんてないだろうな。
世界中の何処かで誰かはオーバーライドしてるだろうさ
たとえそれが便利関数であったとしても
え? なに?
世界中の何処かで誰かがオーバーライドしていれば
それは継承使っていいって言ってるわけ?
その理屈だと継承が適切じゃないものなんてないだろうな。
世界中の何処かで誰かはオーバーライドしてるだろうさ
たとえそれが便利関数であったとしても
138デフォルトの名無しさん
2017/10/01(日) 01:14:01.94ID:GRIqwmf+ >>135
> お前はストラテジーバターン=継承と呼ぶべきだって言ってるんだから、
そうとは言ってない。俺は、
・(正しい用法で)メソッドを継承した場合、ストラテジーパターンは自動的に適用されるから、
わざわざ「ストラテジーパターン(キリッツ」なんて言う機会も意味もない
という立場だ。
抽象度は違うが、分離不可能だし、分離する意味もないから通常は「継承」という言葉が使われる、ということ。
> お前はストラテジーバターン=継承と呼ぶべきだって言ってるんだから、
そうとは言ってない。俺は、
・(正しい用法で)メソッドを継承した場合、ストラテジーパターンは自動的に適用されるから、
わざわざ「ストラテジーパターン(キリッツ」なんて言う機会も意味もない
という立場だ。
抽象度は違うが、分離不可能だし、分離する意味もないから通常は「継承」という言葉が使われる、ということ。
139デフォルトの名無しさん
2017/10/01(日) 01:15:16.80ID:44WxUqLn >>135
> お前はストラテジーバターン=継承と呼ぶべきだって言ってるんだから、
そうとは言ってない。俺は、
・(正しい用法で)メソを継承した場合、ストパタは自動的に適用されるから、
わざわざ「ストパタ(キリッツ」なんて言う機会も意味もない
という立場だ。
抽象度は違うが、分離不可能だし、分離する意味もないから通常は「継承」という言葉が使われる、ということ。
> お前はストラテジーバターン=継承と呼ぶべきだって言ってるんだから、
そうとは言ってない。俺は、
・(正しい用法で)メソを継承した場合、ストパタは自動的に適用されるから、
わざわざ「ストパタ(キリッツ」なんて言う機会も意味もない
という立場だ。
抽象度は違うが、分離不可能だし、分離する意味もないから通常は「継承」という言葉が使われる、ということ。
140デフォルトの名無しさん
2017/10/01(日) 01:18:01.30ID:GRIqwmf+141デフォルトの名無しさん
2017/10/01(日) 01:19:25.82ID:H5Asg8Dc >>138
> ・(正しい用法で)メソッドを継承した場合、ストラテジーパターンは自動的に適用されるから、
されない。
されると思っているのはお前がストラテジーバターン(設計用語)を
勝手に継承(実装用語)と読んでいるから、
何度も言うが設計は使用例(応用例)、つまり目的が有る
「アルゴリズムを実行時に選択することができる」
という目的があってこそストラテジーバターンと呼ぶことができるのであって
この目的がなければ、継承を使っていたからと言ってストラテジーバターンにはならない
設計用語を使わないからお前は「継承を使っているものはすべて継承だー!」という
意味不明なことをいうつもりだろって言ってんの。
設計用語を使っていれば「継承を使っているものはすべてストラテジーバターンだー!」
という事になって言葉的には意味不明なことにはならない。
もちろんこれが間違っているのは先に言ったとおり。
設計能力が足りないよ?
> ・(正しい用法で)メソッドを継承した場合、ストラテジーパターンは自動的に適用されるから、
されない。
されると思っているのはお前がストラテジーバターン(設計用語)を
勝手に継承(実装用語)と読んでいるから、
何度も言うが設計は使用例(応用例)、つまり目的が有る
「アルゴリズムを実行時に選択することができる」
という目的があってこそストラテジーバターンと呼ぶことができるのであって
この目的がなければ、継承を使っていたからと言ってストラテジーバターンにはならない
設計用語を使わないからお前は「継承を使っているものはすべて継承だー!」という
意味不明なことをいうつもりだろって言ってんの。
設計用語を使っていれば「継承を使っているものはすべてストラテジーバターンだー!」
という事になって言葉的には意味不明なことにはならない。
もちろんこれが間違っているのは先に言ったとおり。
設計能力が足りないよ?
142デフォルトの名無しさん
2017/10/01(日) 01:20:27.48ID:H5Asg8Dc143デフォルトの名無しさん
2017/10/01(日) 01:25:04.92ID:GRIqwmf+144デフォルトの名無しさん
2017/10/01(日) 01:26:45.20ID:44WxUqLn145デフォルトの名無しさん
2017/10/01(日) 01:30:18.31ID:H5Asg8Dc >>143
> メンバは追加されてるだろ。(多分)
オーバーライドの話だっただろ。アホめw
例外クラスは、クラスの階層構造を表現するのに
継承が適切だから継承を使ってる。
すべてのErrorはExceptioであり、実行時に発生するのは
StandardErrorであり、ファイルIOに関するエラーはIOErrorである
という風にだ。
これは設計として正しい。
オーバーライドするかどうかは些細な問題にすぎない。
重要なのは各クラスにどういう関係があって(これが設計)
それをどう言語で表現するか(これが実装)だ
お前がずっとやってるのは、実装だけしか見てないってことだよ。
> メンバは追加されてるだろ。(多分)
オーバーライドの話だっただろ。アホめw
例外クラスは、クラスの階層構造を表現するのに
継承が適切だから継承を使ってる。
すべてのErrorはExceptioであり、実行時に発生するのは
StandardErrorであり、ファイルIOに関するエラーはIOErrorである
という風にだ。
これは設計として正しい。
オーバーライドするかどうかは些細な問題にすぎない。
重要なのは各クラスにどういう関係があって(これが設計)
それをどう言語で表現するか(これが実装)だ
お前がずっとやってるのは、実装だけしか見てないってことだよ。
146デフォルトの名無しさん
2017/10/01(日) 01:30:53.56ID:GRIqwmf+ >>141
言いたいことは分かるが、平行線だな。
言いたいことは分かるが、平行線だな。
147デフォルトの名無しさん
2017/10/01(日) 01:32:35.82ID:H5Asg8Dc148デフォルトの名無しさん
2017/10/01(日) 01:34:40.94ID:GRIqwmf+149デフォルトの名無しさん
2017/10/01(日) 01:36:17.23ID:H5Asg8Dc >>146
すべてはお前が
ストラテジーバターンは継承を使ってるから
設計用語ではなく実装用語の継承と呼びましょう
そうするとストラテジーバターンなんて用語はいらないですよね?
ってことはデザパタ用語は全ていらないんじゃないですか?
使う目的なんか気にせず、実装に継承を使っていれば
全部継承と呼びましょうよ
だからデザパタは意味がない。ゴミ
というばーかな。理屈を言い出したのが悪い。
すべてはお前が
ストラテジーバターンは継承を使ってるから
設計用語ではなく実装用語の継承と呼びましょう
そうするとストラテジーバターンなんて用語はいらないですよね?
ってことはデザパタ用語は全ていらないんじゃないですか?
使う目的なんか気にせず、実装に継承を使っていれば
全部継承と呼びましょうよ
だからデザパタは意味がない。ゴミ
というばーかな。理屈を言い出したのが悪い。
150デフォルトの名無しさん
2017/10/01(日) 01:36:22.99ID:GRIqwmf+151デフォルトの名無しさん
2017/10/01(日) 01:36:32.17ID:44WxUqLn152デフォルトの名無しさん
2017/10/01(日) 01:38:16.54ID:H5Asg8Dc153デフォルトの名無しさん
2017/10/01(日) 01:40:22.72ID:H5Asg8Dc 使う目的が違うのに、実装に継承が使われているだけで
全部継承と呼ぶな。それは実装用語だ
ストラテジーバターンの目的として使ってない時に
ストラテジーバターンは継承♪
継承を使っていればストラテジーバターン♪
だから全部ストラテジーバターン♪
とか言い出すなボケ
ストラテジーとは別のバターンとして使っているときは
実装に継承が含まれていようが別のパターンだ
全部継承と呼ぶな。それは実装用語だ
ストラテジーバターンの目的として使ってない時に
ストラテジーバターンは継承♪
継承を使っていればストラテジーバターン♪
だから全部ストラテジーバターン♪
とか言い出すなボケ
ストラテジーとは別のバターンとして使っているときは
実装に継承が含まれていようが別のパターンだ
154デフォルトの名無しさん
2017/10/01(日) 01:42:14.15ID:GRIqwmf+155デフォルトの名無しさん
2017/10/01(日) 01:43:39.80ID:H5Asg8Dc > 現実的に使えないから使われてないのだと思うぞ。
現実的に使われてるから、使われてるとしか言いようがない
現実的に使われてるから、使われてるとしか言いようがない
156デフォルトの名無しさん
2017/10/01(日) 01:44:39.83ID:44WxUqLn157デフォルトの名無しさん
2017/10/01(日) 01:45:19.08ID:H5Asg8Dc 例えば、Railsのモデルに使われているActiveRecordというのは
もともとPoEAAのActiveRecordパターンという
パターンを実装したものだ
あまりにもRailsが有名になりすぎてRailsのものだと
勘違いしている人がいるぐらいにな。
これだけでも有名で大規模な利用例と言えよう
もともとPoEAAのActiveRecordパターンという
パターンを実装したものだ
あまりにもRailsが有名になりすぎてRailsのものだと
勘違いしている人がいるぐらいにな。
これだけでも有名で大規模な利用例と言えよう
158デフォルトの名無しさん
2017/10/01(日) 01:46:37.91ID:GRIqwmf+159デフォルトの名無しさん
2017/10/01(日) 01:49:44.09ID:H5Asg8Dc >>158
あぁ、レスが遅かったな。
すでにデザインパターンが使われてる例を一つ出したところだ
デザインパターンが使われていない証拠を出せ
デザインパターンが使われている証拠を出せ
これは
幽霊がいないという証拠を出せ
幽霊がいるという証拠を出せ
という話と似ている。幽霊がいないことを証明するのは難しいが
幽霊がいるという証明をするのは簡単
一匹でも幽霊を見つけてくればいい。
だから俺はデザインパターンが使われてる例を一つ出した。
お前は難しい方から攻めてくれ。デザインパターンが使われていないという証明をしろ。
あぁ、レスが遅かったな。
すでにデザインパターンが使われてる例を一つ出したところだ
デザインパターンが使われていない証拠を出せ
デザインパターンが使われている証拠を出せ
これは
幽霊がいないという証拠を出せ
幽霊がいるという証拠を出せ
という話と似ている。幽霊がいないことを証明するのは難しいが
幽霊がいるという証明をするのは簡単
一匹でも幽霊を見つけてくればいい。
だから俺はデザインパターンが使われてる例を一つ出した。
お前は難しい方から攻めてくれ。デザインパターンが使われていないという証明をしろ。
160デフォルトの名無しさん
2017/10/01(日) 01:52:23.50ID:GRIqwmf+161デフォルトの名無しさん
2017/10/01(日) 01:56:02.10ID:44WxUqLn #define パターン パタ
#define デザインパターン デザパタ
#define ストラテジーパターン ストパタ
#define メソッド メソ
#define フィールド フィー
これでだいぶコード量が小さくできる
他に入れとくべきものある?
#define デザインパターン デザパタ
#define ストラテジーパターン ストパタ
#define メソッド メソ
#define フィールド フィー
これでだいぶコード量が小さくできる
他に入れとくべきものある?
162デフォルトの名無しさん
2017/10/01(日) 01:56:44.56ID:H5Asg8Dc >>160
だからお前は実装のことしか見れてないっていってんだよww
視野が狭すぎ
「AcriveRecordオブジェクトを継承しといてね」は実装の話だ
「AcriveRecordパターン使ってね」は設計の話だ。
(実際には誰かに頼まれて使ったのではなくRailsの生みの親のDHHが
考慮した結果AcriveRecordパターンを使っわけだが)
お前は設計がすんだあとの立場からしか見えてないんだよ。
お前の書き込み自体が「○○しといてね」と指示を出される側から見てるのがその証拠
お前は誰かがやった設計の通りに、実装することしかしたことがないんだろ?
だからお前は実装のことしか見れてないっていってんだよww
視野が狭すぎ
「AcriveRecordオブジェクトを継承しといてね」は実装の話だ
「AcriveRecordパターン使ってね」は設計の話だ。
(実際には誰かに頼まれて使ったのではなくRailsの生みの親のDHHが
考慮した結果AcriveRecordパターンを使っわけだが)
お前は設計がすんだあとの立場からしか見えてないんだよ。
お前の書き込み自体が「○○しといてね」と指示を出される側から見てるのがその証拠
お前は誰かがやった設計の通りに、実装することしかしたことがないんだろ?
163デフォルトの名無しさん
2017/10/01(日) 02:01:22.65ID:44WxUqLn 実装は思想やモデル、指針を定義するパターンを実現する手法のひとつにすぎない
それだけのことだよね
それだけのことだよね
164デフォルトの名無しさん
2017/10/01(日) 02:03:57.54ID:GRIqwmf+ >>162
いや、指示を出す立場でも同じ言葉だと思うが。
よく知らないが、
> ActiveRecordのようなO/Rマッパーを使うと、
> オブジェクト指向プログラミングができるのはもちろん、
> モデル層の永続化のコードを基本的にライブラリ任せにできるので、
> SQLを記述する煩わしさを避けることができます。
> http://www.atmarkit.co.jp/ait/articles/1104/12/news135.html
つまり俺なら普通に「O/Rマッパー」って言うぞ。
それを厨二に「ActiveRecord(キリッ」と名付けるのは勝手だが、
何故俺がいちいち名前を覚えないといけないのだ?
いや、指示を出す立場でも同じ言葉だと思うが。
よく知らないが、
> ActiveRecordのようなO/Rマッパーを使うと、
> オブジェクト指向プログラミングができるのはもちろん、
> モデル層の永続化のコードを基本的にライブラリ任せにできるので、
> SQLを記述する煩わしさを避けることができます。
> http://www.atmarkit.co.jp/ait/articles/1104/12/news135.html
つまり俺なら普通に「O/Rマッパー」って言うぞ。
それを厨二に「ActiveRecord(キリッ」と名付けるのは勝手だが、
何故俺がいちいち名前を覚えないといけないのだ?
165デフォルトの名無しさん
2017/10/01(日) 02:05:21.68ID:44WxUqLn166デフォルトの名無しさん
2017/10/01(日) 02:08:23.29ID:GRIqwmf+167デフォルトの名無しさん
2017/10/01(日) 02:08:24.39ID:H5Asg8Dc 普通、設計は「○○パターンを使ってね」なんて言わないからなぁ。
言うとしたら「○○パターンを使いましょう」だ
なにもない所から使うパターンを考えることが設計作業なんだから。
設計者が実装者に指示を出すとしたら
「○○パターンを使いますから、必要なクラスを実装してください」か
もしくは「○○パターンを使います。そのために必要なクラスの一部を作りましたから、
あなたは○○オブジェクトを継承しといてね」になるだろう。
そう実装の話。実装の立場からしか物事を見れてないから
設計をすることの意味すらもわからず
設計に実装と同じような指示が存在すると墓穴をほってしまう。
言うとしたら「○○パターンを使いましょう」だ
なにもない所から使うパターンを考えることが設計作業なんだから。
設計者が実装者に指示を出すとしたら
「○○パターンを使いますから、必要なクラスを実装してください」か
もしくは「○○パターンを使います。そのために必要なクラスの一部を作りましたから、
あなたは○○オブジェクトを継承しといてね」になるだろう。
そう実装の話。実装の立場からしか物事を見れてないから
設計をすることの意味すらもわからず
設計に実装と同じような指示が存在すると墓穴をほってしまう。
168デフォルトの名無しさん
2017/10/01(日) 02:09:16.78ID:H5Asg8Dc169デフォルトの名無しさん
2017/10/01(日) 02:11:38.94ID:44WxUqLn170デフォルトの名無しさん
2017/10/01(日) 02:12:56.51ID:H5Asg8Dc まあ、ご教授してさしあげると(笑)
O/Rマッパーは設計を意味する用語ではない
なにかのオブジェクトとデータベースをマッピングする
という目的のためにライブラリ・フレムワークの種類のことだ。
O/Rマッパーと言ってもそこにどんな設計が使われているかはわからない。
ActiveRecordパターンを使ってるかもしれないし
Table Data Gatewayパターンを使ってるかもしれないし
Row Data Gatewayパターンを使ってるかもしれないし
Data Mapperパターンを使ってるかもしれない
O/Rマッパーは設計を意味する用語ではない
なにかのオブジェクトとデータベースをマッピングする
という目的のためにライブラリ・フレムワークの種類のことだ。
O/Rマッパーと言ってもそこにどんな設計が使われているかはわからない。
ActiveRecordパターンを使ってるかもしれないし
Table Data Gatewayパターンを使ってるかもしれないし
Row Data Gatewayパターンを使ってるかもしれないし
Data Mapperパターンを使ってるかもしれない
171デフォルトの名無しさん
2017/10/01(日) 02:14:56.98ID:H5Asg8Dc RailsのActiveRecordは
その名前の通りPoEAAのActiveRecordパターンを
実装したO/Rマッパーである
別にO/Rマッパー全てがActiveRecordパターンというわけではない
その名前の通りPoEAAのActiveRecordパターンを
実装したO/Rマッパーである
別にO/Rマッパー全てがActiveRecordパターンというわけではない
172デフォルトの名無しさん
2017/10/01(日) 02:15:32.16ID:GRIqwmf+173デフォルトの名無しさん
2017/10/01(日) 02:16:17.79ID:44WxUqLn まとめると、基本設計(パターン)とそれを実現するために使う道具(ライブラリ等の具体的な実装)の区別をちゃんとつけて設計しましょう
ってことでFA?
ってことでFA?
174デフォルトの名無しさん
2017/10/01(日) 02:17:03.31ID:H5Asg8Dc Java の Hibernate という O/Rマッパーが
Data Mapperパターンを使っている
http://d.hatena.ne.jp/naoya/20051024/1130146687
> テーブルの構造とクラスの設計に乖離がある場合、
> その乖離を埋めるためのマッピングを用意してやる必要がある、
> これが Data Mapper パターン。Java の Hibernate とかが
> Data Mapper による O/R マッピング実装。
Data Mapperパターンを使っている
http://d.hatena.ne.jp/naoya/20051024/1130146687
> テーブルの構造とクラスの設計に乖離がある場合、
> その乖離を埋めるためのマッピングを用意してやる必要がある、
> これが Data Mapper パターン。Java の Hibernate とかが
> Data Mapper による O/R マッピング実装。
175デフォルトの名無しさん
2017/10/01(日) 02:18:34.76ID:H5Asg8Dc >>172
O/Rマッパーの実装として
ActiveRecordパターンを使ったRailsのActiveRecordと
DataMapperパターンを使ったJavaのHibernateを紹介した
ここからもO/Rマッパーという用語では
設計がわからんという話に納得できただろ?w
O/Rマッパーの実装として
ActiveRecordパターンを使ったRailsのActiveRecordと
DataMapperパターンを使ったJavaのHibernateを紹介した
ここからもO/Rマッパーという用語では
設計がわからんという話に納得できただろ?w
176デフォルトの名無しさん
2017/10/01(日) 02:18:59.84ID:GRIqwmf+ >>170,171
それくらいは分かるが、と言うより、
・O/Rマッパー=OとRをマッピングするもの
であって、それ以上でも以下でもないんだよ。
ただし、中身の実装を知らなくていいというのがOOPであって、それで終わり。
それくらいは分かるが、と言うより、
・O/Rマッパー=OとRをマッピングするもの
であって、それ以上でも以下でもないんだよ。
ただし、中身の実装を知らなくていいというのがOOPであって、それで終わり。
177デフォルトの名無しさん
2017/10/01(日) 02:20:16.08ID:H5Asg8Dc > ただし、中身の実装を知らなくていいというのがOOPであって、それで終わり。
ア、ハイ、実装者側の立場からしか見えてないんですよね?w
中身の設計ぐらい知らなきゃw
ア、ハイ、実装者側の立場からしか見えてないんですよね?w
中身の設計ぐらい知らなきゃw
178デフォルトの名無しさん
2017/10/01(日) 02:21:21.14ID:44WxUqLn 少しずつ主張を変えていって最初からそう言ってるんだがってことにする論法って俗に何て言うの?
179デフォルトの名無しさん
2017/10/01(日) 02:21:59.93ID:H5Asg8Dc ちょっとまてw
終わった話を蒸し返す論法も使ってるぞw
終わった話を蒸し返す論法も使ってるぞw
180デフォルトの名無しさん
2017/10/01(日) 02:26:02.99ID:GRIqwmf+181デフォルトの名無しさん
2017/10/01(日) 02:28:09.18ID:H5Asg8Dc 実装者は使うライブラリ・フレームワークの設計をしらないと
めちゃくちゃになるからな。
例えば昔、トランザクションスクリプトパターンと
単なるSQLライブラリばかり使ってきた人が
別プロジェクトでPythonのDjango(これもActiveRecordパターン)を
使ったんだが散々な結果だったよ。
フレームワークとしてActiveRecordパターンを要求されるが
そこにActiveRecordパターンではやらないようなコード
(SQLを実行するだけのようなメソッド)をクラスに生やしたりして。
Djangoフレームワークの実装の中身は見なくてもいいけど
そこで使われている設計はちゃんと理解していなければダメだ。
めちゃくちゃになるからな。
例えば昔、トランザクションスクリプトパターンと
単なるSQLライブラリばかり使ってきた人が
別プロジェクトでPythonのDjango(これもActiveRecordパターン)を
使ったんだが散々な結果だったよ。
フレームワークとしてActiveRecordパターンを要求されるが
そこにActiveRecordパターンではやらないようなコード
(SQLを実行するだけのようなメソッド)をクラスに生やしたりして。
Djangoフレームワークの実装の中身は見なくてもいいけど
そこで使われている設計はちゃんと理解していなければダメだ。
182デフォルトの名無しさん
2017/10/01(日) 02:28:25.53ID:44WxUqLn あるOOPベースのライブラリを使うことで結果的にあるデザインパターンに沿うことになるライブラリと、いろんなデザインパターンを実現するのに使えるより純粋な道具としてのライブラリがあると思うの
そこはちゃんと分離して話をしないとダメだと思うの
そこはちゃんと分離して話をしないとダメだと思うの
183デフォルトの名無しさん
2017/10/01(日) 02:28:51.27ID:H5Asg8Dc184デフォルトの名無しさん
2017/10/01(日) 02:30:10.95ID:GRIqwmf+ 一応俺のスタンスは最初から変わってないつもりだぞ。
・デザパタはゴミ
・デザパタ厨もゴミ
・デザパタ用語は使い道がないからゴミ
・デザパタはゴミ
・デザパタ厨もゴミ
・デザパタ用語は使い道がないからゴミ
185デフォルトの名無しさん
2017/10/01(日) 02:31:34.05ID:44WxUqLn186デフォルトの名無しさん
2017/10/01(日) 02:31:45.57ID:H5Asg8Dc187デフォルトの名無しさん
2017/10/01(日) 02:32:31.62ID:GRIqwmf+188デフォルトの名無しさん
2017/10/01(日) 02:34:18.00ID:44WxUqLn189デフォルトの名無しさん
2017/10/01(日) 02:35:51.52ID:GRIqwmf+190デフォルトの名無しさん
2017/10/01(日) 02:36:36.93ID:H5Asg8Dc >>187
> しかしそれは「フレームワークの中身を知っておけ」であって、「デザパタを知っておけ」ではない。
「フレームワークで使われてるデザパタを知っておけ」だ
俺はDjangoは当時知らなかったがActiveRecordパターンを知っていたから
使い方が間違っていることにすぐに気づいたぞ
特定のフレームワークに縛られない知識が重要という話だ。
あくまで実装者として立場からしか見れないお前は
今使ってるフレームワークの使い方で精一杯なんだろうけどな。
そしてフレームワークから呼び出されるコードしか書かないから
お前の世界にはデザパタがでてこないわけだよ。
全て理屈が通ったなw
> しかしそれは「フレームワークの中身を知っておけ」であって、「デザパタを知っておけ」ではない。
「フレームワークで使われてるデザパタを知っておけ」だ
俺はDjangoは当時知らなかったがActiveRecordパターンを知っていたから
使い方が間違っていることにすぐに気づいたぞ
特定のフレームワークに縛られない知識が重要という話だ。
あくまで実装者として立場からしか見れないお前は
今使ってるフレームワークの使い方で精一杯なんだろうけどな。
そしてフレームワークから呼び出されるコードしか書かないから
お前の世界にはデザパタがでてこないわけだよ。
全て理屈が通ったなw
191デフォルトの名無しさん
2017/10/01(日) 02:40:26.75ID:GRIqwmf+ >>190
だからそれは「フレームワークがActiveRecord前提で組まれている」からであり、
それを「ActiveRecordパターン」と呼ぶのは自由だが、GoFの言う「デザパタ」とは違うって。
まあ平行線ならそれでいいが。
だからそれは「フレームワークがActiveRecord前提で組まれている」からであり、
それを「ActiveRecordパターン」と呼ぶのは自由だが、GoFの言う「デザパタ」とは違うって。
まあ平行線ならそれでいいが。
192デフォルトの名無しさん
2017/10/01(日) 02:44:03.92ID:H5Asg8Dc > GoFの言う「デザパタ」とは違うって。
そりゃそうだ。ActiveRecordパターンは
エンタープライズアプリケーションアーキテクチャパターン
https://www.amazon.co.jp/dp/B01B5MX2O2/
にのってるマーチン・ファウラーのデザインパターンなんだから
そりゃそうだ。ActiveRecordパターンは
エンタープライズアプリケーションアーキテクチャパターン
https://www.amazon.co.jp/dp/B01B5MX2O2/
にのってるマーチン・ファウラーのデザインパターンなんだから
193デフォルトの名無しさん
2017/10/01(日) 02:46:05.25ID:U1G3k+aG194デフォルトの名無しさん
2017/10/01(日) 02:50:38.64ID:GRIqwmf+195デフォルトの名無しさん
2017/10/01(日) 02:51:22.94ID:H5Asg8Dc ちなみにJava の Hibernate という O/Rマッパーは
ActiveRecordパターンとともに紹介されている
Data Mapperパターンを使っているが
Hibernate はフレームワークではない。ライブラリである。
ActiveRecordパターンとともに紹介されている
Data Mapperパターンを使っているが
Hibernate はフレームワークではない。ライブラリである。
196デフォルトの名無しさん
2017/10/01(日) 02:53:02.16ID:GRIqwmf+197デフォルトの名無しさん
2017/10/01(日) 02:55:34.72ID:44WxUqLn デザインパターンは不要の長物といってる人はデザインパターンを理解してないと思われる
何かしらのソフトウェアをゼロから作り上げるにあたっては必ず何かしらの大枠となる基本設計思想や基本構造を構想して行われる
それがGoFのデザインパターンに一致するかもしれないし、新しい独自のデザインパターンかもしれない
デザインパターンという言葉は両者含めての言葉である
つまり、デザインパターンを持たないソフトウェアなど本来は存在しない
何かしらのソフトウェアをゼロから作り上げるにあたっては必ず何かしらの大枠となる基本設計思想や基本構造を構想して行われる
それがGoFのデザインパターンに一致するかもしれないし、新しい独自のデザインパターンかもしれない
デザインパターンという言葉は両者含めての言葉である
つまり、デザインパターンを持たないソフトウェアなど本来は存在しない
198デフォルトの名無しさん
2017/10/01(日) 02:55:40.17ID:H5Asg8Dc199デフォルトの名無しさん
2017/10/01(日) 02:57:01.13ID:H5Asg8Dc >>196
> これも何度も言っているが、ストラテジーパターンに該当するとして、
> その際、継承/委譲/関数ポインタのどれにするかで大違いなので、
> 現実的に「ストラテジーパターンで行きましょう」なんて議論は無理で、
ここはいろんなアルゴリズムを実行時に切り替えられるようにしよう
であればストラテジーバターンで行きましょう。という議論になる。
アルゴリズムを実行時に切り替えられるようにしようという設計の話で
委譲にしておく?なんて実装の話は出てこない。
> これも何度も言っているが、ストラテジーパターンに該当するとして、
> その際、継承/委譲/関数ポインタのどれにするかで大違いなので、
> 現実的に「ストラテジーパターンで行きましょう」なんて議論は無理で、
ここはいろんなアルゴリズムを実行時に切り替えられるようにしよう
であればストラテジーバターンで行きましょう。という議論になる。
アルゴリズムを実行時に切り替えられるようにしようという設計の話で
委譲にしておく?なんて実装の話は出てこない。
200デフォルトの名無しさん
2017/10/01(日) 02:57:04.47ID:44WxUqLn201デフォルトの名無しさん
2017/10/01(日) 02:58:01.82ID:H5Asg8Dc ほらなw
答えたのに無視するもんなー
こういうやつです
答えたのに無視するもんなー
こういうやつです
202デフォルトの名無しさん
2017/10/01(日) 03:01:11.73ID:44WxUqLn >>196
デザインパターンとは設計の大枠となる構造や指針であって、それを決めてからより具体的な実装を検討していくってだけなんだが…
デザインパターンとは設計の大枠となる構造や指針であって、それを決めてからより具体的な実装を検討していくってだけなんだが…
203デフォルトの名無しさん
2017/10/01(日) 03:04:15.90ID:GRIqwmf+204デフォルトの名無しさん
2017/10/01(日) 03:05:53.36ID:44WxUqLn >>203
回答しといたぞ
回答しといたぞ
205デフォルトの名無しさん
2017/10/01(日) 03:07:26.90ID:GRIqwmf+206デフォルトの名無しさん
2017/10/01(日) 03:09:34.07ID:44WxUqLn >>205
デザパタっていうなら省略ポリシーをちゃんと守って書きなって言ってるだけ
デザパタっていうなら省略ポリシーをちゃんと守って書きなって言ってるだけ
207デフォルトの名無しさん
2017/10/01(日) 03:14:58.23ID:44WxUqLn >>205
デザパタと言ったかと思えばストラテジーパターンと言ってみたり、中途半端なんだよ
そういうやつが書くコードは、ところどころポリシーが違ったりしてるいい加減なコードを書きそうだ
そんな調子だからデザインパターンも軽視するのだろう
デザパタと言ったかと思えばストラテジーパターンと言ってみたり、中途半端なんだよ
そういうやつが書くコードは、ところどころポリシーが違ったりしてるいい加減なコードを書きそうだ
そんな調子だからデザインパターンも軽視するのだろう
208デフォルトの名無しさん
2017/10/01(日) 03:20:07.22ID:H5Asg8Dc デザパタと略すならストラテジーパターンも
ストパンと略すべきだろうな
ストパンと略すべきだろうな
209デフォルトの名無しさん
2017/10/01(日) 03:23:34.93ID:44WxUqLn >>208
いやそれはおかしいだろw
いやそれはおかしいだろw
210デフォルトの名無しさん
2017/10/01(日) 08:46:24.59ID:GRIqwmf+ >>198
ストラテジーパターン以外についても前スレでさんざん
○○=△△パターン、って書いたろ。
まあいいが。
undoすらまともに実装出来ないデザパタ厨が、
何をどう勘違いしたら設計出来るつもりになれるのか不思議だったが、
だいぶ喋ってくれたので何となく分かったような気がする。
まあ後日読み返してみることにするよ。これについてはありがとう。
ストラテジーパターン以外についても前スレでさんざん
○○=△△パターン、って書いたろ。
まあいいが。
undoすらまともに実装出来ないデザパタ厨が、
何をどう勘違いしたら設計出来るつもりになれるのか不思議だったが、
だいぶ喋ってくれたので何となく分かったような気がする。
まあ後日読み返してみることにするよ。これについてはありがとう。
211デフォルトの名無しさん
2017/10/01(日) 09:03:28.63ID:U1G3k+aG undoとかundoとかundoとか自分がやったことあるところは自信あるもんな
212デフォルトの名無しさん
2017/10/01(日) 09:33:28.54ID:GRIqwmf+ >>211
まあ今日はもうやり合う気はないんだが、多分お前らは設計を根本的に勘違いしている。
例えば、>>174内URLで言うなら、
> Table Data Gateway は J2EE の DAO に代表されるパターンで、
> ひとつのインスタンスがテーブルの全部のレコードを扱うというもの。
> SQL を一箇所に集めることで保守性を上げましょうね、というもの。
普通の人の設計=後半部分を考えること
お前らの言う設計=この全文を覚えること
になってる。
ただしこれがお前らみたいに考える能力がない連中にとって現実解になり得るのかもしれん。
これは前にも言ったが。
> 自分がやったことあるところは自信あるもんな
これがお前らの世界観を端的に示している。
経験済みならパターンとして暗記しているから出来るが、やったこと無いと何も出来ない。
最初の卵は絶対に産めないわけだ。
実はお前らがundoをさも難しいと思っていること自体がかなり滑稽なんだがな。
とはいえ新しい意味での「コピペプログラマ」が跋扈する時代でもあるから、
お前らのやり方でもある程度通用するのは事実なのだろう。
デザパタ厨=コピペプログラマのようだし。
まあ今日はもうやり合う気はないんだが、多分お前らは設計を根本的に勘違いしている。
例えば、>>174内URLで言うなら、
> Table Data Gateway は J2EE の DAO に代表されるパターンで、
> ひとつのインスタンスがテーブルの全部のレコードを扱うというもの。
> SQL を一箇所に集めることで保守性を上げましょうね、というもの。
普通の人の設計=後半部分を考えること
お前らの言う設計=この全文を覚えること
になってる。
ただしこれがお前らみたいに考える能力がない連中にとって現実解になり得るのかもしれん。
これは前にも言ったが。
> 自分がやったことあるところは自信あるもんな
これがお前らの世界観を端的に示している。
経験済みならパターンとして暗記しているから出来るが、やったこと無いと何も出来ない。
最初の卵は絶対に産めないわけだ。
実はお前らがundoをさも難しいと思っていること自体がかなり滑稽なんだがな。
とはいえ新しい意味での「コピペプログラマ」が跋扈する時代でもあるから、
お前らのやり方でもある程度通用するのは事実なのだろう。
デザパタ厨=コピペプログラマのようだし。
213デフォルトの名無しさん
2017/10/01(日) 10:06:53.73ID:GRIqwmf+ まあとにかく俺は、
「動的に対象関数を切り替える」と言えば済むだけのところで
「ストラテジーパターン」と言い換えるのは、厨二以外の意味はないと思うけどな。
そして「AcriveRecordパターン」なんて言っちゃうのは厨二過ぎて付いていけない。
「Rails標準O/Rマッパーの実装方式」と言えば誰にでも通じるのに。
とはいえこういう状況も割とよくあるのも事実だが。
「動的に対象関数を切り替える」と言えば済むだけのところで
「ストラテジーパターン」と言い換えるのは、厨二以外の意味はないと思うけどな。
そして「AcriveRecordパターン」なんて言っちゃうのは厨二過ぎて付いていけない。
「Rails標準O/Rマッパーの実装方式」と言えば誰にでも通じるのに。
とはいえこういう状況も割とよくあるのも事実だが。
214デフォルトの名無しさん
2017/10/01(日) 10:46:47.52ID:IPLbJXkb なんども使う処理は関数化して名前を付けるだろ
デザインパターンもそれと同じだよ
この考え方を理解できない人ってめちゃくちゃ長い関数を書きそうだよね
仕事では絶対に付き合いたくないタイプ
デザインパターンもそれと同じだよ
この考え方を理解できない人ってめちゃくちゃ長い関数を書きそうだよね
仕事では絶対に付き合いたくないタイプ
215デフォルトの名無しさん
2017/10/01(日) 11:25:29.81ID:DL6cgIdt >>178
とくに名前ついてないと思うけど
頭の悪い子が無自覚に食い下がるときって、いつもこうなってると思う
だから、いつもの展開だなって思うだけ
おまえら、バターン君これ以上いじっても何の利も無いぞ
もうそっとしておいてやれ
とくに名前ついてないと思うけど
頭の悪い子が無自覚に食い下がるときって、いつもこうなってると思う
だから、いつもの展開だなって思うだけ
おまえら、バターン君これ以上いじっても何の利も無いぞ
もうそっとしておいてやれ
216デフォルトの名無しさん
2017/10/01(日) 11:57:55.99ID:GRIqwmf+217デフォルトの名無しさん
2017/10/01(日) 12:04:09.09ID:qGSPhC6b 全体をみれてないのはどっちだろうね
218デフォルトの名無しさん
2017/10/01(日) 12:06:57.99ID:GRIqwmf+ ああ、捕捉しておくと、
ID:H5Asg8Dcは頭が悪くて、多分短期記憶領域が非常に狭い。
だから論理的に筋立てるのではなく、言葉尻を掴んで反論してくる。
というかそれしか出来ない。
だがまあ、それでも話す気はあるみたいだから相手してみた、というところ。
最初からちゃんと議論してくれればこの展開にはなってない。
とはいえ、今のID:H5Asg8Dcにこれを求めるのは無理だ。
ただ、こういう、お前らに問題があるのに相手のせいにするというのはゆとりに多いし、
ゆとりは本当に馬鹿だから他のゆとりもそう思ってしまってみんなで同調する事も多い。
今まさにそうだが。
で、そういうのにも上の世代はブチ切れているから、そこら辺は自覚した方がいい。
ID:H5Asg8Dcは頭が悪くて、多分短期記憶領域が非常に狭い。
だから論理的に筋立てるのではなく、言葉尻を掴んで反論してくる。
というかそれしか出来ない。
だがまあ、それでも話す気はあるみたいだから相手してみた、というところ。
最初からちゃんと議論してくれればこの展開にはなってない。
とはいえ、今のID:H5Asg8Dcにこれを求めるのは無理だ。
ただ、こういう、お前らに問題があるのに相手のせいにするというのはゆとりに多いし、
ゆとりは本当に馬鹿だから他のゆとりもそう思ってしまってみんなで同調する事も多い。
今まさにそうだが。
で、そういうのにも上の世代はブチ切れているから、そこら辺は自覚した方がいい。
219デフォルトの名無しさん
2017/10/01(日) 12:22:54.23ID:yUwdbVfT 今デザパタ勉強中だけど、undo実装のパターンも二つぐらいなかったか
メメントとあともうひとつぐらい
よくわからんけど、なんでそんなに否定したがるかわからん
メメントとあともうひとつぐらい
よくわからんけど、なんでそんなに否定したがるかわからん
220デフォルトの名無しさん
2017/10/01(日) 12:37:16.11ID:H5Asg8Dc ほらな? 個人攻撃を始めちゃったw
これが記憶能力が少なくて名前を覚えられなくて
2分ヒープ木を用いて並び替えする方式でも
隣り合う要素の大小を比較しながら整列する並び替え方式でも
あらかじめ順番通りに並んだバケツを並び替えを行う要素分用意して順番に格納された要素をバケツから取り出し並び替えする方式でも
10進数の0以上の整数値の場合、0?10のバケツを用意しソートを行う要素の下1桁目に対応するバケツに格納する方式でも
バラバラになっている配列データを再帰的に最小限まで分解を行い分解し終わった後、結合を行う並び替える方式でも
動的に対象関数を切り替えるようなやり方をしよう
っていうやつなんやでw
これが記憶能力が少なくて名前を覚えられなくて
2分ヒープ木を用いて並び替えする方式でも
隣り合う要素の大小を比較しながら整列する並び替え方式でも
あらかじめ順番通りに並んだバケツを並び替えを行う要素分用意して順番に格納された要素をバケツから取り出し並び替えする方式でも
10進数の0以上の整数値の場合、0?10のバケツを用意しソートを行う要素の下1桁目に対応するバケツに格納する方式でも
バラバラになっている配列データを再帰的に最小限まで分解を行い分解し終わった後、結合を行う並び替える方式でも
動的に対象関数を切り替えるようなやり方をしよう
っていうやつなんやでw
221デフォルトの名無しさん
2017/10/01(日) 12:47:03.35ID:qGSPhC6b222デフォルトの名無しさん
2017/10/01(日) 12:47:30.83ID:yUwdbVfT パターンに名前をつけることにイラついてんのか?
223デフォルトの名無しさん
2017/10/01(日) 12:48:22.68ID:yUwdbVfT プログラマーってどうでもいいことに突っかかるよな
224デフォルトの名無しさん
2017/10/01(日) 12:51:14.45ID:IPLbJXkb PGは基本キチガイだよね
まともな奴だと逆に珍しい
もともとプログラム好きなオタクはもれなくキチガイだし
他の就職先なくてプログラマになったやつも内定取れないだけあって人間性のおかしなキチガイばかり
まともな奴だと逆に珍しい
もともとプログラム好きなオタクはもれなくキチガイだし
他の就職先なくてプログラマになったやつも内定取れないだけあって人間性のおかしなキチガイばかり
225デフォルトの名無しさん
2017/10/01(日) 12:57:42.28ID:yUwdbVfT GoFより自分の方が優秀だと主張したいのか?
226デフォルトの名無しさん
2017/10/01(日) 13:10:11.98ID:OXD0q5aq な?デザパタなんて使えないだろ
227デフォルトの名無しさん
2017/10/01(日) 13:14:24.57ID:H5Asg8Dc パターン名が覚えられない
だからデザパタは使えないってことにしたいんだ
だからデザパタは使えないってことにしたいんだ
228デフォルトの名無しさん
2017/10/01(日) 13:17:01.88ID:DL6cgIdt >>225
身の程知らず、も初学者にありがちなパターンだよなw
コンパイラがバグってるだの
言語がゴミだのOSがカスだの
俺だけが正しくて世界の全員が間違ってるだの
なにか、自分が無敵に思えるタイミングが、学習の初期の初期に存在するんだろうな
身の程知らず、も初学者にありがちなパターンだよなw
コンパイラがバグってるだの
言語がゴミだのOSがカスだの
俺だけが正しくて世界の全員が間違ってるだの
なにか、自分が無敵に思えるタイミングが、学習の初期の初期に存在するんだろうな
229デフォルトの名無しさん
2017/10/01(日) 13:19:21.72ID:GRIqwmf+ >>220
前スレ>>813読め
基本的に君は相手が何を言ったのか全く覚えてない。
だから話がループする。
それは君の問題だが、君の場合はそれが常である為に、その異常性に気付けない。
それはマジでヤバいぞ。リアルだったらブチ切れられて終わりのはず。
>>219
俺は、デザパタは役に立たない、デザパタ厨は全員undoすら実装できないのが証拠、という意見で、
それでも君が勉強するのは君の自由。
ただここら辺も前スレ818で言ったし、話は完全にループしてる。
結局俺は前スレ812の意見からほぼ修正されてない。
デザパタ厨はデザパタを暗記することが目的になっている。
GoFのはデザパタ厨が主張するように「設計用語」としては多少は意味があるが、(ただし使いどころがないからゴミ)
ActiveRecordとかのただの「実装の一例」を抽象化無しで「パターン」として取り扱うからおかしな事になる。
ただし、デザパタ厨=コピペプログラマにとってはこれが彼等なりの現実解なのだと思う。
これも前スレ927で言ったとおり。
前スレ>>813読め
基本的に君は相手が何を言ったのか全く覚えてない。
だから話がループする。
それは君の問題だが、君の場合はそれが常である為に、その異常性に気付けない。
それはマジでヤバいぞ。リアルだったらブチ切れられて終わりのはず。
>>219
俺は、デザパタは役に立たない、デザパタ厨は全員undoすら実装できないのが証拠、という意見で、
それでも君が勉強するのは君の自由。
ただここら辺も前スレ818で言ったし、話は完全にループしてる。
結局俺は前スレ812の意見からほぼ修正されてない。
デザパタ厨はデザパタを暗記することが目的になっている。
GoFのはデザパタ厨が主張するように「設計用語」としては多少は意味があるが、(ただし使いどころがないからゴミ)
ActiveRecordとかのただの「実装の一例」を抽象化無しで「パターン」として取り扱うからおかしな事になる。
ただし、デザパタ厨=コピペプログラマにとってはこれが彼等なりの現実解なのだと思う。
これも前スレ927で言ったとおり。
230デフォルトの名無しさん
2017/10/01(日) 13:20:54.51ID:qGSPhC6b >229
>デザパタ厨
ってなんすか?
>デザパタ厨
ってなんすか?
231デフォルトの名無しさん
2017/10/01(日) 13:21:35.33ID:H5Asg8Dc > 俺は、デザパタは役に立たない、デザパタ厨は全員undoすら実装できないのが証拠、という意見で、
根拠が無いな。
世界中を調べてみたのか?
まさかこのスレだけで判断してないよな?
根拠が無いな。
世界中を調べてみたのか?
まさかこのスレだけで判断してないよな?
232デフォルトの名無しさん
2017/10/01(日) 13:21:53.57ID:qGSPhC6b233デフォルトの名無しさん
2017/10/01(日) 13:21:57.09ID:H5Asg8Dc 世界中を調べてみればデザパタが使われているのは
明らかだろう。
明らかだろう。
234デフォルトの名無しさん
2017/10/01(日) 13:23:11.45ID:H5Asg8Dc235デフォルトの名無しさん
2017/10/01(日) 13:23:13.35ID:OXD0q5aq >>233
え?
え?
236デフォルトの名無しさん
2017/10/01(日) 13:24:56.88ID:H5Asg8Dc >>235
実例はいくつも出してるよ。
実例はいくつも出してるよ。
237デフォルトの名無しさん
2017/10/01(日) 13:27:40.28ID:OXD0q5aq238デフォルトの名無しさん
2017/10/01(日) 13:29:19.01ID:iOi6hm11239デフォルトの名無しさん
2017/10/01(日) 13:29:54.91ID:t00k+6e7 >>237
あほ
あほ
240デフォルトの名無しさん
2017/10/01(日) 13:30:31.06ID:JkvRtWNG241デフォルトの名無しさん
2017/10/01(日) 13:30:36.81ID:OXD0q5aq242デフォルトの名無しさん
2017/10/01(日) 13:32:35.36ID:OXD0q5aq243デフォルトの名無しさん
2017/10/01(日) 13:38:57.48ID:GRIqwmf+244デフォルトの名無しさん
2017/10/01(日) 13:38:58.29ID:yUwdbVfT 知らないことを誇るのってすごく恥ずかしいと思う
数学なんて役に立たねーってわめいてるバカ学生みたい
数学なんて役に立たねーってわめいてるバカ学生みたい
245デフォルトの名無しさん
2017/10/01(日) 13:40:32.66ID:H5Asg8Dc >>243
使ってるし使われてる。
お前はフレームワークを使うことしかやってないんだろ?
実装の立場でしか見れてない、
お前の仕事は設計が終わった後で設計にたずさわっていない。
そりゃ知らんはずだわw
使ってるし使われてる。
お前はフレームワークを使うことしかやってないんだろ?
実装の立場でしか見れてない、
お前の仕事は設計が終わった後で設計にたずさわっていない。
そりゃ知らんはずだわw
246デフォルトの名無しさん
2017/10/01(日) 13:44:03.36ID:DL6cgIdt >>245
あんたつくづくお人好しだなw
数学なんて社会に出ても役に立たない!
って主張はたまに聞くが
その反論は意外と耳に届いてこない
なぜなら、反論しうる層の人々は
そこまでヒマでもないし、お人好しでもない
真顔のままで見下ろしてる
あんたつくづくお人好しだなw
数学なんて社会に出ても役に立たない!
って主張はたまに聞くが
その反論は意外と耳に届いてこない
なぜなら、反論しうる層の人々は
そこまでヒマでもないし、お人好しでもない
真顔のままで見下ろしてる
247デフォルトの名無しさん
2017/10/01(日) 13:44:18.74ID:iOi6hm11248デフォルトの名無しさん
2017/10/01(日) 13:45:04.32ID:qGSPhC6b 自分だけは誰よりも正しく常に上位にいるという前提
249デフォルトの名無しさん
2017/10/01(日) 13:45:38.71ID:GRIqwmf+ >>245
まあundoすら実装出来ない馬鹿がフレームワークの設計とか、あり得ないけどな
まあundoすら実装出来ない馬鹿がフレームワークの設計とか、あり得ないけどな
250デフォルトの名無しさん
2017/10/01(日) 13:49:46.07ID:m+pWvPIZ ブーメラン刺さってますよ
251デフォルトの名無しさん
2017/10/01(日) 14:01:00.31ID:OXD0q5aq252デフォルトの名無しさん
2017/10/01(日) 14:04:05.22ID:OXD0q5aq ネット上でも当たり前にデザパタが使われて解説してるサイトとか無いの?
msも使ってないし
デザパタサポートしてるフレームワークとかも聞かないし
msも使ってないし
デザパタサポートしてるフレームワークとかも聞かないし
253デフォルトの名無しさん
2017/10/01(日) 14:43:18.93ID:H5Asg8Dc > デザパタサポートしてるフレームワークとかも聞かないし
言ってることがおかしい。
デザインパターンは設計なのだから
「サポートしている」という言い方はしない
よくある設計をサポートしているフレームワークと言い換えれば
おかしいのがわかるだろう?
その時点で間違っているというのがわかる。
設計は使うものなので、デザインパターンの設計が
使われているフレームワークはいくつもある
GUIライブラリはデザインパターンをよく使う場所だし
プラグイン的な仕組みにも使われてる
言ってることがおかしい。
デザインパターンは設計なのだから
「サポートしている」という言い方はしない
よくある設計をサポートしているフレームワークと言い換えれば
おかしいのがわかるだろう?
その時点で間違っているというのがわかる。
設計は使うものなので、デザインパターンの設計が
使われているフレームワークはいくつもある
GUIライブラリはデザインパターンをよく使う場所だし
プラグイン的な仕組みにも使われてる
254デフォルトの名無しさん
2017/10/01(日) 14:52:33.98ID:H5Asg8Dc 面白いことにデザインパターンへの批判には
矛盾する二種類の批判が有る。
一つは
・誰でも普通に使ってるものにわざわざ名前をつけるな
もう一つは
・誰もそんなものを使っていない
おもしろいやろ?
デザインパターンを批判している人同士で
対立してるんやでw
矛盾する二種類の批判が有る。
一つは
・誰でも普通に使ってるものにわざわざ名前をつけるな
もう一つは
・誰もそんなものを使っていない
おもしろいやろ?
デザインパターンを批判している人同士で
対立してるんやでw
255デフォルトの名無しさん
2017/10/01(日) 14:53:18.46ID:OXD0q5aq256デフォルトの名無しさん
2017/10/01(日) 14:54:50.36ID:OXD0q5aq257デフォルトの名無しさん
2017/10/01(日) 14:56:03.88ID:H5Asg8Dc258デフォルトの名無しさん
2017/10/01(日) 14:58:51.94ID:H5Asg8Dc >>255
> え?ボタン押してパターン選択したら必要なクラスが勝手にできるんでもいいんじゃないの?
あははw
それは「デザインパターンを使って設計したもの」
つまり「設計が終わった段階」から
コーディングの仕事をお前にさせる時に
クラスの枠組みを自動生成しているだけだ。
UMLツールがそういったことをやってくれる
お前は設計が終わった後の
実装を振られているだけなんだよ
お前は設計をしたことがない
> え?ボタン押してパターン選択したら必要なクラスが勝手にできるんでもいいんじゃないの?
あははw
それは「デザインパターンを使って設計したもの」
つまり「設計が終わった段階」から
コーディングの仕事をお前にさせる時に
クラスの枠組みを自動生成しているだけだ。
UMLツールがそういったことをやってくれる
お前は設計が終わった後の
実装を振られているだけなんだよ
お前は設計をしたことがない
259デフォルトの名無しさん
2017/10/01(日) 14:59:57.46ID:OXD0q5aq >>257
話の内容を理解しないで言葉だけ捕まえてるじゃん
使ってるって言ってる人はデザパタの構造だけの話でしょ?
使ってないって言ってる人はデザパタのパターンでのやり取りの話じゃん
結局、下の状態でなければデザパタの主旨から外れてるんだから
デザパタは使われてないんだよw
話の内容を理解しないで言葉だけ捕まえてるじゃん
使ってるって言ってる人はデザパタの構造だけの話でしょ?
使ってないって言ってる人はデザパタのパターンでのやり取りの話じゃん
結局、下の状態でなければデザパタの主旨から外れてるんだから
デザパタは使われてないんだよw
260デフォルトの名無しさん
2017/10/01(日) 15:01:34.39ID:H5Asg8Dc 上の方でも「デザインパターンをコピペ」とか
意味不明なことを言ってるやつがいたが
デザインパターンはコピペしても意味がない。
なぜなら設計(=構造)だからだ
自動生成したとしてもファイルや
クラスのインターフェースぐらいしか作成できない
アルゴリズムなどコピペするような処理は含まれていない
あくまで構造だけなんだからコピペしようがない
意味不明なことを言ってるやつがいたが
デザインパターンはコピペしても意味がない。
なぜなら設計(=構造)だからだ
自動生成したとしてもファイルや
クラスのインターフェースぐらいしか作成できない
アルゴリズムなどコピペするような処理は含まれていない
あくまで構造だけなんだからコピペしようがない
261デフォルトの名無しさん
2017/10/01(日) 15:02:53.48ID:H5Asg8Dc >>259
> 使ってるって言ってる人はデザパタの構造だけの話でしょ?
そもそもデザパタは構造のパターンですが?
> 使ってないって言ってる人はデザパタのパターンでのやり取りの話じゃん
「デザインパターンのパターンでのやり取り」ってなんですか?
パターン♪パターン♪
> 使ってるって言ってる人はデザパタの構造だけの話でしょ?
そもそもデザパタは構造のパターンですが?
> 使ってないって言ってる人はデザパタのパターンでのやり取りの話じゃん
「デザインパターンのパターンでのやり取り」ってなんですか?
パターン♪パターン♪
262デフォルトの名無しさん
2017/10/01(日) 15:03:17.57ID:OXD0q5aq263デフォルトの名無しさん
2017/10/01(日) 15:04:09.40ID:OXD0q5aq >>261
だからパターン名で設計のコミュニケーションを取ってないって言ってるの
だからパターン名で設計のコミュニケーションを取ってないって言ってるの
264デフォルトの名無しさん
2017/10/01(日) 15:04:13.49ID:H5Asg8Dc > 雛形作ってくれてもいいだろ
UMLツールで雛形は自動生成されてますね?
UMLツールで雛形は自動生成されてますね?
265デフォルトの名無しさん
2017/10/01(日) 15:04:53.26ID:H5Asg8Dc >>263
お前が実装担当だからだろ?w
お前が実装担当だからだろ?w
266デフォルトの名無しさん
2017/10/01(日) 15:06:23.08ID:OXD0q5aq267デフォルトの名無しさん
2017/10/01(日) 15:06:25.98ID:yUwdbVfT268デフォルトの名無しさん
2017/10/01(日) 15:07:06.89ID:OXD0q5aq >>267
だから使ってないってw
だから使ってないってw
269デフォルトの名無しさん
2017/10/01(日) 15:09:43.64ID:OXD0q5aq デザパタスレとかもう無いしねw
270デフォルトの名無しさん
2017/10/01(日) 15:10:19.52ID:H5Asg8Dc >>266
だからデザパタが指定できるっていうのが意味不明
何を指定するんだ?
デザインパターンにはクラス名もメソッド名も
決められていない。(説明用サンプルは実際に使う名前じゃない)
クラス名もメソッド名も決まってないのだからコピペしようがないのがわかるだろ?
UMLツールなどで、デザインパターンを使って
設計者が設計していくんだよ。つまり
デザインパターンを表現するのに必要な
クラスとメソッドを書いていく。(クラス図)
そこから自動生成する。
デザインパターンを使うっていうのは、
コードの再利用じゃねんだよ。
設計レベルの話なんだから
いい加減、実装の世界からしか見れないのは卒業した方がいいよ
本当に技術力不足だから
だからデザパタが指定できるっていうのが意味不明
何を指定するんだ?
デザインパターンにはクラス名もメソッド名も
決められていない。(説明用サンプルは実際に使う名前じゃない)
クラス名もメソッド名も決まってないのだからコピペしようがないのがわかるだろ?
UMLツールなどで、デザインパターンを使って
設計者が設計していくんだよ。つまり
デザインパターンを表現するのに必要な
クラスとメソッドを書いていく。(クラス図)
そこから自動生成する。
デザインパターンを使うっていうのは、
コードの再利用じゃねんだよ。
設計レベルの話なんだから
いい加減、実装の世界からしか見れないのは卒業した方がいいよ
本当に技術力不足だから
271デフォルトの名無しさん
2017/10/01(日) 15:12:01.22ID:yUwdbVfT まあ別にデザパタ知らんでも仕事はできるだろうけどさ
知っとくと便利ってだけで
知っとくと便利ってだけで
272デフォルトの名無しさん
2017/10/01(日) 15:13:14.14ID:OXD0q5aq273デフォルトの名無しさん
2017/10/01(日) 15:13:37.49ID:OXD0q5aq >>271
誰も使ってないから
誰も使ってないから
274デフォルトの名無しさん
2017/10/01(日) 15:21:35.91ID:H5Asg8Dc275デフォルトの名無しさん
2017/10/01(日) 15:22:50.21ID:H5Asg8Dc276デフォルトの名無しさん
2017/10/01(日) 15:25:11.32ID:H5Asg8Dc277デフォルトの名無しさん
2017/10/01(日) 15:28:50.57ID:H5Asg8Dc > PostSharpは現在、次のデザインパターン用の既製の実装を提供している。
>
略
>
> これで、デザインパターンの既製の実装を使って、チームはAOPを学習せずに、AOPの恩恵に浴することができる。
まさにこの現象だろうな。
実装担当者は、すでにフレームワークなどの含まれてるデザインパターンを使うだけだから
デザインパターンを学習せずに、知らずに利用している。
そういうやつら(デザパターンの恩恵を受けてるやつ)が
デザインパターンは(実装者よりも前の設計者が担当が使うものだから)
使わないというのだろう。
視野の狭い事だ。視野っていうか、所詮コーダーって言えば良いのか
>
略
>
> これで、デザインパターンの既製の実装を使って、チームはAOPを学習せずに、AOPの恩恵に浴することができる。
まさにこの現象だろうな。
実装担当者は、すでにフレームワークなどの含まれてるデザインパターンを使うだけだから
デザインパターンを学習せずに、知らずに利用している。
そういうやつら(デザパターンの恩恵を受けてるやつ)が
デザインパターンは(実装者よりも前の設計者が担当が使うものだから)
使わないというのだろう。
視野の狭い事だ。視野っていうか、所詮コーダーって言えば良いのか
278デフォルトの名無しさん
2017/10/01(日) 15:30:09.48ID:H5Asg8Dc ジュニア開発者w
> デザインパターンの自動化の使用は、一般的に政治的に敏感な問題である 。
> なぜならそれは、チーム内で関心の分離を対処するからである。
> 典型的には、上級開発者は、デザインパターンを選択し、アスペクトを実装する。
> そしてジュニア開発者は、それらを使用する。上級開発者が検証ルールを記述し、
> 手書きのコードがアーキテクチャを尊重することを確実にする。
> ジュニアの開発者が全体のコードベースを理解する必要はないという事実は、実際には意図された効果である。
>
> この議論は、シニアマネージャーの視点を取り、ジュニアの開発者のプライドを
> 傷つける可能性があるので、一般的に取り組むにはデリケートものである。
ジュニアにはデザパタは不要だよwww
> デザインパターンの自動化の使用は、一般的に政治的に敏感な問題である 。
> なぜならそれは、チーム内で関心の分離を対処するからである。
> 典型的には、上級開発者は、デザインパターンを選択し、アスペクトを実装する。
> そしてジュニア開発者は、それらを使用する。上級開発者が検証ルールを記述し、
> 手書きのコードがアーキテクチャを尊重することを確実にする。
> ジュニアの開発者が全体のコードベースを理解する必要はないという事実は、実際には意図された効果である。
>
> この議論は、シニアマネージャーの視点を取り、ジュニアの開発者のプライドを
> 傷つける可能性があるので、一般的に取り組むにはデリケートものである。
ジュニアにはデザパタは不要だよwww
279デフォルトの名無しさん
2017/10/01(日) 15:30:40.47ID:iOi6hm11 デザパタじゃなくてデザインパターンな
280デフォルトの名無しさん
2017/10/01(日) 15:36:37.23ID:OXD0q5aq このスレ誰も使ってないのにやたら頑張るなw
ぶっちゃけ、三○もN○Tもニ○ンもコニカミ○ルタもpana○onicもス○エニもシ○ープもN○Cも沖○気もク○タも富○通も
富士○機も東京○力も関西○力もS○NYも
使ってないから
ぶっちゃけ、三○もN○Tもニ○ンもコニカミ○ルタもpana○onicもス○エニもシ○ープもN○Cも沖○気もク○タも富○通も
富士○機も東京○力も関西○力もS○NYも
使ってないから
281デフォルトの名無しさん
2017/10/01(日) 15:38:44.47ID:H5Asg8Dc 使ってない証拠を>>280が出してくれるまで
誰も信用しないように
誰も信用しないように
282デフォルトの名無しさん
2017/10/01(日) 15:39:38.98ID:H5Asg8Dc283デフォルトの名無しさん
2017/10/01(日) 15:44:38.60ID:OXD0q5aq >>282
見たことねーw
連徹過ぎて記憶が飛んだ覚えしかねーわw
俺が関わったとこはまともな資料なんて無かったな
俺が実践で使えると思ったのは
N○Cだけだけどね
ここは1回行ってみる機会があれば
いい勉強になると思うな
見たことねーw
連徹過ぎて記憶が飛んだ覚えしかねーわw
俺が関わったとこはまともな資料なんて無かったな
俺が実践で使えると思ったのは
N○Cだけだけどね
ここは1回行ってみる機会があれば
いい勉強になると思うな
284デフォルトの名無しさん
2017/10/01(日) 15:44:54.18ID:H5Asg8Dc 探せば出てくるもんやなw
https://www.fujitsu.com/jp/Images/ejb-0312-mda.pdf
http://www.nagisa.or.jp/training/2017/18j.pdf
> 富士通九州システムズ(FJQS)講師:井上 龍也
> ・GoFのデザインパターンを使用したコード記述量削減法
https://www.fujitsu.com/jp/Images/ejb-0312-mda.pdf
http://www.nagisa.or.jp/training/2017/18j.pdf
> 富士通九州システムズ(FJQS)講師:井上 龍也
> ・GoFのデザインパターンを使用したコード記述量削減法
285デフォルトの名無しさん
2017/10/01(日) 15:49:09.29ID:H5Asg8Dc >>283
> ぶっちゃけ、三○もN○Tもニ○ンもコニカミ○ルタもpana○onicもス○エニもシ○ープもN○Cも沖○気もク○タも富○通も
> 富士○機も東京○力も関西○力もS○NYも
> 使ってないから
> ここは1回行ってみる機会があれば
> いい勉強になると思うな
派遣の仕事って楽しい?
> ぶっちゃけ、三○もN○Tもニ○ンもコニカミ○ルタもpana○onicもス○エニもシ○ープもN○Cも沖○気もク○タも富○通も
> 富士○機も東京○力も関西○力もS○NYも
> 使ってないから
> ここは1回行ってみる機会があれば
> いい勉強になると思うな
派遣の仕事って楽しい?
286デフォルトの名無しさん
2017/10/01(日) 15:50:01.77ID:OXD0q5aq >>284
おさっしw
おさっしw
287デフォルトの名無しさん
2017/10/01(日) 15:52:03.93ID:H5Asg8Dc > 俺が実践で使えると思ったのは
> N○Cだけだけどね
> ここは1回行ってみる機会があれば
> いい勉強になると思うな
NECのこれを受講すればいいのかな?
https://www.neclearning.jp/courseoutline/courseId/JV104/
システム開発における詳細設計の位置付け、作業内容、
JavaEEアーキテクチャの特徴を学びます。また
、JavaEEを使用したWebアプリケーション開発に用いる主要な
デザインパターンとその適用方法を設計演習を通して修得します。
> N○Cだけだけどね
> ここは1回行ってみる機会があれば
> いい勉強になると思うな
NECのこれを受講すればいいのかな?
https://www.neclearning.jp/courseoutline/courseId/JV104/
システム開発における詳細設計の位置付け、作業内容、
JavaEEアーキテクチャの特徴を学びます。また
、JavaEEを使用したWebアプリケーション開発に用いる主要な
デザインパターンとその適用方法を設計演習を通して修得します。
288デフォルトの名無しさん
2017/10/01(日) 15:55:44.33ID:OXD0q5aq289デフォルトの名無しさん
2017/10/01(日) 16:11:52.72ID:H5Asg8Dc ルーチンワークしてるやつには
考える必要がある設計は不要だよ
お前は何も考えなくていい
考える必要がある設計は不要だよ
お前は何も考えなくていい
290デフォルトの名無しさん
2017/10/01(日) 16:22:04.09ID:IPLbJXkb ルーチンワークで十分な仕事しかしてないだけだし
ルーチン化できると言う割に自動化はしないあたり本当はルーチン化できてないんだろうなぁ
ルーチン化できると言う割に自動化はしないあたり本当はルーチン化できてないんだろうなぁ
291デフォルトの名無しさん
2017/10/01(日) 16:27:46.46ID:OXD0q5aq >>290
考えないとわからないところなんて俺らの仕事の範囲ではないのかもな
考えないとわからないところなんて俺らの仕事の範囲ではないのかもな
292デフォルトの名無しさん
2017/10/01(日) 16:37:01.00ID:H5Asg8Dc293デフォルトの名無しさん
2017/10/01(日) 17:33:06.46ID:iOi6hm11 設計とコーダーの違い
294デフォルトの名無しさん
2017/10/01(日) 17:41:42.32ID:yUwdbVfT いやまじ、使わないというのは正しいんだろうよ
使わないから必要ないと思ってる時点でおさとが知れるというだけなのでは
使わないから必要ないと思ってる時点でおさとが知れるというだけなのでは
295デフォルトの名無しさん
2017/10/01(日) 17:49:10.14ID:H5Asg8Dc 伝言ゲーム理論を使えば三段論法で
デザパタが使われていないことを証明できる
デザパタは
俺は使わない
↓
それは使わない
↓
どれも使わない
↓
だれも使わない
↓
使わない
↓
故にデザパタだ誰も使っていない
デザパタが使われていないことを証明できる
デザパタは
俺は使わない
↓
それは使わない
↓
どれも使わない
↓
だれも使わない
↓
使わない
↓
故にデザパタだ誰も使っていない
296デフォルトの名無しさん
2017/10/01(日) 17:50:50.31ID:NdVkYjBm iOSアプリ開発で公式ドキュメント読んでて
これなんかObjective-C固有のプログラムガイドかと思ったら
アップルのシステムやアプリじゃ実際にこんなパターンを使ってるよ参考にしてね!
だったっけなぁ…
Objective-C プログラミングの概念
https://developer.apple.com/jp/documentation/CocoaEncyclopedia.pdf
現行でこういうのを使いまくった上でiPhoneやiPadが町中で日々動いてるわけで
デザインパターンは無いんだ!デザパタ厨が!とか言われても
おじいちゃん、そろそろ引退したら?としか…
これなんかObjective-C固有のプログラムガイドかと思ったら
アップルのシステムやアプリじゃ実際にこんなパターンを使ってるよ参考にしてね!
だったっけなぁ…
Objective-C プログラミングの概念
https://developer.apple.com/jp/documentation/CocoaEncyclopedia.pdf
現行でこういうのを使いまくった上でiPhoneやiPadが町中で日々動いてるわけで
デザインパターンは無いんだ!デザパタ厨が!とか言われても
おじいちゃん、そろそろ引退したら?としか…
297デフォルトの名無しさん
2017/10/01(日) 18:00:38.71ID:H5Asg8Dc >>296
マジ書いてあんなw
多くのCocoaアプリケーションでは、モデルオブジェクトの状態が変化すると、
その通知はコントロー ラオブジェクトを 経由して ビューオブジェクトに伝わります。
図 7-2にこの様子を示します。2つの基 本的なデザインパターンが関与していますが、よりすっきりとしています。
図 7-2 複合パターンとしてのMVC(Cocoa)
User action
Update
Update
Notify
Mediator Strategy Controller
ModelView
Command Composite
Observer
この複合デザインパターンでは、コントローラオブジェクトはMediatorパターンと
Strategyパターンを 包含しています。モデルとビューの間でやり取りされるデータフローを、
両方向とも仲介していま す。モデルの状態変化はコントローラオブジェクトを経由して
ビューオブジェクトに伝わります。さ らに、ビューオブジェクトには、ターゲットアクション
機構の実装という形で、Commandパターン も含まれています。
マジ書いてあんなw
多くのCocoaアプリケーションでは、モデルオブジェクトの状態が変化すると、
その通知はコントロー ラオブジェクトを 経由して ビューオブジェクトに伝わります。
図 7-2にこの様子を示します。2つの基 本的なデザインパターンが関与していますが、よりすっきりとしています。
図 7-2 複合パターンとしてのMVC(Cocoa)
User action
Update
Update
Notify
Mediator Strategy Controller
ModelView
Command Composite
Observer
この複合デザインパターンでは、コントローラオブジェクトはMediatorパターンと
Strategyパターンを 包含しています。モデルとビューの間でやり取りされるデータフローを、
両方向とも仲介していま す。モデルの状態変化はコントローラオブジェクトを経由して
ビューオブジェクトに伝わります。さ らに、ビューオブジェクトには、ターゲットアクション
機構の実装という形で、Commandパターン も含まれています。
298デフォルトの名無しさん
2017/10/01(日) 18:02:07.29ID:iOi6hm11 >>295
デザパタじゃなくてデザインパターンな
デザパタじゃなくてデザインパターンな
299デフォルトの名無しさん
2017/10/01(日) 18:03:18.29ID:H5Asg8Dc もう一つ
複合デザインパターンとしての
MVC「Model-View-Controller」は、より基本的なデザインパターンをいくつか組み合わせた形のデザインパターンです。
基本パターンどうしの組み合わせにより、MVCアプリケーションを特徴づける、機能の分割や通信経路を定義しています。
しかし従来型のMVCは、組み合わせる基本パターンが、現在のCocoaのそれとは違っていました。その違いは主として、
コントローラオブジェクトやビューオブジェクトに与える役割に関するものです。
当初の(Smalltalk流の)考え方では、MVCはComposite、Strategy、Observerというパターンから成っていました。
Composite:アプリケーションのビューオブジェクトは、実際には入れ子になったビューの
複合体(composite)であり、このビュー群が協調して(ビュー階層の形で)動作します。この表示コンポーネントは、
ウインドウを頂点とし、その下にテーブルビューなどの複合ビュー、さらにその下にはボタンなどの分割できないビューがあります。
ユーザ入力や画面表示の処理は、複合体を構成するどのレベルでも可能です。
Strategy:コントローラオブジェクトは、いくつかのビューオブジェクトに対する戦略(strategy)を実装しています。
ビューオブジェクトの機能は(視覚的)表示に関わる範囲に限定し、インターフェイスの振る舞いが当該アプリケーションに
おいてはどのような意味を持つか、の判断はすべてコントローラに委譲します。
Observer:モデルオブジェクトは、自分自身と直接的な関わり合いがあるオブジェクト(一般にビューオブジェクト)の
状態が変化すると、その通知を受け取ります。
複合デザインパターンとしての
MVC「Model-View-Controller」は、より基本的なデザインパターンをいくつか組み合わせた形のデザインパターンです。
基本パターンどうしの組み合わせにより、MVCアプリケーションを特徴づける、機能の分割や通信経路を定義しています。
しかし従来型のMVCは、組み合わせる基本パターンが、現在のCocoaのそれとは違っていました。その違いは主として、
コントローラオブジェクトやビューオブジェクトに与える役割に関するものです。
当初の(Smalltalk流の)考え方では、MVCはComposite、Strategy、Observerというパターンから成っていました。
Composite:アプリケーションのビューオブジェクトは、実際には入れ子になったビューの
複合体(composite)であり、このビュー群が協調して(ビュー階層の形で)動作します。この表示コンポーネントは、
ウインドウを頂点とし、その下にテーブルビューなどの複合ビュー、さらにその下にはボタンなどの分割できないビューがあります。
ユーザ入力や画面表示の処理は、複合体を構成するどのレベルでも可能です。
Strategy:コントローラオブジェクトは、いくつかのビューオブジェクトに対する戦略(strategy)を実装しています。
ビューオブジェクトの機能は(視覚的)表示に関わる範囲に限定し、インターフェイスの振る舞いが当該アプリケーションに
おいてはどのような意味を持つか、の判断はすべてコントローラに委譲します。
Observer:モデルオブジェクトは、自分自身と直接的な関わり合いがあるオブジェクト(一般にビューオブジェクト)の
状態が変化すると、その通知を受け取ります。
300デフォルトの名無しさん
2017/10/01(日) 18:03:24.42ID:iOi6hm11301デフォルトの名無しさん
2017/10/01(日) 18:14:08.71ID:H5Asg8Dc ソフトウェアに強い会社(日本のハードのついでにソフトやってるとか
客の御用聞き会社とは違うやつ)は軒並みデザインパターンが
当然のものとして語られてる気がするね。
関数型のデザイン・パターン、第 1 回
https://www.ibm.com/developerworks/jp/java/library/j-ft10/index.html
客の御用聞き会社とは違うやつ)は軒並みデザインパターンが
当然のものとして語られてる気がするね。
関数型のデザイン・パターン、第 1 回
https://www.ibm.com/developerworks/jp/java/library/j-ft10/index.html
302デフォルトの名無しさん
2017/10/01(日) 18:26:16.96ID:RRIZa9RT デザパタ使えないアピールするモチベーションが、デザパタ使ってない自分肯定でしかないのが見え見えだから、つまんない議論だよ
303デフォルトの名無しさん
2017/10/01(日) 18:29:14.14ID:TmBxNMg6 あまり虐めないであげてよ
若気の至りってやつさ
若気の至りってやつさ
304デフォルトの名無しさん
2017/10/01(日) 18:51:21.95ID:qGSPhC6b 優越コンプレックスを抱えてる人は苦しいだろうなぁ
素直な心を取り戻せることを祈ってる
素直な心を取り戻せることを祈ってる
305デフォルトの名無しさん
2017/10/01(日) 19:13:13.17ID:Pf7aXXU9 おk
これしか見たことねーけど
使われてるんだな
これしか見たことねーけど
使われてるんだな
306デフォルトの名無しさん
2017/10/01(日) 19:22:42.09ID:2hcCMVoe >>26
凝った設計にもできるけど(たとえばDDDのドメインサービスとかさらに突っ込んだDCIのコンテキストベースで)
このくらいの要件なら自販機オブジェクトだけ定義して
在庫管理と商品種別はRDBで管理し、金銭投入→購入のタイミングで
SQLを発行して該当する飲料を商品種別テーブルからピックアップし、その後
在庫管理テーブルで在庫減らしのSQL発行で十分なのでは?
O/Rマッパーの使い方を学びたいならクラス図のようにオブジェクト化するのも手だけれども
凝った設計にもできるけど(たとえばDDDのドメインサービスとかさらに突っ込んだDCIのコンテキストベースで)
このくらいの要件なら自販機オブジェクトだけ定義して
在庫管理と商品種別はRDBで管理し、金銭投入→購入のタイミングで
SQLを発行して該当する飲料を商品種別テーブルからピックアップし、その後
在庫管理テーブルで在庫減らしのSQL発行で十分なのでは?
O/Rマッパーの使い方を学びたいならクラス図のようにオブジェクト化するのも手だけれども
307デフォルトの名無しさん
2017/10/01(日) 19:58:14.48ID:TmBxNMg6 意味不明なウンチク垂れてないでコードを書けコードを
308デフォルトの名無しさん
2017/10/01(日) 20:31:25.12ID:kJ8csjIE 数百スレ飛んで自販機戻ってきたw
309デフォルトの名無しさん
2017/10/01(日) 23:59:30.23ID:DL6cgIdt バターン君をいじめて
得るもんがあったのかどうか
各自寝る前に自問自答してほしい
得るもんがあったのかどうか
各自寝る前に自問自答してほしい
310デフォルトの名無しさん
2017/10/02(月) 00:03:17.40ID:1fd9LcjX デザインパターンがいらないって言ってるやつは
実装側の視点でしか考えることができないってのがわかった。
これが得たものかな
実装側の視点でしか考えることができないってのがわかった。
これが得たものかな
311デフォルトの名無しさん
2017/10/02(月) 00:04:09.63ID:wn2w8Fsj ん?これいつものあたまおかしいおじいちゃんでしょ。
312デフォルトの名無しさん
2017/10/02(月) 00:09:14.81ID:wn2w8Fsj >>308みたいに自演して
「結局キャットドアに戻ってきたな」とかだせえリセット図るの。
けっこうおっさん…つうより“じいさん”って歳で構造体から脳が進化してないから
オブジェクト指向側からのアプローチが歳で理解できない可哀想な初老
「結局キャットドアに戻ってきたな」とかだせえリセット図るの。
けっこうおっさん…つうより“じいさん”って歳で構造体から脳が進化してないから
オブジェクト指向側からのアプローチが歳で理解できない可哀想な初老
314デフォルトの名無しさん
2017/10/02(月) 00:20:41.00ID:j0IOuO2e そろそろ設計の議論もやめるかって思う
プログラムってどう組んでも動くしね
正解なんてないんじゃないかなぁ?
って思うようになった
仮にあったとしてもそれをどうやって証明するのか?
非常に虚しい気がしてきた
デザパタ、オブジェクト指向使うだの使わないだの
どっちが正解もクソも組んで金もらえたらそれでしめーな話をグダグダうるせーよな給料安いくせに
今、組めている人間を否定することはできない
また、否定する必要もない
俺等が話してることは麻雀のどの牌を捨てたらいいか?みてーな話でどうでもいいんだよきっと
初っ端字牌がないから国士無双は狙っては駄目ですよ
って言ったところで実際に狙って来ちまったらそれを誰が否定できようか?
そんなくだらない内容なんだよ
プログラムってどう組んでも動くしね
正解なんてないんじゃないかなぁ?
って思うようになった
仮にあったとしてもそれをどうやって証明するのか?
非常に虚しい気がしてきた
デザパタ、オブジェクト指向使うだの使わないだの
どっちが正解もクソも組んで金もらえたらそれでしめーな話をグダグダうるせーよな給料安いくせに
今、組めている人間を否定することはできない
また、否定する必要もない
俺等が話してることは麻雀のどの牌を捨てたらいいか?みてーな話でどうでもいいんだよきっと
初っ端字牌がないから国士無双は狙っては駄目ですよ
って言ったところで実際に狙って来ちまったらそれを誰が否定できようか?
そんなくだらない内容なんだよ
315デフォルトの名無しさん
2017/10/02(月) 00:37:35.29ID:cbUKrfm3 > プログラムってどう組んでも動くしね
動くだけじゃダメでしょw
最低限じゃん。
動くだけの汚いコードたくさん見たこと有るよ。
動くだけじゃダメでしょw
最低限じゃん。
動くだけの汚いコードたくさん見たこと有るよ。
316デフォルトの名無しさん
2017/10/02(月) 00:42:43.36ID:j0IOuO2e >>315
でも客からしたらどうでもいいよね
でも客からしたらどうでもいいよね
317デフォルトの名無しさん
2017/10/02(月) 00:47:44.45ID:YWGKtTIQ 「プログラムを組む」っていう表現って何となく手続き的な臭いを感じる
プログラムを組み上げるものとして見てるってことだよね
プログラムを組み上げるものとして見てるってことだよね
318デフォルトの名無しさん
2017/10/02(月) 00:48:05.40ID:ET3hV4TH319デフォルトの名無しさん
2017/10/02(月) 01:12:12.35ID:j0IOuO2e >>318
次の開発が無かったら保守にかけたお金は無駄だよね?
この辺は君等はトレードオフの問題を勝手にプラスサムの問題だと履き違えている
ぶっちゃけ馬鹿にしか見えないのであまりおおっぴらに言わない方がよい
次の開発が無かったら保守にかけたお金は無駄だよね?
この辺は君等はトレードオフの問題を勝手にプラスサムの問題だと履き違えている
ぶっちゃけ馬鹿にしか見えないのであまりおおっぴらに言わない方がよい
320デフォルトの名無しさん
2017/10/02(月) 01:15:20.46ID:j0IOuO2e 汎用性はトレードオフのはずだ
なぜ君等はつければつけるほどお得みたいなアホな考えもってるんだ?
保守なんかねーよ(あるかどうかわからないじゃん)
なぜ君等はつければつけるほどお得みたいなアホな考えもってるんだ?
保守なんかねーよ(あるかどうかわからないじゃん)
321デフォルトの名無しさん
2017/10/02(月) 01:19:24.52ID:j0IOuO2e 改修の方向性も付けた汎用性が役に立たんようなもんだったらまるまる無駄であろ
でもこういう俺の確率が高い方もしくは損害が少ない方に倒す的考えも
所詮は麻雀の捨て牌議論と何も変わらないんだろうな
って話だな
やっぱ意味ねぇよな設計に拘るのはやめたほうがいいな
金にならねぇ
でもこういう俺の確率が高い方もしくは損害が少ない方に倒す的考えも
所詮は麻雀の捨て牌議論と何も変わらないんだろうな
って話だな
やっぱ意味ねぇよな設計に拘るのはやめたほうがいいな
金にならねぇ
322デフォルトの名無しさん
2017/10/02(月) 01:25:51.90ID:cbUKrfm3323デフォルトの名無しさん
2017/10/02(月) 01:27:35.32ID:cbUKrfm3324デフォルトの名無しさん
2017/10/02(月) 07:52:52.48ID:j0IOuO2e >>323
そうとは限らないよね
そうとは限らないよね
325デフォルトの名無しさん
2017/10/02(月) 08:05:00.38ID:hd0o7pZ3 >>324
一般論だろ
一般論だろ
326デフォルトの名無しさん
2017/10/02(月) 09:31:52.84ID:j0IOuO2e >>325
つまり字牌を切るといいよって話だよね
つまり字牌を切るといいよって話だよね
327デフォルトの名無しさん
2017/10/02(月) 09:37:00.33ID:/w0x9Uo4 使い捨てのどうでもいいシステムは
使えない単価安い奴に
やらせとけって話じゃないの
まあ保守は作り始めた時点から始まってるから
リリースまで行けないかもしれないがな
使えない単価安い奴に
やらせとけって話じゃないの
まあ保守は作り始めた時点から始まってるから
リリースまで行けないかもしれないがな
328デフォルトの名無しさん
2017/10/02(月) 10:10:18.07ID:hd0o7pZ3329デフォルトの名無しさん
2017/10/02(月) 10:12:15.16ID:xue4yogs >>328
オセロと将棋だと納得できるんだ?
オセロと将棋だと納得できるんだ?
330デフォルトの名無しさん
2017/10/02(月) 14:17:29.12ID:hd0o7pZ3331デフォルトの名無しさん
2017/10/02(月) 14:48:34.13ID:j0IOuO2e >>330
お前がアホだからできるだけだ
お前がアホだからできるだけだ
332デフォルトの名無しさん
2017/10/02(月) 16:11:15.50ID:hd0o7pZ3333デフォルトの名無しさん
2017/10/02(月) 16:43:00.86ID:XscuzJF4 定石の有用性を証明してみろ
できなければ定石は役立たずのゴミということ
できなければ定石は役立たずのゴミということ
334デフォルトの名無しさん
2017/10/02(月) 19:37:25.82ID:cbUKrfm3 定石は役立たずのゴミ
飛車は移動して右下隅の王を金銀桂馬香車で囲う
って言ったほうがわかりやすいじゃん
そもそも定石なんて知らなくても将棋はできるし、
何十年もやっていれば定石なんて自然に思いつく
飛車は移動して右下隅の王を金銀桂馬香車で囲う
って言ったほうがわかりやすいじゃん
そもそも定石なんて知らなくても将棋はできるし、
何十年もやっていれば定石なんて自然に思いつく
335デフォルトの名無しさん
2017/10/02(月) 20:16:28.02ID:j0IOuO2e AIに以前からの定石がひっくり返されてるらしいなw
デザパタもAIにひっくり返される日も近いなw
デザパタもAIにひっくり返される日も近いなw
336デフォルトの名無しさん
2017/10/02(月) 20:25:48.81ID:YWGKtTIQ 将棋で言う定石はデザインパターンよりももっと粒度の大きいパターン
MVCかMVVMかみたいな
デザインパターンは手筋に近い
何十年もやってれば自然に思いつくことを
数週間から数ヶ月程度の断然短い時間で理解できるようになることや
より高い抽象度で物事を考えられるようになることに価値がある
おじいちゃんに何言っても無駄かもしれんが
MVCかMVVMかみたいな
デザインパターンは手筋に近い
何十年もやってれば自然に思いつくことを
数週間から数ヶ月程度の断然短い時間で理解できるようになることや
より高い抽象度で物事を考えられるようになることに価値がある
おじいちゃんに何言っても無駄かもしれんが
337デフォルトの名無しさん
2017/10/02(月) 20:40:52.30ID:cbUKrfm3338デフォルトの名無しさん
2017/10/02(月) 20:40:58.78ID:ET3hV4TH そりゃあ常識はひっくり返されるためにあるからな
ひっくり返ってそれが有益ならそれでいいじゃん
ひっくり返ってそれが有益ならそれでいいじゃん
339デフォルトの名無しさん
2017/10/02(月) 20:42:54.27ID:cbUKrfm3 >>336
> 何十年もやってれば自然に思いつくことを
> 数週間から数ヶ月程度の断然短い時間で理解できるようになることや
寿司学校に3ヶ月通っただけの店がミシュランになるなんて許せん
10年間下積みをしてやっと職人になれるんや。
寿司の修行ってのはなぁ、寿司の勉強じゃなねぇだよ
> 何十年もやってれば自然に思いつくことを
> 数週間から数ヶ月程度の断然短い時間で理解できるようになることや
寿司学校に3ヶ月通っただけの店がミシュランになるなんて許せん
10年間下積みをしてやっと職人になれるんや。
寿司の修行ってのはなぁ、寿司の勉強じゃなねぇだよ
340デフォルトの名無しさん
2017/10/02(月) 21:15:12.14ID:XscuzJF4 そもそもこんなスレがあること自体おかしいんだよ
オブジェクト指向設計なんてやってればそのうちできるようになるし、それが人と比べてどうなのかなんて気にする必要もない
人それぞれのオブジェクト指向でいい
オブジェクト指向設計なんてやってればそのうちできるようになるし、それが人と比べてどうなのかなんて気にする必要もない
人それぞれのオブジェクト指向でいい
341デフォルトの名無しさん
2017/10/02(月) 21:24:38.66ID:cbUKrfm3 人それぞれの寿司でいい
カルフォルニア巻き
カルフォルニア巻き
342デフォルトの名無しさん
2017/10/02(月) 21:26:35.73ID:ET3hV4TH343デフォルトの名無しさん
2017/10/02(月) 21:56:37.69ID:j0IOuO2e344デフォルトの名無しさん
2017/10/02(月) 22:19:15.07ID:KZXDpABL Smalltalkって書くと荒れる?
345デフォルトの名無しさん
2017/10/02(月) 22:26:05.82ID:cbUKrfm3 >>344
こっちへどうぞ
Smalltalkとオブジェクト指向議論スレ [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1505709697/
こっちへどうぞ
Smalltalkとオブジェクト指向議論スレ [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1505709697/
346デフォルトの名無しさん
2017/10/02(月) 22:32:16.34ID:YWGKtTIQ347デフォルトの名無しさん
2017/10/02(月) 22:33:42.19ID:cbUKrfm3 >>346
お?理由は?説得力ある答たのむね!
お?理由は?説得力ある答たのむね!
348デフォルトの名無しさん
2017/10/02(月) 23:45:29.99ID:CnUfppMG349デフォルトの名無しさん
2017/10/03(火) 01:32:34.93ID:yLH9r4Cn 寿司屋の板前っていうより半完成品を卸してる問屋みたいなもんだろ
で、おまえらはひたすらごはんを詰め込む係
プロパー様がネタを乗せて最後に元請け営業様がたんぽぽ乗せる
で、おまえらはひたすらごはんを詰め込む係
プロパー様がネタを乗せて最後に元請け営業様がたんぽぽ乗せる
350デフォルトの名無しさん
2017/10/03(火) 07:32:10.18ID:ObXIbUik スシローはIT化進んでるから寿司はオブジェクト指向で管理してるよな
インタフェース名はsushiと予想する
インタフェース名はsushiと予想する
351デフォルトの名無しさん
2017/10/03(火) 08:06:49.21ID:7lOo08Em >>350
寿司メイカーはストラテジーパターン?
寿司メイカーはストラテジーパターン?
352デフォルトの名無しさん
2017/10/03(火) 08:29:46.58ID:/tfwZRhN Javaの注釈とかC#の属性ってどうなの?
353デフォルトの名無しさん
2017/10/04(水) 20:25:20.81ID:oJzQgUY3 オブジェクト指向スレで寿司の話題だから、
シャリを基底クラスに例えてネタごとにシャリクラスを継承、
軍艦巻インターフェイスの実装とか、お子様にはワサビプロパティをtrueにとか、
そんな話かと思ったら全然違った。
シャリを基底クラスに例えてネタごとにシャリクラスを継承、
軍艦巻インターフェイスの実装とか、お子様にはワサビプロパティをtrueにとか、
そんな話かと思ったら全然違った。
354デフォルトの名無しさん
2017/10/05(木) 00:03:31.68ID:qwtqiP1S わさびプロパティってtrueとfalseのどっちだったらわさびが乗ってるんだ?
355デフォルトの名無しさん
2017/10/05(木) 01:28:49.65ID:XUc7C4CE わさび=真
356デフォルトの名無しさん
2017/10/05(木) 07:17:31.37ID:gKycoOZO 寿司クラスのプロパティはシャリネタワサビだろ
スシローに関して言えばワサビのプロパティは不要
スシローに関して言えばワサビのプロパティは不要
357デフォルトの名無しさん
2017/10/05(木) 07:18:38.24ID:gKycoOZO >>355
ワサビの状態は複雑だから真偽で取るなんてナンセンス
ワサビの状態は複雑だから真偽で取るなんてナンセンス
358デフォルトの名無しさん
2017/10/05(木) 08:10:53.17ID:i3KEdcm5 各プロパティは読み取り専用だろ
359デフォルトの名無しさん
2017/10/05(木) 08:16:20.73ID:qwtqiP1S わさびの量を調整したい場合はどう拡張すればいいの?
例えば罰ゲームで使うような山盛りわさび寿司
外国人向けの程よくわさび増量
あと、わさび巻の場合はわさびプロパティの内容はどう持つべきか?
例えば罰ゲームで使うような山盛りわさび寿司
外国人向けの程よくわさび増量
あと、わさび巻の場合はわさびプロパティの内容はどう持つべきか?
360デフォルトの名無しさん
2017/10/05(木) 08:22:39.12ID:i3KEdcm5361デフォルトの名無しさん
2017/10/05(木) 08:23:16.92ID:jqjwBcqV またそれ系の話か
荒れそう
荒れそう
362デフォルトの名無しさん
2017/10/05(木) 08:27:51.49ID:i3KEdcm5 というかあれか
寿司職人.putワサビ(寿司,量,状態)
かな
寿司職人.putワサビ(寿司,量,状態)
かな
363デフォルトの名無しさん
2017/10/05(木) 20:38:04.24ID:eqICMYt8 またキャットドアw
364デフォルトの名無しさん
2017/10/05(木) 20:41:30.98ID:817UmOHy 大漁大漁!
365デフォルトの名無しさん
2017/10/05(木) 23:44:16.07ID:W3Z8qYkC366デフォルトの名無しさん
2017/10/06(金) 00:35:25.91ID:jRqiq413367デフォルトの名無しさん
2017/10/06(金) 00:59:27.12ID:HTxWyqCb どういう用途のソフトウェアかに関係なく
オブジェクト指向でモデリングできると思ってるやつが多々いるのはオブジェクト指向に密接に関係した問題
オブジェクト指向でモデリングできると思ってるやつが多々いるのはオブジェクト指向に密接に関係した問題
368デフォルトの名無しさん
2017/10/06(金) 06:35:11.92ID:jC5wWKBy >>367
できないの?
できないの?
369デフォルトの名無しさん
2017/10/06(金) 08:14:28.44ID:fl7uW9c1370デフォルトの名無しさん
2017/10/06(金) 08:16:59.53ID:2VD9nX8b 物理的な形あるものを題材にするのはアホ
371デフォルトの名無しさん
2017/10/06(金) 08:28:32.38ID:H+o2EjG4 そんなモデリングは天才に任せるわ
372デフォルトの名無しさん
2017/10/06(金) 09:35:10.87ID:fZccj8aN >>370
オブジェクト指向が間違っているのでは?(笑)
オブジェクト指向が間違っているのでは?(笑)
373デフォルトの名無しさん
2017/10/06(金) 12:09:15.03ID:1IZeYBj0 オブジェクトという名前が悪い
責務指向とか役割指向の方が適切
責務指向とか役割指向の方が適切
374デフォルトの名無しさん
2017/10/06(金) 14:21:58.68ID:5osgMmV8 >>359
enum ワサビ量 {なし, ちょっぴり, 少なめ, やや少ない, 普通, やや多め, 多め, メガ盛り, ギガ盛り, テラ盛り, ペタ盛り, ワサビのみ};
enum ワサビ量 {なし, ちょっぴり, 少なめ, やや少ない, 普通, やや多め, 多め, メガ盛り, ギガ盛り, テラ盛り, ペタ盛り, ワサビのみ};
375デフォルトの名無しさん
2017/10/06(金) 15:07:25.77ID:fK99UxEG キャットドアで味を占めちゃってまぁ…
376デフォルトの名無しさん
2017/10/06(金) 15:43:29.32ID:HTxWyqCb 簡単に篩にかけられてホントいいねこれ
377デフォルトの名無しさん
2017/10/06(金) 21:48:40.87ID:Em99Pggz 処理の流れがあちこちに飛ぶし
あちこちから飛んでくるし
「これ誰が保守するんだ?」って気分になってる。
ちょっとした修正が今までならピンポイントでテスト合わせて30分位のところが
全体見るために3時間かかる感じ。
能力高くないと無理だと思うけど人手不足だし集められるかな?
もっと緩いオブジェクト指向でいいと思う。
こんなガチガチで上手くいったプロジェクトってあるの?
あちこちから飛んでくるし
「これ誰が保守するんだ?」って気分になってる。
ちょっとした修正が今までならピンポイントでテスト合わせて30分位のところが
全体見るために3時間かかる感じ。
能力高くないと無理だと思うけど人手不足だし集められるかな?
もっと緩いオブジェクト指向でいいと思う。
こんなガチガチで上手くいったプロジェクトってあるの?
378デフォルトの名無しさん
2017/10/06(金) 22:04:02.02ID:T+Euxqip >>377
犬のしょんべんに当たっちまったな
自分以外の奴がソースコードを読めないようにする工夫だそれ
元凶がインターフェースで
継承してあるすべてのクラスのインスタンス作成箇所全部をチェックしないと処理がわからない
犬のしょんべんに当たっちまったな
自分以外の奴がソースコードを読めないようにする工夫だそれ
元凶がインターフェースで
継承してあるすべてのクラスのインスタンス作成箇所全部をチェックしないと処理がわからない
379デフォルトの名無しさん
2017/10/06(金) 22:05:57.94ID:Y8RIMSRs チンポについて教えてください。
チンポをインスタンス化して、引き数にマンコを持つキンタマメソッドの戻り値
ザーメンを取得したいのですが、コンパイル結果がフニャチンになります。
どうしたらいいですか。
チンポをインスタンス化して、引き数にマンコを持つキンタマメソッドの戻り値
ザーメンを取得したいのですが、コンパイル結果がフニャチンになります。
どうしたらいいですか。
380デフォルトの名無しさん
2017/10/06(金) 22:27:28.80ID:FHIJEXWg はい
381デフォルトの名無しさん
2017/10/06(金) 22:47:26.17ID:enlE2n2s >>377
それガチガチなんじゃなくて設計や実装が下手なだけ
それガチガチなんじゃなくて設計や実装が下手なだけ
382デフォルトの名無しさん
2017/10/06(金) 23:17:58.09ID:H+o2EjG4 >>377
ほんとにガチガチならそのクラスを作ったやつの後任者〜お前の前任者までの間で間違ったクラスの使い方が広まったんだろうよ
ほんとにガチガチならそのクラスを作ったやつの後任者〜お前の前任者までの間で間違ったクラスの使い方が広まったんだろうよ
383デフォルトの名無しさん
2017/10/07(土) 00:17:06.44ID:XGVjma4L >>379
それガチガチなんじゃない。
それガチガチなんじゃない。
384デフォルトの名無しさん
2017/10/07(土) 05:03:01.30ID:8/GtqdSW “これはこれをする奴”と一目でわかって
処理飛ばした後はそいつがよしなにやるから
細かいことは考えなくていい。
というのがオブジェクト指向の売りだから
「コイツはなにやってんだよ!」と処理追うのに混乱するようなのは
基本を履き違えてる気はする。
変なとこから流れてきた自称プログラムのプロがやりがちな
暗号みたいなクラス名とか
処理飛ばした後はそいつがよしなにやるから
細かいことは考えなくていい。
というのがオブジェクト指向の売りだから
「コイツはなにやってんだよ!」と処理追うのに混乱するようなのは
基本を履き違えてる気はする。
変なとこから流れてきた自称プログラムのプロがやりがちな
暗号みたいなクラス名とか
385デフォルトの名無しさん
2017/10/07(土) 06:51:50.71ID:6GKmJG1C だいたいインターフェースが元凶だって
実行してみないとわかんねーし
実行してみないとわかんねーし
386デフォルトの名無しさん
2017/10/07(土) 07:09:22.30ID:sBPFzIIo インターフェースが現況って言ったってクラス名とメソッド名である程度目的はわかるようになってるんじゃねえの
それができてないなら単なる設計ミスじゃん
それができてないなら単なる設計ミスじゃん
387デフォルトの名無しさん
2017/10/07(土) 07:23:39.11ID:6GKmJG1C >>386
バカの作るインターフェースは思いつきで入れた汎用性を実現するものだからそもそも設計書に書かれない
バカの作るインターフェースは思いつきで入れた汎用性を実現するものだからそもそも設計書に書かれない
388デフォルトの名無しさん
2017/10/07(土) 07:43:58.72ID:PgxJwh6E389デフォルトの名無しさん
2017/10/07(土) 08:28:19.15ID:nPfSE+SF >>384
手続き型みたいなのでバグ探すと、大体1ファイルの中見て
処理の流れもその中だけ追えば良くて
シンプルな流れだからチョイチョイってできるけど
完全なオブジェクト指向だと、
「この値を設定してるのは、ここ、
…、
じゃなくて、コイツ他のとこで設定してるのか〜、
ここ?
あ、もっと上か〜」
みたいにあちこち辿っていくから
あんまり良いことに感じないけど。
影響範囲も広いし。
考えなくていいのは、製造するときに何が何をすると
ハッキリと決められてる時で
どこにバグあるかとか見るときは
「ここだろう」と最初に思ったとこではなかったりしなくね?
設計が難しいなら、
バカでもできる簡単な設計で済む手続き型最強な気がする。
手続き型みたいなのでバグ探すと、大体1ファイルの中見て
処理の流れもその中だけ追えば良くて
シンプルな流れだからチョイチョイってできるけど
完全なオブジェクト指向だと、
「この値を設定してるのは、ここ、
…、
じゃなくて、コイツ他のとこで設定してるのか〜、
ここ?
あ、もっと上か〜」
みたいにあちこち辿っていくから
あんまり良いことに感じないけど。
影響範囲も広いし。
考えなくていいのは、製造するときに何が何をすると
ハッキリと決められてる時で
どこにバグあるかとか見るときは
「ここだろう」と最初に思ったとこではなかったりしなくね?
設計が難しいなら、
バカでもできる簡単な設計で済む手続き型最強な気がする。
390デフォルトの名無しさん
2017/10/07(土) 08:32:25.87ID:nPfSE+SF >>389は詳細設計書位しかなくて、クラス図とかもろもろないケースの話で。
391デフォルトの名無しさん
2017/10/07(土) 08:45:17.84ID:XbHkmFTG392デフォルトの名無しさん
2017/10/07(土) 08:56:39.98ID:YsvN5rHZ ワンインスタンス内ではメンバはグローバル変数みたいに振る舞うから
継承多くなるとっていうかある時点でクソ言語になるんだよね
継承多くなるとっていうかある時点でクソ言語になるんだよね
393デフォルトの名無しさん
2017/10/07(土) 08:59:42.95ID:gjULmNh3394デフォルトの名無しさん
2017/10/07(土) 09:01:52.28ID:YsvN5rHZ395デフォルトの名無しさん
2017/10/07(土) 09:07:01.43ID:gjULmNh3396デフォルトの名無しさん
2017/10/07(土) 09:13:58.30ID:XbHkmFTG397デフォルトの名無しさん
2017/10/07(土) 09:33:31.18ID:gjULmNh3398デフォルトの名無しさん
2017/10/07(土) 09:45:04.94ID:cHXvfEBn >>397
どこにそんなの書いてあるんだよ
どこにそんなの書いてあるんだよ
399デフォルトの名無しさん
2017/10/07(土) 09:45:43.21ID:fUAr46yo 呼び出し階層が深いだけで可読性が低いなら抽象化が下手なだけで、オブジェクト指向に限った話じゃない
呼び出し元や定義にジャンプする機能のないエディタ使ってると辛いとか
DIでコンフィグから実装を注入してると追うのが面倒くさいとかなら分かる
呼び出し元や定義にジャンプする機能のないエディタ使ってると辛いとか
DIでコンフィグから実装を注入してると追うのが面倒くさいとかなら分かる
400デフォルトの名無しさん
2017/10/07(土) 09:55:17.34ID:XbHkmFTG401デフォルトの名無しさん
2017/10/07(土) 10:08:41.11ID:HG4cr/37402デフォルトの名無しさん
2017/10/07(土) 10:17:47.53ID:b4KK/o19 いろんな考えかたの人がいる
それは認めるべきだ
オブジェクト指向が好きなやつも手続き型が好きなやつもみんな自由と権利を持っている
でもここはオブジェクト指向のスレなので
手続き型に興味があるなら手続き型スレで議論を深めればいいんじゃないかな?
手続き型システムの設計 1 [無断転載禁止]©2ch.net・
http://mevius.2ch.net/test/read.cgi/tech/1500282714/
オブジェクト指向がわかりにくくて嫌いだからといってもオブジェクト指向のコミュニティを荒らしてもいい理由にはならないだろう
住み分けは大事だ
それは認めるべきだ
オブジェクト指向が好きなやつも手続き型が好きなやつもみんな自由と権利を持っている
でもここはオブジェクト指向のスレなので
手続き型に興味があるなら手続き型スレで議論を深めればいいんじゃないかな?
手続き型システムの設計 1 [無断転載禁止]©2ch.net・
http://mevius.2ch.net/test/read.cgi/tech/1500282714/
オブジェクト指向がわかりにくくて嫌いだからといってもオブジェクト指向のコミュニティを荒らしてもいい理由にはならないだろう
住み分けは大事だ
403デフォルトの名無しさん
2017/10/07(土) 10:24:12.14ID:cHXvfEBn404デフォルトの名無しさん
2017/10/07(土) 10:24:39.29ID:b4KK/o19 >>403
スタックオーバーフロー潰してくれ
スタックオーバーフロー潰してくれ
405デフォルトの名無しさん
2017/10/07(土) 10:32:38.68ID:cHXvfEBn >>404
どのレスだよ
どのレスだよ
406デフォルトの名無しさん
2017/10/07(土) 10:33:11.71ID:AzEsxXfu ガチガチに手続き型で組んだプログラムなんて見とうないわ
あちこちに飛ぶから云々ってマジでいってんのか
あちこちに飛ぶから云々ってマジでいってんのか
407デフォルトの名無しさん
2017/10/07(土) 10:44:43.23ID:b4KK/o19 あちこち飛ぶからいいんじゃねえか
飛ばなかったら全ての処理が一箇所に集まってパンクするだろw
飛ばなかったら全ての処理が一箇所に集まってパンクするだろw
408デフォルトの名無しさん
2017/10/07(土) 11:50:23.50ID:h9kzLMoI 飛び方がキレイな木の枝のようになっていればよい
枝から枝へモモンガのように飛ぶ処理が入っていたら地獄だ
枝から枝へモモンガのように飛ぶ処理が入っていたら地獄だ
409デフォルトの名無しさん
2017/10/07(土) 14:53:33.77ID:8/GtqdSW というか、オブジェクト指向はクラスに責任を持たせることで
責任が遡ったり他へ波及するのを防ぎデバッグも局所化して容易にする思想なので
どこかで一目でわかるように「この値を設定する一意の責任を持つのはおまえ」と
責任を持った誰かがいて、正しく作ってればそこから周りにゴミが飛び散るはずがないので
>「この値を設定してるのは、ここ、
>…、
>じゃなくて、コイツ他のとこで設定してるのか〜、
>ここ?
>あ、もっと上か〜」
とか、それのどこがオブジェクト指向だ。>>393と同じ感想
責任が遡ったり他へ波及するのを防ぎデバッグも局所化して容易にする思想なので
どこかで一目でわかるように「この値を設定する一意の責任を持つのはおまえ」と
責任を持った誰かがいて、正しく作ってればそこから周りにゴミが飛び散るはずがないので
>「この値を設定してるのは、ここ、
>…、
>じゃなくて、コイツ他のとこで設定してるのか〜、
>ここ?
>あ、もっと上か〜」
とか、それのどこがオブジェクト指向だ。>>393と同じ感想
410デフォルトの名無しさん
2017/10/07(土) 15:00:30.34ID:2+lwKRbT >>409
だからインターフェースだって
だからインターフェースだって
411デフォルトの名無しさん
2017/10/07(土) 16:02:05.40ID:kNgxClsQ412デフォルトの名無しさん
2017/10/07(土) 16:08:52.04ID:b4KK/o19 素人がインターフェースを使うと実装に強く依存してしまうことがある
実装クラスの内部的な挙動を前提にするとかね
実装クラスの内部的な挙動を前提にするとかね
413デフォルトの名無しさん
2017/10/07(土) 16:19:22.15ID:s04ZU/0N おまえらおしゃべりしたいだけだろ
リアルで交流しろや
リアルで交流しろや
414デフォルトの名無しさん
2017/10/07(土) 17:51:59.67ID:HG4cr/37415デフォルトの名無しさん
2017/10/07(土) 19:44:56.82ID:XbHkmFTG >>412
Javaのデフォルトメソッドとか
Javaのデフォルトメソッドとか
416デフォルトの名無しさん
2017/10/07(土) 20:05:29.97ID:sBPFzIIo しっかり役割を分担しないとオブジェクト指向の利点をいかせないと言うことか
417デフォルトの名無しさん
2017/10/07(土) 21:05:16.73ID:XbHkmFTG >>416
利点も何も役割分担できてないならそもそもオブジェクト指向じゃないよ
利点も何も役割分担できてないならそもそもオブジェクト指向じゃないよ
418デフォルトの名無しさん
2017/10/07(土) 21:37:16.03ID:b4KK/o19 一言でクラスの役割を言えなければ設計ミス
419デフォルトの名無しさん
2017/10/07(土) 21:55:08.92ID:E9rJLdk9 >>418
神クラス
神クラス
420デフォルトの名無しさん
2017/10/07(土) 22:17:55.42ID:kNgxClsQ >>418
いやだから、インターフェイスってそういうもんじゃん
いやだから、インターフェイスってそういうもんじゃん
421デフォルトの名無しさん
2017/10/08(日) 09:02:57.57ID:jBiYbWN1 オブジェクト指向の設計の話をしてると
このクラスはこのことを知ってるべきだ、イヤ知らないべきだ
なんて話がよくあるが
アスペの代表的な特徴として自分の視点でしか考えられない
ということかあるのでアスペにOOは無理
このクラスはこのことを知ってるべきだ、イヤ知らないべきだ
なんて話がよくあるが
アスペの代表的な特徴として自分の視点でしか考えられない
ということかあるのでアスペにOOは無理
422デフォルトの名無しさん
2017/10/08(日) 09:11:34.28ID:Iqz4qArZ423デフォルトの名無しさん
2017/10/08(日) 09:24:12.05ID:p3iPkAzZ アスペルガー指向
424デフォルトの名無しさん
2017/10/08(日) 09:24:39.06ID:jBiYbWN1425デフォルトの名無しさん
2017/10/08(日) 09:27:10.43ID:4gVJmCxE そういう現場は多いよ
見積もりしやすいとかいう頭が悪い理由で、画面を作業単位にして割り振るから
神画面クラスがいくつも出来上がる
挙げ句の果てにその見積もりも根拠なしの適当な数字ときたもんだ
見積もりしやすいとかいう頭が悪い理由で、画面を作業単位にして割り振るから
神画面クラスがいくつも出来上がる
挙げ句の果てにその見積もりも根拠なしの適当な数字ときたもんだ
426デフォルトの名無しさん
2017/10/08(日) 09:31:28.00ID:Iqz4qArZ >>424
お前がアスペだったか
お前がアスペだったか
427デフォルトの名無しさん
2017/10/08(日) 09:39:58.73ID:jBiYbWN1 >>426
説明できないと何の論拠も無く相手をアスペで片付けるんだね
説明できないと何の論拠も無く相手をアスペで片付けるんだね
428デフォルトの名無しさん
2017/10/08(日) 09:51:49.98ID:jBiYbWN1429デフォルトの名無しさん
2017/10/08(日) 10:04:06.91ID:St7l03cQ でも見積り出せない作業じゃお金もらえないから
430デフォルトの名無しさん
2017/10/08(日) 10:17:02.42ID:jBiYbWN1 単価を品質に見合ったものにしろ
431デフォルトの名無しさん
2017/10/08(日) 10:58:52.79ID:tomnUErs おまえらアスペとかADHDとか言ってるけど
せめてググってwikipediaや解説サイトぐらい見れば話が合うような言葉を選んでくれ
10人にADHDの説明させたら10通りの回答が出てくる現状では
技術的な議論に使う言葉じゃないと思うんだわ
せめてググってwikipediaや解説サイトぐらい見れば話が合うような言葉を選んでくれ
10人にADHDの説明させたら10通りの回答が出てくる現状では
技術的な議論に使う言葉じゃないと思うんだわ
432デフォルトの名無しさん
2017/10/08(日) 11:01:13.46ID:4gVJmCxE 見積もりは出したふりでいい
客も見積もりに意味ないことは分かってるから上司への説明など適当にうまくやってくれる
その辺は阿吽の呼吸ですよ
客も見積もりに意味ないことは分かってるから上司への説明など適当にうまくやってくれる
その辺は阿吽の呼吸ですよ
433デフォルトの名無しさん
2017/10/08(日) 11:04:17.48ID:p3iPkAzZ 関わるのも面倒だからそういうのはメンバーにいない方がマシ
434デフォルトの名無しさん
2017/10/08(日) 11:16:34.14ID:ZEE0bNSu >>427
自分が誰よりも上位にあることを見せかける上で便利だからねアスペ認定は
自分が誰よりも上位にあることを見せかける上で便利だからねアスペ認定は
435デフォルトの名無しさん
2017/10/08(日) 11:18:28.86ID:A99pIV6O ここオブジェクト指向スレなんですが?
アスペがアスペを叩いていて笑う
アスペがアスペを叩いていて笑う
436デフォルトの名無しさん
2017/10/08(日) 11:25:19.20ID:4gVJmCxE アスペクト指向ってどうなったの
437デフォルトの名無しさん
2017/10/08(日) 11:36:48.97ID:FYLwhXQv438デフォルトの名無しさん
2017/10/08(日) 15:55:36.81ID:0lUaooNs >>436
DIで若干使われてなかったっけ?
DIで若干使われてなかったっけ?
439デフォルトの名無しさん
2017/10/08(日) 20:27:37.02ID:CWK8ZE8n そういや一時期流行ったな
実装のまずさを誤魔化す手段という認識しかなかった
実装のまずさを誤魔化す手段という認識しかなかった
440デフォルトの名無しさん
2017/10/08(日) 22:01:40.54ID:4gVJmCxE デコレーター
属性バリデーション
シリアライズ
apiプロキシ
…
aopは意識しないだけで結構使ってるな
属性バリデーション
シリアライズ
apiプロキシ
…
aopは意識しないだけで結構使ってるな
441デフォルトの名無しさん
2017/10/09(月) 08:04:01.64ID:tvCeOLo3 メッセージリソース管理クラスの素晴らしい設計を教えてください
void SomeAppMethod() {
// do something
view.AddMessage("MSG_0123")
// do something
}
こんな感じでリソースIDがシステム中にばら撒かれて制御不能状態になっています
メッセージリソースを管理するクラスを作って解消したいのですが良いAPIが決まりません
void SomeAppMethod() {
// do something
view.AddMessage("MSG_0123")
// do something
}
こんな感じでリソースIDがシステム中にばら撒かれて制御不能状態になっています
メッセージリソースを管理するクラスを作って解消したいのですが良いAPIが決まりません
442デフォルトの名無しさん
2017/10/09(月) 08:13:01.79ID:1ju7bjVC >>441
何が困ってるの?
何が困ってるの?
443デフォルトの名無しさん
2017/10/09(月) 08:52:42.35ID:PA3EvPtr >>441
OOPではリソースIDのような物理的な情報は隠蔽しなければならない
public interface ILowLevelMsgManager {
string GetMsg(string msgId, params object[] placeHolderArgs);
}
public interface IMsgManager {
string GetHogeMsg(); // ほげええええ
string GetFugaMsg(int num); // ふがふが{num}ふがふが
}
public class MsgManager : IMsgManager {
private ILowLevelMsgManager llmm;
public MsgManager(ILowLevelMsgManager pllmm) { llmm = pllmm; }
public string GetHogeMsg() { return llmm.GetMsg("MSG_0001"); }
public string GetFugaMsg(int num) { return llmm.GetMsg("MSG_0002", num); }
}
OOPではリソースIDのような物理的な情報は隠蔽しなければならない
public interface ILowLevelMsgManager {
string GetMsg(string msgId, params object[] placeHolderArgs);
}
public interface IMsgManager {
string GetHogeMsg(); // ほげええええ
string GetFugaMsg(int num); // ふがふが{num}ふがふが
}
public class MsgManager : IMsgManager {
private ILowLevelMsgManager llmm;
public MsgManager(ILowLevelMsgManager pllmm) { llmm = pllmm; }
public string GetHogeMsg() { return llmm.GetMsg("MSG_0001"); }
public string GetFugaMsg(int num) { return llmm.GetMsg("MSG_0002", num); }
}
444デフォルトの名無しさん
2017/10/09(月) 09:16:54.02ID:L5aecCRz >>443
それになんの意味があるのかさっぱりわからんな
メッセージなんてでかいプロジェクトだと500個とか行っちゃって
詳細なんかわかんなくていいんじゃないの?
もうメッセージ一覧で確認することは諦めろよ的な
それになんの意味があるのかさっぱりわからんな
メッセージなんてでかいプロジェクトだと500個とか行っちゃって
詳細なんかわかんなくていいんじゃないの?
もうメッセージ一覧で確認することは諦めろよ的な
445デフォルトの名無しさん
2017/10/09(月) 09:24:41.04ID:L5aecCRz メッセージでこれまで見た中で一番多いのは3000だった
そこまで構えろとはいわんけどそういう性質のものではある
ソースの該当箇所に一つ一つ置いていく手間は省略できない
メッセージリソースIDとメッセージが照合できればそれでその作業は終わりじゃねーのか?
後、何を管理してもらいたい?
そこまで構えろとはいわんけどそういう性質のものではある
ソースの該当箇所に一つ一つ置いていく手間は省略できない
メッセージリソースIDとメッセージが照合できればそれでその作業は終わりじゃねーのか?
後、何を管理してもらいたい?
446デフォルトの名無しさん
2017/10/09(月) 10:08:03.54ID:PA3EvPtr447デフォルトの名無しさん
2017/10/09(月) 10:21:29.30ID:Y2JfmrWo 客の都合でID体系変更になってリテラル全部調べて置き換えて再テストしたトラウマ
する価値ないと思ってもとりあえずでいいから抽象化しておいて損はない
する価値ないと思ってもとりあえずでいいから抽象化しておいて損はない
448デフォルトの名無しさん
2017/10/09(月) 10:22:07.29ID:FteGtpX4 別ファイルに切り出して読み込めばいいと思う
449デフォルトの名無しさん
2017/10/09(月) 10:44:55.28ID:3IBabimx >>446
いやぁ、だからさ
ソースのエラー箇所に自動配置なんかできないんだからそこは300だろうが3000だろうが30000だろうが手動じゃん
IDとエラーメッセージが組にさえなってたらどういう構造にしようがやることかわんねーよ的な
いやぁ、だからさ
ソースのエラー箇所に自動配置なんかできないんだからそこは300だろうが3000だろうが30000だろうが手動じゃん
IDとエラーメッセージが組にさえなってたらどういう構造にしようがやることかわんねーよ的な
450デフォルトの名無しさん
2017/10/09(月) 10:48:47.25ID:3IBabimx visualstudioのjaファイルとかその辺の仕組み使えばいいんじゃないの?
ローカライズするならやっとかないと死ぬよ
ローカライズするならやっとかないと死ぬよ
451デフォルトの名無しさん
2017/10/09(月) 10:50:11.84ID:Vj0lVF94 rm = new ResourceManager(locale)
un = rm.get("property.name.user-name")
msg = rm.get("validation.error.max-length", un, 10)
print msg # ユーザー名は10文字以下で入力してください
スッキリ
un = rm.get("property.name.user-name")
msg = rm.get("validation.error.max-length", un, 10)
print msg # ユーザー名は10文字以下で入力してください
スッキリ
452デフォルトの名無しさん
2017/10/09(月) 10:55:11.14ID:PA3EvPtr453デフォルトの名無しさん
2017/10/09(月) 11:29:45.24ID:3IBabimx >>452
いやぁでもこの数やる気にはなんないなぁ
いやぁでもこの数やる気にはなんないなぁ
454デフォルトの名無しさん
2017/10/09(月) 11:31:53.98ID:3IBabimx455デフォルトの名無しさん
2017/10/09(月) 11:34:13.65ID:3IBabimx このケースで余計に一層設けるのはメリット薄いんじゃない?
って言いたい
って言いたい
456デフォルトの名無しさん
2017/10/09(月) 11:44:58.84ID:M//uOX8+ >>441
C#なら素直に.resx使う
少なくとも存在しないIDを使った場合に
コンパイルエラーになる仕組みを使う
種類ごとにグループ化(階層化)して管理しやすくする
メジャーなフレームワーク参照したら分かると思うがMSG_0123みたいな命名自体も悪手
もうどうしようもないのかもしれんが
C#なら素直に.resx使う
少なくとも存在しないIDを使った場合に
コンパイルエラーになる仕組みを使う
種類ごとにグループ化(階層化)して管理しやすくする
メジャーなフレームワーク参照したら分かると思うがMSG_0123みたいな命名自体も悪手
もうどうしようもないのかもしれんが
457デフォルトの名無しさん
2017/10/09(月) 11:50:08.07ID:3IBabimx458デフォルトの名無しさん
2017/10/09(月) 11:59:06.73ID:RdvZrZJ8 コードジェネレータがいいよ
メッセージID, メッセージテキスト, パラメータ数
Hoge, ほげ, 0
Fuga, {0}はふがです, 1
これをエクセルで管理してメッセージ管理クラスを出力
class MessageManager {
public static string Hoge() => "ほげ";
public static string Fuga(object p0) => string.Format("{0}はふがです", p0);
}
んでデータ数が増えてきたらエクセルをやめてデータベースで管理
エクセルを使えばお客様もお喜びになられるので一石二鳥
メッセージID, メッセージテキスト, パラメータ数
Hoge, ほげ, 0
Fuga, {0}はふがです, 1
これをエクセルで管理してメッセージ管理クラスを出力
class MessageManager {
public static string Hoge() => "ほげ";
public static string Fuga(object p0) => string.Format("{0}はふがです", p0);
}
んでデータ数が増えてきたらエクセルをやめてデータベースで管理
エクセルを使えばお客様もお喜びになられるので一石二鳥
459デフォルトの名無しさん
2017/10/09(月) 12:17:44.19ID:M//uOX8+ >>457
メンテナンス性を犠牲にしても
命名負荷を下げたいという意思決定をしてるんならいいんじゃないの
神クラス・神テーブルと同じアプローチだけど
物によってはそれが適切な選択の場合もあるんだろうから
メンテナンス性を犠牲にしても
命名負荷を下げたいという意思決定をしてるんならいいんじゃないの
神クラス・神テーブルと同じアプローチだけど
物によってはそれが適切な選択の場合もあるんだろうから
460デフォルトの名無しさん
2017/10/09(月) 12:35:04.44ID:1orfMMQz >>441
> メッセージリソース管理クラスの素晴らしい設計を教えてください
メッセージリソースなんてものを作らない。
view.AddMessage("あーがこーでどうなりました")
って日本語で書けばいい。
多言語化したいなら、gettextなどの言語やフレームワーク標準の
多言語化ライブラリを使えばいい話。
その場合は、英語でメッセージを書いて、日本語化するってことが
よく行われるが逆でもいいだろう。
> メッセージリソース管理クラスの素晴らしい設計を教えてください
メッセージリソースなんてものを作らない。
view.AddMessage("あーがこーでどうなりました")
って日本語で書けばいい。
多言語化したいなら、gettextなどの言語やフレームワーク標準の
多言語化ライブラリを使えばいい話。
その場合は、英語でメッセージを書いて、日本語化するってことが
よく行われるが逆でもいいだろう。
461デフォルトの名無しさん
2017/10/10(火) 07:21:02.20ID:JGhyCx0Y462デフォルトの名無しさん
2017/10/10(火) 08:31:03.78ID:v9JcaVeZ ゲームをオブジェクト指向で作ると作りにくいよ
相互作用の処理が多過ぎてオブジェクトに閉じない
相互作用の処理が多過ぎてオブジェクトに閉じない
463デフォルトの名無しさん
2017/10/10(火) 12:08:00.54ID:RxOfGqdN それは設計どころかゲームそのものとしての落とし込みが不十分
ゲームとか一定のルールに則った動作をするだよ
ゲームとか一定のルールに則った動作をするだよ
464デフォルトの名無しさん
2017/10/10(火) 12:15:07.34ID:duckiwE1465デフォルトの名無しさん
2017/10/10(火) 23:46:15.72ID:WxQVAUFU 「オブジェクト指向だからステージの俳優が全員なんか言ってきて
カントクは一人一人対応なんかしてたら死ぬな!!www」
…いや、間違った理解をした奴はまあそういうドマヌケやらかしがちだが
普通はステージステータスに集約されて、ディレクターは
そのステータスを見て上から必要な個々に指示が送られるように作るからね…
カントクは一人一人対応なんかしてたら死ぬな!!www」
…いや、間違った理解をした奴はまあそういうドマヌケやらかしがちだが
普通はステージステータスに集約されて、ディレクターは
そのステータスを見て上から必要な個々に指示が送られるように作るからね…
466デフォルトの名無しさん
2017/10/11(水) 00:09:15.15ID:i63/Wje0 ゲームは油断するとすぐにキャストや型判定だらけになってしまう
特定のクラス同士の時だけ発生する相互作用とか
特定のクラス同士の時だけ発生する相互作用とか
467デフォルトの名無しさん
2017/10/12(木) 12:26:13.92ID:UV6Mfibu ゲームとか業務とかピンキリだろ
468デフォルトの名無しさん
2017/10/12(木) 21:48:31.48ID:Drh75QCI お客さんが属性バリデーションも他のバリデーションフレームワークも使っちゃダメって言うんだけど
どうすれば楽にバリデーションできる?
言語はC#
テキストリソースは全てDBで管理されている
ロケールによってエラーテキストを変えなければならいとする
どうすれば楽にバリデーションできる?
言語はC#
テキストリソースは全てDBで管理されている
ロケールによってエラーテキストを変えなければならいとする
469デフォルトの名無しさん
2017/10/12(木) 22:09:08.92ID:o8TlX9Z0470デフォルトの名無しさん
2017/10/12(木) 22:34:53.95ID:Drh75QCI >>469
属性やフレームワークは設定方法がよくわからないのでメンテナンスの時に困るから
ひたすら単調にif文をズラズラと書いてるんだけどシンドイ
項目数が100近いPageもあってそれぞれが何種類かのバリデーションを行うからバリデーションだけで数百行のメソッドになることもある
属性やフレームワークは設定方法がよくわからないのでメンテナンスの時に困るから
ひたすら単調にif文をズラズラと書いてるんだけどシンドイ
項目数が100近いPageもあってそれぞれが何種類かのバリデーションを行うからバリデーションだけで数百行のメソッドになることもある
471デフォルトの名無しさん
2017/10/12(木) 23:00:42.84ID:o8TlX9Z0 >>470
xmlでルール書くやつは敬遠されるのは理解できなくもないが
単純な属性ベースは分かりやすいしメンテしやすいのにね
楽しようとすれば結局自前で簡易的なフレームワーク風のものを作ることになる
あまりにも数が多いならコード生成という選択肢も
xmlでルール書くやつは敬遠されるのは理解できなくもないが
単純な属性ベースは分かりやすいしメンテしやすいのにね
楽しようとすれば結局自前で簡易的なフレームワーク風のものを作ることになる
あまりにも数が多いならコード生成という選択肢も
472デフォルトの名無しさん
2017/10/12(木) 23:06:26.57ID:njn1yLjW >>470
ライセンス的に問題がないものをコピーすればいい
ライセンス的に問題がないものをコピーすればいい
474デフォルトの名無しさん
2017/10/13(金) 01:47:19.56ID:l1jERKvk >>470
Frameworkを使わないc#ってどんだけマゾなの?ランタイム自分で書いてんの?
Frameworkを使わないc#ってどんだけマゾなの?ランタイム自分で書いてんの?
475デフォルトの名無しさん
2017/10/13(金) 01:48:05.83ID:nTgCE4U5 >>470
そんな理由にならない理由に従おうとする方がバカ
そんな理由にならない理由に従おうとする方がバカ
476デフォルトの名無しさん
2017/10/13(金) 02:48:12.40ID:s0+Jkp8l 今回みたいな例だとライブラリを使わないで自作するとしたら
使った場合に比べて何倍ぐらいの金額を請求する?
使った場合に比べて何倍ぐらいの金額を請求する?
477デフォルトの名無しさん
2017/10/13(金) 02:56:05.56ID:GlXmqXn2 バリデーションが全体の工数に占める割合がわからないとなんともいえないけど、数倍なんてなるわけないだろアホ
どんだけバリデーションばっかやってるプロダクトを想定してんだよ
客に費用の話をするとき、「通常この規模だと20人月ですが、バリデーションライブラリが使えないので+50人月かかります」とでも言うのか
どんだけバリデーションばっかやってるプロダクトを想定してんだよ
客に費用の話をするとき、「通常この規模だと20人月ですが、バリデーションライブラリが使えないので+50人月かかります」とでも言うのか
478デフォルトの名無しさん
2017/10/13(金) 03:43:57.20ID:s0+Jkp8l はぁ? 増えた分の請求は当然するだろ。当たり前のことを当たり前にするだけだぞ
479デフォルトの名無しさん
2017/10/13(金) 04:33:13.10ID:l1jERKvk >>476
なんでいきなりフレームワークじゃなくてライブラリの話になってんの?
なんでいきなりフレームワークじゃなくてライブラリの話になってんの?
480デフォルトの名無しさん
2017/10/13(金) 04:36:24.84ID:zVcBlnUR481デフォルトの名無しさん
2017/10/13(金) 04:37:49.67ID:zVcBlnUR ごめん勘違い
工数の膨らみ方が半端なさ過ぎて非現実的ってのが言いたかった
工数の膨らみ方が半端なさ過ぎて非現実的ってのが言いたかった
482デフォルトの名無しさん
2017/10/13(金) 04:40:34.82ID:qOElJcq/ ひとまず使って組んで元の処理コピーして置き換えちゃえばいいんちゃう?
バリデーションのソースってあんでしょ?
バリデーションのソースってあんでしょ?
483デフォルトの名無しさん
2017/10/13(金) 05:21:13.13ID:s0+Jkp8l >>479
バリデーションのフレームワークなんてないでしょw
バリデーションのフレームワークなんてないでしょw
484デフォルトの名無しさん
2017/10/13(金) 07:46:49.24ID:DI18WdpZ >>483
フレームワークの一部としてバリデーションがあるやろ
フレームワークの一部としてバリデーションがあるやろ
485デフォルトの名無しさん
2017/10/13(金) 14:51:54.32ID:+zTlsJiZ バリデーションのフレームワーク普通にあるだろw
486デフォルトの名無しさん
2017/10/13(金) 16:33:32.34ID:kRlRrFWL ごめん、何言ってんだかよくわかんないんだけど、
まず、>>468のバリデーションって、一体何に対するバリデーションの話してるの?
まず、>>468のバリデーションって、一体何に対するバリデーションの話してるの?
487デフォルトの名無しさん
2017/10/13(金) 23:02:45.05ID:6pOkahl4 if (!validateRequired("#foo")) {
var msgFormat = getResource("error.required");
var label = getLabel("#foo");
addMessage(msgFormat, label);
addCss("#foo", "input-error");
}
以下100項目繰り返し
これ以上簡潔で保守性の高いバリデーションが存在しない件
OOPは物事を無駄に複雑化するばかりで役に立たん
var msgFormat = getResource("error.required");
var label = getLabel("#foo");
addMessage(msgFormat, label);
addCss("#foo", "input-error");
}
以下100項目繰り返し
これ以上簡潔で保守性の高いバリデーションが存在しない件
OOPは物事を無駄に複雑化するばかりで役に立たん
488デフォルトの名無しさん
2017/10/13(金) 23:14:22.48ID:s0+Jkp8l489デフォルトの名無しさん
2017/10/13(金) 23:14:50.38ID:+zTlsJiZ2017/10/13(金) 23:16:05.73ID:+zTlsJiZ
だよなー
判定と表示は分けようって最初に教わる
判定と表示は分けようって最初に教わる
491デフォルトの名無しさん
2017/10/13(金) 23:18:48.84ID:s0+Jkp8l バリデーションはYAMLで定義するのが一番だって最近気づいた
492デフォルトの名無しさん
2017/10/13(金) 23:31:13.18ID:6pOkahl4 御託はいいからコード書いてみれば?
俺のコードより明確で保守性の高いコードをかけるとは思えんが
俺のコードより明確で保守性の高いコードをかけるとは思えんが
493デフォルトの名無しさん
2017/10/13(金) 23:36:42.10ID:pm2E02lv こーゆー上から目線なやつは自分の思い描くもの以外は全部クソって発想なのでめんどくさい
494デフォルトの名無しさん
2017/10/13(金) 23:38:06.15ID:6pOkahl4 そもそも俺のコードは判定と表示が綺麗に分かれてるし
495デフォルトの名無しさん
2017/10/14(土) 00:25:45.56ID:2Glba8SI 煽って教えてもらうスタイルに転向した?
496デフォルトの名無しさん
2017/10/14(土) 00:53:07.58ID:T9MbLxY+ きも
497デフォルトの名無しさん
2017/10/14(土) 07:25:19.71ID:SVCVJk+z バリデーション処理はexcel表から生成するものだよ
素人は手書きするらしいけどね
プロはこんなめんどくさいコードは書かない
素人は手書きするらしいけどね
プロはこんなめんどくさいコードは書かない
498デフォルトの名無しさん
2017/10/14(土) 09:45:45.21ID:xbyIhqN5 >>497
マジで!?どういう仕組み?
マジで!?どういう仕組み?
499デフォルトの名無しさん
2017/10/14(土) 10:58:40.12ID:SVCVJk+z >>498
簡単だよ
|画面ID|セレクタ|コマンド名|ルール|
の一覧表をVBAマクロのループで回してjavascriptのコードを生成してjsフォルダに置く
それだけだ
うちの会社では20画面程度のシステムを扱うことが多いけど、このマクロのおかげで全画面の検証処理の実装が1人日でできてしまう
一覧性も高くそのまま仕様書やテストケースにも使える優れものだ
簡単だよ
|画面ID|セレクタ|コマンド名|ルール|
の一覧表をVBAマクロのループで回してjavascriptのコードを生成してjsフォルダに置く
それだけだ
うちの会社では20画面程度のシステムを扱うことが多いけど、このマクロのおかげで全画面の検証処理の実装が1人日でできてしまう
一覧性も高くそのまま仕様書やテストケースにも使える優れものだ
500デフォルトの名無しさん
2017/10/14(土) 11:22:11.10ID:K4XROtS+ コピペプログラマは余計なコードを増やしてくれるな
foreach(validate as entry){
if (!validateRequired(entry.name)) {
var msgFormat = getResource(entry.resource);
var label = getLabel(entry.name);
addMessage(msgFormat, label);
addCss(entry.name, entry.clazz);
}
}
簡単に100分の1になるだろ
validateもプログラムからデータにしたら保守性あがるだろ
Modelからvalidateを収集するようにしてビジネスロジックを集約してもいいけど
今更そこまで設計変えるのは愚策か
foreach(validate as entry){
if (!validateRequired(entry.name)) {
var msgFormat = getResource(entry.resource);
var label = getLabel(entry.name);
addMessage(msgFormat, label);
addCss(entry.name, entry.clazz);
}
}
簡単に100分の1になるだろ
validateもプログラムからデータにしたら保守性あがるだろ
Modelからvalidateを収集するようにしてビジネスロジックを集約してもいいけど
今更そこまで設計変えるのは愚策か
501デフォルトの名無しさん
2017/10/14(土) 11:32:55.38ID:SVCVJk+z502デフォルトの名無しさん
2017/10/14(土) 11:44:12.14ID:XRdStdss お客様がソース読むのかよ w
条件をお客様が決めるならExcelでもらって>>500のentryを生成するツールを作ればいいだけ
条件をお客様が決めるならExcelでもらって>>500のentryを生成するツールを作ればいいだけ
503デフォルトの名無しさん
2017/10/14(土) 11:47:29.29ID:SVCVJk+z 結局コード生成するんじゃないかwww
なら最初からコード生成する前提で余計な手書きコードは書かない方がいい
プログラミングの基本すらわかってないのかよ
なら最初からコード生成する前提で余計な手書きコードは書かない方がいい
プログラミングの基本すらわかってないのかよ
504デフォルトの名無しさん
2017/10/14(土) 12:02:38.48ID:2Glba8SI でた、いつもの自称プロさんw
505デフォルトの名無しさん
2017/10/14(土) 12:08:57.88ID:SVCVJk+z 自称プロってwww
ここは学生専用だったか?
ここは学生専用だったか?
506デフォルトの名無しさん
2017/10/14(土) 12:51:39.31ID:6KISst0f507デフォルトの名無しさん
2017/10/14(土) 12:56:11.86ID:6KISst0f YAML形式の何が良いかというとシンプルで見やすいから
お客様が直接読み書きできるってことだな
下手なCSVファイルよりもメンテナンス性が良い
お客様が直接読み書きできるってことだな
下手なCSVファイルよりもメンテナンス性が良い
508デフォルトの名無しさん
2017/10/14(土) 13:15:41.53ID:NTbBehto まあそのデータなら差分出したきゃ
CSVで出して比較できそうだけどな
CSVで出して比較できそうだけどな
509デフォルトの名無しさん
2017/10/14(土) 13:55:47.42ID:2Glba8SI Excelでも管理できてるなら別にいいと思うぞ
客や開発メンバーのリテラシーレベルに合ってるなら
無理に違うフォーマットを強要する必要はない
openxmlとか使えば差分比較だけならできる
むしろルールと処理を密結合させても平気な神経のほうが理解できない
そのうえプロを自称してドヤるww
客や開発メンバーのリテラシーレベルに合ってるなら
無理に違うフォーマットを強要する必要はない
openxmlとか使えば差分比較だけならできる
むしろルールと処理を密結合させても平気な神経のほうが理解できない
そのうえプロを自称してドヤるww
510デフォルトの名無しさん
2017/10/14(土) 14:10:09.58ID:6KISst0f >>509
客にExcelを "ルール通りに" 使わせるという
リテラシーレベルをもとめるな
勝手にフォーマットを変える、勝手にセルを結合する。
どこからかコピペした結果おかしくなって直さない
追加分とかいって差分を送りました。そっちで結合してください
とか、毎回人手で対応しなきゃならない作業が発生するぞ。
こっちで決めた使い方のルールを守ってくれやしない
客にExcelを "ルール通りに" 使わせるという
リテラシーレベルをもとめるな
勝手にフォーマットを変える、勝手にセルを結合する。
どこからかコピペした結果おかしくなって直さない
追加分とかいって差分を送りました。そっちで結合してください
とか、毎回人手で対応しなきゃならない作業が発生するぞ。
こっちで決めた使い方のルールを守ってくれやしない
511デフォルトの名無しさん
2017/10/14(土) 14:11:17.22ID:6KISst0f > openxmlとか使えば差分比較だけならできる
むり、見た目同じように見えても、
レイアウト属性など関係ない情報の
大量の差分までできて管理できない
むり、見た目同じように見えても、
レイアウト属性など関係ない情報の
大量の差分までできて管理できない
512デフォルトの名無しさん
2017/10/14(土) 14:12:50.65ID:2Glba8SI513デフォルトの名無しさん
2017/10/14(土) 14:15:37.80ID:NZcmE+Ju ヴァリデーションフレームワークってどれも中途半端だよな
ちょっと複雑なヴァリデーションをしようとすると適用不能になる
しょうがないからカスタムコードを書くことになるんだけどフレームワークとケンカし始めるからフレームワークは規約で禁止って流れになる
日本の厳しい要件についてこれる柔軟性の高いフレームワークは無いものか
ちょっと複雑なヴァリデーションをしようとすると適用不能になる
しょうがないからカスタムコードを書くことになるんだけどフレームワークとケンカし始めるからフレームワークは規約で禁止って流れになる
日本の厳しい要件についてこれる柔軟性の高いフレームワークは無いものか
514デフォルトの名無しさん
2017/10/14(土) 14:16:08.20ID:2Glba8SI515デフォルトの名無しさん
2017/10/14(土) 14:16:14.83ID:XRdStdss516デフォルトの名無しさん
2017/10/14(土) 14:18:15.77ID:XRdStdss517デフォルトの名無しさん
2017/10/14(土) 14:22:34.78ID:6KISst0f >>512
例えばこの例だと行を一行追加して、A2にあったWorldが
A3に変わった時の差分はこんなふうに表示される
http://blog.modd.com/entry/2016/01/26/125206
diff -u a.txt b.txt
--- a.txt 2017-10-14 14:16:59.481494825 +0900
+++ b.txt 2017-10-14 14:17:20.601528128 +0900
@@ -5,6 +5,12 @@
</row>
<row r="2">
<c r="A2" t="str">
+ <v>OOXML</v>
+ </c>
+</row>
+<row r="3">
+ <c r="A3" t="str">
<v>World</v>
</c>
</row>
Worldがもともとrow r="2"、c r="A3" だったわけだが、たった一行挿入することで、
2行目以下の、"全ての行データに対して" このようにrowとcが変化するわけだよ。
それで差分を管理できるわけ無いだろ。
例えばこの例だと行を一行追加して、A2にあったWorldが
A3に変わった時の差分はこんなふうに表示される
http://blog.modd.com/entry/2016/01/26/125206
diff -u a.txt b.txt
--- a.txt 2017-10-14 14:16:59.481494825 +0900
+++ b.txt 2017-10-14 14:17:20.601528128 +0900
@@ -5,6 +5,12 @@
</row>
<row r="2">
<c r="A2" t="str">
+ <v>OOXML</v>
+ </c>
+</row>
+<row r="3">
+ <c r="A3" t="str">
<v>World</v>
</c>
</row>
Worldがもともとrow r="2"、c r="A3" だったわけだが、たった一行挿入することで、
2行目以下の、"全ての行データに対して" このようにrowとcが変化するわけだよ。
それで差分を管理できるわけ無いだろ。
518デフォルトの名無しさん
2017/10/14(土) 14:24:44.57ID:6KISst0f >>515
> YAMLで書ける客がどれだけいるんだよ w
こっちでこんな感じで書いてくださいっていうだけ。
それはExcelと同じ。
違うのは、Excelでは条件を指定した所で
見えない情報(フォーマット情報など)が
大量に埋め込まれるということ。
そしてその見えない情報を正しく修正するのが大変だということ
> YAMLで書ける客がどれだけいるんだよ w
こっちでこんな感じで書いてくださいっていうだけ。
それはExcelと同じ。
違うのは、Excelでは条件を指定した所で
見えない情報(フォーマット情報など)が
大量に埋め込まれるということ。
そしてその見えない情報を正しく修正するのが大変だということ
519デフォルトの名無しさん
2017/10/14(土) 14:26:09.55ID:6KISst0f >>516
> どんだけ低レベルの客と付き合ってるんだよ w
逆。客のレベルがExcelを無駄に使えるから
セルの結合とか色を変えたりしてくる。
Excelはできることが多すぎるんだよ。
余計なことをなんでもできてしまう。
> どんだけ低レベルの客と付き合ってるんだよ w
逆。客のレベルがExcelを無駄に使えるから
セルの結合とか色を変えたりしてくる。
Excelはできることが多すぎるんだよ。
余計なことをなんでもできてしまう。
520デフォルトの名無しさん
2017/10/14(土) 14:28:15.75ID:6KISst0f >>513
> ちょっと複雑なヴァリデーションをしようとすると適用不能になる
普通はちょっと複雑なバリデーションを書くための方法がフレームワークに用意されてる。
それに、ちょっと複雑なところだけ別にやればいいだけ。
100個のうち1個のマイナーケースに対応できないから、
100個すべてめんどくさい方法で作りましたとかアホでしか無い。
> ちょっと複雑なヴァリデーションをしようとすると適用不能になる
普通はちょっと複雑なバリデーションを書くための方法がフレームワークに用意されてる。
それに、ちょっと複雑なところだけ別にやればいいだけ。
100個のうち1個のマイナーケースに対応できないから、
100個すべてめんどくさい方法で作りましたとかアホでしか無い。
521デフォルトの名無しさん
2017/10/14(土) 14:30:01.79ID:NZcmE+Ju522デフォルトの名無しさん
2017/10/14(土) 14:34:03.24ID:6KISst0f >>521
じゃあバリデーションのすべてがカスタムコードである例を教えてください
じゃあバリデーションのすべてがカスタムコードである例を教えてください
523デフォルトの名無しさん
2017/10/14(土) 14:35:49.60ID:6KISst0f 例えば郵便番号のバリデーションが
カスタムコードとか言いそうで笑えるw
そして郵便番号を使うたびに
同じバリデーションをコピペしてるんだろうな。
普通は関数にしてフレームワークに登録すれば終わり
あとは同じバリデーションを使いまわしできる。
カスタムコードとか言いそうで笑えるw
そして郵便番号を使うたびに
同じバリデーションをコピペしてるんだろうな。
普通は関数にしてフレームワークに登録すれば終わり
あとは同じバリデーションを使いまわしできる。
524デフォルトの名無しさん
2017/10/14(土) 14:40:00.04ID:6KISst0f あぁ、当たり前だけど範囲チェックや型チェックや正規表現チェックとか
単純なものだけではなく、カスタムバリデーションや条件付きバリデーションなんかも
フレームワークの基本機能の1つだと先に言っておこう
単純なものだけではなく、カスタムバリデーションや条件付きバリデーションなんかも
フレームワークの基本機能の1つだと先に言っておこう
525デフォルトの名無しさん
2017/10/14(土) 14:45:10.18ID:XRdStdss >>518-519
> こっちでこんな感じで書いてくださいっていうだけ。
えっ?
YAMLの書き方から教えるのかよ...
Excelでフォーマット守れって言うこともできない客にYAML書けるとか無職の妄想乙 w
> こっちでこんな感じで書いてくださいっていうだけ。
えっ?
YAMLの書き方から教えるのかよ...
Excelでフォーマット守れって言うこともできない客にYAML書けるとか無職の妄想乙 w
526デフォルトの名無しさん
2017/10/14(土) 14:46:32.49ID:6KISst0f 日本の業務アプリを作っているところがアホなのは、
バリデーションが正しく機能しているかは
アプリを実行して画面からぽちぽち実際と同じ使い方をして
検証していることなんだよな。同じ内容のバリデーションであっても
項目ごとに検証する。それがテスト時間を無意味に増やしてしまっている。
本来はバリデーションのテストは種類ごとに1つ(すごく当たり前だがw)
そして、画面の項目ごとに、想定しているバリデーション名が
設定されているかを設定ファイルを見て確認するだけ。
実際に動かしてテストはしない。
バリデーションが正しく機能しているかは
アプリを実行して画面からぽちぽち実際と同じ使い方をして
検証していることなんだよな。同じ内容のバリデーションであっても
項目ごとに検証する。それがテスト時間を無意味に増やしてしまっている。
本来はバリデーションのテストは種類ごとに1つ(すごく当たり前だがw)
そして、画面の項目ごとに、想定しているバリデーション名が
設定されているかを設定ファイルを見て確認するだけ。
実際に動かしてテストはしない。
527デフォルトの名無しさん
2017/10/14(土) 14:47:12.46ID:2Glba8SI >>517
試したけど俺の環境では↓こうなるよ
diffだけなら十分実用レベル
$git diff
diff --git a/book.xlsx b/book.xlsx
index c75fc9a..6215aa2 100644
--- a/book.xlsx
+++ b/book.xlsx
@@ -1,5 +1,6 @@
Sheet1
Hello
+ OOXML
World
試したけど俺の環境では↓こうなるよ
diffだけなら十分実用レベル
$git diff
diff --git a/book.xlsx b/book.xlsx
index c75fc9a..6215aa2 100644
--- a/book.xlsx
+++ b/book.xlsx
@@ -1,5 +1,6 @@
Sheet1
Hello
+ OOXML
World
528デフォルトの名無しさん
2017/10/14(土) 14:50:00.76ID:6KISst0f >>525
> YAMLの書き方から教えるのかよ...
YAMLの書き方はExcelよりも簡単だよ。
Excelは知らない人が使いこなすためには
数週間とか数カ月かかるが、
YAMLだとフォーマット用意して、
これと同じように書いてくださいで説明終わり。
Excelでフォーマットを守れないのは、
これと同じように書いてくださいと言っても、使い方が難しいから。
俺の母親は、文字の自動補間機能のせいで「1」と入力しようと
しても「10」と補完されてしまって困っていたな。
> YAMLの書き方から教えるのかよ...
YAMLの書き方はExcelよりも簡単だよ。
Excelは知らない人が使いこなすためには
数週間とか数カ月かかるが、
YAMLだとフォーマット用意して、
これと同じように書いてくださいで説明終わり。
Excelでフォーマットを守れないのは、
これと同じように書いてくださいと言っても、使い方が難しいから。
俺の母親は、文字の自動補間機能のせいで「1」と入力しようと
しても「10」と補完されてしまって困っていたな。
529デフォルトの名無しさん
2017/10/14(土) 14:52:49.20ID:2Glba8SI530デフォルトの名無しさん
2017/10/14(土) 14:53:33.13ID:6KISst0f531デフォルトの名無しさん
2017/10/14(土) 14:56:35.11ID:6KISst0f ちなみに補足しておくと、>>529はxlsxを直接比較しているのではなく
xlsxをテキストに変換してから比較している。
その時にフォーマット情報などいろいろ抜け落ちる。
だから「取り消し線のところは無視してください。」なんてのはわからない。
このようにExcelはなんでもできてしまうから、
重要な情報が抜け落ちる所に書かれてあった時に比較できない。
xlsxをテキストに変換してから比較している。
その時にフォーマット情報などいろいろ抜け落ちる。
だから「取り消し線のところは無視してください。」なんてのはわからない。
このようにExcelはなんでもできてしまうから、
重要な情報が抜け落ちる所に書かれてあった時に比較できない。
532デフォルトの名無しさん
2017/10/14(土) 15:07:27.23ID:XRdStdss533デフォルトの名無しさん
2017/10/14(土) 15:08:18.32ID:NTbBehto534デフォルトの名無しさん
2017/10/14(土) 15:08:49.27ID:XRdStdss535デフォルトの名無しさん
2017/10/14(土) 15:10:17.11ID:NTbBehto xmlはプログラマしか編集できない上に
ファイルがでかくなると読み込み速度ヤバイので駄目だよ
ファイルがでかくなると読み込み速度ヤバイので駄目だよ
536デフォルトの名無しさん
2017/10/14(土) 15:20:54.33ID:IPoqHaAU 俺が昨日書いた検証処理の一部
実際にはこれの数十倍の検証ルールがあると考えてほしい
フレームワークで簡単にできるなら教えてほしいおねがいします
webアプリ
テーブルをバリデーションする
列は4つでそれぞれinputを持ってる
typeは順に「checkbox, text, text, text」
検索でバックエンドから取ってきたデータがこのテーブルに表示される
これを手入力で編集してバックエンドに保存する
再検索できるが検索時にはバリデーションしなくてよい
保存するときはバリデーションを実行する
メッセージはローカライズすること
すべてのテキストリソースはバックエンドで管理されている
実際にはこれの数十倍の検証ルールがあると考えてほしい
フレームワークで簡単にできるなら教えてほしいおねがいします
webアプリ
テーブルをバリデーションする
列は4つでそれぞれinputを持ってる
typeは順に「checkbox, text, text, text」
検索でバックエンドから取ってきたデータがこのテーブルに表示される
これを手入力で編集してバックエンドに保存する
再検索できるが検索時にはバリデーションしなくてよい
保存するときはバリデーションを実行する
メッセージはローカライズすること
すべてのテキストリソースはバックエンドで管理されている
537デフォルトの名無しさん
2017/10/14(土) 15:21:29.07ID:IPoqHaAU 1列目のcheckboxがOFFの行はバリデーションしなくていい
2〜4列目のtextがすべて未入力の行はバリデーションしなくていい
2, 3列目が空白の場合エラー
2, 3列目が整数でない場合エラー
2, 3列目の合計値が1000を超えたらエラー
1列目のcheckboxがONの行の2, 3列目の合計値が10000を超えたらエラー
4列目はオプション
10文字以上の場合エラー
入力された文字列がバックエンドに登録されていない場合エラー
エラーメッセージは重複を排除して昇順に並び替えて所定の ul の子要素として追加する
エラーがあった入力項目は背景色を赤くする
同じ行で1つでもエラーがあった行は罫線を赤くする
2〜4列目のtextがすべて未入力の行はバリデーションしなくていい
2, 3列目が空白の場合エラー
2, 3列目が整数でない場合エラー
2, 3列目の合計値が1000を超えたらエラー
1列目のcheckboxがONの行の2, 3列目の合計値が10000を超えたらエラー
4列目はオプション
10文字以上の場合エラー
入力された文字列がバックエンドに登録されていない場合エラー
エラーメッセージは重複を排除して昇順に並び替えて所定の ul の子要素として追加する
エラーがあった入力項目は背景色を赤くする
同じ行で1つでもエラーがあった行は罫線を赤くする
538デフォルトの名無しさん
2017/10/14(土) 15:22:07.10ID:6KISst0f539デフォルトの名無しさん
2017/10/14(土) 15:42:07.29ID:D5wME4oE OSをアプリって言う奴初めて見たw
540デフォルトの名無しさん
2017/10/14(土) 15:51:27.37ID:6KISst0f >>537
どうでもいいけど、列目〜とか言って時点で、画面と密結合してんなーとしか思えんなw
列があれば行もあるんだろうけど、一行単位で処理してるようだから、
一行が、一クラスの一インスタンスと考えればよいだろう
1000超えたらエラーなのか10000超えたらエラーなのか分からんが。
画面表示周りにビューの仕事でこれはバリデーションではない。
バリデーション結果オブジェクトを見てビューで表示さればいいだけ(何度も言わせないように)
長くなったのでコードは次のレスに書く
どうでもいいけど、列目〜とか言って時点で、画面と密結合してんなーとしか思えんなw
列があれば行もあるんだろうけど、一行単位で処理してるようだから、
一行が、一クラスの一インスタンスと考えればよいだろう
1000超えたらエラーなのか10000超えたらエラーなのか分からんが。
画面表示周りにビューの仕事でこれはバリデーションではない。
バリデーション結果オブジェクトを見てビューで表示さればいいだけ(何度も言わせないように)
長くなったのでコードは次のレスに書く
541デフォルトの名無しさん
2017/10/14(土) 15:51:34.74ID:6KISst0f class Row
include ActiveModel::Validations
def col1_condition; end
def col2_value; end
def col3_value; end
def col4_text; end
def condition;
col1_condition && col2_value.present? && col3_value.present? && col4_text.present?
end
def col2_plus_col3_number
col2_value + col3_value
end
// ↑ここまでは単なるクラス定義
//↓ここ以下がバリデーション
validates :col2_value numericality: true, presence: true, if condition
validates :col3_value numericality: true, presence: true, if condition
validates :col2_plus_col3_number less_than_or_equal_to: 1000, if condition
validates :col2_plus_col3_number less_than_or_equal_to: 10000, if condition
validates :col4_text; maximun: 10, if condition
validate :col4_registered
def col4_registered
// 入力された文字列がバックエンドに登録されていない場合エラー
end
end
include ActiveModel::Validations
def col1_condition; end
def col2_value; end
def col3_value; end
def col4_text; end
def condition;
col1_condition && col2_value.present? && col3_value.present? && col4_text.present?
end
def col2_plus_col3_number
col2_value + col3_value
end
// ↑ここまでは単なるクラス定義
//↓ここ以下がバリデーション
validates :col2_value numericality: true, presence: true, if condition
validates :col3_value numericality: true, presence: true, if condition
validates :col2_plus_col3_number less_than_or_equal_to: 1000, if condition
validates :col2_plus_col3_number less_than_or_equal_to: 10000, if condition
validates :col4_text; maximun: 10, if condition
validate :col4_registered
def col4_registered
// 入力された文字列がバックエンドに登録されていない場合エラー
end
end
542デフォルトの名無しさん
2017/10/14(土) 15:53:04.43ID:6KISst0f × validate :col4_registered
○ validate :col4_registered, if: condition
っていうか全部 if の後の: 付け忘れてたw
○ validate :col4_registered, if: condition
っていうか全部 if の後の: 付け忘れてたw
543デフォルトの名無しさん
2017/10/14(土) 16:04:41.69ID:2Glba8SI >>531
だからそれは意図して属性情報は差分比較しないようにしてるからじゃん。。
なんなんその言いがかり
セルの結合もデータ的に何を意味してるのかVBA使うやつなら当然知ってるし
データとして使うExcelシートなら書式設定は変更されないようにロックするだろ
その辺のリテラシがないならExcel使うってのは選択肢にはならないわな
だからそれは意図して属性情報は差分比較しないようにしてるからじゃん。。
なんなんその言いがかり
セルの結合もデータ的に何を意味してるのかVBA使うやつなら当然知ってるし
データとして使うExcelシートなら書式設定は変更されないようにロックするだろ
その辺のリテラシがないならExcel使うってのは選択肢にはならないわな
544デフォルトの名無しさん
2017/10/14(土) 16:09:11.95ID:6KISst0f >>543
すべての属性情報が無視していいとは限らないからね。
属性情報として重要な事が書かれているかもしれない。
そういう無視して良いのがないかわからないのがExcelの欠点の1つ
Excelになれている人ほど、余計な工夫をしてくる。
すべての属性情報が無視していいとは限らないからね。
属性情報として重要な事が書かれているかもしれない。
そういう無視して良いのがないかわからないのがExcelの欠点の1つ
Excelになれている人ほど、余計な工夫をしてくる。
545デフォルトの名無しさん
2017/10/14(土) 16:12:09.17ID:IPoqHaAU546デフォルトの名無しさん
2017/10/14(土) 16:23:07.56ID:6KISst0f >>545
Ruby & Rails
JavaScriptはしらん。けど大差ないものは作れるだろ
文法上の制約があるとしてんもこんなふうになる程度
validates("col2_value", {numericality: true, presence: true, if: "condition"})
> 10000を超えないのは複数の行について合計した時の話です
一行ごとに保存できるのであれば、保存する時に
この一行を保存するときに10000を超えるかどうかを調べればいい
一行ごとに保存できない、つまりまとめて保存するならば、
一行に相当するオブジェクトに含まれる配列として
テーブル全体を持っておき、そのテーブルの数値の合計を調べれば良い。
> メッセージやCSSの処理はどうすればいいでしょうか?
んなもん、バリデーション結果を返して、そこに含まれるerrorsを
画面に表示すればいいだけ。ローカライゼーションは別の話。
Ruby & Rails
JavaScriptはしらん。けど大差ないものは作れるだろ
文法上の制約があるとしてんもこんなふうになる程度
validates("col2_value", {numericality: true, presence: true, if: "condition"})
> 10000を超えないのは複数の行について合計した時の話です
一行ごとに保存できるのであれば、保存する時に
この一行を保存するときに10000を超えるかどうかを調べればいい
一行ごとに保存できない、つまりまとめて保存するならば、
一行に相当するオブジェクトに含まれる配列として
テーブル全体を持っておき、そのテーブルの数値の合計を調べれば良い。
> メッセージやCSSの処理はどうすればいいでしょうか?
んなもん、バリデーション結果を返して、そこに含まれるerrorsを
画面に表示すればいいだけ。ローカライゼーションは別の話。
547デフォルトの名無しさん
2017/10/14(土) 16:32:34.19ID:IPoqHaAU >>546
なるほど
なんとなくわかりかけてきました
肝心のエラー情報はどうやって、どのような形式で取得しますか?
検索や保存など処理によって検証内容が異なる場合は似たようなクラスを2つ用意するのでしょうか?
なるほど
なんとなくわかりかけてきました
肝心のエラー情報はどうやって、どのような形式で取得しますか?
検索や保存など処理によって検証内容が異なる場合は似たようなクラスを2つ用意するのでしょうか?
548デフォルトの名無しさん
2017/10/14(土) 16:37:58.88ID:6KISst0f > 肝心のエラー情報はどうやって、どのような形式で取得しますか?
フレームワーク次第なんだんだからそのやり方に従えばいい
> 検索や保存など処理によって検証内容が異なる場合は似たようなクラスを2つ用意するのでしょうか?
似たようなもの=同じではない=違うもの
違うなら別々に用意しなければいけないし、
100%まったく同じならば、使い回せばいい。
一部が全く同じならば、同じ部分だけつかいまわせるように切り出せばいい
絶対にやってはいけないのは、違うところがあるのに
似ているからという理由だけで違うものを使いまわすこと
そんなことをするとある修正が全く無関係な所に影響を及ぼしてしまう。
異なるなら別のものを作るのは当たり前の話だ。
フレームワーク次第なんだんだからそのやり方に従えばいい
> 検索や保存など処理によって検証内容が異なる場合は似たようなクラスを2つ用意するのでしょうか?
似たようなもの=同じではない=違うもの
違うなら別々に用意しなければいけないし、
100%まったく同じならば、使い回せばいい。
一部が全く同じならば、同じ部分だけつかいまわせるように切り出せばいい
絶対にやってはいけないのは、違うところがあるのに
似ているからという理由だけで違うものを使いまわすこと
そんなことをするとある修正が全く無関係な所に影響を及ぼしてしまう。
異なるなら別のものを作るのは当たり前の話だ。
549デフォルトの名無しさん
2017/10/14(土) 16:44:22.76ID:wPdsvz2f550デフォルトの名無しさん
2017/10/14(土) 16:45:47.95ID:6KISst0f あとなぁ、コピペはいけないってことの意味を勘違いしてるやつが多いんだよな。
単語、文字列をコピペしたらいけない。ファイルをコピペしたら
いけないって勘違いしてる。
コピペしたらいけないのは処理だってーの。
処理はテストするものが定義はテストする意味はない。
定義でするべきなのはテストではなくて確認
確認は目視でもOKなんだよ。
バリデーションなんてほぼ定義にできてしまうのだから
テストする項目にはならない。確認する項目。
だからYAMLに分離して、技術者じゃなくても確認できるようにしておけば良いんだ。
単語、文字列をコピペしたらいけない。ファイルをコピペしたら
いけないって勘違いしてる。
コピペしたらいけないのは処理だってーの。
処理はテストするものが定義はテストする意味はない。
定義でするべきなのはテストではなくて確認
確認は目視でもOKなんだよ。
バリデーションなんてほぼ定義にできてしまうのだから
テストする項目にはならない。確認する項目。
だからYAMLに分離して、技術者じゃなくても確認できるようにしておけば良いんだ。
551デフォルトの名無しさん
2017/10/14(土) 16:46:45.77ID:IPoqHaAU >>548
ちなみにrubyだとバリデーション結果はどうなってるんですか?
ちなみにrubyだとバリデーション結果はどうなってるんですか?
552デフォルトの名無しさん
2017/10/14(土) 16:47:38.90ID:6KISst0f553デフォルトの名無しさん
2017/10/14(土) 16:49:56.83ID:6KISst0f >>551
RubyじゃなくてRailsな。バリデーションはRailsというフレームワークの一機能
バリデーション結果のオブジェクトの中に
errosってのがあってそこに項目ごとにエラーメッセージが入ってる。
またバリデーション結果のオブジェクトにはvalid?、invalid?メソッドがあって
全体がバリデーションでOKだったかどうかもわかる。
RubyじゃなくてRailsな。バリデーションはRailsというフレームワークの一機能
バリデーション結果のオブジェクトの中に
errosってのがあってそこに項目ごとにエラーメッセージが入ってる。
またバリデーション結果のオブジェクトにはvalid?、invalid?メソッドがあって
全体がバリデーションでOKだったかどうかもわかる。
554デフォルトの名無しさん
2017/10/14(土) 16:55:23.66ID:IPoqHaAU >>553
どの項目でエラーが出たかはわかりませんか?
背景色を変えるには入力項目のidとrubyオブジェクトのプロパティとのひも付けが必要だと思いますが
ここも粗結合にしたまま対応できるんでしょうか?
どの項目でエラーが出たかはわかりませんか?
背景色を変えるには入力項目のidとrubyオブジェクトのプロパティとのひも付けが必要だと思いますが
ここも粗結合にしたまま対応できるんでしょうか?
555デフォルトの名無しさん
2017/10/14(土) 17:01:53.89ID:2Glba8SI >>541
この場合のcheckboxは更新対象を示すフラグっぽいから
2~4列目のモデルの要素とは別にしたほうがいいんじゃないかな
ONになってる行のコレクション対してバリデーションすればいいので
if conditionは全部消せる
この場合のcheckboxは更新対象を示すフラグっぽいから
2~4列目のモデルの要素とは別にしたほうがいいんじゃないかな
ONになってる行のコレクション対してバリデーションすればいいので
if conditionは全部消せる
556デフォルトの名無しさん
2017/10/14(土) 17:02:08.30ID:6KISst0f >>554
だからerrorsオブジェクトの中に項目ごとにエラーが入ってるって言ったろ
> 背景色を変えるには入力項目のidとrubyオブジェクトのプロパティとのひも付けが必要だと思いますが
いらねーよ。
どうせエラー画面がでたら、エラーが出たその項目の値を表示するだろ?
その項目のすぐ下にでもエラー情報だせばいいだろ。
あ?id? エラー情報の表示にidなんていらねーからな。
まさかと思うが、CSSに全項目書いてたりしないよな。
それならclass使え。アホらしいから
だからerrorsオブジェクトの中に項目ごとにエラーが入ってるって言ったろ
> 背景色を変えるには入力項目のidとrubyオブジェクトのプロパティとのひも付けが必要だと思いますが
いらねーよ。
どうせエラー画面がでたら、エラーが出たその項目の値を表示するだろ?
その項目のすぐ下にでもエラー情報だせばいいだろ。
あ?id? エラー情報の表示にidなんていらねーからな。
まさかと思うが、CSSに全項目書いてたりしないよな。
それならclass使え。アホらしいから
557デフォルトの名無しさん
2017/10/14(土) 17:06:44.40ID:6KISst0f >>555
そこらへんはどうでもいいやw
重要なのはこの程度でカスタムコード書きまくらないと対応できないとか
思っていたことがはっきりしたってだけ
で、俺の意見はここからさらに先で、Railsのバリデーションコード
あの程度の情報量であれば、YAMLに簡単に外だしできるので、
外出して、客にもレビュー可能にして、価値の低いテストを減らしたい。
YAMLにすればフロントエンド側(JavaScript)でも再利用できるだろうし。
なんでもかんでもクラスに定義するのが良いとは思わないな。
そこらへんはどうでもいいやw
重要なのはこの程度でカスタムコード書きまくらないと対応できないとか
思っていたことがはっきりしたってだけ
で、俺の意見はここからさらに先で、Railsのバリデーションコード
あの程度の情報量であれば、YAMLに簡単に外だしできるので、
外出して、客にもレビュー可能にして、価値の低いテストを減らしたい。
YAMLにすればフロントエンド側(JavaScript)でも再利用できるだろうし。
なんでもかんでもクラスに定義するのが良いとは思わないな。
558デフォルトの名無しさん
2017/10/14(土) 17:11:55.12ID:ipiotHZI その先はないので程々にした方がいい
設定ファイルでバリデーションするアイデアはJavaとか他の言語が大昔にとっくに通過していて
世界中でこれは使い物にならんと判定されたものだよ
設定ファイルでバリデーションするアイデアはJavaとか他の言語が大昔にとっくに通過していて
世界中でこれは使い物にならんと判定されたものだよ
559デフォルトの名無しさん
2017/10/14(土) 17:15:32.80ID:ipiotHZI バリデーションすなわち入力検証をプレゼンテーションから切り離して考えるのもバカバカしい
入力検証はViewあるいはViewModelに属する処理だからプレゼンテーションに入るのが正解
ドメインモデルに入力検証をやらせるのは愚かとしか言いようがない
入力検証はViewあるいはViewModelに属する処理だからプレゼンテーションに入るのが正解
ドメインモデルに入力検証をやらせるのは愚かとしか言いようがない
560デフォルトの名無しさん
2017/10/14(土) 17:16:00.23ID:6KISst0f > 設定ファイルでバリデーションするアイデアはJavaとか他の言語が大昔にとっくに通過していて
それはXMLが失敗の原因だった。
XMLにはタグや属性という技術者しか知らないものが
あるからだめだったんだよ。
それはXMLが失敗の原因だった。
XMLにはタグや属性という技術者しか知らないものが
あるからだめだったんだよ。
561デフォルトの名無しさん
2017/10/14(土) 17:17:14.17ID:6KISst0f >>559
> 入力検証はViewあるいはViewModelに属する処理だからプレゼンテーションに入るのが正解
YAMLにすることでそれも実現できる
バリデーションは、プレゼンテーションだけのものではない
プレゼンテーションでもドメインモデルでも使われるものだ
> 入力検証はViewあるいはViewModelに属する処理だからプレゼンテーションに入るのが正解
YAMLにすることでそれも実現できる
バリデーションは、プレゼンテーションだけのものではない
プレゼンテーションでもドメインモデルでも使われるものだ
562デフォルトの名無しさん
2017/10/14(土) 17:20:06.76ID:6KISst0f 更に言うならば、バリデーションはフレームワークではなく
言語仕様に組み込むべきものだよ。
本質的にはD言語の契約プログラミングと同じものなんだから
言語仕様に組み込むべきものだよ。
本質的にはD言語の契約プログラミングと同じものなんだから
563デフォルトの名無しさん
2017/10/14(土) 17:21:48.23ID:ipiotHZI >>560
違う
モデル定義とバリデーション定義が離れすぎていること
コンパイルできないから開発環境の恩恵をうまく得られないこと
バリデーションを書くのは開発者であるが開発者に馴染みのある言語はXMLやYAMLではなくJavaやC#であること
これらが問題点
違う
モデル定義とバリデーション定義が離れすぎていること
コンパイルできないから開発環境の恩恵をうまく得られないこと
バリデーションを書くのは開発者であるが開発者に馴染みのある言語はXMLやYAMLではなくJavaやC#であること
これらが問題点
564デフォルトの名無しさん
2017/10/14(土) 17:24:16.70ID:6KISst0f >>563
> バリデーションを書くのは開発者であるが開発者に馴染みのある言語はXMLやYAMLではなくJavaやC#であること
あんたはバリデーション処理とバリデーション定義をごっちゃにしてる。
バリデーション処理は動くコードで書くが、
バリデーション定義は動くコードではない。
JavaのXMLなんかも動くコードではないから
これは定義であり、定義の内容をJavaやC#で書く意味はない。
だってただのデータだぞ?ハッシュで持たせればいい程度の情報。
> バリデーションを書くのは開発者であるが開発者に馴染みのある言語はXMLやYAMLではなくJavaやC#であること
あんたはバリデーション処理とバリデーション定義をごっちゃにしてる。
バリデーション処理は動くコードで書くが、
バリデーション定義は動くコードではない。
JavaのXMLなんかも動くコードではないから
これは定義であり、定義の内容をJavaやC#で書く意味はない。
だってただのデータだぞ?ハッシュで持たせればいい程度の情報。
565デフォルトの名無しさん
2017/10/14(土) 17:25:05.23ID:S4q9ZUfo566デフォルトの名無しさん
2017/10/14(土) 17:25:21.74ID:ipiotHZI >>561
違う
プレゼンテーションレイヤではオブジェクトが不正な状態を受け入れることが前提
不正な状態を検知する処理がバリデーション
ドメインレイヤではオブジェクトは不正な状態は受け入れない
プロパティの不正な値をセットしようとした瞬間に例外
メソッドに不正な引数を与えた瞬間に例外
これはバリデーションではない
ドメインレイヤでは契約を使う
違う
プレゼンテーションレイヤではオブジェクトが不正な状態を受け入れることが前提
不正な状態を検知する処理がバリデーション
ドメインレイヤではオブジェクトは不正な状態は受け入れない
プロパティの不正な値をセットしようとした瞬間に例外
メソッドに不正な引数を与えた瞬間に例外
これはバリデーションではない
ドメインレイヤでは契約を使う
567デフォルトの名無しさん
2017/10/14(土) 17:25:55.08ID:6KISst0f >>541の例で言えば
validates :col2_value numericality: true, presence: true, if condition
validates :col3_value numericality: true, presence: true, if condition
validates :col2_plus_col3_number less_than_or_equal_to: 1000, if condition
validates :col2_plus_col3_number less_than_or_equal_to: 10000, if condition
validates :col4_text; maximun: 10, if condition
validate :col4_registered
この部分がバリデーション定義。
簡単にYAMLにできるし、客が検証したい部分でも有る。
numericalityの内容とかconditionの内容がバリデーション処理(の一部)
validates :col2_value numericality: true, presence: true, if condition
validates :col3_value numericality: true, presence: true, if condition
validates :col2_plus_col3_number less_than_or_equal_to: 1000, if condition
validates :col2_plus_col3_number less_than_or_equal_to: 10000, if condition
validates :col4_text; maximun: 10, if condition
validate :col4_registered
この部分がバリデーション定義。
簡単にYAMLにできるし、客が検証したい部分でも有る。
numericalityの内容とかconditionの内容がバリデーション処理(の一部)
568デフォルトの名無しさん
2017/10/14(土) 17:27:05.32ID:6KISst0f >>566
> ドメインレイヤではオブジェクトは不正な状態は受け入れない
> プロパティの不正な値をセットしようとした瞬間に例外
> メソッドに不正な引数を与えた瞬間に例外
> これはバリデーションではない
バリデーションに引っかかった結果をどう表示するか?が
プレゼンテーションでやるべきこと。
バリデーションそのものは使いまわすことができる。
> ドメインレイヤではオブジェクトは不正な状態は受け入れない
> プロパティの不正な値をセットしようとした瞬間に例外
> メソッドに不正な引数を与えた瞬間に例外
> これはバリデーションではない
バリデーションに引っかかった結果をどう表示するか?が
プレゼンテーションでやるべきこと。
バリデーションそのものは使いまわすことができる。
569デフォルトの名無しさん
2017/10/14(土) 17:27:18.82ID:S4q9ZUfo >>566
ctrl+vで貼った1GBテキストとかメモリに保持すんの?
ctrl+vで貼った1GBテキストとかメモリに保持すんの?
570デフォルトの名無しさん
2017/10/14(土) 17:28:02.59ID:ipiotHZI >>564
それはあなただけが感じる特殊な感覚だよ
世界中のプログラマは設定ファイルを捨て去り属性やアノテーションを使うようになった
XMLよりYAMLの方が多少マシという点は認めるが上記の手法に比べればどんぐりのせくらべといったところだ
それはあなただけが感じる特殊な感覚だよ
世界中のプログラマは設定ファイルを捨て去り属性やアノテーションを使うようになった
XMLよりYAMLの方が多少マシという点は認めるが上記の手法に比べればどんぐりのせくらべといったところだ
571デフォルトの名無しさん
2017/10/14(土) 17:28:38.29ID:6KISst0f572デフォルトの名無しさん
2017/10/14(土) 17:29:02.43ID:6KISst0f 設定をYAMLではなくソースコードに埋め込むのを見てみたいもんだがw
573デフォルトの名無しさん
2017/10/14(土) 17:30:30.98ID:S4q9ZUfo お前ら、喧嘩するな
どこに持とうがチェック項目は増えても減ってもいないんだぜ
だったら一番やりやすい画面かな
どこに持とうがチェック項目は増えても減ってもいないんだぜ
だったら一番やりやすい画面かな
574デフォルトの名無しさん
2017/10/14(土) 17:32:16.56ID:6KISst0f575デフォルトの名無しさん
2017/10/14(土) 17:32:52.58ID:S4q9ZUfo ファイルに外だししたからチェックしなくていいですなんて
んなわけねぇだろ
今時エロ本の竿役だってそんなこと言わねぇよ
んなわけねぇだろ
今時エロ本の竿役だってそんなこと言わねぇよ
576デフォルトの名無しさん
2017/10/14(土) 17:34:49.45ID:S4q9ZUfo >>574
チェックはしなきゃ駄目だよ
チェックはしなきゃ駄目だよ
577デフォルトの名無しさん
2017/10/14(土) 17:35:14.23ID:ipiotHZI578デフォルトの名無しさん
2017/10/14(土) 17:39:42.15ID:XRdStdss579デフォルトの名無しさん
2017/10/14(土) 18:20:50.90ID:6KISst0f >>575
> ファイルに外だししたからチェックしなくていいですなんて
> んなわけねぇだろ
そんなこと言ってないよw
バリデーションという単純な部分を
外だしすると誰でもチェックできるようになるよ。
そもそもExcelでやっていたことだからね。
Excelという使いづらい形式がYAMLに変わっただけ
誰でもチェックできるってことの意味がわかったかな?
あ、YAMLに変わってプログラムからそれを
そのまま使うってところも違うか。
> ファイルに外だししたからチェックしなくていいですなんて
> んなわけねぇだろ
そんなこと言ってないよw
バリデーションという単純な部分を
外だしすると誰でもチェックできるようになるよ。
そもそもExcelでやっていたことだからね。
Excelという使いづらい形式がYAMLに変わっただけ
誰でもチェックできるってことの意味がわかったかな?
あ、YAMLに変わってプログラムからそれを
そのまま使うってところも違うか。
580デフォルトの名無しさん
2017/10/14(土) 19:06:29.37ID:GDzf5CCz YAMLが誰でも読み書きできると主張しているのはプログラマだけという事実について考える必要があるようだ
エクセルは誰でも読み書きできる
これはプログラマ以外のステークホルダーも同意している
エクセルは誰でも読み書きできる
これはプログラマ以外のステークホルダーも同意している
581デフォルトの名無しさん
2017/10/14(土) 19:35:21.74ID:LrE/Uk2a xmlはパンピーには無理
スコープなんて意識できるわけねーし
っていうか俺でも辛い
xmlを編集できるツールがそもそもねーじゃん
責任持ってお前作って配れよ
スコープなんて意識できるわけねーし
っていうか俺でも辛い
xmlを編集できるツールがそもそもねーじゃん
責任持ってお前作って配れよ
582デフォルトの名無しさん
2017/10/14(土) 21:47:43.86ID:4wM/EQmV 結局のところフレームワーク無しだとif文書きまくるのが最強ということですか?
いわゆるKISSに原則ってやつですね
いわゆるKISSに原則ってやつですね
583デフォルトの名無しさん
2017/10/14(土) 21:59:38.46ID:6KISst0f >>582
if文以外は不要
if文以外は不要
584デフォルトの名無しさん
2017/10/14(土) 22:36:04.01ID:LrE/Uk2a データからソースコード吐き出すツールでも作ったらどうか?
585デフォルトの名無しさん
2017/10/15(日) 00:42:30.20ID:RBDvyi+r データはRDBMSでもテキストでもなんでもいいだろ
DAOで抽象化しとけば後から変えられる
メンテできるものにしろ
DAOで抽象化しとけば後から変えられる
メンテできるものにしろ
586デフォルトの名無しさん
2017/10/15(日) 00:48:50.64ID:/8UsyUgn587デフォルトの名無しさん
2017/10/15(日) 18:02:34.88ID:nlQ3NzZf588デフォルトの名無しさん
2017/10/15(日) 18:26:45.76ID:/8UsyUgn > 設定が正しいか目視で済ませずテストすべき。
そのテストって実行結果を目視で調べるんだろ?
それか、テストのテストのテストのテストを書くわけないだろうから、
テスト書いて目視でそのテストが正しいか調べるんだろ?
どうせ最後は目視するしかないんだよ。
コードレビューとも言うね。
そんなのをやるぐらいなら
「十分な目ん玉があれば、全てのバグは洗い出される」方式を
利用した方がいいよ。
オープンソースでない場合、コードだと「十分な目ん玉」は集められない。
だから技術者ではない人でも検証可能な形にして「十分な目ん玉」を集めたほうが良い
これはコストのかけ方の問題だよ。重要かつ難しい所には技術者を割り当て
バリデーションとかいう単純な所は、誰でもできるようにして十分な数の目ん玉で対応する
そのテストって実行結果を目視で調べるんだろ?
それか、テストのテストのテストのテストを書くわけないだろうから、
テスト書いて目視でそのテストが正しいか調べるんだろ?
どうせ最後は目視するしかないんだよ。
コードレビューとも言うね。
そんなのをやるぐらいなら
「十分な目ん玉があれば、全てのバグは洗い出される」方式を
利用した方がいいよ。
オープンソースでない場合、コードだと「十分な目ん玉」は集められない。
だから技術者ではない人でも検証可能な形にして「十分な目ん玉」を集めたほうが良い
これはコストのかけ方の問題だよ。重要かつ難しい所には技術者を割り当て
バリデーションとかいう単純な所は、誰でもできるようにして十分な数の目ん玉で対応する
589デフォルトの名無しさん
2017/10/15(日) 18:43:04.37ID:hXjn0fon バグってるかどうかはリリースすればわかる
瑕疵期間でも人件費はタダじゃねえからな
別にテストで全部見つける必要はない
瑕疵期間なしって契約ならテストで全部チェックするけどね
瑕疵期間でも人件費はタダじゃねえからな
別にテストで全部見つける必要はない
瑕疵期間なしって契約ならテストで全部チェックするけどね
590デフォルトの名無しさん
2017/10/15(日) 18:57:53.15ID:hZRxEBGG >>588
コードレビューとテストは目的も確認の手段も違うじゃん
正しいメールアドレスの形式かどうかをチェックする場合とかを考えたら分かるだろ
それに仕様に間違いがないかどうかを誰もが確認できるようにすることと
コードがその仕様通りに動いているかどうかを確認することは
確認する対象が全く違う
自己正当化の論理に聞こえる
コードレビューとテストは目的も確認の手段も違うじゃん
正しいメールアドレスの形式かどうかをチェックする場合とかを考えたら分かるだろ
それに仕様に間違いがないかどうかを誰もが確認できるようにすることと
コードがその仕様通りに動いているかどうかを確認することは
確認する対象が全く違う
自己正当化の論理に聞こえる
591デフォルトの名無しさん
2017/10/15(日) 19:04:24.38ID:/8UsyUgn >>590
> 正しいメールアドレスの形式かどうかをチェックする場合とかを考えたら分かるだろ
その場合だと「ある文字列が正しいメールアドレスの形式か?」という
ロジックは技術者が入念にチェックすべき重要なロジック。
そしてこれはisMailAddressみたいな名前の関数となる。
そしてユーザーが入力したある項目のバリデーションが
isMailAddressになっているか?は目視で確認すれば良い
これは技術者でなくてもできる。
何でもかんでもコストがかかる技術者を使うなっていうのはこういう話だよ。
バカは項目が存在する数だけ、漢字が使えないこと、@の前は.になってないこと
.を連続して2つ以上使わないこと、みたいなチェックをするからな。
メールアドレスのバリデーションが正しく動いているならば、
そのバリデーションを使う場所がいくつあろうが、
そのバリデーションが使われていることだけを確かめれば良いんだよ。
> 正しいメールアドレスの形式かどうかをチェックする場合とかを考えたら分かるだろ
その場合だと「ある文字列が正しいメールアドレスの形式か?」という
ロジックは技術者が入念にチェックすべき重要なロジック。
そしてこれはisMailAddressみたいな名前の関数となる。
そしてユーザーが入力したある項目のバリデーションが
isMailAddressになっているか?は目視で確認すれば良い
これは技術者でなくてもできる。
何でもかんでもコストがかかる技術者を使うなっていうのはこういう話だよ。
バカは項目が存在する数だけ、漢字が使えないこと、@の前は.になってないこと
.を連続して2つ以上使わないこと、みたいなチェックをするからな。
メールアドレスのバリデーションが正しく動いているならば、
そのバリデーションを使う場所がいくつあろうが、
そのバリデーションが使われていることだけを確かめれば良いんだよ。
592デフォルトの名無しさん
2017/10/15(日) 19:22:46.86ID:EYoRh89i 「社員に対して給料を振り込む」という文章を
「ooをxxする」という1文にしたいときって、
「社員」と「給料」の2つの目的語があるからどうすればいいの?
「ooをxxする」という1文にしたいときって、
「社員」と「給料」の2つの目的語があるからどうすればいいの?
593デフォルトの名無しさん
2017/10/15(日) 19:28:58.58ID:nlQ3NzZf >>591
>>メールアドレスのバリデーションが正しく動いているならば、
>>そのバリデーションを使う場所がいくつあろうが、
>>そのバリデーションが使われていることだけを確かめれば良いんだよ。
確める内容はそれでOK
でも確める方法が設定ファイルの目視チェックでは不十分。
設定ファイルの各項目が実際の動作に反映されてるか動かしてみないと。
まあシステム間結合テストとか言われるようなテストフェーズでやる場合、実装担当はあまり関係ないことかもしれないが。
誰かがそのテストをする必要はある。
>>メールアドレスのバリデーションが正しく動いているならば、
>>そのバリデーションを使う場所がいくつあろうが、
>>そのバリデーションが使われていることだけを確かめれば良いんだよ。
確める内容はそれでOK
でも確める方法が設定ファイルの目視チェックでは不十分。
設定ファイルの各項目が実際の動作に反映されてるか動かしてみないと。
まあシステム間結合テストとか言われるようなテストフェーズでやる場合、実装担当はあまり関係ないことかもしれないが。
誰かがそのテストをする必要はある。
594デフォルトの名無しさん
2017/10/15(日) 19:39:32.38ID:vM8WLXd+ 設定ファイルに書いてあればOK
笑えないけど笑っちまった
設定ファイルの記述ミスは存在しない前提かよ
笑えないけど笑っちまった
設定ファイルの記述ミスは存在しない前提かよ
595デフォルトの名無しさん
2017/10/15(日) 19:43:52.74ID:/8UsyUgn596デフォルトの名無しさん
2017/10/15(日) 19:49:40.01ID:vM8WLXd+ >>595
見ただけじゃわかんねえよw
見ただけじゃわかんねえよw
597デフォルトの名無しさん
2017/10/15(日) 20:00:30.48ID:/8UsyUgn というかさ、目視を軽視してないか?
動作確認を過大評価してないか?
動作確認っていうのは確かに動作させたものに関しは
その通り動くだろうけど、動作させてない所はわからないんだぞ。
偶数かどうかチェックする関数、2と4と6でテストしてOKだからといって
8がOKになるとは限らない。コードのロジックを "目視" して
問題ないことを確認しているはずなんだが?
永遠の時間があれば全て動作確認すればいいだろうけど
実際にはそんな時間はない。だから動作させずに目視で確認できるように
そういう仕組を作っていくことが重要なんだよ。
時間をかけて努力をすることは偉くもなんともない。
なるべく時間をかけずに成果を上げるようにしないと
生産性は上がらないぞ
動作確認を過大評価してないか?
動作確認っていうのは確かに動作させたものに関しは
その通り動くだろうけど、動作させてない所はわからないんだぞ。
偶数かどうかチェックする関数、2と4と6でテストしてOKだからといって
8がOKになるとは限らない。コードのロジックを "目視" して
問題ないことを確認しているはずなんだが?
永遠の時間があれば全て動作確認すればいいだろうけど
実際にはそんな時間はない。だから動作させずに目視で確認できるように
そういう仕組を作っていくことが重要なんだよ。
時間をかけて努力をすることは偉くもなんともない。
なるべく時間をかけずに成果を上げるようにしないと
生産性は上がらないぞ
598デフォルトの名無しさん
2017/10/15(日) 20:03:20.76ID:/8UsyUgn >>596
それは見ただけでわかるような仕組みを作ってないから。
ゲームでよくあるデバッグモードみたいなものを
本気で実装した方がいいよ。
通常のプレイで見えないパラメータを、デバッグする人も見えないまま
デバッグするのは、時間を無駄に消費するだけ
デバッグモードを有効にしたら、見えないパラメータ
例えばこの項目のバリデーションは○○です〜みたいなものを
表示するようにすれば、見ただけでわかるようになる。
それは見ただけでわかるような仕組みを作ってないから。
ゲームでよくあるデバッグモードみたいなものを
本気で実装した方がいいよ。
通常のプレイで見えないパラメータを、デバッグする人も見えないまま
デバッグするのは、時間を無駄に消費するだけ
デバッグモードを有効にしたら、見えないパラメータ
例えばこの項目のバリデーションは○○です〜みたいなものを
表示するようにすれば、見ただけでわかるようになる。
599デフォルトの名無しさん
2017/10/15(日) 20:04:45.78ID:vM8WLXd+ テストも目視も要らないよ
とりあえずリリースしちゃいなよ
問題があればそれではっきりするだろ
説得するより怒られる方が楽って昔の偉いプログラマも言ってたぞ
とりあえずリリースしちゃいなよ
問題があればそれではっきりするだろ
説得するより怒られる方が楽って昔の偉いプログラマも言ってたぞ
600デフォルトの名無しさん
2017/10/15(日) 20:09:59.40ID:/8UsyUgn >>599
ベータ版リリースとか有るからね。
でも、それはちゃんと発生した問題を自動で
検出して通知する仕組みが必要だよ。
それがないと問題があっても教えてくれないし、
発生した問題の詳細もわからない。
言うほど簡単じゃない。
ベータ版リリースとか有るからね。
でも、それはちゃんと発生した問題を自動で
検出して通知する仕組みが必要だよ。
それがないと問題があっても教えてくれないし、
発生した問題の詳細もわからない。
言うほど簡単じゃない。
601デフォルトの名無しさん
2017/10/15(日) 20:21:11.07ID:zIm4LF54602デフォルトの名無しさん
2017/10/15(日) 20:25:02.63ID:/8UsyUgn >>601
反論は、文句じゃなくて、理屈で返してください
反論は、文句じゃなくて、理屈で返してください
603デフォルトの名無しさん
2017/10/15(日) 20:27:43.57ID:zIm4LF54604デフォルトの名無しさん
2017/10/15(日) 20:58:42.66ID:/8UsyUgn >>603
理屈で返せない理由がそれ?
理屈で返せない理由がそれ?
605デフォルトの名無しさん
2017/10/15(日) 21:03:02.20ID:KCBqed/H606デフォルトの名無しさん
2017/10/15(日) 21:06:15.70ID:/8UsyUgn607デフォルトの名無しさん
2017/10/15(日) 21:13:49.98ID:zIm4LF54 >>606
いや、もうただの屁理屈じゃんお前の
設定ファイルの読み込み処理がバグってるかもしんねーじゃん
最終的な動作の確認は絶対必要じゃん
お客からしたら設定値なんて
ファイルに出そうがソースに埋め込もうが知ったこっちゃないじゃん
ただ、お約束した機能が動いているかどうかはお客さんとの約束でしょ?
その確認をしないでどーすん?
いや、もうただの屁理屈じゃんお前の
設定ファイルの読み込み処理がバグってるかもしんねーじゃん
最終的な動作の確認は絶対必要じゃん
お客からしたら設定値なんて
ファイルに出そうがソースに埋め込もうが知ったこっちゃないじゃん
ただ、お約束した機能が動いているかどうかはお客さんとの約束でしょ?
その確認をしないでどーすん?
608デフォルトの名無しさん
2017/10/15(日) 21:17:26.65ID:/8UsyUgn > 設定ファイルの読み込み処理がバグってるかもしんねーじゃん
ならそこだけをテストすりゃいーだろ。
仕事は減らす方向に向かって頑張れよ。
人海戦術で時間をかけたらからって
偉くもなんともないんだぞ
ならそこだけをテストすりゃいーだろ。
仕事は減らす方向に向かって頑張れよ。
人海戦術で時間をかけたらからって
偉くもなんともないんだぞ
609デフォルトの名無しさん
2017/10/15(日) 21:21:47.27ID:KCBqed/H >>606
まずはどっちなの?
まずはどっちなの?
610デフォルトの名無しさん
2017/10/15(日) 21:22:09.90ID:/8UsyUgn > ただ、お約束した機能が動いているかどうかはお客さんとの約束でしょ?
> その確認をしないでどーすん?
その確認をどーするって、お前は客にテストやりましたって
エクセルシートでも送りつけて、それが本当かもわからないのに
これ見て納得してくださいってやってるんだろ?何一つ証拠がねーよ。
それともテスト作業してる動画を何時間も見せてこれが証拠ですとでもやるつもりか?
コード見せたって客はその内容わからないかもしれないし、
テストコード見せたって、それがソースコードの形じゃやっぱりわからない。
エクセルファイル見せたって、それを本当にやったかどうかもわからない。
間違って記入しているかもしれない。何にもあてにならないよね。
俺が言ってるのは、客にも簡単にわかるような形でデータを作り
そのデータをそのままプログラムで使えって言ってるの。
客がそれみて納得すりゃそれでOKだし、そのファイルを
直接使うからもちろんその通りに動く。
客の検収作業が、そのまま目視による確認になってるんだが。
> その確認をしないでどーすん?
その確認をどーするって、お前は客にテストやりましたって
エクセルシートでも送りつけて、それが本当かもわからないのに
これ見て納得してくださいってやってるんだろ?何一つ証拠がねーよ。
それともテスト作業してる動画を何時間も見せてこれが証拠ですとでもやるつもりか?
コード見せたって客はその内容わからないかもしれないし、
テストコード見せたって、それがソースコードの形じゃやっぱりわからない。
エクセルファイル見せたって、それを本当にやったかどうかもわからない。
間違って記入しているかもしれない。何にもあてにならないよね。
俺が言ってるのは、客にも簡単にわかるような形でデータを作り
そのデータをそのままプログラムで使えって言ってるの。
客がそれみて納得すりゃそれでOKだし、そのファイルを
直接使うからもちろんその通りに動く。
客の検収作業が、そのまま目視による確認になってるんだが。
611デフォルトの名無しさん
2017/10/15(日) 21:36:21.23ID:hZRxEBGG >>591
メールアドレスじゃなく郵便番号くらいを例にしたほうがよかったかね
どういうメールアドレスを正しい形式とするかは要件によって変わってくるんだよ
RFCがあるからといって技術者が勝手に決められるものじゃないから
簡単な郵便番号の入力チェックでも
何をOKとして何をNGとするかは要件次第
その「目視の確認」で一体何が担保できるんだろうね?
1500001
150-0001
150−0001
150 (旧3桁)
150-01 (旧5桁)
150-9999 (存在しない)
あらゆるケースをすべてテストできるわけでもないしするべきでもないが
仕様通りに動くと自信を持てるレベルのテストはすべき
メールアドレスじゃなく郵便番号くらいを例にしたほうがよかったかね
どういうメールアドレスを正しい形式とするかは要件によって変わってくるんだよ
RFCがあるからといって技術者が勝手に決められるものじゃないから
簡単な郵便番号の入力チェックでも
何をOKとして何をNGとするかは要件次第
その「目視の確認」で一体何が担保できるんだろうね?
1500001
150-0001
150−0001
150 (旧3桁)
150-01 (旧5桁)
150-9999 (存在しない)
あらゆるケースをすべてテストできるわけでもないしするべきでもないが
仕様通りに動くと自信を持てるレベルのテストはすべき
612デフォルトの名無しさん
2017/10/15(日) 21:42:30.40ID:zIm4LF54 >>608
はぁ?馬鹿?
設定ファイルが間違ってる可能性は?
読み込みはうまく行っても
値が反映されてない可能性は?
それが設定ファイルのある特定の設定値だけバグる可能性は?
まあ、普通に仕様通りに動くこと確認した方が早いよね?
はぁ?馬鹿?
設定ファイルが間違ってる可能性は?
読み込みはうまく行っても
値が反映されてない可能性は?
それが設定ファイルのある特定の設定値だけバグる可能性は?
まあ、普通に仕様通りに動くこと確認した方が早いよね?
613デフォルトの名無しさん
2017/10/15(日) 21:43:34.59ID:/8UsyUgn > メールアドレスじゃなく郵便番号くらいを例にしたほうがよかったかね
> どういうメールアドレスを正しい形式とするかは要件によって変わってくるんだよ
> RFCがあるからといって技術者が勝手に決められるものじゃないから
>
> 簡単な郵便番号の入力チェックでも
> 何をOKとして何をNGとするかは要件次第
> その「目視の確認」で一体何が担保できるんだろうね?
メールアドレスや郵便番号でもなんでもいいが、
ある項目が「メールアドレス」や「郵便番号」であることが担保できる。
これにより仮にバグがあったとしても、一箇所を修正するだけで
すべてが修正されることが担保できる。
動かして確認する方法だと、ある箇所のバグが修正されたからといって
別の場所も同じように修正されるとは限らない。
目視の確認ができるようにしておくことで、工数が大幅に削減できた。
> どういうメールアドレスを正しい形式とするかは要件によって変わってくるんだよ
> RFCがあるからといって技術者が勝手に決められるものじゃないから
>
> 簡単な郵便番号の入力チェックでも
> 何をOKとして何をNGとするかは要件次第
> その「目視の確認」で一体何が担保できるんだろうね?
メールアドレスや郵便番号でもなんでもいいが、
ある項目が「メールアドレス」や「郵便番号」であることが担保できる。
これにより仮にバグがあったとしても、一箇所を修正するだけで
すべてが修正されることが担保できる。
動かして確認する方法だと、ある箇所のバグが修正されたからといって
別の場所も同じように修正されるとは限らない。
目視の確認ができるようにしておくことで、工数が大幅に削減できた。
614デフォルトの名無しさん
2017/10/15(日) 21:44:37.83ID:/8UsyUgn615デフォルトの名無しさん
2017/10/15(日) 21:44:44.64ID:zIm4LF54 想像力が足りないから不具合が無いように見えるんだろうね
想像力足りなくてもこういうの経験ないのかな?
経験不足もあるのかな?
考えが幼いよ
想像力足りなくてもこういうの経験ないのかな?
経験不足もあるのかな?
考えが幼いよ
616デフォルトの名無しさん
2017/10/15(日) 21:45:37.94ID:zIm4LF54 >>614
じゃあ、普通に全部テストするってレスしてるよね?w
じゃあ、普通に全部テストするってレスしてるよね?w
617デフォルトの名無しさん
2017/10/15(日) 21:48:35.14ID:/8UsyUgn >>616
お前関数って知らないのか?
共通化の基本テクニックだぞ?
全てのメールアドレスや郵便番号の項目で
同じ関数を使うんだよ。
テストをするのはその関数のみ。
バリデーションとしてその関数を使っているかどうかを
設定ファイルに書く。
何度も同じ話をさせるな
お前関数って知らないのか?
共通化の基本テクニックだぞ?
全てのメールアドレスや郵便番号の項目で
同じ関数を使うんだよ。
テストをするのはその関数のみ。
バリデーションとしてその関数を使っているかどうかを
設定ファイルに書く。
何度も同じ話をさせるな
618デフォルトの名無しさん
2017/10/15(日) 21:53:28.83ID:zIm4LF54619デフォルトの名無しさん
2017/10/15(日) 22:00:17.33ID:/8UsyUgn >>618
見えない情報がある時点で、動かした所で
どんな場合でも動くとは証明できないってのは理解できてる?
ソースコードを読めば動かさなくてもわかる問題でも
ソースコードを隠した状態だと動かした結果だけでは証明できなくなる。
見えない情報がある時点で、動かした所で
どんな場合でも動くとは証明できないってのは理解できてる?
ソースコードを読めば動かさなくてもわかる問題でも
ソースコードを隠した状態だと動かした結果だけでは証明できなくなる。
620デフォルトの名無しさん
2017/10/15(日) 22:03:56.10ID:zIm4LF54 >>619
俺の質問に答える気はあるのかな?
もちろん答えは千差万別だが
お前のソフトが動くことの証明をして欲しいんだよ
一度でもソフトを納品したことがあるならわかるよね?
上司におんぶで抱っこでそんなこと気にしたことなかった?
俺の質問に答える気はあるのかな?
もちろん答えは千差万別だが
お前のソフトが動くことの証明をして欲しいんだよ
一度でもソフトを納品したことがあるならわかるよね?
上司におんぶで抱っこでそんなこと気にしたことなかった?
621デフォルトの名無しさん
2017/10/15(日) 22:08:32.52ID:/8UsyUgn622デフォルトの名無しさん
2017/10/15(日) 22:09:42.31ID:/8UsyUgn ソフトウェアの納品は、動くことの証明じゃない。
これだけやりました。やったという証拠です。信じてください。
バグはないと思います(実際には有るだろ?)
という意味でしかない。
気にしたことなかった?
これだけやりました。やったという証拠です。信じてください。
バグはないと思います(実際には有るだろ?)
という意味でしかない。
気にしたことなかった?
623デフォルトの名無しさん
2017/10/15(日) 22:10:40.16ID:/8UsyUgn いや、ソフトウェア納品でバグが1つもないと
証明するものを出したというのであれば、
それを言ってくれて良いんだが?
バグが有ることは証明できるが
バグがない(正しく動く)ことは証明できない
常識なんだがねぇ。
証明するものを出したというのであれば、
それを言ってくれて良いんだが?
バグが有ることは証明できるが
バグがない(正しく動く)ことは証明できない
常識なんだがねぇ。
624デフォルトの名無しさん
2017/10/15(日) 22:16:36.59ID:zIm4LF54625デフォルトの名無しさん
2017/10/15(日) 22:20:08.75ID:/8UsyUgn626デフォルトの名無しさん
2017/10/15(日) 22:26:02.41ID:zIm4LF54 >>625
いいや
ソフトウェアって上から下まで
さっきお前が言ったとおり
確実なものなんか何一つないよ
お前の十分だってお前の中の十分だろ?
俺等とは違うの
その差分を俺らとは違うお前は自分で埋めなければならない
そこに理屈はない
それが説得ってもんじゃん
人を見るのが嫌ならこの業界は向いてないね
いいや
ソフトウェアって上から下まで
さっきお前が言ったとおり
確実なものなんか何一つないよ
お前の十分だってお前の中の十分だろ?
俺等とは違うの
その差分を俺らとは違うお前は自分で埋めなければならない
そこに理屈はない
それが説得ってもんじゃん
人を見るのが嫌ならこの業界は向いてないね
627デフォルトの名無しさん
2017/10/15(日) 22:31:22.39ID:/8UsyUgn 結局屁理屈でごまかしたかw
無能なお前らと違うと言っても
だから何としか言えんわw
無能なお前らと違うと言っても
だから何としか言えんわw
628デフォルトの名無しさん
2017/10/15(日) 22:41:19.56ID:zIm4LF54 >>627
結局、テスト仕様書もテスト結果も
全ては説得なんだよ
理論に飛躍があり過ぎる
ウォーターフォールのV字開発で
設定ファイルに外だししたから
テスト項目減りますなんざ
あり得ない理論なんだよ
まあ、当然説得なんで可愛い女の子が交渉してくれば通る可能性も無きにしもあらずではあるけどね
結局、テスト仕様書もテスト結果も
全ては説得なんだよ
理論に飛躍があり過ぎる
ウォーターフォールのV字開発で
設定ファイルに外だししたから
テスト項目減りますなんざ
あり得ない理論なんだよ
まあ、当然説得なんで可愛い女の子が交渉してくれば通る可能性も無きにしもあらずではあるけどね
629デフォルトの名無しさん
2017/10/15(日) 23:06:53.56ID:nlQ3NzZf630あ
2017/10/16(月) 00:16:25.05ID:Qeq9VPfc 2008年くらいに.net FWの地雷踏みまくった事を鑑みると、
テスト仕様は要件定義から作成すべきだし、その実施も単体、結合レベルは機械的に掛けてもいいけど、総合は手でやるべきだろうなぁ。
「テスト対象はまともに動いていない」という仮説を、ケース毎に一つずつ潰していって、残るのが「正常に動いてる」って結果なのが試験で
「正常に動いてる」が先に立って「なぜならこう書いたから、こう動くはずで、現にそう動いてる」ってのは試験じゃなくて単なる確認では?
正直、単体テストでもテスト対象を作った言語を使わないでテストして欲しいところ。
テスト仕様は要件定義から作成すべきだし、その実施も単体、結合レベルは機械的に掛けてもいいけど、総合は手でやるべきだろうなぁ。
「テスト対象はまともに動いていない」という仮説を、ケース毎に一つずつ潰していって、残るのが「正常に動いてる」って結果なのが試験で
「正常に動いてる」が先に立って「なぜならこう書いたから、こう動くはずで、現にそう動いてる」ってのは試験じゃなくて単なる確認では?
正直、単体テストでもテスト対象を作った言語を使わないでテストして欲しいところ。
631デフォルトの名無しさん
2017/10/16(月) 04:11:08.89ID:LbOcJE9h 結局ID:/8UsyUgnは>>609にレスできずに逃げたのかよ w
632デフォルトの名無しさん
2017/10/16(月) 23:24:09.06ID:t2YDIrX7 >>631
場合によるので「どちらも」が正解
場合によるので「どちらも」が正解
633デフォルトの名無しさん
2017/10/17(火) 05:56:41.14ID:kMB04QqG634デフォルトの名無しさん
2017/10/17(火) 19:34:45.23ID:lUBT12Jg >コードは正しくても実行するとうまく動かないとか経験したこと俺はマニュアルどおりやったからこのコードは動かないけど正しいんだ!
635デフォルトの名無しさん
2017/10/17(火) 20:15:05.57ID:EyAJ3Syg 「Object Oriented」は「オブジェクト指向」と訳されていますが、実はこれが大変な誤訳で、正しくは「目的志向」です。
つまり、何らかの目的があって、それを目指す(「指向」は向いているだけ)というわけです。
つまり、何らかの目的があって、それを目指す(「指向」は向いているだけ)というわけです。
636デフォルトの名無しさん
2017/10/17(火) 20:25:59.57ID:jqryz7F2 目的はObjective
Objectは単純に『物』の意味だよ。
Objectは単純に『物』の意味だよ。
637デフォルトの名無しさん
2017/10/17(火) 20:28:58.13ID:EyAJ3Syg >>636
典拠をご提示いただきたい
典拠をご提示いただきたい
638デフォルトの名無しさん
2017/10/17(火) 20:53:30.82ID:G9wCIPXR >>637
まず自分が提示しろ
まず自分が提示しろ
639デフォルトの名無しさん
2017/10/17(火) 21:02:26.86ID:y2IFefmv 依存しあってんじゃねーよ
640デフォルトの名無しさん
2017/10/17(火) 21:19:29.37ID:EyAJ3Syg641デフォルトの名無しさん
2017/10/17(火) 21:56:16.29ID:G9wCIPXR >>640
お、おう。。それもJittaさんか…
面白い捉え方だと思うけど
Object Orientedという言葉が出てきた歴史を調べれば
「目的指向」が誤訳なのが分かるよ
https://en.wikipedia.org/wiki/Object-oriented_programming#History
お、おう。。それもJittaさんか…
面白い捉え方だと思うけど
Object Orientedという言葉が出てきた歴史を調べれば
「目的指向」が誤訳なのが分かるよ
https://en.wikipedia.org/wiki/Object-oriented_programming#History
642デフォルトの名無しさん
2017/10/17(火) 22:34:25.19ID:EyAJ3Syg643あ
2017/10/17(火) 22:41:00.56ID:GZgPL7cm まあ英語でObject orientedだと、大体は対象志向みたいな意味合いだけどな。
Objectって単語は、モノと言うよりも「認識できる何か」「動作や感情の対象」を指す。
動詞になると顕著で、「俺はこれに文句があるんだが」ぐらいキツい意味。
「I object to waiting」みたいな。
Ob + ject 。前に向かって投げたやつ。客観的に見ることができる物、が語源。
逆に、中に投げ入れるモノがinject。下に投げたものがsubject(自我、主観)。
Objectって単語は、モノと言うよりも「認識できる何か」「動作や感情の対象」を指す。
動詞になると顕著で、「俺はこれに文句があるんだが」ぐらいキツい意味。
「I object to waiting」みたいな。
Ob + ject 。前に向かって投げたやつ。客観的に見ることができる物、が語源。
逆に、中に投げ入れるモノがinject。下に投げたものがsubject(自我、主観)。
644あ
2017/10/17(火) 22:46:44.09ID:GZgPL7cm645デフォルトの名無しさん
2017/10/17(火) 22:54:02.93ID:0cEpFleP646デフォルトの名無しさん
2017/10/17(火) 22:55:17.94ID:0cEpFleP 食べモノ、飲みモノ
も追加しよう
も追加しよう
647デフォルトの名無しさん
2017/10/17(火) 22:55:26.36ID:xucK+Hbm thingは?
648デフォルトの名無しさん
2017/10/17(火) 22:55:57.78ID:EyAJ3Syg >>643
つまりJittaさんが大正解ってこと?
つまりJittaさんが大正解ってこと?
649デフォルトの名無しさん
2017/10/17(火) 22:59:32.89ID:xucK+Hbm 目的を指向するってメチャクチャ当たり前だなw 殊更言葉にするのが恥ずかしいくらい
650デフォルトの名無しさん
2017/10/17(火) 23:08:10.96ID:O+BDW8Aj 責務指向でいいじゃん?
651デフォルトの名無しさん
2017/10/17(火) 23:20:41.75ID:A1W0Ufl3 役割って感じ?
objectではないけどしっくり来る
objectではないけどしっくり来る
652デフォルトの名無しさん
2017/10/17(火) 23:31:17.25ID:EyAJ3Syg 責務駆動設計とか言うよね
653デフォルトの名無しさん
2017/10/17(火) 23:35:58.51ID:0cEpFleP せやかて駆動設計
654デフォルトの名無しさん
2017/10/17(火) 23:36:27.01ID:O+BDW8Aj 責務はいつも一つ!
655デフォルトの名無しさん
2017/10/17(火) 23:38:24.92ID:EyAJ3Syg >>654
いいね!
いいね!
656デフォルトの名無しさん
2017/10/17(火) 23:47:01.89ID:G9wCIPXR Functional ProgrammingのFunctionにだって責務あるし
POAのProcessやDOAのDataにだって責務は有る
他と違って「オブジェクト」という抽象概念を中心に物事を考えるからオブジェクト指向という名前
んでオブジェクトってのは↓
a data structure that can contain functions as well as data, variables, and other data structures
https://www.merriam-webster.com/dictionary/object
POAのProcessやDOAのDataにだって責務は有る
他と違って「オブジェクト」という抽象概念を中心に物事を考えるからオブジェクト指向という名前
んでオブジェクトってのは↓
a data structure that can contain functions as well as data, variables, and other data structures
https://www.merriam-webster.com/dictionary/object
657デフォルトの名無しさん
2017/10/17(火) 23:58:04.35ID:EyAJ3Syg Object oriented languageは
・カプセル化、継承、多態性をサポートするもの
・JavaやC++、Rubyなど
Object based languageは
・継承・多態性をサポートしないもの
・VBなど
orientedはbasedと似たような意味で、basedよりも多くの条件を規定する。
Object based languageを「オブジェクトを基本にした言語」と解釈するならば
Object oriented languageは「オブジェクトを本位にした言語」と解釈するのが妥当な気がする。
「本位」は中心にして基本にするという意味なので「基本」を強めてる感じ。
・カプセル化、継承、多態性をサポートするもの
・JavaやC++、Rubyなど
Object based languageは
・継承・多態性をサポートしないもの
・VBなど
orientedはbasedと似たような意味で、basedよりも多くの条件を規定する。
Object based languageを「オブジェクトを基本にした言語」と解釈するならば
Object oriented languageは「オブジェクトを本位にした言語」と解釈するのが妥当な気がする。
「本位」は中心にして基本にするという意味なので「基本」を強めてる感じ。
658デフォルトの名無しさん
2017/10/17(火) 23:58:36.63ID:EyAJ3Syg >>656
やっぱそうだよね、オブジェクトを中心にするっていうのがオブジェクト指向だよね
やっぱそうだよね、オブジェクトを中心にするっていうのがオブジェクト指向だよね
659デフォルトの名無しさん
2017/10/18(水) 00:03:46.63ID:YCPgdWPh661デフォルトの名無しさん
2017/10/18(水) 00:36:43.88ID:GswCLlj6 ピッタリの訳語がないから
新しく作るか (例 経済)
既存の言葉に新しい意味を持たせるか (例 自由)
ちなみに中国語訳では「対象」らしい
新しく作るか (例 経済)
既存の言葉に新しい意味を持たせるか (例 自由)
ちなみに中国語訳では「対象」らしい
662あ
2017/10/18(水) 00:58:52.74ID:a2+TOoEN663デフォルトの名無しさん
2017/10/18(水) 07:54:38.23ID:/RGzz2zm 抽象的な部分は合ってるな
664デフォルトの名無しさん
2017/10/18(水) 07:56:46.88ID:/RGzz2zm orientedも指向より主導の方がいいと何かの本で書いてたな
665デフォルトの名無しさん
2017/10/18(水) 08:07:11.64ID:/RGzz2zm 主体とか本位とかでもいいかもね
役割主体、役割本位
役割主体、役割本位
666デフォルトの名無しさん
2017/10/18(水) 08:13:24.82ID:lHCL+31V667デフォルトの名無しさん
2017/10/18(水) 14:09:11.49ID:hmGkDgR5 人間の方の理解のために「”もの“になにかやらせる」
「”もの“を複製して別な”もの“のパーツとして使う」
これわかりやすいっしょ?
どんどん再利用パーツ増えて複雑になってったらこうじゃないとキツイっしょ。
で提唱されたってのに、すぐにベテランプログラマーさんは
「この名前さあ、タイプすんのめんどくさいから「あ」「い」「う」でよくね?」と他人にわからない暗号にしたがったり
「オブジェクト指向ってさぁ、オブジェクト単位に分けるんっしょ?この再利用しない中身もさぁ
ぜんぶ用途別に名前つけてパーツに分類整理しなきゃ!」とかやりなさる…
「”もの“を複製して別な”もの“のパーツとして使う」
これわかりやすいっしょ?
どんどん再利用パーツ増えて複雑になってったらこうじゃないとキツイっしょ。
で提唱されたってのに、すぐにベテランプログラマーさんは
「この名前さあ、タイプすんのめんどくさいから「あ」「い」「う」でよくね?」と他人にわからない暗号にしたがったり
「オブジェクト指向ってさぁ、オブジェクト単位に分けるんっしょ?この再利用しない中身もさぁ
ぜんぶ用途別に名前つけてパーツに分類整理しなきゃ!」とかやりなさる…
668あ
2017/10/18(水) 19:20:47.11ID:a2+TOoEN そうなると、クラスって何だ、インスタンスって何だ、コピーなら、コピー元も何かの役割を果たしてたんだろ?みたいな明後日の事言われるからな。
プレスの金型と、それで作り出した製品くらいの言い方の方が伝わる。
たまに金型に便利な治具ついてることもあるし、付けることもできて、それはプレスせずに金型から直接使えますが、
その治具にメモとかつけると皆から見えたり、誰かに剥がされたりするので、必要がなければ製品に付けたほうがいいですよ、
何回プレスしたかのカウンタとかは治具につけたら良いですね。みたいに説明した事ある。
スーパークラスとかサブクラスも、同じように、互換品の金型と互換品とかそういう説明できるから、物理な型で説明すると割とわかってくれる。
プレスの金型と、それで作り出した製品くらいの言い方の方が伝わる。
たまに金型に便利な治具ついてることもあるし、付けることもできて、それはプレスせずに金型から直接使えますが、
その治具にメモとかつけると皆から見えたり、誰かに剥がされたりするので、必要がなければ製品に付けたほうがいいですよ、
何回プレスしたかのカウンタとかは治具につけたら良いですね。みたいに説明した事ある。
スーパークラスとかサブクラスも、同じように、互換品の金型と互換品とかそういう説明できるから、物理な型で説明すると割とわかってくれる。
669デフォルトの名無しさん
2017/10/18(水) 22:26:09.70ID:FgeE42WT 適切な訳語、的確なメタファって大事やね
670あ
2017/10/18(水) 23:14:36.30ID:a2+TOoEN プロトタイプベースな言語だと、コピーのメタファの方が的確になったり、まぁ難しいわ、もう自分が知ってる物を、1から人に教える順番を考えるのは。
671デフォルトの名無しさん
2017/10/19(木) 00:15:22.98ID:ycrHDnwP 自分がちゃんと理解してないものは人に説明できないって言うしね
672デフォルトの名無しさん
2017/10/19(木) 07:18:30.10ID:mnQ3FyhH ガウディ本読んでから議論して欲しいね。
673あ
2017/10/19(木) 08:25:03.58ID:Qitn7VqG >>671
わかるわ。耳が痛い。教育することになって逆に知る事も多かったしな。
若手の新アイディアは、素直に教えてもらってる。
たまに俺が相槌しか話してないうちに「出直します」って言うから、どうやらテディベアとしても活用されてる模様。
わかるわ。耳が痛い。教育することになって逆に知る事も多かったしな。
若手の新アイディアは、素直に教えてもらってる。
たまに俺が相槌しか話してないうちに「出直します」って言うから、どうやらテディベアとしても活用されてる模様。
674デフォルトの名無しさん
2017/10/19(木) 08:44:29.39ID:CxX652pT >>673
気持ち悪い
気持ち悪い
675デフォルトの名無しさん
2017/10/19(木) 08:45:50.14ID:CxX652pT 自分の行動を素直にと修飾するところが完全に淫乱テディベア
676デフォルトの名無しさん
2017/10/19(木) 20:46:11.30ID:SO5YirTn オブジェクト指向を理解させたければ
まずはオブジェクトを理解させることからはじめないと
クラスやプロトタイプは二の次でいいし
責務や役割は別レイヤーの話
まずはオブジェクトを理解させることからはじめないと
クラスやプロトタイプは二の次でいいし
責務や役割は別レイヤーの話
677デフォルトの名無しさん
2017/10/20(金) 06:47:53.32ID:2DRMxDJ6 DDDって結構やってるもん?
678デフォルトの名無しさん
2017/10/20(金) 07:15:39.98ID:VprmOZRL ディスプレーディスパッチドライバ。
679デフォルトの名無しさん
2017/10/20(金) 07:46:42.44ID:l3SzA2hH680デフォルトの名無しさん
2017/10/20(金) 08:25:54.77ID:VprmOZRL 韓国に学べ!
681デフォルトの名無しさん
2017/10/20(金) 08:30:05.48ID:E/kZ39qH >>677
3Dゲームはよくやる
3Dゲームはよくやる
682デフォルトの名無しさん
2017/10/20(金) 08:43:33.27ID:cXXy/ND2683デフォルトの名無しさん
2017/10/20(金) 08:54:44.62ID:2DRMxDJ6684デフォルトの名無しさん
2017/10/20(金) 18:29:33.31ID:yLtxI7rs685デフォルトの名無しさん
2017/10/20(金) 20:39:31.31ID:QLYblo8q たとえば>>26をDDDでやるとどんな感じになるの?
DCIでやったときとの違いも知りたい
DCIでやったときとの違いも知りたい
686デフォルトの名無しさん
2017/10/20(金) 22:19:22.96ID:tVzPx1a9 >>685
まず本人を召還して質問攻めにする
まず本人を召還して質問攻めにする
687デフォルトの名無しさん
2017/10/21(土) 01:13:21.31ID:Uy6nGuGD アンドロイドアプリ開発って稼げるんかな?
688デフォルトの名無しさん
2017/10/21(土) 01:50:48.55ID:7iF7m8RQ レッドオーシャン
689デフォルトの名無しさん
2017/10/21(土) 11:03:31.78ID:hrRqQerQ2017/10/22(日) 16:21:52.81ID:cbaZLKfH
2017/10/22(日) 19:45:01.88ID:+ZCERvep
692デフォルトの名無しさん
2017/10/22(日) 20:06:35.35ID:rLFHcAK9 役員やパート・アルバイト等、社員以外のケースがあるんじゃね?
693デフォルトの名無しさん
2017/10/22(日) 22:16:25.60ID:ACc+t4fi >>592
お金を移動させる
お金を移動させる
694デフォルトの名無しさん
2017/10/22(日) 22:16:28.27ID:guBNBPv4 >>592
目的語でひとくくりにするとわかりにくいけど
日本語では名詞が述語をどう修飾するかは格で区別されるから
格を考えればよいかと
1.「振り込む」が述語ならば振込先は口座なので「社員の口座に」としたほうが良いかと
振り込む(社員の口座に:与格, 給料を:対格)
2.「社員に」を使うなら述語は「支払う」かな
支払う(社員に:与格, 給料を:対格)
3. 対格しか使いたくないんですということならば「社員の」という属格で対格を修飾するしかないんじゃないかな
振り込む(社員の給料を:対格)
目的語でひとくくりにするとわかりにくいけど
日本語では名詞が述語をどう修飾するかは格で区別されるから
格を考えればよいかと
1.「振り込む」が述語ならば振込先は口座なので「社員の口座に」としたほうが良いかと
振り込む(社員の口座に:与格, 給料を:対格)
2.「社員に」を使うなら述語は「支払う」かな
支払う(社員に:与格, 給料を:対格)
3. 対格しか使いたくないんですということならば「社員の」という属格で対格を修飾するしかないんじゃないかな
振り込む(社員の給料を:対格)
695デフォルトの名無しさん
2017/10/22(日) 22:33:46.62ID:NNQ/H7Ih 文章だけで表現しなけりゃいいだろw
696デフォルトの名無しさん
2017/10/22(日) 22:52:37.75ID:6ZVx9hPm すっごい不評な法令検索つくって賞もらっている大学教授
法令データベース「e-Gov法令検索」リニューアルにあたり、同法情報研究センターの協力教員である名古屋大学情報基盤センター(センター長:森健策)の外山勝彦(とやまかつひこ)
法令データベース「e-Gov法令検索」リニューアルにあたり、同法情報研究センターの協力教員である名古屋大学情報基盤センター(センター長:森健策)の外山勝彦(とやまかつひこ)
697デフォルトの名無しさん
2017/10/24(火) 06:59:53.59ID:lnfs4xW4 DDDと言えば20項目の責務単位でドメインクラス作ったら一つのグラフ作るのに20個のクラスがデータベースに問い合わせちゃってパフォーマンスやばい
有識者のみなさんはどうやってるの?
有識者のみなさんはどうやってるの?
698デフォルトの名無しさん
2017/10/24(火) 07:10:47.55ID:vrotHuwu DDDならドメイン層とインフラ層のレイヤーは分けろ
つまりドメインのクラスが個々に
直接SQL文でDB叩いたりしない
つまりドメインのクラスが個々に
直接SQL文でDB叩いたりしない
699デフォルトの名無しさん
2017/10/24(火) 07:28:15.97ID:lnfs4xW4 >>698
例えばドメインクラス「作業時間」にhogeプロジェクトの作業時間を問い合わせた時、作業時間クラスがDBクラス使って作業時間を教えてくれるんじゃないの?
この辺解らないとパフォーマンスの問題でアクティブレコードに走っちゃいそうです
例えばドメインクラス「作業時間」にhogeプロジェクトの作業時間を問い合わせた時、作業時間クラスがDBクラス使って作業時間を教えてくれるんじゃないの?
この辺解らないとパフォーマンスの問題でアクティブレコードに走っちゃいそうです
700デフォルトの名無しさん
2017/10/24(火) 07:38:44.12ID:vrotHuwu >>699
たとえばソシャゲみたいなWebアプリをイメージしてみよう
一個アイテムを見るたびにDBアクセスしてたら重いから
画面を遷移するときにまとめてローディングするよな?
だからそういう風にインフラ層で
ある程度まとめてデータ取ってきて
ドメイン層の内部ではDBに直接触らないようにする
たとえばソシャゲみたいなWebアプリをイメージしてみよう
一個アイテムを見るたびにDBアクセスしてたら重いから
画面を遷移するときにまとめてローディングするよな?
だからそういう風にインフラ層で
ある程度まとめてデータ取ってきて
ドメイン層の内部ではDBに直接触らないようにする
701デフォルトの名無しさん
2017/10/24(火) 08:58:46.53ID:UVHXr0A6702デフォルトの名無しさん
2017/10/24(火) 12:12:03.52ID:lnfs4xW4703デフォルトの名無しさん
2017/10/24(火) 12:12:39.91ID:1mA0bXuL >>697
集約の単位が間違ってんじゃないの
集約の単位が間違ってんじゃないの
704デフォルトの名無しさん
2017/10/24(火) 12:15:40.46ID:lnfs4xW4 >>703
昔は画面単位にデータ取ってたけどトランザクションスクリプトアンチパターンになるから作業時間とか予算とかドメインでクラス分けたんだ
それぞれのクラスがデータベースに問い合わせるからウッホという状態に
昔は画面単位にデータ取ってたけどトランザクションスクリプトアンチパターンになるから作業時間とか予算とかドメインでクラス分けたんだ
それぞれのクラスがデータベースに問い合わせるからウッホという状態に
705デフォルトの名無しさん
2017/10/24(火) 17:47:57.40ID:cjHIRFnx >>697
基本は集約一つにリポジトリ一つ
レポーティング用途の場合はドメインモデルやリポジトリを経由せずに
DBレイヤーに直接問い合わせるのも有り
ドメインモデルを経由しなければ
ドメインロジックが分散する可能性があるのでトレードオフを判断したり
それを避ける工夫が必要だったりする
Patterns, Principles, and Practices of Domain-Driven Designって本で
一つの章使ってレポーティングの実装パターンを紹介してるので読むといいと思う
基本は集約一つにリポジトリ一つ
レポーティング用途の場合はドメインモデルやリポジトリを経由せずに
DBレイヤーに直接問い合わせるのも有り
ドメインモデルを経由しなければ
ドメインロジックが分散する可能性があるのでトレードオフを判断したり
それを避ける工夫が必要だったりする
Patterns, Principles, and Practices of Domain-Driven Designって本で
一つの章使ってレポーティングの実装パターンを紹介してるので読むといいと思う
706デフォルトの名無しさん
2017/10/24(火) 19:37:04.66ID:zYnBGUyD ドメイン駆動とORMって相性悪くない?
class Foo : ValueObject<Foo> { 〜 }
class Bar : ValueObject<Bar> { 〜 }
class Baz : ValueObject<Baz> { 〜 }
class Hoge : Entity<Hoge> {
private final Foo _foo;
private final Bar _bar;
public Hoge(Foo foo, Bar bar) {
Assert.notNull(foo);
Assert.notNull(bar);
_foo = foo;
_bar = bar;
}
public Baz queryBaz() {
// なんか計算する
return new Baz(...);
}
public Hoge doSomething() {
// なんか計算する
return new Hoge(..., _bar); // なんか計算した結果fooが変化する。_barはそのまま
}
}
ORMってこういうガチンコDDD的なオブジェクトってうまくマッピングしてくれないじゃん?
だからORM使おうとするとpublicプロパティに汚染されてゲロ吐きそうになる
かといってORMはDTOまでに留めてDTOとドメインオブジェクトのマッピングを手書きするってのはそれはそれでめんどくさい
class Foo : ValueObject<Foo> { 〜 }
class Bar : ValueObject<Bar> { 〜 }
class Baz : ValueObject<Baz> { 〜 }
class Hoge : Entity<Hoge> {
private final Foo _foo;
private final Bar _bar;
public Hoge(Foo foo, Bar bar) {
Assert.notNull(foo);
Assert.notNull(bar);
_foo = foo;
_bar = bar;
}
public Baz queryBaz() {
// なんか計算する
return new Baz(...);
}
public Hoge doSomething() {
// なんか計算する
return new Hoge(..., _bar); // なんか計算した結果fooが変化する。_barはそのまま
}
}
ORMってこういうガチンコDDD的なオブジェクトってうまくマッピングしてくれないじゃん?
だからORM使おうとするとpublicプロパティに汚染されてゲロ吐きそうになる
かといってORMはDTOまでに留めてDTOとドメインオブジェクトのマッピングを手書きするってのはそれはそれでめんどくさい
707デフォルトの名無しさん
2017/10/24(火) 19:50:43.93ID:bxrjOehA >>706
AutoMapper
AutoMapper
708デフォルトの名無しさん
2017/10/24(火) 20:00:23.46ID:zYnBGUyD >>707
AutoMapperってやつそんな賢いの?
AutoMapperってやつそんな賢いの?
709デフォルトの名無しさん
2017/10/24(火) 20:44:30.93ID:1mA0bXuL 逆にDDDこそORMだろ
集約をそのまま永続化したいんだから
集約をそのまま永続化したいんだから
710デフォルトの名無しさん
2017/10/24(火) 21:35:54.97ID:bxrjOehA >>708
使わないなんて考えられない
使わないなんて考えられない
711デフォルトの名無しさん
2017/10/24(火) 21:36:46.21ID:zYnBGUyD >>709
どうかな
さっきも書いたようにDDDに忠実にドメインモデルを構築するとpublicプロパティが無くなって完全コンストラクタでインスタンスを構築しなければならない
DTOのようにフラットな構造にならない点でもORMで扱いにくい
どうかな
さっきも書いたようにDDDに忠実にドメインモデルを構築するとpublicプロパティが無くなって完全コンストラクタでインスタンスを構築しなければならない
DTOのようにフラットな構造にならない点でもORMで扱いにくい
712デフォルトの名無しさん
2017/10/24(火) 21:46:26.94ID:zYnBGUyD そもそもDBが単にオブジェクトの置き場所になるってのも疑問だよ
RDBは個々のオブジェクトではなく集合としてのビジネスルールを表現するのに適している
単なるデータストアではない
1ヶ月の間に正当な休暇を間に挟まず3営業日連続で欠勤した従業員にはペナルティを与えるといった業務ルールがあったらSQLで解決するほうがスマート
RDBは個々のオブジェクトではなく集合としてのビジネスルールを表現するのに適している
単なるデータストアではない
1ヶ月の間に正当な休暇を間に挟まず3営業日連続で欠勤した従業員にはペナルティを与えるといった業務ルールがあったらSQLで解決するほうがスマート
713デフォルトの名無しさん
2017/10/24(火) 21:50:42.54ID:8vhM38kM どのORM使ってるの?
いまどきORMのために可視性を変えたりしないでしょ
いまどきORMのために可視性を変えたりしないでしょ
714デフォルトの名無しさん
2017/10/24(火) 21:58:23.29ID:8vhM38kM >>712
> そもそもDBが単にオブジェクトの置き場所になるってのも疑問だよ
DDDだろうとトランザクションスクリプトだろうとDBの役割は変わらないよ
ドメインモデルから見てあたかも単なるオブジェクトの置き場であるかのように振る舞うっていうのは、
そう振る舞うように作ってるからそうなるのであって、DBから見たら、アプリがDDDで作られてるかどうかなんてわからない
> そもそもDBが単にオブジェクトの置き場所になるってのも疑問だよ
DDDだろうとトランザクションスクリプトだろうとDBの役割は変わらないよ
ドメインモデルから見てあたかも単なるオブジェクトの置き場であるかのように振る舞うっていうのは、
そう振る舞うように作ってるからそうなるのであって、DBから見たら、アプリがDDDで作られてるかどうかなんてわからない
715デフォルトの名無しさん
2017/10/24(火) 22:02:14.66ID:vrotHuwu >>712
じつはそういう考え方もアリだと思う
SQLやPrologでビジネスルール書くのもアリ
でも現実的にはDDDの
インフラ層にDBを隔離するやり方が無難だと思う
SQLでビジネスロジックを表現すると
シンプルな例だと分かりやすく感じても
実務レベルの複雑なルールでは非常に難解になる
OOでチマチマ差分を書いていく方が分かりやすい
これはなんでOOが主流なのかの理由でもあると思う
じつはそういう考え方もアリだと思う
SQLやPrologでビジネスルール書くのもアリ
でも現実的にはDDDの
インフラ層にDBを隔離するやり方が無難だと思う
SQLでビジネスロジックを表現すると
シンプルな例だと分かりやすく感じても
実務レベルの複雑なルールでは非常に難解になる
OOでチマチマ差分を書いていく方が分かりやすい
これはなんでOOが主流なのかの理由でもあると思う
716デフォルトの名無しさん
2017/10/24(火) 23:18:27.01ID:7kpfYeDE717デフォルトの名無しさん
2017/10/25(水) 01:20:58.43ID:vWNNDC2i718デフォルトの名無しさん
2017/10/25(水) 07:21:56.95ID:xH/9oE/2 期待のデータベーススペシャリスト持ちが開発してくれたプログラム
1クラス1メソッドにSQLをぎっちり書いていてくれた
流石データベーススペシャリストだと思った
1クラス1メソッドにSQLをぎっちり書いていてくれた
流石データベーススペシャリストだと思った
719デフォルトの名無しさん
2017/10/25(水) 14:49:56.93ID:0GYD+24d そんなんアーキテクチャ検討時に認識合わせしとけよ
単なる指示ミス
単なる指示ミス
720デフォルトの名無しさん
2017/10/25(水) 18:41:28.64ID:xH/9oE/2721デフォルトの名無しさん
2017/10/25(水) 19:15:55.71ID:xH/9oE/2 データベーススペシャリストがSQLしか知らんのは仕方ない
ソフ開持ってなきゃね
ソフ開持ってなきゃね
722デフォルトの名無しさん
2017/10/25(水) 19:21:45.35ID:aatZ8FSF オブジェクト指向のスペシャリストとは言ってないからな
723デフォルトの名無しさん
2017/10/25(水) 19:39:46.07ID:Pb7+sINR メンバー集める時はくだらん資格のことより影響を受けた本とか聞いた方がいい
724デフォルトの名無しさん
2017/10/25(水) 19:51:28.91ID:U0g+4+bj オブジェクトにメソッドでリクエスト飛ばすと答が返ってくるならそれはそれでいいような…
725デフォルトの名無しさん
2017/10/25(水) 22:27:46.82ID:Iwa5PdiW726デフォルトの名無しさん
2017/10/25(水) 22:52:11.24ID:Pb7+sINR DBスキルつけても負の遺産と有害な社内規約のせいで役に立たないことが多いね
データアクセス層でオブジェクトにマップしたらもう二度と中は見たくない
データアクセス層でオブジェクトにマップしたらもう二度と中は見たくない
727デフォルトの名無しさん
2017/10/25(水) 23:16:26.90ID:0GYD+24d728デフォルトの名無しさん
2017/10/25(水) 23:17:51.80ID:Pb7+sINR J(AvA)し
729デフォルトの名無しさん
2017/10/26(木) 00:00:20.94ID:g5KvQD5L730デフォルトの名無しさん
2017/10/26(木) 01:11:04.35ID:dPE1fcQ6 スクリプトの方はjava表記多いけど
Javaの方は書籍とかもJAVA表記多いよねぇ
Javaの方は書籍とかもJAVA表記多いよねぇ
731デフォルトの名無しさん
2017/10/26(木) 01:17:09.43ID:1jsCLZfy ネット校正員多いけど
そんな表記は本質に全然関係ない
そんな表記は本質に全然関係ない
732デフォルトの名無しさん
2017/10/26(木) 02:05:07.05ID:1RkkpTof JAVAが得意とかJAVASCRIPT経験5年とか書いてるの見て
まともなコード書けるやつだと思えるの?
まともなコード書けるやつだと思えるの?
733デフォルトの名無しさん
2017/10/26(木) 03:24:25.76ID:6866r+hk そんなことで何か判断してる気になってるオマ、恥ずかしいぜw
734デフォルトの名無しさん
2017/10/26(木) 04:59:02.77ID:tVSriKDm java - コマンド。
Java - 言語。
JAVA - 茶。
Java - 言語。
JAVA - 茶。
735デフォルトの名無しさん
2017/10/26(木) 07:20:00.13ID:mjDXX7Bg736デフォルトの名無しさん
2017/10/26(木) 07:44:35.72ID:Mi26Cf7P >>735
不採用
不採用
737デフォルトの名無しさん
2017/10/26(木) 08:27:35.90ID:GZLf9rra >>734
わろちんこ
わろちんこ
738デフォルトの名無しさん
2017/10/26(木) 12:13:23.62ID:Tj52Vsp9 憂鬱なCプログラマのためのオブジェクト指向入門かなー
739デフォルトの名無しさん
2017/10/26(木) 12:23:18.31ID:zDn623em >>723
ワンピース
ワンピース
740デフォルトの名無しさん
2017/10/26(木) 17:24:51.39ID:AKbjs7qE 読みにくくなるとかでクラス禁止になった
で、大卒正社員PMがクラス作った俺を高卒非正規はスキルが無いと滅茶苦茶言ってる
帳票の抽象クラスとそれを継承した3帳票のクラス作っただけなのに
つかボタンイベントで作られるメソッド以外禁止にする勢い
で、大卒正社員PMがクラス作った俺を高卒非正規はスキルが無いと滅茶苦茶言ってる
帳票の抽象クラスとそれを継承した3帳票のクラス作っただけなのに
つかボタンイベントで作られるメソッド以外禁止にする勢い
741デフォルトの名無しさん
2017/10/26(木) 17:29:07.25ID:AKbjs7qE 前任者がボタンイベントのメソッドに処理をつらつら書いて完成させた成功体験が悪かったみたい
全部のメソッドに同じ処理をコピペしてるから修正の影響範囲がわけわからん
全部のメソッドに同じ処理をコピペしてるから修正の影響範囲がわけわからん
742デフォルトの名無しさん
2017/10/26(木) 17:42:08.61ID:5JraUsKU いや、いやいやいやいや
意外と侮れんぞそれ
意外と侮れんぞそれ
743デフォルトの名無しさん
2017/10/26(木) 17:56:41.42ID:uULs3yAC >>740
カスなチームでまともな自分アピールならマ板でやれよ
カスなチームでまともな自分アピールならマ板でやれよ
744デフォルトの名無しさん
2017/10/26(木) 18:00:39.29ID:5JraUsKU745デフォルトの名無しさん
2017/10/26(木) 19:31:42.55ID:e+Kal/eA 高卒非正規にそんなレベル要求すんなよ
746デフォルトの名無しさん
2017/10/26(木) 19:35:59.43ID:5JraUsKU 結局、ここで人を馬鹿にしてる奴等もいざ自分が説明する立場になったら
何もできんということは覚えておいたらええよ
何もできんということは覚えておいたらええよ
747デフォルトの名無しさん
2017/10/26(木) 19:39:51.16ID:+Etvl7cI748デフォルトの名無しさん
2017/10/26(木) 19:43:13.40ID:5JraUsKU >>747
俺じゃなくて大卒正社員PM様に説明して差し上げろ
俺じゃなくて大卒正社員PM様に説明して差し上げろ
749デフォルトの名無しさん
2017/10/26(木) 20:10:34.54ID:Ci1mUjz8750デフォルトの名無しさん
2017/10/26(木) 20:12:16.99ID:t2R1m7Go >>749
黙れ無職、はい論破
黙れ無職、はい論破
751デフォルトの名無しさん
2017/10/26(木) 20:16:04.62ID:t2R1m7Go 作っておしまいなソフトは多いし
規模が大きくないか、仕様が変わらないようなところなのかもしれないし
個別に修正するときはコピペした方が影響の範囲は小さくなるし
一か所見れば処理がわかるってんならコードの見通しもいいし
ソースコード見ない段階であれこれ言うのはちょっとちょっとちょっと
規模が大きくないか、仕様が変わらないようなところなのかもしれないし
個別に修正するときはコピペした方が影響の範囲は小さくなるし
一か所見れば処理がわかるってんならコードの見通しもいいし
ソースコード見ない段階であれこれ言うのはちょっとちょっとちょっと
752デフォルトの名無しさん
2017/10/27(金) 17:35:48.74ID:2941eAj7753デフォルトの名無しさん
2017/10/27(金) 17:38:42.80ID:5X4PuMCl754デフォルトの名無しさん
2017/10/27(金) 17:42:56.24ID:2941eAj7 無職じゃないって
つかクラス化した場合の有効性をコストで可視化しろって
もうバグ満載でリリースしてデスマーチコースだ
IT業界らしくなってきた
つかクラス化した場合の有効性をコストで可視化しろって
もうバグ満載でリリースしてデスマーチコースだ
IT業界らしくなってきた
755デフォルトの名無しさん
2017/10/27(金) 17:55:24.25ID:d3nx2286756デフォルトの名無しさん
2017/10/27(金) 18:19:51.82ID:WiM3d76u >>755
返信先間違えてない?
返信先間違えてない?
757デフォルトの名無しさん
2017/10/27(金) 18:20:59.58ID:/3yfU/y8 >>755
横からだがそれはコピペコードを勧めてるおじさんたちに言うべきだろ
横からだがそれはコピペコードを勧めてるおじさんたちに言うべきだろ
758デフォルトの名無しさん
2017/10/27(金) 18:21:31.07ID:WiM3d76u759デフォルトの名無しさん
2017/10/27(金) 21:26:57.91ID:2kHVS/Sf オブジェクト指向がダメって人は
言語何使ってるんだ?
オブジェクト指向言語のAPI使ってないってこと?
言語何使ってるんだ?
オブジェクト指向言語のAPI使ってないってこと?
760デフォルトの名無しさん
2017/10/27(金) 21:29:19.70ID:xe5glOPz オブジェクト指向ダメおじさんが棲んでいるのはC++
よくわかんだね
よくわかんだね
761デフォルトの名無しさん
2017/10/28(土) 01:33:34.05ID:Yx58My1K アップキャストの利点教えて
762デフォルトの名無しさん
2017/10/28(土) 08:20:30.57ID:rZWSN5Vz throw new AppException("ERR12345");
throw new AppException(ErrorCode.ERR12345);
throw new AppException(ErrorCode.BlogPostNotFound);
throw new BlogPostNotFoundException();
AppExceptions.ThrowBlogPostNotFound();
IAppException appExceptions = GetService<IAppExceptions>();
appExceptions.ThrowBlogPostNotFound();
どれがいい?
throw new AppException(ErrorCode.ERR12345);
throw new AppException(ErrorCode.BlogPostNotFound);
throw new BlogPostNotFoundException();
AppExceptions.ThrowBlogPostNotFound();
IAppException appExceptions = GetService<IAppExceptions>();
appExceptions.ThrowBlogPostNotFound();
どれがいい?
763デフォルトの名無しさん
2017/10/28(土) 08:33:43.36ID:LbiBQBTu 長すぎるのはだめ、変換がかかって脳の短期メモリを大量消費させるのもダメ
764デフォルトの名無しさん
2017/10/28(土) 10:05:21.85ID:BHZs+upa return ErrCode.Err12345;
765デフォルトの名無しさん
2017/10/28(土) 11:06:31.25ID:LD30atSw diとiocの組み合わせの意義を教えてください
シングルトンをどこが持ってるかが重要なんですか?
シングルトンをどこが持ってるかが重要なんですか?
766デフォルトの名無しさん
2017/10/28(土) 13:49:36.24ID:rFINW7JJ >>759
安定のVB
安定のVB
767デフォルトの名無しさん
2017/10/28(土) 15:22:23.29ID:GkEAGE6K >>766
話になんないな
話になんないな
768デフォルトの名無しさん
2017/10/28(土) 15:26:57.39ID:bXFe772l >>767
なぜ話にならないの?
なぜ話にならないの?
769デフォルトの名無しさん
2017/10/28(土) 15:27:19.93ID:bXFe772l VBには継承がないから!
みたいなことを言って恥をかくと良いよ
みたいなことを言って恥をかくと良いよ
770デフォルトの名無しさん
2017/10/28(土) 15:39:27.71ID:5jO14XmG オブジェクト指向の言語を使っても
オブジェクト指向でプログラムを作ることにはならんでしょうに
staticメソッドを中心にプログラム組むことだってできるし
それなりの規模がないとオブジェクト指向は効果を発揮しないのじゃないかな
オブジェクト指向でプログラムを作ることにはならんでしょうに
staticメソッドを中心にプログラム組むことだってできるし
それなりの規模がないとオブジェクト指向は効果を発揮しないのじゃないかな
771デフォルトの名無しさん
2017/10/28(土) 15:42:18.02ID:5jO14XmG そいえば旧VBは型の継承はサポートしてるんだよね
昨今は実装の継承はあまりやらない方がいんじゃないかって言われてるし
旧VBはオブジェクト指向言語と言っていいと思う
旧VB+ラムダ式の言語があれば最強な気がする
昨今は実装の継承はあまりやらない方がいんじゃないかって言われてるし
旧VBはオブジェクト指向言語と言っていいと思う
旧VB+ラムダ式の言語があれば最強な気がする
772デフォルトの名無しさん
2017/10/28(土) 16:07:07.99ID:rZWSN5Vz773デフォルトの名無しさん
2017/10/28(土) 16:14:28.71ID:GkEAGE6K >>768
ポリシーのない言語の何を話せと
ポリシーのない言語の何を話せと
774デフォルトの名無しさん
2017/10/28(土) 19:00:48.19ID:bXFe772l775デフォルトの名無しさん
2017/10/28(土) 20:33:50.28ID:U6aWHNpT VBが糞と言うよりVB使いにくそしかいないと言うことでしょ
言語に善悪はない
言語に善悪はない
776デフォルトの名無しさん
2017/10/28(土) 20:42:09.52ID:rZWSN5Vz VBはラムダのFunction省略できないとめんどくさくてやだ
777デフォルトの名無しさん
2017/10/28(土) 21:06:18.54ID:b0D8bUkC 「ナンバーズ-天才数学者の事件簿-」でFBIの技術官が犯人のwifi逆探知するのに
「ええ、ビジュアルベーシックで絞り込めば…」って言ってたし(ガクブル
「ええ、ビジュアルベーシックで絞り込めば…」って言ってたし(ガクブル
778デフォルトの名無しさん
2017/10/28(土) 21:11:03.11ID:rZWSN5Vz スーパーハッカーはみんなVB使うよね
779デフォルトの名無しさん
2017/10/28(土) 21:15:11.66ID:LbiBQBTu vb.netになって出来ることはC#と同じになったのになんか書き方がいちいち冗長
780デフォルトの名無しさん
2017/10/28(土) 22:27:57.05ID:GkEAGE6K やはり話にならないらしい
VBに毒されたものの末路だな
VBに毒されたものの末路だな
781デフォルトの名無しさん
2017/10/28(土) 22:33:02.48ID:/Db+MOdS 思いこみって怖いな
782デフォルトの名無しさん
2017/10/29(日) 21:04:57.30ID:YXSJDIox783デフォルトの名無しさん
2017/10/29(日) 22:10:12.67ID:8/yZ+26E VBってまだサポートされてんだっけ
Coreになってからさっぱり話題にならなくなったけど
Coreになってからさっぱり話題にならなくなったけど
784デフォルトの名無しさん
2017/10/29(日) 22:16:42.10ID:4sjZmv7g JavaScript併用しなければならないWeb開発だと文法違い過ぎるから敬遠されるだろうね
785デフォルトの名無しさん
2017/10/30(月) 07:04:36.23ID:s8k71vXD VBは言語の問題でなく使う奴が糞
8割がスマートUIを書きモダンな設計を読みにくいと一蹴する
4重ループにカウンタ現役
8割がスマートUIを書きモダンな設計を読みにくいと一蹴する
4重ループにカウンタ現役
786デフォルトの名無しさん
2017/10/30(月) 07:11:07.87ID:s8k71vXD VBAはオブジェクト指向が出来るように近代化して欲しいと思ったけどVBAごときでオブジェクト指向導入する規模とかヤバそうだから現状維持と緩やかな死が良いね
787デフォルトの名無しさん
2017/10/30(月) 07:17:28.85ID:s8k71vXD ER図とクラス図が似てくるのは危険な匂いしてますか?
正規化した物理設計レベルじゃ違うけど外仕レベルじゃ同等になっちゃう
正規化した物理設計レベルじゃ違うけど外仕レベルじゃ同等になっちゃう
788デフォルトの名無しさん
2017/10/31(火) 03:29:44.56ID:mdHqu73h789デフォルトの名無しさん
2017/11/01(水) 17:29:31.91ID:qqAk/1TW >>788
内部設計になってDBの正規化始めると確かに違います
ただ外部設計ではほぼ同じになるのでER図とクラス図に差が無いんです
ER図要るのかこれってなるので世間様はどう折り合い付けてるのか気になりまして
内部設計になってDBの正規化始めると確かに違います
ただ外部設計ではほぼ同じになるのでER図とクラス図に差が無いんです
ER図要るのかこれってなるので世間様はどう折り合い付けてるのか気になりまして
790デフォルトの名無しさん
2017/11/01(水) 19:42:14.01ID:4uxV0O6/ データベースは実装の奥底にあるものなので設計では何も決めない
データベースなしの状態で動くところまで実装してようやく、そろそろ永続化の実装考えようかって話が始まる
データベースなしの状態で動くところまで実装してようやく、そろそろ永続化の実装考えようかって話が始まる
791デフォルトの名無しさん
2017/11/01(水) 23:11:58.08ID:DVi/8EkI >>789
そのDB使う他のアプリケーションには必要だろう
そのDB使う他のアプリケーションには必要だろう
792デフォルトの名無しさん
2017/11/02(木) 06:51:48.84ID:lwOkXqsb 異なるアプリでデータベースを共有するの迷惑
APIを用意してくれ
APIを用意してくれ
793デフォルトの名無しさん
2017/11/02(木) 18:50:34.87ID:XzNKC0MY マイクロサービスか
やりたいけど構築するのが面倒だ
誰か代わりに作ってくれ
やりたいけど構築するのが面倒だ
誰か代わりに作ってくれ
794デフォルトの名無しさん
2017/11/03(金) 00:25:37.71ID:g9SR2OMf クラス依存症は、だいたいのところファンクションという概念すら理解できていないのが9割
クラスに格納されたデータという名詞的実体に安堵しているだけで
プログラムを書く才能も、システム設計する能力もないやつが
好き勝手にクラス図をかいて、ぼくのさいっきょなクラスチームを作るだけなんだよなあ
だから僕の考えたクラス構成という話題は出ても
そのクラスがどのように通信するかっていう話をオブジェクト指向信者は語らないの
なぜならばそのメッセージングを実装できないから
そのすばらしいクラスが単なるデータの塊でしかないことを
自分で書いた壮大な物語でカプセル化し、他人から見えなくしたいから
カプセル化って偉大だよなあ?
電卓やじゃんけんすら実装できないひ弱な自分を壮大なクラス図を書けばごまかせると錯覚できちゃうんだから
クラスに格納されたデータという名詞的実体に安堵しているだけで
プログラムを書く才能も、システム設計する能力もないやつが
好き勝手にクラス図をかいて、ぼくのさいっきょなクラスチームを作るだけなんだよなあ
だから僕の考えたクラス構成という話題は出ても
そのクラスがどのように通信するかっていう話をオブジェクト指向信者は語らないの
なぜならばそのメッセージングを実装できないから
そのすばらしいクラスが単なるデータの塊でしかないことを
自分で書いた壮大な物語でカプセル化し、他人から見えなくしたいから
カプセル化って偉大だよなあ?
電卓やじゃんけんすら実装できないひ弱な自分を壮大なクラス図を書けばごまかせると錯覚できちゃうんだから
795デフォルトの名無しさん
2017/11/03(金) 00:39:25.54ID:T1BwLucT VB.Netはもう20年ほど前に完全に移行しているんだけどなぁ
VB馬鹿にするやつがどれだけオブジェクト指向理解してんのか疑問だな
VB馬鹿にするやつがどれだけオブジェクト指向理解してんのか疑問だな
796デフォルトの名無しさん
2017/11/03(金) 01:01:02.20ID:EKwPnWZh797デフォルトの名無しさん
2017/11/03(金) 01:02:36.32ID:EKwPnWZh オブジェクトでプールして必要に応じて永続化してくれるようなサービスでもういいな
798デフォルトの名無しさん
2017/11/03(金) 02:56:41.30ID:9CXEo34m799デフォルトの名無しさん
2017/11/03(金) 09:36:22.11ID:khFcMPIR >>798
PHPをそこに並べる違和感
PHPをそこに並べる違和感
800デフォルトの名無しさん
2017/11/03(金) 10:39:58.84ID:r8BoLq9w 間違ってないんだから問題ないだろ。
あとついでに無名クラスを持っている言語
PHP、・・・
クロージャーを持ってる言語
PHP、・・・
トレイトを持ってる言語
PHP、・・・
ジェネレータを持っている言語
PHP、・・・
あとついでに無名クラスを持っている言語
PHP、・・・
クロージャーを持ってる言語
PHP、・・・
トレイトを持ってる言語
PHP、・・・
ジェネレータを持っている言語
PHP、・・・
801デフォルトの名無しさん
2017/11/03(金) 11:12:35.69ID:CFYOACkT PHPは最先端の言語だからな。だからこそ、バカには使いこなせない。
のに、バカがこぞって使うからクソ言語扱いされている。
のに、バカがこぞって使うからクソ言語扱いされている。
802デフォルトの名無しさん
2017/11/03(金) 11:32:59.46ID:11xKh3l5 PHPといえばPHP3だから仕方がない
803デフォルトの名無しさん
2017/11/03(金) 11:53:34.15ID:OuG6RHrP 10年経ったことにも気づかない引きこもりがいる板だからな
10年前に見かけた与太を今日話すことに違和感をおぼえる知能もない
プログラミングできるわけじゃないから、技術的な話にも初心者の質問にも応えられない
「ただ」「昔見かけたもの」を「書く」だけ
10年前に見かけた与太を今日話すことに違和感をおぼえる知能もない
プログラミングできるわけじゃないから、技術的な話にも初心者の質問にも応えられない
「ただ」「昔見かけたもの」を「書く」だけ
804デフォルトの名無しさん
2017/11/03(金) 20:34:02.69ID:gWq7s/sI >>795
VB6のコードをそのままVB.NETに移植する仕事を何度したことか
VB6のコードをそのままVB.NETに移植する仕事を何度したことか
805デフォルトの名無しさん
2017/11/03(金) 20:37:17.28ID:gWq7s/sI C系やる奴はPHPやJAVAもやってるけどVB使いはVBしかできないケースが多い
806デフォルトの名無しさん
2017/11/03(金) 20:43:59.17ID:CsNI9L5l >>804
ゴミを移植してゴミを作る仕事
ゴミを移植してゴミを作る仕事
807デフォルトの名無しさん
2017/11/03(金) 23:15:38.46ID:+QQUmgGP >>795
> VB.Netはもう20年ほど前に完全に移行しているんだけどなぁ
VB.netのリリースは2001年(16年前)なんだが...
> VB馬鹿にするやつがどれだけオブジェクト指向理解してんのか疑問だな
人の心配する前に自分の認知症の心配した方がいいぞ w
> VB.Netはもう20年ほど前に完全に移行しているんだけどなぁ
VB.netのリリースは2001年(16年前)なんだが...
> VB馬鹿にするやつがどれだけオブジェクト指向理解してんのか疑問だな
人の心配する前に自分の認知症の心配した方がいいぞ w
808デフォルトの名無しさん
2017/11/03(金) 23:36:33.86ID:lQ0XoM3e 四捨五入してみろ
809デフォルトの名無しさん
2017/11/03(金) 23:38:47.21ID:r8BoLq9w 0年になった
810デフォルトの名無しさん
2017/11/04(土) 08:50:40.41ID:KxJ3WBAq 20年ほど前じゃない16年前だ <- これアスペすぎるだろ
811デフォルトの名無しさん
2017/11/04(土) 08:56:19.44ID:/k8c/hp8 プログラマは基本アスペと考えてよい
812デフォルトの名無しさん
2017/11/04(土) 12:02:51.50ID:sTeHaJ1X >>810
20と16の区別もつかなくなってるのか w
20と16の区別もつかなくなってるのか w
813デフォルトの名無しさん
2017/11/04(土) 12:16:47.10ID:gO0rp64l Math.Round(16 / 10) * 10
814デフォルトの名無しさん
2017/11/04(土) 12:19:19.48ID:fdoXNWBH 8進数の20は10進数の16
すなわち、20=16、とな
すなわち、20=16、とな
815デフォルトの名無しさん
2017/11/04(土) 12:25:24.71ID:2EHXQrQJ >>814
天才
天才
816デフォルトの名無しさん
2017/11/04(土) 12:33:11.68ID:ENl7xTTM >>814
なら020って書かなきゃね
なら020って書かなきゃね
817デフォルトの名無しさん
2017/11/04(土) 12:51:55.25ID:zD8APvjd ヒント:8進数。
818デフォルトの名無しさん
2017/11/05(日) 19:58:02.68ID:B4RjlPFm VBとCOBOLはいまさら覚えたくねえなぁ
C系と記述が違うのに先進性は無いとか鬱になる
C系と記述が違うのに先進性は無いとか鬱になる
819デフォルトの名無しさん
2017/11/05(日) 22:07:38.20ID:CePAYm1Z 嫌なら使うな
820デフォルトの名無しさん
2017/11/06(月) 03:30:04.80ID:2Q/sT7xS ヤフーブログの https://blogs.yahoo.co.jp/kamyu_2010 にデザパタ解説を発見した。
821デフォルトの名無しさん
2017/11/06(月) 03:38:11.03ID:tjV5ukzM 分かりにくい解説だな
マルチポストする前に文章を見直せ
マルチポストする前に文章を見直せ
822デフォルトの名無しさん
2017/11/06(月) 06:54:06.00ID:+zcozLzP これはひどい
823デフォルトの名無しさん
2017/11/08(水) 23:53:37.92ID:lvw6xF65 >>820
デザパタじゃなくてデザインパターンな
デザパタじゃなくてデザインパターンな
824デフォルトの名無しさん
2017/11/10(金) 07:29:56.57ID:wtQgej54 >>823
ペチパーやドザーみたいな愛称だろアスペか
ペチパーやドザーみたいな愛称だろアスペか
825デフォルトの名無しさん
2017/11/10(金) 19:33:33.06ID:i2VZEM66 >>824
アスペじゃなくてアスペルガー症候群な
アスペじゃなくてアスペルガー症候群な
826デフォルトの名無しさん
2017/11/10(金) 22:43:26.83ID:Mfymh77r >>825
文脈的に、アスペルガー症候群じゃなくてアスペルガー症候群患者な
文脈的に、アスペルガー症候群じゃなくてアスペルガー症候群患者な
827デフォルトの名無しさん
2017/11/10(金) 22:53:19.54ID:hftGMpVC >>825-826
これがアスペルガー症候群患者なんだな
これがアスペルガー症候群患者なんだな
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:MsWWfJyW928デフォルトの名無しさん
2018/04/06(金) 10:22:42.82ID:ZnmviTnR Smalltalkは
海外だと事例けっこうあるんだけどね
日本だとあんまり使われてない
海外だと事例けっこうあるんだけどね
日本だとあんまり使われてない
929デフォルトの名無しさん
2018/04/06(金) 10:39:28.53ID:8wNEeXKm930デフォルトの名無しさん
2018/04/06(金) 10:40:22.92ID:iXquvPXW Objective-Cに吸い取られ、吸い取ったObjective-Cも死にかかっている悲劇の言語
931デフォルトの名無しさん
2018/04/06(金) 10:44:41.31ID:MsWWfJyW932デフォルトの名無しさん
2018/04/06(金) 10:52:55.90ID:JkCTmz46 処理系開発者をユーザーにカウントしてもいいなら多分Dもユーザーおるな
933デフォルトの名無しさん
2018/04/06(金) 11:01:06.13ID:8wNEeXKm934デフォルトの名無しさん
2018/04/06(金) 11:48:03.10ID:MsWWfJyW >>933
まず君の思う「現役」の定義を明確にしてよ
これまで誰も主張していない「普及」をいきなり持ち出してきたけど、それが答え?
もし一定のシェアをとっていない言語を「現役」と言ってはいけないって法があるなら
今のSmalltalkは誰が見ても明らかに違うだろうこれで満足?
ただシェアこそないがコミュニティはかつてないほど活発だしまして「死滅」からほど遠いのも事実
これをもって「今でも現役」と表現することも決して間違いではないと思うが違うのか?
そもそも>>900の「現役」は>>899を受けての「死滅」なぞしていないという意味でしかない
その文脈を読めてない>>901が自分の考える「現役」と違うってだけの単純な話を
なにをそんなにこだわって執拗につっかかり続けるのかわからん
Smalltalkが今も「現役」を名乗ると個人的になにか不都合でもあるの?
まず君の思う「現役」の定義を明確にしてよ
これまで誰も主張していない「普及」をいきなり持ち出してきたけど、それが答え?
もし一定のシェアをとっていない言語を「現役」と言ってはいけないって法があるなら
今のSmalltalkは誰が見ても明らかに違うだろうこれで満足?
ただシェアこそないがコミュニティはかつてないほど活発だしまして「死滅」からほど遠いのも事実
これをもって「今でも現役」と表現することも決して間違いではないと思うが違うのか?
そもそも>>900の「現役」は>>899を受けての「死滅」なぞしていないという意味でしかない
その文脈を読めてない>>901が自分の考える「現役」と違うってだけの単純な話を
なにをそんなにこだわって執拗につっかかり続けるのかわからん
Smalltalkが今も「現役」を名乗ると個人的になにか不都合でもあるの?
935デフォルトの名無しさん
2018/04/06(金) 11:59:37.86ID:3wQ1F3ea Objective-CがiOS絡みで再び出てきた時に自分が理解できず
「変態言語!変態言語!!」ってほざいてた頭ゆるいアンチApple老人が
いやあれはねとsmalltalkerが擁護するの見て
『ならsmalltalkも俺の敵だ!』ってやってるだけだからw
「変態言語!変態言語!!」ってほざいてた頭ゆるいアンチApple老人が
いやあれはねとsmalltalkerが擁護するの見て
『ならsmalltalkも俺の敵だ!』ってやってるだけだからw
936デフォルトの名無しさん
2018/04/06(金) 12:27:10.77ID:8wNEeXKm >>934
912>更新(変化)し提供され続けていることは少なからぬ人に使われている証拠として十分だ
とか言い出すからおかしくなる
処理系が更新されてるから少なからぬ人に使われているのは間違いない、だから現役だって主張だろ
「少なからぬ人に使われている証拠」とかいうのがあるなら最初からそれを出せばいい
処理系が更新されているからと言って現役ということにはならないのだから
912>更新(変化)し提供され続けていることは少なからぬ人に使われている証拠として十分だ
とか言い出すからおかしくなる
処理系が更新されてるから少なからぬ人に使われているのは間違いない、だから現役だって主張だろ
「少なからぬ人に使われている証拠」とかいうのがあるなら最初からそれを出せばいい
処理系が更新されているからと言って現役ということにはならないのだから
937デフォルトの名無しさん
2018/04/06(金) 12:52:57.07ID:MsWWfJyW >>936
なるほど「少なからぬ」を文字通り「普及」や相応のシェアを持っているという主張だと短絡して反発したわけね
これもやはり 「死滅」=利用者ゼロあるいは数名 に対し「そんな少なくはない」という程度の意味だと思うけど
では何人くらいが使っていれば「現役」を名乗っていいわけ?とにかくそれを明確にしてよ
なるほど「少なからぬ」を文字通り「普及」や相応のシェアを持っているという主張だと短絡して反発したわけね
これもやはり 「死滅」=利用者ゼロあるいは数名 に対し「そんな少なくはない」という程度の意味だと思うけど
では何人くらいが使っていれば「現役」を名乗っていいわけ?とにかくそれを明確にしてよ
938デフォルトの名無しさん
2018/04/06(金) 12:58:53.40ID:8wNEeXKm939デフォルトの名無しさん
2018/04/06(金) 13:48:16.89ID:JkCTmz46 短絡して反発
940デフォルトの名無しさん
2018/04/06(金) 13:50:08.64ID:JkCTmz46 ってか利用者ゼロもしくは数名じゃないなら現役なんだったら、やっぱりDは現役じゃん
941デフォルトの名無しさん
2018/04/06(金) 15:10:21.25ID:EuPCLdj/ >>938
改めて訊くけど処理系開発側になったらもう利用者としてカウントされなくなるのはなぜ?
利用者が処理系の気にくわない部分に手を加えてそれが採用されるパターンとかよくあると思うんだけど
それともその程度なら開発側とは考えなくても良いの?その場合の線引きは?
改めて訊くけど処理系開発側になったらもう利用者としてカウントされなくなるのはなぜ?
利用者が処理系の気にくわない部分に手を加えてそれが採用されるパターンとかよくあると思うんだけど
それともその程度なら開発側とは考えなくても良いの?その場合の線引きは?
942デフォルトの名無しさん
2018/04/06(金) 15:28:16.59ID:8wNEeXKm >>941
なぜたったこれだけのことを理解できないのだろう
>処理系が更新されているからと言って「少なからぬ人に使われている」ことにはならない
>「少なからぬ人に使われている証拠」とかいうのがあるなら最初からそれを出せばいい
なぜたったこれだけのことを理解できないのだろう
>処理系が更新されているからと言って「少なからぬ人に使われている」ことにはならない
>「少なからぬ人に使われている証拠」とかいうのがあるなら最初からそれを出せばいい
943デフォルトの名無しさん
2018/04/06(金) 17:17:11.35ID:wJqpEogz それ、あなたが設定した勝利条件ですよね。
944デフォルトの名無しさん
2018/04/06(金) 17:33:39.79ID:A2hg00U/ Smalltalk や Pharo をGoogleトレンドで調べてみると、Windows 95の 1/3 でWindows 3.1 やD languageと同等くらい
(なお、言語だけじゃなくOSと比較したのはSmalltalkは環境であるってのに敬意を評して)
https://trends.google.co.jp/trends/explore?q=Smalltalk,Windows%2095,Windows%203.1,Pharo,D%20Language
Smalltalk、もしかしたらWindows 3.1と同じくらいのユーザ数に使われてるかも知れんね。凄いね!
(なお、言語だけじゃなくOSと比較したのはSmalltalkは環境であるってのに敬意を評して)
https://trends.google.co.jp/trends/explore?q=Smalltalk,Windows%2095,Windows%203.1,Pharo,D%20Language
Smalltalk、もしかしたらWindows 3.1と同じくらいのユーザ数に使われてるかも知れんね。凄いね!
945デフォルトの名無しさん
2018/04/06(金) 17:35:51.79ID:wJqpEogz アニメDVDの出荷数とか毎週調べてそうw
946デフォルトの名無しさん
2018/04/06(金) 18:14:07.35ID:iXquvPXW うわ、見苦し
947デフォルトの名無しさん
2018/04/06(金) 21:13:21.34ID:3wQ1F3ea 「売れてるアニメが勝ちなんだから売れてる証拠をおまえが出せよな!」
(相手にされない)
「ほらDVDの円盤の販売数を調べたぞ!ほっら売れてないからおまえの負け〜俺の勝ちー!」
(一同失笑)
(相手にされない)
「ほらDVDの円盤の販売数を調べたぞ!ほっら売れてないからおまえの負け〜俺の勝ちー!」
(一同失笑)
948デフォルトの名無しさん
2018/04/06(金) 21:39:10.60ID:BhlurXrp 脈絡なくアニメで例え出すのも意味不明でキメェし、
別のSmalltalkerがそれに普通に乗っかるのもキメェ
別のSmalltalkerがそれに普通に乗っかるのもキメェ
949デフォルトの名無しさん
2018/04/06(金) 21:45:48.91ID:gJMJciRt >>941
> 改めて訊くけど処理系開発側になったらもう利用者としてカウントされなくなるのはなぜ?
「処理系開発側になったらもう利用者としてカウントされなくなる」とは言っていない
話の順番が逆で
先にお前が「処理系開発側を利用者としてカウントする」などと
おかしなことを言ったから、お前の間違い指摘しただけ
ここでお前が言ったことを改めて言い直してみようか?
「利用者数がわからないので、処理系開発者を利用者に含めていいですか?」
良いというわけがなかろう?
> 改めて訊くけど処理系開発側になったらもう利用者としてカウントされなくなるのはなぜ?
「処理系開発側になったらもう利用者としてカウントされなくなる」とは言っていない
話の順番が逆で
先にお前が「処理系開発側を利用者としてカウントする」などと
おかしなことを言ったから、お前の間違い指摘しただけ
ここでお前が言ったことを改めて言い直してみようか?
「利用者数がわからないので、処理系開発者を利用者に含めていいですか?」
良いというわけがなかろう?
950デフォルトの名無しさん
2018/04/07(土) 08:48:35.78ID:bpYQikic Smalltalk = Windows 3.1
www
www
951デフォルトの名無しさん
2018/04/07(土) 10:19:42.41ID:f0JiZPxN メーリングリストの投稿者数(重複除く)から見積もると
Pharo Smalltalkの利用者は数千人くらいはいる
Haskellのだいたい半分くらい
Pharo Smalltalkの利用者は数千人くらいはいる
Haskellのだいたい半分くらい
952デフォルトの名無しさん
2018/04/07(土) 10:35:25.27ID:K06NcGxe Haskellの利用者数が2万人以下?ねーよw
953デフォルトの名無しさん
2018/04/07(土) 11:18:19.63ID:f0JiZPxN 少し前のデータだけどHaskellもSmalltalkもさして利用者数に増減はないとして参考にすると
Smalltalk利用者の規模はHaskellのおおよそ半分というのは別の解析でも同じ
http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/
Smalltalk利用者の規模はHaskellのおおよそ半分というのは別の解析でも同じ
http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/
954デフォルトの名無しさん
2018/04/07(土) 11:49:47.91ID:sP9L7wqi それ人気が低い順にランキングで並べて表示してるだけで、利用者数の絶対値じゃないよ
Smalltalkは約20位でHaskellが約40位だけど、これはSmalltalkとHaskellの間に他の言語が20個あるという意味でしかない
そのリンクの下方にrawdataがあるけど(http://www.dataists.com/wp-content/uploads/2010/12/language_ranks1.csv)、
この中で絶対値はtagcountだけで、それだとsmalltalkが189に対しHaskellが1896で10倍の差がある
Smalltalkは約20位でHaskellが約40位だけど、これはSmalltalkとHaskellの間に他の言語が20個あるという意味でしかない
そのリンクの下方にrawdataがあるけど(http://www.dataists.com/wp-content/uploads/2010/12/language_ranks1.csv)、
この中で絶対値はtagcountだけで、それだとsmalltalkが189に対しHaskellが1896で10倍の差がある
955デフォルトの名無しさん
2018/04/07(土) 12:42:55.45ID:Of9pall5 複数のプログラミング言語を使いこなしてる奴なんて世界でも僅かだろ。
比較する資格すら持たない連中がシェアなるもので一喜一憂するのは何で?
比較する資格すら持たない連中がシェアなるもので一喜一憂するのは何で?
956デフォルトの名無しさん
2018/04/07(土) 12:54:32.48ID:y0NHVjlZ そうか?
957デフォルトの名無しさん
2018/04/07(土) 12:58:55.13ID:/W+SxBIg GitHubのリポジトリーで直近1ヶ月の開発者の数を比べてみると
こちらもくしくもてGlasgow Haskell Compilerの36名に対しPharo Smalltalkの16名と約半分だった
https://github.com/ghc/ghc/pulse/monthly
https://github.com/pharo-project/pharo/pulse/monthly
こちらもくしくもてGlasgow Haskell Compilerの36名に対しPharo Smalltalkの16名と約半分だった
https://github.com/ghc/ghc/pulse/monthly
https://github.com/pharo-project/pharo/pulse/monthly
958デフォルトの名無しさん
2018/04/07(土) 13:03:00.34ID:y0NHVjlZ そんなデータが役に立つんならDだって16人なんだよなあ
https://github.com/dlang/dmd/pulse/monthly
https://github.com/dlang/dmd/pulse/monthly
959デフォルトの名無しさん
2018/04/07(土) 13:44:56.97ID:Ohs7bjSh >>924
"sorabito smalltalk" でググったら、
ベンチャーで最初にいたエンジニアがsmalltalkerでsmalltalkを採用したとか、
そのエンジニア(元CTO)は去年12月に辞めたとか、
いまの採用ページにはsmalltalkに一言も触れてないとか、
色々あったんだろうなって想像できて面白かったわ。ありがとうw
"sorabito smalltalk" でググったら、
ベンチャーで最初にいたエンジニアがsmalltalkerでsmalltalkを採用したとか、
そのエンジニア(元CTO)は去年12月に辞めたとか、
いまの採用ページにはsmalltalkに一言も触れてないとか、
色々あったんだろうなって想像できて面白かったわ。ありがとうw
960デフォルトの名無しさん
2018/04/07(土) 14:52:12.96ID:3aYyVZM2 Smalltalk = Windows 3.1 = D
961デフォルトの名無しさん
2018/04/07(土) 16:15:24.12ID:Bd8sR+xj オブジェクト指向言語でメンバ変数やメソッドをpublicにすべきかprivateにすべきかは
長年議論されてきてることだけど、中には
「privateで変数やメソッドを宣言するくらいならその部分をクラスにまとめて外に追い出してしまえばいい」
「洗練されたプログラムは変数・メソッドともにpublicだけで十分」
という意見もあるんだけどこれってどう思う?
長年議論されてきてることだけど、中には
「privateで変数やメソッドを宣言するくらいならその部分をクラスにまとめて外に追い出してしまえばいい」
「洗練されたプログラムは変数・メソッドともにpublicだけで十分」
という意見もあるんだけどこれってどう思う?
962デフォルトの名無しさん
2018/04/07(土) 16:17:51.83ID:vVe4gpjb pythonの方法は合理的
963デフォルトの名無しさん
2018/04/07(土) 16:19:49.34ID:C4tJt4pN > 「洗練されたプログラムは変数・メソッドともにpublicだけで十分」
洗練されて無くてもpublicだけで十分といえるので
「洗練されたプログラムである」という判断が別に必要になる
洗練されて無くてもpublicだけで十分といえるので
「洗練されたプログラムである」という判断が別に必要になる
964デフォルトの名無しさん
2018/04/07(土) 16:35:52.31ID:y0NHVjlZ プロパティがあるならとりあえずpublicにしといたらいいんじゃない?
965デフォルトの名無しさん
2018/04/07(土) 22:08:27.17ID:cSksy2F8 publicもprivateも両方とも有るのが良いよ
選択肢が無くなったり少なくなったりすると利用し難くなる事も有るし
使う人のレベルや理解度もまちまちなんだから
staticだらけでやる人がいても構わないし
どちらか一方になって片方が使えなくなる方がやだな
洗練されているかどうかは悦に浸っている人が勝手に浸かっていればいいし
選択肢が無くなったり少なくなったりすると利用し難くなる事も有るし
使う人のレベルや理解度もまちまちなんだから
staticだらけでやる人がいても構わないし
どちらか一方になって片方が使えなくなる方がやだな
洗練されているかどうかは悦に浸っている人が勝手に浸かっていればいいし
966デフォルトの名無しさん
2018/04/08(日) 06:20:36.36ID:02MXQevY テセウスの船
967デフォルトの名無しさん
2018/04/10(火) 20:37:32.93ID:sh2D9vF0968デフォルトの名無しさん
2018/04/11(水) 03:06:46.30ID:AwbSOt+z SmalltalkはTcl/Tk未満のゴミってことか…
オブジェクト指向の面汚しだな。死滅してくれて良かった
オブジェクト指向の面汚しだな。死滅してくれて良かった
969デフォルトの名無しさん
2018/04/11(水) 07:10:58.74ID:wpPEThCc 世のプログラム言語のほとんどがALGOL系といわれているがALGOLを使った事ない人がほとんどなのと同じじゃね?
970デフォルトの名無しさん
2018/04/11(水) 07:18:41.53ID:/rBtvSvm ちなみにSmalltalkが目指した遅延結合重視のメッセージングのオブジェクト指向は
C++で再定義され現在主流の抽象データ型のオブジェクト指向とはほぼ別物だから
アンチSmalltalkが「オブジェクト指向の面汚し」とか言ってもいまいち響かないよ
C++で再定義され現在主流の抽象データ型のオブジェクト指向とはほぼ別物だから
アンチSmalltalkが「オブジェクト指向の面汚し」とか言ってもいまいち響かないよ
971デフォルトの名無しさん
2018/04/11(水) 07:47:53.65ID:1hdMjitc972デフォルトの名無しさん
2018/04/11(水) 08:52:38.89ID:mEK/0CU7 そうなんだよすっかり主流から外れて久しいのにいまだにオブジェクト指向というと
メッセージを送るのがどうとか遅延結合がどうとか説明し出す自称識者が多くて困るよ
ほんと聞き手が混乱するだけだからやめてほしい
Smalltalkくらい遅延結合性を実践していればわからんでもないけどあれすら肝心のメッセージは非同期じゃないし
メッセージを送るのがどうとか遅延結合がどうとか説明し出す自称識者が多くて困るよ
ほんと聞き手が混乱するだけだからやめてほしい
Smalltalkくらい遅延結合性を実践していればわからんでもないけどあれすら肝心のメッセージは非同期じゃないし
973デフォルトの名無しさん
2018/04/11(水) 12:24:17.61ID:bG1z7LTF 意外とWindowsのCOMが上手い実装だった
974デフォルトの名無しさん
2018/04/11(水) 12:42:09.09ID:wKUnUTjT975デフォルトの名無しさん
2018/04/11(水) 12:51:33.38ID:mEK/0CU7 ゲイツもMSもGUIの模倣でこそジョブズやAppleに遅れをとったけどその後はSmalltalkから学んでいる
アラン・ケイも .NET のことは Java よりはマシと言ってた
http://tech.nikkeibp.co.jp/it/members/ITPro/ITARTICLE/20030605/1/
ジョブズも表層のGUIだけパクって終わりにしたLisa/Macを反省してNeXTSTEPを作らせたけどね
http://web.archive.org/web/20121016134054/http://americanhistory.si.edu/collections/comphist/sj1.html#soft
アラン・ケイも .NET のことは Java よりはマシと言ってた
http://tech.nikkeibp.co.jp/it/members/ITPro/ITARTICLE/20030605/1/
ジョブズも表層のGUIだけパクって終わりにしたLisa/Macを反省してNeXTSTEPを作らせたけどね
http://web.archive.org/web/20121016134054/http://americanhistory.si.edu/collections/comphist/sj1.html#soft
976デフォルトの名無しさん
2018/04/11(水) 12:53:12.46ID:mEK/0CU7 >>974
メッセージに関してはそうだろうね
ケイもAltoにもっとパワーがあったらErlangみたいなのを試したかったって言ってたし
ただシステム全体としての動的性に関してはErlangやそれで作られたものとは比較にならない
メッセージに関してはそうだろうね
ケイもAltoにもっとパワーがあったらErlangみたいなのを試したかったって言ってたし
ただシステム全体としての動的性に関してはErlangやそれで作られたものとは比較にならない
977デフォルトの名無しさん
2018/04/11(水) 12:57:13.75ID:bG1z7LTF >>975
藤枝あほだな
藤枝あほだな
978デフォルトの名無しさん
2018/04/11(水) 14:26:33.25ID:J12WoVZ9 「クラスにメソッド送るシステムなんていまじゃ壊滅してる!
21世紀の現代の主流はC ++!」って5ちゃんねるで喚いてる人とか
そりゃ誰も相手したくねぇよw
21世紀の現代の主流はC ++!」って5ちゃんねるで喚いてる人とか
そりゃ誰も相手したくねぇよw
979デフォルトの名無しさん
2018/04/11(水) 15:19:48.90ID:mEK/0CU7 メッセージングのパラダイムを持ち出しておいて
メソッドとメッセージの区別すらついていない人がよくいるけどここにもいたかw
あと現在主流なのはクラスやそれに準ずるエンティティで抽象データ型を実現することで
その出自がC++というだけだよその程度の区別もつかないのか
たった2行の煽りでここまで致命的に間違えられるとかどんな才能だよ…
メソッドとメッセージの区別すらついていない人がよくいるけどここにもいたかw
あと現在主流なのはクラスやそれに準ずるエンティティで抽象データ型を実現することで
その出自がC++というだけだよその程度の区別もつかないのか
たった2行の煽りでここまで致命的に間違えられるとかどんな才能だよ…
980デフォルトの名無しさん
2018/04/11(水) 20:33:03.91ID:J12WoVZ9 はいはい、「俺の宗教の教義では俺の信じてるものは俺の神から、
俺の信じていないものは敵の神からもたらされたと決まっているから。」
いただきましたw
俺の信じていないものは敵の神からもたらされたと決まっているから。」
いただきましたw
981デフォルトの名無しさん
2018/04/11(水) 20:37:59.89ID:TKBXZkPL 敗北宣言wwww
982デフォルトの名無しさん
2018/04/11(水) 21:16:38.37ID:W3CRQm5Z983デフォルトの名無しさん
2018/04/11(水) 21:41:58.27ID:wo4fmpFF ほんとにメソッドとメッセージの区別がついていないらしい…
984デフォルトの名無しさん
2018/04/11(水) 22:19:07.62ID:W3CRQm5Z Erlangという本物を持ち出されてSmalltalkerサンぐうの音も出ないらしい
985デフォルトの名無しさん
2018/04/11(水) 23:00:36.75ID:gmGjfvGU Erlangはオブジェクト指向というよりメッセージ指向
986デフォルトの名無しさん
2018/04/12(木) 13:59:17.22ID:LVEtcr4N >>983
説明をどぞ
説明をどぞ
987デフォルトの名無しさん
2018/04/12(木) 14:50:54.59ID:c5UYloeC メソッドとニセモノのメッセージと本物のメッセージの3パターンで説明お願いね
988デフォルトの名無しさん
2018/04/12(木) 16:00:33.88ID:bfwDINZz AngularJS
989デフォルトの名無しさん
2018/04/12(木) 18:21:05.91ID:OewATdpF メッセージはオブジェクトに送られる情報(多くの場合はエンティティ)
Smalltalk-72ではトークン列
Erlangなどではデータ列
Smalltalk-76以降はセレクター(多くは呼び出しが期待されるメソッド名)+引数(オブジェクト)
奇妙だけど他の言語でもSmalltalk-76以降に準じた解釈(メソッド名+引数)をそう称する場合が多い
一部の宗派でセレクター(メソッド名)のみをメッセージと称する場合もある(Objective-Cでよく見られる〕
メソッドはオブジェクトがメッセージを受けて行う操作
Smalltalk-72ではメッセージにパターンマッチする記述(リーダーマクロのようなもの)
Erlangには無いが、強いて当てはめればメッセージを受けたときの処理部分
Smalltalk-76以降ではクラスに属する関数がそれに当たる
もともと「メソッド」はメッセージを受け取った際に目指す状態である「ゴール」を記述する場とする予定だったが
Smalltalk-76でSimula-67スタイルのクラスとそれに内包される関数を用いる機構を採用したため
クラスに内包される関数とメソッドとの間に明確な差はなくなった
とか、とりあえずこんな感じで
Smalltalk-72ではトークン列
Erlangなどではデータ列
Smalltalk-76以降はセレクター(多くは呼び出しが期待されるメソッド名)+引数(オブジェクト)
奇妙だけど他の言語でもSmalltalk-76以降に準じた解釈(メソッド名+引数)をそう称する場合が多い
一部の宗派でセレクター(メソッド名)のみをメッセージと称する場合もある(Objective-Cでよく見られる〕
メソッドはオブジェクトがメッセージを受けて行う操作
Smalltalk-72ではメッセージにパターンマッチする記述(リーダーマクロのようなもの)
Erlangには無いが、強いて当てはめればメッセージを受けたときの処理部分
Smalltalk-76以降ではクラスに属する関数がそれに当たる
もともと「メソッド」はメッセージを受け取った際に目指す状態である「ゴール」を記述する場とする予定だったが
Smalltalk-76でSimula-67スタイルのクラスとそれに内包される関数を用いる機構を採用したため
クラスに内包される関数とメソッドとの間に明確な差はなくなった
とか、とりあえずこんな感じで
990デフォルトの名無しさん
2018/04/12(木) 18:40:29.87ID:+2RjvR+r つまり、本当に非同期にメッセージパッシングしてるErlangは特別だけど、
Smalltalkのメッセージはメソッドコールと変わんないってことですね
Smalltalkのメッセージはメソッドコールと変わんないってことですね
991デフォルトの名無しさん
2018/04/12(木) 21:28:54.61ID:pKim+X9U メッセージがエンティティであることが重要で同期か非同期かは後付けでなんとかなる問題
たとえばIoなんかはそうなっているし、Concurrent Smalltalkという方向性もある
メソッドコールについてはさすがに静的に決定しているそれをメッセージと呼ぶのは滑稽だろう
動的メソッドコールについても例えば期待するメソッドが存在しない等で失敗したときに
メッセージを第一級オブジェクトとして参照可能な機構が組み込まれていないなどサポートを欠いていれば
その言語での動的コールをメッセージと称することはちょっと無理があるような
たとえばIoなんかはそうなっているし、Concurrent Smalltalkという方向性もある
メソッドコールについてはさすがに静的に決定しているそれをメッセージと呼ぶのは滑稽だろう
動的メソッドコールについても例えば期待するメソッドが存在しない等で失敗したときに
メッセージを第一級オブジェクトとして参照可能な機構が組み込まれていないなどサポートを欠いていれば
その言語での動的コールをメッセージと称することはちょっと無理があるような
992デフォルトの名無しさん
2018/04/12(木) 21:43:18.97ID:lUf8ZkQK 同期を非同期に変えるのに比べたら、静的なのを動的に変える方が簡単だし、後付けでどうとでなる問題だよ
993デフォルトの名無しさん
2018/04/13(金) 09:04:27.08ID:QuE9cEqD いずれにせよメッセージと称したい情報を必要なときにエンティティとして扱えるしくみがあればどうとでもできるよ
994デフォルトの名無しさん
2018/04/13(金) 09:30:36.78ID:24eyc5OB メッセージがメソッドコールだとしても、基底クラスに共通メソッドとして実装されているならそれはメッセージで間違いないだろ。
995デフォルトの名無しさん
2018/04/13(金) 09:45:51.29ID:QuE9cEqD メソッドコールと違いメッセージというからには送り手はその都合で情報を勝手に送りつけるわけだから
それを受け手がどう処理するかについて関知しないスタンスがとれなければさすがにダメだろう
それを受け手がどう処理するかについて関知しないスタンスがとれなければさすがにダメだろう
996デフォルトの名無しさん
2018/04/13(金) 10:39:38.86ID:YQSd9Cqd そんなん待ち行列になってんじゃね?
つか、メッセージの実装って、結局メソッドコールなOSばかりだしな。
つか、メッセージの実装って、結局メソッドコールなOSばかりだしな。
997デフォルトの名無しさん
2018/04/13(金) 12:19:05.19ID:ybbP8EF+ Smalltalkのメッセージを全部非同期にしたら、信じられないくらい遅くなるかブッ壊れると思うよ
だからSmalltalkはメッセージの受け手が即座に処理してくれる事を期待してるし、何も関知してないなんてウソだよ
だからSmalltalkはメッセージの受け手が即座に処理してくれる事を期待してるし、何も関知してないなんてウソだよ
998デフォルトの名無しさん
2018/04/13(金) 12:29:44.88ID:aVua03l2 Smalltalkじゃなくても全部非同期なんかにしたら遅くなるか破綻するだろう
999デフォルトの名無しさん
2018/04/13(金) 12:41:42.23ID:QuE9cEqD 「関知しない」は「どう処理するか」で「いつ処理するか」だけに限らない
SmalltalkでいえばdoesNotUnderstand:(Rubyならmethod_missing)相当の機構と
その際処理したいメッセージをエンティティとして扱える機構がないといろいろ厳しかろうという話
SmalltalkでいえばdoesNotUnderstand:(Rubyならmethod_missing)相当の機構と
その際処理したいメッセージをエンティティとして扱える機構がないといろいろ厳しかろうという話
1000デフォルトの名無しさん
2018/04/13(金) 12:45:54.65ID:GALVkBan 1000
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 199日 5時間 25分 16秒
新しいスレッドを立ててください。
life time: 199日 5時間 25分 16秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 日本が「世界で最も魅力的な国」1位に!✨「魅力的な都市」では東京が2位 「魅力的な地域」は北海道が7位に [煮卵★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 高市政権「中国さん、日本はいつでも対話に応じるで」 [834922174]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 【悲報】青森県、今日だけで60cm雪が積もってとうとう100cm越えてしまうwwwww
- 東浩紀「日本はいままさに駆け引きをしている。」高市有事にピシャリ [834922174]
