[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/04 02:09 / Filesize : 316 KB / Number-of Response : 1037
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

カプセル化の有害性、オブジェクト指向は愚かな考え



1 名前:デフォルトの名無しさん [2020/06/18(木) 23:47:36.69 ID:l/2SQUll.net]
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、オブジェクトの実際の型を隠蔽したりすることをいう。

かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。

一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性」として「カプセル化は絶対にやめろ」としている。

https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

701 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:12:47.77 ID:M3d71N9d.net]
>>676
お前の希望を言われたもなぁw

702 名前:575 mailto:sage [2020/07/04(土) 13:13:09.28 ID:sra5+07B.net]
なんで今朝の575からこんなに進んでるの...

703 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:13:57.68 ID:MJUVFEDB.net]
子供の喧嘩ですw

704 名前:デフォルトの名無しさん [2020/07/04(土) 13:13:59.57 ID:pmIasW6W.net]
>>677
どうしてその内容を引用したの?
君はそれが正しいと思ったの? その根拠は提示できる?
できないでしょ、君はt_wadaを専門家だと思ってて
専門家の言うことは正しいのだ、だから内容が正しいのだと思い込んでいる
だからその内容を引用して何かを示した気になってるだけ

705 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:14:24.44 ID:M3d71N9d.net]
>>679
根拠ない主張を繰り返すだけのやつが登場するとそうなるよw

706 名前:デフォルトの名無しさん [2020/07/04(土) 13:14:41.46 ID:pmIasW6W.net]
>>678
外人が書いた本を翻訳したら専門家なのか? そっちの方が希望じゃん

707 名前:デフォルトの名無しさん [2020/07/04(土) 13:15:16.84 ID:pmIasW6W.net]
>>682
専門家という肩書の権威にすがりつく君のことかな?

708 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:15:33.49 ID:M3d71N9d.net]
>>681
正しい根拠はすでに上の方で何度も言ってるじゃんw
それを補完するために専門家の意見を持ってきただけで
じゃあ反対にお前の言うことが正しいという根拠はなんだよ?

709 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:15:46.59 ID:xAj06qrt.net]
>>665
その辺は結局組織がどうコードを管理するかってだけの話だ。
バカみたいにがんじがらめにした結果誰もコードをいじらない(リファクタリングしない)
ってことにしかならん。



710 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:16:11.64 ID:M3d71N9d.net]
>>683
> 外人が書いた本を翻訳したら専門家なのか? そっちの方が希望じゃん

翻訳「も」してるだけだろw

711 名前:デフォルトの名無しさん [2020/07/04(土) 13:17:04.15 ID:pmIasW6W.net]
>>668
t_wadaさんの文章はt_wadaさんの感想でしかないよ

712 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:17:18.71 ID:M3d71N9d.net]
どうやら翻訳は副業らしいなw

713 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:18:06.68 ID:M3d71N9d.net]
>>688
意見と感想の違いぐらいつけようよw

話は簡単じゃないか
t_wadaさんの意見と
お前の感想

説得力があるかどうかだよ

714 名前:575 mailto:sage [2020/07/04(土) 13:18:30.04 ID:sra5+07B.net]
とりあえず、落ち着け。
議題がよくわからんが、落ち着け...落ち着くのだ。

715 名前:デフォルトの名無しさん [2020/07/04(土) 13:19:53.55 ID:pmIasW6W.net]
>>687
いやいや翻訳だけが全実績じゃん
t_wadaさんがprivateメソッドをテストせずにとても
すばらしいシステムを構築していま全世界で使われてますってことないじゃん

翻訳したからまるで本物の執筆者のように思われてあたかも専門家のように思い込まれてるだけで
専門家でもなんでもなくただの翻訳者だよ

716 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:20:32.65 ID:MJUVFEDB.net]
いいんだよ、元から不毛なネタのスレだw

717 名前:デフォルトの名無しさん [2020/07/04(土) 13:21:46.90 ID:pmIasW6W.net]
>>690
君が説得力を

718 名前:感じたら意見になり、
説得力を感じなかったら感想になるってだけじゃんそれ
なにそのガバガバな日本語運用

わかりましたでは今から僕が君を説得してみせます、よく聞いてください
privateメソッドはテストするべきです
[]
[ここ壊れてます]

719 名前:575 mailto:sage [2020/07/04(土) 13:21:53.40 ID:sra5+07B.net]
>>693
それもそうか(諦め)
内容は読んでないけど、まぁ、ROMるか。



720 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:22:11.62 ID:M3d71N9d.net]
>>692
なんでググらないでウソ書くの?
そうやって他の人を騙そうとしてるでしょ

https://t-wada.hatenablog.jp/entry/clean-code-that-works
職業はコンサルタントであり、プログラマです。最近では技術顧問としてもいくつかの会社を支援しています。
また、自分の自由になる時間には、オープンソースソフトウェアの開発を行っています。
本業はプログラマでありコンサルタントですが、副業としては技術書の出版、具体的には監訳や翻訳に関わっています。

JavaScript でテストを書く際のハードルを大幅に下げるために開発した power-assert は、
Mocha や Jest と組み合わせて使え、 AVA には既に内蔵されており、ありがたいことに世界中で使われるプロダクトまで育ちました。

ひとつ例を挙げるなら、アリババグループで採用頂き、アリペイやアリババクラウドのテストに使われているという話です。



んで、こういう人に比べて、お前はなにかすごいことしたの?

721 名前:デフォルトの名無しさん [2020/07/04(土) 13:25:12.35 ID:pmIasW6W.net]
>>696
営業努力の賜物やろな、頑張ってるんやなt_wadaさん

僕がなにかしたのかという質問ですが僕はすごいことを発見しました
privateメソッドはテストした方が良いです

722 名前:デフォルトの名無しさん [2020/07/04(土) 13:25:49.67 ID:pmIasW6W.net]
ほんまt_wadaさん好きやな

723 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:26:38 ID:M3d71N9d.net]
>>698
t_wadaさん以外にすごい人がいたら教えて下さいw

724 名前:デフォルトの名無しさん [2020/07/04(土) 13:31:25 ID:pmIasW6W.net]
>>699
他人に憧れをいだいて必要以上に持ち上げるのが僕は気持ち悪く感じます
僕はすごい人ですが、君に憧れられるのは気持ち悪いです、なのでごめんなさい

725 名前:デフォルトの名無しさん [2020/07/04(土) 13:31:55 ID:pmIasW6W.net]
振ってしまってなんかごめんなさい

726 名前:デフォルトの名無しさん [2020/07/04(土) 13:33:19 ID:pmIasW6W.net]
他人を必要以上に持ち上げるのって自分に自信がない人がやりがちなので
アドバイスするとしたら色々経験したがいんじゃないかということですね

727 名前:デフォルトの名無しさん [2020/07/04(土) 13:34:54.50 ID:KKcCItOc.net]
IT掲示板群 ttp://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0

☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip

728 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:48:28.05 ID:iuca8iKQ.net]
根拠が聞けるかなと思ったターンで
他人の引用を持ってきて権威に頼っただけである場合
議論は終了である
続ける価値がないから

729 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 13:50:52.32 ID:M3d71N9d.net]
いえ、自分と同じ意見を言ってる人を持ってきただけなので
話は続いてますよ?

でもなぜか、話の続きをやめてしまっているのです。
なぜでしょうね(笑)



730 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:09:00.83 ID:xhESn47n.net]
プログラム板でコード使って語りもしない時点で両者どちらも無能
プログラマならコードで主張

731 名前:デフォルトの名無しさん [2020/07/04(土) 14:17:35.76 ID:pmIasW6W.net]
>>706
有能さんあざーす!コードどこ?

732 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:19:05.65 ID:JeoapmHS.net]
privateメソッドとしてどの程度複雑なことをやらせるか、privateメソッドをどの程度使うかについて、感覚の違う2つのスタイルがあるんじゃないか?

一方の極は、privateメソッドには極めて単純なことしかさせず、少しでも複雑な内容なら(他のヘルパークラス等の)publicメソッドに切り出すスタイル。
「privateはpublic経由でのみテストする(直接はテストしない)」という方針を採る場合には、privateメソッドの内容は非常にシンプルな内容に限らざるを得ないし、逆にそうしないと>>555指摘の組み合わせ爆発の問題を回避できない。
>>624>>649で紹介されている議論や、>>588はこの立場なんだろう。
このスタイルでは、下記のスタイルでは1つのprivateメソッドで処理できる内容を、複数のクラスに属するメソッドの協調関係で処理することになる。
これを適切な機能分化がされていると肯定的に捉えるか、必ずしも汎用性があるわけではない小さなヘルパークラスが増えることになり、見通しが悪くなると否定的に捉えるかは考え方によるだろう。

もう一方の極は、privateメソッドだからといって、内容をシンプルに限らなければいけない必然性はないというスタイル。>>589は、こちらの立場なんだろう。
このスタイルでは、public経由でprivateのテストをするというのは現実的ではないから、privateメソッドでも直接テストの対象とすることが必要になる。言語機能の関係でprivateを直接テストすることが難しい場合には、テストのやり方に工夫が必要になる。
メリット・デメリットは前記のスタイルの反対。

こんなふうに整理できるんじゃないかと思うが、どうだろう。

733 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:19:16.92 ID:xhESn47n.net]
>>707
主張したいことがあるんでないの?
それを示すコードもあるやろ?

734 名前:デフォルトの名無しさん [2020/07/04(土) 14:20:14.26 ID:pmIasW6W.net]
>>709
でも僕無能だからコードないよ
君有能だからコードあるよ
早く出すよ

735 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:22:23.00 ID:xhESn47n.net]
>>710
俺は別にプログラムのこのスレタイについて主張したいことないからなあw
君はプログラマでプログラムについて何か主張したいんだろ?

736 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:23:09.56 ID:kiJuYkd6.net]
privateメソッドだからテストしないとか言ってるやつはキチガイ
早く死んでね

737 名前:デフォルトの名無しさん [2020/07/04(土) 14:23:22.38 ID:pmIasW6W.net]
>>711
関係ないよ、早くコード出すよ

738 名前:デフォルトの名無しさん [2020/07/04(土) 14:23:44.26 ID:pmIasW6W.net]
早くコードだすよ!

739 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:27:56.17 ID:xhESn47n.net]
>>714
あーこっちがきちがいだったかw
触れないようにするわ



740 名前:デフォルトの名無しさん [2020/07/04(土) 14:28:29.45 ID:pmIasW6W.net]
www

741 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:33:12.47 ID:xhESn47n.net]
このように、コードを使わず偏った主張するやつはだいたい頭がおかしい
この板ではこうやって簡単にこういう奴をあぶり出しできるんよな

742 名前:デフォルトの名無しさん [2020/07/04(土) 14:34:10.41 ID:pmIasW6W.net]
>>717
君、コード出してないよ
コード出すよ

743 名前:デフォルトの名無しさん [2020/07/04(土) 14:34:57.85 ID:pmIasW6W.net]
早 く コ ー ド 出 す よ !

744 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:51:30.64 ID:xhESn47n.net]
>>719
^^

745 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 14:56:58.97 ID:M3d71N9d.net]
>>708
> privateメソッドとしてどの程度複雑なことをやらせるか、privateメソッドをどの程度使うかについて、感覚の違う2つのスタイルがあるんじゃないか?

privateとかpublicとか関係なく、複雑なことをやらせるなよ
関数はせいぜい一画面程度(50行)ぐらい、大半は20行以下にするもんだ

746 名前:デフォルトの名無しさん [2020/07/04(土) 15:00:38 ID:pmIasW6W.net]
はいはいどうせt_wadaがそう言ってたんだろ

747 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:01:31 ID:M3d71N9d.net]
>>722
また「人」の話かよw

748 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:02:35 ID:M3d71N9d.net]
権威ある専門家が言ってることだから間違ってます
俺は認めませーんって。どういう気持で言ってるんだろうねw

749 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:04:45.61 ID:M3d71N9d.net]
俺は「そいつは権威ある専門家



750 名前:セ!」って指摘しただけで
勝ったつもりにはなれないなぁ(笑)
[]
[ここ壊れてます]

751 名前:デフォルトの名無しさん [2020/07/04(土) 15:05:05.57 ID:pmIasW6W.net]
t_wadaはなんて言ってるんだよ!

752 名前:デフォルトの名無しさん [2020/07/04(土) 15:05:39.57 ID:pmIasW6W.net]
t_wada原理主義

753 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:06:52.47 ID:iuca8iKQ.net]
必死だなw

754 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:07:21.60 ID:gUMCer1d.net]
今までたくさんのキチガイPGを見たが
privateメソッドだからテストしないとか言ってるやつだけは許さない
テメーの金玉はここで潰す

755 名前:デフォルトの名無しさん [2020/07/04(土) 15:10:41.07 ID:pmIasW6W.net]
ごりごりーごりごりー
そうだ!すりつぶした粉で大根餅作ろうよ!

756 名前:575 mailto:sage [2020/07/04(土) 15:11:12.87 ID:sra5+07B.net]
>>729
問題なのは、そのprivateの挙動をどうやって確認するのかって話なのかな?

単体テスト?総合テスト?それとも実装中しながらのデバッグ作業の話?

正直、未だにどこで揉めているのかわかりません。
誰か議題教えて。

757 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:13:12.65 ID:iuca8iKQ.net]
>>731
> 正直、未だにどこで揉めているのかわかりません。

自転車置き場

758 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:14:01.93 ID:M3d71N9d.net]
>>731
1. public、privateに限らずコードはシンプルにするべき
2. シンプルであるなら、privateはpublicメソッド経由でテストできる
3. publicメソッド経由でやったらprivateがろくにテストできないというなら設計が間違ってる
4. 設計上の問題はバグと言ってもいい。バグなんだから直せ

ここまではあってる

759 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:17:09 ID:gUMCer1d.net]
>>731
設計書見ろよゴミカス
書いてないなら死にまくれ



760 名前:575 mailto:sage [2020/07/04(土) 15:21:35 ID:sra5+07B.net]
>>734
なんで、スレの流れに沿って説明しただけの俺がゴミカス呼ばわりされるのかもわからん。何このスレ。
>>576 >>578でも俺の意見ですらない部分に的外れな回答がつくし。

761 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:24:14 ID:M3d71N9d.net]
動けばOKって考えてる人がどれだけ多いかだな
テストを自動化するという考えがない
シンプルな設計をするという発想がない
動けば設計に問題はないと考えている

762 名前:デフォルトの名無しさん [2020/07/04(土) 15:29:27 ID:pmIasW6W.net]
>>735
Welcome to Underground

763 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:32:02.34 ID:NXT3QGLz.net]
>>733
あってるの1だけじゃないかw

764 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:34:57 ID:iuca8iKQ.net]
叩き台つくった(´・ω・`)
https://ideone.com/1XhPwl

765 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 15:39:15 ID:e19OrKR5.net]
なんかやべえ流れになってるな
とりあえずつっこんどくと
1. unitテストの定義に世界共通の定義など存在しない
2. unitテストという単語はプロジェクト用語であり、プログラム用語ではない
3. マーティンはunitテストという単語と自動テストの単語わけたらいいんじゃない?と提案してる。xunit
4. publicとprivateはクラス設計のため、もっと言えばクラス間の責任範囲のために存在している
5. xunitテストのためだけにprivateをpublicにするのは誤り。本当にやりたければリフレクションでもすればいい
6. c2カバレッジ100%するかどうかは分野次第
7. 我々は十分なシステムを作るのが目的である。完璧なプログラムを作ることが目的ではない。そして十分な利益を獲得することが目的でもある

766 名前:575 mailto:sage [2020/07/04(土) 15:57:07.88 ID:sra5+07B.net]
ちなみに、的はずれって100%君のことね。まぁ、そんなの今更どうでもいいか。

実際、クラスをどんな風にテストするのか興味あるね。

767 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 16:03:21.65 ID:e19OrKR5.net]
やだよ組み込みが普通だと思ってる人との会話なんかしたくない

768 名前:575 mailto:sage [2020/07/04(土) 16:32:24 ID:sra5+07B.net]
そんなー。

769 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 16:32:41 ID:IaMjsjOG.net]
>>735
なんだ早く死ねよ



770 名前:575 mailto:sage [2020/07/04(土) 16:36:24 ID:sra5+07B.net]
まぁ、Android開発(アセンブラレベルからJavaアプリレベル)をやってるから、たぶん、大丈夫なはず。

組み込み=staticおじさんのレッテルが貼られがちだけど、
私はstaticおじさんじゃないんだけどなー...

771 名前:
まぁ、アセンブラレベルの階層になると、オブジェクト指向要素なんて微塵もないけど。
[]
[ここ壊れてます]

772 名前:575 mailto:sage [2020/07/04(土) 16:37:37.70 ID:sra5+07B.net]
>>744みたいな知的障害者が時々沸くのはなんで?

773 名前:575 mailto:sage [2020/07/04(土) 16:46:14.68 ID:sra5+07B.net]
もういいや。アホくさ。こんなスレ覗いたのが間違いだったな。
人生を無駄にした気分だ。
このスレを覗く時間を使って別して作業してた方が有意義だったよ。

>>744
君はID変えながら死ね死ね連呼しているみたいだけど、気を付けた方がいいよ。あばよ、中身がない死ぬべき技術者さん。

774 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 16:53:03.01 ID:4XE5L1k5.net]
プ板、と言うか専門板なんてそれぞれの話題を餌にマウント取り合ったり罵り合ったりする所だから。
相手にしたら負け。

775 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 17:09:48.00 ID:O/jhkl6h.net]
言語の制約によって思考が制約されてる典型例

カマッてくれる人が量産されて>>1が喜んでる

776 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 18:16:38.54 ID:sCZUG34Z.net]
privateメソッドのテストしないとか言ってるカスとまともに会話するメリットないだろ

777 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 18:35:31.64 ID:gmurOIZf.net]
まあテストやるって言ってもこれくらい意見が違って揉め事になるってのは
結構普通だったりするからそういう勉強にはなってるんでないの。

778 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 20:02:50.07 ID:M3d71N9d.net]
このスレの結論

短くまとめると、プライベートなメソッドのテストを書く必要は 無い と考えています。

パブリックメソッド経由でテストする
多くの場合、そのクラスのパブリックメソッド経由でプライベートメソッドのテストも同時に行えます。
テストできているか不安があるならテストカバレッジを確認しましょう。

別クラスのパブリックメソッドとする
プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを
示唆している場合があります。テストがどうしても書きたい場合は、その責務はテスト対象の
プライベートな振る舞いではなく、他の誰かのパブリックな振る舞いなのでしょう。テスト対象の
プライベートメソッドを「クラスの抽出」や「メソッド/関数の移動」を使って、テスト対象の
コラボレータのパブリックメソッドとして抽出し、普通にパブリックメソッドとしてテストしましょう。

テスト対象の可視性を(やや)上げる
例えば Java では、同一のパッケージからのみアクセスできる可視性があり(正式名称ではありませんが
「パッケージプライベート」と呼ばれます)、テストを同一パッケージに配置することでテストから
アクセスできるような設計を行うことがあります。(ただし、この質問の場合は JavaScript なので、この手段はとれません)

プライベートのまま、リフレクションでアクセスしてテストを書く
リフレクションは最後の手段であり、強力な手段でもあります。プロダクトコードに手を入れることが
できない状況や、レガシーコード(テストコードの無いコード)に対する「仕様化テスト(Characterization Test)」を
書いているような状況では、リフレクションは唯一の、かつ強力な手段になります。プライベートメソッドに
テストを書くことのデメリットを理解しつつ、黒魔術の強力さを堪能しましょう。
(ただし、この質問の場合は JavaScript なので、この手段はとれません。JavaScript は比較的緩い言語ですが、クロージャの情報隠蔽は非常に強固です)

まとめ
繰り返すと、プライベートなメソッドや関数をテストする必要は無いと考えています。プライベートなメソッドは、実装の詳細であるからです。

779 名前:デフォルトの名無しさん [2020/07/04(土) 21:00:07.43 ID:42LT/T3f.net]
>>752
三行以上は読んでもらえないから工夫が必要。



780 名前:デフォルトの名無しさん [2020/07/04(土) 21:07:29.85 ID:n1PM9L+Z.net]
ガワだけのクラスが出来上がるな

#include <iostream>
using namespace std;

class Test{
private:
int methodPrivate(const int x)const{
return 2*x;
}
public:
int method(const int x)const{
return methodPrivate(x);
}
};

int main() {
Test test;
cout << test.method(3) << endl;
return 0;
}

この調子で全部のメソッドにペアになるprivateメソッド作って徹底的に隠蔽してしまえば、相手から調査されることはない

そして上流の方から指定されているメソッドはスッカラカン
実質的に何もしない
名前があるだけ

この技法をprivate開発と名付けよう
相手側に技術が流出することがない

781 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 2 ]
[ここ壊れてます]

782 名前:1:08:27.02 ID:NXT3QGLz.net mailto: >>752
×このスレの結論
◯ぼくの主張の結論
[]
[ここ壊れてます]

783 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 21:10:05.29 ID:NXT3QGLz.net]
>>755
間違えた
×ぼくの主張の結論
◯ぼくがまとめた、偉い人が書いた本の受け売り情報

784 名前:デフォルトの名無しさん mailto:age [2020/07/04(土) 21:41:09.24 ID:pmIasW6W.net]
本人の経験が感じられなくて薄っぺらいんだよなあ

785 名前:デフォルトの名無しさん mailto:age [2020/07/04(土) 21:43:15 ID:pmIasW6W.net]
僕の高い知性と豊富な経験に基づく主張を聞いて欲しい
privateメソッドはテストした方がいい

786 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 21:56:15 ID:gmurOIZf.net]
>別クラスのパブリックメソッドとする
>プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを
>示唆している場合があります。テストがどうしても書きたい場合は、その責務はテスト対象の
>プライベートな振る舞いではなく、他の誰かのパブリックな振る舞いなのでしょう。テスト対象の
>プライベートメソッドを「クラスの抽出」や「メソッド/関数の移動」を使って、テスト対象の
>コラボレータのパブリックメソッドとして抽出し、普通にパブリックメソッドとしてテストしましょう。
これだけは意味ある意見ではあるな。他はカスみたいな理由だが。

787 名前:デフォルトの名無しさん [2020/07/04(土) 22:11:41 ID:42LT/T3f.net]
カバレッジ測定ツール高いし持ってないので、private直接テストしたい。

788 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 22:19:33 ID:O/jhkl6h.net]
>>759
>>プライベートなメソッドのテストを書きたいということは、実はテスト対象の責務が多すぎることを
>>示唆している場合があります
わかる

>>コラボレータのパブリックメソッドとして抽出し、普通にパブリックメソッドとしてテストしましょう。
これは選択肢の一つであって常にそうすべきなわけではないんだよね
クラスの分割基準とテストを書く書かないの基準は別だから

789 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 22:19:58 ID:O/jhkl6h.net]
プライベートだとテストしにくいので、パブリックメソッドとして抽出し、普通にテストしましょう
これが本音



790 名前:デフォルトの名無しさん mailto:sage [2020/07/04(土) 22:47:43.56 ID:1l6Tw/KB.net]
https://i.imgur.com/FG4MVEW.jpg

791 名前:デフォルトの名無しさん [2020/07/05(日) 00:43:13.75 ID:9F15TCk0.net]
プライベートがテストできるということはホワイトボックスなわけでユニットテスト段階でしょ。
そもそもプライベートをテストするにはソース自体書き換えないと呼べないじゃん。

ソース自体書き換えてテストするようなことはビジネスの世界ではあんまり無いしテストと
なったらブラックボックスが普通。

てかもはやテストの話でカプセル化やOO関係ないな。

792 名前:デフォルトの名無しさん [2020/07/05(日) 01:18:10.47 ID:LRfXHt7v.net]
ホワイトやブラックについて語るのは時期が悪いというか、国家を危険にさらす可能性さえあるからね。

もう少し社会情勢に気を配ろうよ。

793 名前:デフォルトの名無しさん [2020/07/05(日) 01:32:28.51 ID:LRfXHt7v.net]
昔のホームページにはサイタマップというものがあった。

794 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:04:25.24 ID:9F15TCk0.net]
埼玉県民にはそこらへんの草でも食わせておけ

795 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:11:14.07 ID:58eR5uXa.net]
>>764
> ソース自体書き換えてテストするようなことはビジネスの世界ではあんまり無いしテストと

まさかpublic・privateメソッドのテストをテスト工程でやる、
public・privateメソッドを書いた人と別の人がやるって思ってないか?

public・privateメソッドを実装中に、その作ったもののが正しく動くかどうか
public・privateメソッドのソースを書いた人が、書いてる段階でテストするんだから
当然ソースを書いて(書き換えて)テストするに決まってるじゃん

お前は、その後の(統合)テスト工程でソースコードを変えてテストとか言ってるだろw

796 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:46:27.47 ID:9F15TCk0.net]
>>768
なんなのその口調気持ち悪い。

大規模開発だとテスト工程を別の人間が何度もやるのは当たり前だよ。
デベロッパ個人のテストはコーディングの範疇なのでもちろん個人ではやるが
それほど大事ではない。

組み込みで車のブレーキ制御とかは全く別の話だろうがOOとかカプセル化とは
基本かけ離れた分野。

797 名前:デフォルトの名無しさん [2020/07/05(日) 02:48:43.07 ID:LRfXHt7v.net]
テストしない理由を考えるのは。

798 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:50:28.66 ID:58eR5uXa.net]
>>769
> 大規模開発だとテスト工程を別の人間が何度もやるのは当たり前だよ。

大規模開発だとpublicやprivateメソッドのテストを別の人がやるって?
テストコード専用に書く人でもいるのかよw
それはどこの話だ?事例の一つぐらい持ってきてから言え

799 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:51:54.42 ID:9F15TCk0.net]
>>771
某アメリカ製のパッケージとかだな。

むしろテストコード専門に書く人いないのかよ。じゃあOOとかカプセル化とか
必要なほどの規模じゃないか体制がおかしいな。



800 名前:デフォルトの名無しさん mailto:sage [2020/07/05(日) 02:53:01.58 ID:58eR5uXa.net]
> 某アメリカ製のパッケージとかだな。

だから事例は?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<316KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef