オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2015/12/15(火) 13:23:08.06ID:Rib62xXqhttps://twitter.com/ProgrammingMono/status/665702678006140928
研究グループは、血管新生注において血管が伸長する際の血管内皮細胞注運動を制御するしくみを、生物学と数理モデル・
コンピュータシミュレーションを融合させた先端的な研究手法により明らかにしました。
生物は、最小の機能単位である細胞が寄り集まった多細胞体です。しかし、細胞の集まりが、組織や器官といった
秩序ある形態や構造をつくり機能するしくみはほとんど分かっていません。中でも血管は、体中の全組織に十分な
酸素や栄養源を効率よく供給するため、組織や組織の間に入り込み、血管外の環境との相互作用により、巧妙な
枝分かれ構造をとっています。
これまでに本研究グループは、新しく血管がつくられる(血管新生)際の細胞の動きに着目し、特に血管内皮細胞の
動きをリアルタイムで可視化し、定量的に捉えることを可能にしてきました。
今回さらに、血管の伸長を制御するしくみについて、細胞が自発的に自らを制御して動く過程(自律的過程)と、
隣接した細胞から適宜影響を受けて動く過程(協調的過程)がうまく共存することで、全体の動きが巧みに統制
されていることを世界に先駆けて実証しました。
興味深いことに、血管内皮細胞が前後したり、お互いに追い抜きあったりという血管新生で見られる複雑な細胞集団の
動きを制御している中枢部分は、細胞一つ一つの動き(スピードと方向性)の「確率的な変化」として十分説明できる
ことをコンピュータシミュレーションで実証しました。
http://www.jst.go.jp/pr/announce/20151120-2/#YOUGO3
前スレ
オブジェクト指向は愚かな考え。この世は計算式
http://peace.2ch.net/test/read.cgi/tech/1447990379/
0232デフォルトの名無しさん
2015/12/19(土) 04:45:37.26ID:ysM2oFx/なぜなら、どんな型でも入れることが可能だからだ。
なお型が矛盾しないからといって、正しく動くわけじゃないw
0233デフォルトの名無しさん
2015/12/19(土) 05:08:30.90ID:srVmyYNw入れるって書いてるから変数型かな
0234デフォルトの名無しさん
2015/12/19(土) 05:20:10.46ID:ysM2oFx/関数の引数の型。
0235デフォルトの名無しさん
2015/12/19(土) 06:11:42.29ID:uwvw3g3I一方、静的型付言語でも、型が矛盾しないからといって、正しく動くわけでもないw
0236デフォルトの名無しさん
2015/12/19(土) 06:13:31.81ID:uwvw3g3I静的型付関数型言語で型エラーの本当の原因を探すよりも
Smalltalkで実行時エラーの本当の原因を探すほうが遥かに簡単で間違えにくい。
0237デフォルトの名無しさん
2015/12/19(土) 07:30:05.05ID:TW2fFhuS型の不整合によるエラーはぜったい起こらないという前提なの?
そんなちゃんとした型システムの言語、あんたら使ったことないだろ
0238デフォルトの名無しさん
2015/12/19(土) 07:51:26.41ID:ysM2oFx/1か0じゃない。出来る限りコンパイル時に解決してくれれば
動的に解決する問題が減る。
静的型で型の不整合が起きるコードなんて限られてるんだから、
その影響範囲を小さくすることで、動的なものを静的に
解決できるように設計するんだよ。
静的に解決するのと動的に解決するのとの差は大きく、
動的だとすべての実行パスを、実際に実行しないと信頼出来ないが
静的だと実行する必要が無いから、すべての実行パスを実行するコストが0になる。
0239デフォルトの名無しさん
2015/12/19(土) 09:07:04.58ID:P/E9W26M俺もJedi-vim使ってるけどこれってどうやって配列の中身に補完かけんの?
何回やっても出来なくてPythonゴミだと思ってた
0240デフォルトの名無しさん
2015/12/19(土) 09:33:28.96ID:TW2fFhuS> 1か0じゃない。
あんたらの言ってることは1か0かでしかないよ。w
ここでもすでに2つもやってる
> すべての実行パス
> コストが0
0241デフォルトの名無しさん
2015/12/19(土) 09:33:42.26ID:QugsHy5+オブジェクト指向とか、関数型とかいう前に、構造化プログラミングが出来てないからtypoで困るのか
0242デフォルトの名無しさん
2015/12/19(土) 09:34:15.15ID:u/d4wrI0こいつまじでテスト書かないんだろうな。。
適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。
型があってなけりゃ大概まともになんて動かんわ。
>そもそも、完璧なテストは書けるのか?って話もある。
テストでもプログラムでも「完璧な」なんてありえないんだよ。
確率や効率をいかにあげるかって話だ。
>テストを書く=時間がかかる だ。
当たり前だ。それなりの精度のもの作るならそうなる。
プロトで作るくらいの規模のもので型エラーでほとんど動かんもの作る奴なんてどっちにしろ
まともなものなんて作れんわ。
0243デフォルトの名無しさん
2015/12/19(土) 09:35:02.37ID:ysM2oFx/無関係なものを結びつけたがるよなw
まるで、そういう印象をあたえるのが目的かのようだwww
0244デフォルトの名無しさん
2015/12/19(土) 09:36:58.29ID:ysM2oFx/> 適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。
> 型があってなけりゃ大概まともになんて動かんわ。
わかってないねw
適当にその型のオブジェクト生成して突っ込むというテストコードを書いたからといって、
そのテストコード以外の部分には、当てはまらないんだよ。
テストコードだけがうまく動作するwww
> 型があってなけりゃ大概まともになんて動かんわ。
問題はそこからだな。まともに動かない。原因は何か?
デバッグ大変だぁw
0245デフォルトの名無しさん
2015/12/19(土) 09:38:45.80ID:ysM2oFx/インターフェースの問題なのだから
単体テストでは見つけることが出来ないんだよ。
これは結合テストの範疇。
0246デフォルトの名無しさん
2015/12/19(土) 09:41:53.19ID:TW2fFhuS- 動的型付けで静的型付けのような完全なチェックは不可能
- 完全なチェックを妨げる言語機能は自分達には無価値
- 静的型付きはすばらしい。だからおまえ等が使わない理由が分からない。バカなの?
ただこれだけのこと
0247デフォルトの名無しさん
2015/12/19(土) 09:45:53.67ID:P/E9W26M0248デフォルトの名無しさん
2015/12/19(土) 09:47:41.17ID:8SzZHE5Vだから、仕組み的に静的型付けより正確な補完ができることはありえない
>>216
戻り値にShowとかCloseとかのよくあるメソッド呼ぶだけだとどうしても補完は不足する
C#とかの補完は、加不足なく表示されるのがポイントで、リファレンスを参照する手間がないのがありがたい
>>181
dynamic型とかでできるよ
でも補完が効かないし、遅くなって静的コンパイル言語の利点を潰しちゃうからあんまり使われない
0249デフォルトの名無しさん
2015/12/19(土) 09:49:18.71ID:ysM2oFx/> 結局、静的型付けのヒトの主張は
なるほどw 動的型の人の主張はそういう反論しかできないから
話をこれだけにしてくださいってことだなw
0250デフォルトの名無しさん
2015/12/19(土) 09:50:10.54ID:ysM2oFx/面白い反応だwww
0251デフォルトの名無しさん
2015/12/19(土) 10:09:02.79ID:QugsHy5+typoが発見できないような広い範囲をテストするなんてことは基本的に有り得ない
0252デフォルトの名無しさん
2015/12/19(土) 10:10:22.76ID:l6AIqaac自分が理解できない動的な考え方の排斥か?
自分たちの土俵での優位性を主張したいだけなのか?
0253デフォルトの名無しさん
2015/12/19(土) 10:13:36.72ID:uwvw3g3I>動的型はダックタイピングを期待して故意に複数の型を許すこともある
>だから、仕組み的に静的型付けより正確な補完ができることはありえない
ちがうなw
特定の型の引数しか扱えないような低性能な静的型と違って、
動的型は任意の型を取る能力を持っているから、
動的型のほうがより「正確に」可能な型に関係した補完が可能なんだよ。
0254デフォルトの名無しさん
2015/12/19(土) 10:21:30.79ID:8SzZHE5Vえ?どういう補完を指して優れてるって言ってるの?
型にしばられすぎないことが利点の動的言語で静的言語並の補完したら良さを潰してるとしか思えないんだが
0255デフォルトの名無しさん
2015/12/19(土) 10:26:19.12ID:dtnFGkzr全く別のことだと言うことがわかったよ。それ以降、補完に頼ることを止めて以来コードの質が上がったということは言うまでもない。
0256デフォルトの名無しさん
2015/12/19(土) 10:51:48.54ID:oOYHp+m90257デフォルトの名無しさん
2015/12/19(土) 10:56:29.09ID:P/E9W26M0258デフォルトの名無しさん
2015/12/19(土) 10:59:35.33ID:eeFVwRM7一日二万行くらいコード書いてるのかな?
プログラミングの本質はタイピングじゃなくて設計なんだけどな
俺はemacsとabbrevだけで十数年食ってるよ
0259デフォルトの名無しさん
2015/12/19(土) 11:07:06.94ID:t89iAcrU0260デフォルトの名無しさん
2015/12/19(土) 11:07:11.55ID:l6AIqaac読解力 and/or 論理的思考 も欠如して、かわいそうに…
ただ煽るだけしか能がないのか。そんなんでよくまともなコードを書けるな。
それともあれか、俺たちも我慢して型情報を書いて、それと引き替えに型安全と補完というメリットを得ている
お前らそれを馬鹿にして否定したり、あまつさえ俺には必要ない別のメリットを享受することなど許さないってか
0261デフォルトの名無しさん
2015/12/19(土) 12:35:58.10ID:wzwqX1ml普通に配列の中身も補完できたよなーと思って試したらやっぱり出来たから、
そっちの環境がおかしいんじゃね?
0262デフォルトの名無しさん
2015/12/19(土) 13:21:35.87ID:dNXWfsX0動的型界隈においても静的型のメリットが評価されてきたってことでもあるが
それはともかくとして、>>212のような書き方をするとfuncはstrと派生クラスしか受け付けなくなるから
動的型の柔軟性が全く損なわれるわけだけどね
動的型言語なのにメタプログラミングもクソもないC言語レベルのコーディングを強いられるのはなんとも
一方で静的型言語で>>211のような型を指定しない書き方をするときは
ジェネリックやテンプレートを使うわけだけど、この場合コード補完こそ効かないけれど
静的に解決するので少なくとも型のミスやtypoのミスはコンパイルエラーになる
静的型言語のタイプセーフはジェネリックでも健在ということ
これは動的型言語の取ってつけたような貧弱な静的型システムでは実現できていない
しかし静的型のジェネリックは静的に解決するので動的なダックタイピングは出来ない
でも、動的なダックタイピングのような危険な行為は本当に必要なのかどうなのか
殆どの場合は静的なダックタイピングだけで十分だし、コンパイルエラーで検出できたほうが良い
動的な多態をしたければ、インターフェースを介して行ったほうが安全
0263デフォルトの名無しさん
2015/12/19(土) 13:24:08.37ID:dNXWfsX0> テストでもプログラムでも「完璧な」なんてありえないんだよ。
> 確率や効率をいかにあげるかって話だ。
そこで静的型言語の出番
少しでもバグを減らすためには静的型言語が有用
0264デフォルトの名無しさん
2015/12/19(土) 13:38:36.46ID:a/6r0NiUhttp://peace.2ch.net/test/read.cgi/tech/1385273168/
もうこっちでよくないか?
0265デフォルトの名無しさん
2015/12/19(土) 13:41:55.99ID:XdSebzRf任意である通知カードの受け取りを政府広報が受け取れとCM
https://www.youtube.com/watch?v=69cC29ZwXyw
マイナンバー通知カードを受け取ってしまっても、市町村に送り返そうhttps://www.youtube.com/watch?v=_f3I2RTC17s
311東日本大震災は人口地震テロ さゆふらっとまうんど(平塚正幸)https://m.youtube.com/watch?v=XiK9DeIMt14
マイナンバー通知カードの受け取りを拒否しようhttps://www.youtube.com/watch?v=xSt6jiOKh_I
0266デフォルトの名無しさん
2015/12/19(土) 13:43:56.73ID:a/6r0NiU拒否する理由がない。
拒否するだけじゃただの反抗期。
すごくダサい。
0267デフォルトの名無しさん
2015/12/19(土) 13:54:09.76ID:dNXWfsX0大体は動的にクラスを書き換え出来る、とかといった危険なメリットが有るぐらい
最近は動的型言語にも静的型の機能(の中途半端なもの)が
どんどん導入されてきていることから考えると
動的型言語界隈の人にとっても静的型のメリットは大きいということ
ただし、取ってつけたようなものなので、ジェネリックが無いわけだが・・
人間は完璧じゃないのでテストも完璧とは限らない
機械的に検出できるエラーは多ければ多いほどよい
俺らはコンピュータを使って普段色々なことを自動化するためにプログラムを書いているわけだから
我が身自身のエラーの検出も出来るだけ多くコンピュータで自動化しようというのは当然の事の流れ
他人の仕事は自動化しているのに、自分たちの仕事のエラー検出を自動化しないのは変な話
動的型言語は時代に逆行しているわけだ
最先端と勘違いしていた人たち、可哀想
0268デフォルトの名無しさん
2015/12/19(土) 14:06:24.99ID:srVmyYNwできるだけ早く動作を確認したいから静は動の機能を取り込む
動作の確認はどう設計されたかの確認とも言える
0269デフォルトの名無しさん
2015/12/19(土) 14:08:42.41ID:a/6r0NiUruby on railsとか一時期流行ったよねー。
これからはlightweight languageだとか言ってね。
人力で型チェックのコード書くのだりーってことに気がついて下火になった。
0270デフォルトの名無しさん
2015/12/19(土) 14:19:06.48ID:6Pr5+KRd全部動的言語とか初心者かよ。
0271デフォルトの名無しさん
2015/12/19(土) 14:26:41.75ID:srVmyYNw静的言語でしっかり設計して動的に仕様に追従できるようにしたいものだ
0272デフォルトの名無しさん
2015/12/19(土) 16:05:53.13ID:QugsHy5+0273デフォルトの名無しさん
2015/12/19(土) 17:18:06.84ID:TmayNbxK0274デフォルトの名無しさん
2015/12/19(土) 17:40:05.11ID:ysM2oFx/意訳
静的言語の利点はtypoだけなんだって思い込みたい
だって、それ以外の利点に反論することが出来ないんだもん。
0275デフォルトの名無しさん
2015/12/19(土) 17:58:11.97ID:xOPNzksg0276デフォルトの名無しさん
2015/12/19(土) 18:11:56.47ID:ysM2oFx/typoしか指摘してないからだよw
0277デフォルトの名無しさん
2015/12/19(土) 18:44:52.65ID:OdWxPmQd設計上のトレードオフで異なる方向性に進んだだけであって、
どちらにも良いところは一杯あるよ。それで良いじゃないか。
もちろんJavaにも良いところはある。ドカタでもコードらしき物が書けるところとか。
0278デフォルトの名無しさん
2015/12/19(土) 18:49:17.24ID:a/6r0NiUJavaが普及した理由って文法がシンプルだから?
0279デフォルトの名無しさん
2015/12/19(土) 18:54:52.90ID:dNXWfsX00280デフォルトの名無しさん
2015/12/19(土) 18:55:37.15ID:srVmyYNwたくさん使われたからドカタが生まれたよ
0281デフォルトの名無しさん
2015/12/19(土) 18:56:01.89ID:ysM2oFx/こういう矛盾があるんだよなw
0282デフォルトの名無しさん
2015/12/19(土) 18:57:07.90ID:ysM2oFx/その理屈だと、たくさん使われてる言語を使ってる人=ドカタってことになって
なぜドカタなのか?の理由がなくなるぞw
0283デフォルトの名無しさん
2015/12/19(土) 18:58:09.44ID:ysM2oFx/自分が嫌いな言語が普及すると悔しいだろ?
悔しかったら、叫べばいいんだよ。
お前のカーチャンデーべそ!
0284デフォルトの名無しさん
2015/12/19(土) 19:02:44.62ID:99cf/LSiそれでいいじゃないか。
0285デフォルトの名無しさん
2015/12/19(土) 19:04:44.99ID:ysM2oFx/低能な悪口になってしまってるよなw
ドカタとする理由はない。
単にドカタと呼ばれれば気分悪いだろう?
っていう気持ちだけで言ってるw
やーい、ドカタ(笑)、ドカタ(笑)
俺はドカタじゃないもん!
0286デフォルトの名無しさん
2015/12/19(土) 20:54:40.24ID:9zezTTvK静的言語の利点はコードコントラクト
http://monobook.org/wiki/%E5%A5%91%E7%B4%84%E3%81%AB%E3%82%88%E3%82%8B%E8%A8%AD%E8%A8%88
0287デフォルトの名無しさん
2015/12/19(土) 21:32:04.90ID:VDGaUBLZ静的か動的か(やっぱり静的サイキョ)みたいな
議論は適材適所という話でしかないしどうでもいいや。
0288デフォルトの名無しさん
2015/12/19(土) 22:54:29.05ID:9zezTTvK副作用の低減とマルチスレッド性能でいえば関数型
大事なのはバランス感覚。
中間が素晴らしい。
オブジェクト指向で関数型で基本静的で動的も使えunsafeも使えるC#が最強なんだな。
0289デフォルトの名無しさん
2015/12/19(土) 23:15:07.87ID:0/RlvyV4これだけは間違いない
0290デフォルトの名無しさん
2015/12/19(土) 23:15:59.92ID:25MZJC6Y0291デフォルトの名無しさん
2015/12/19(土) 23:46:59.99ID:99cf/LSi0292デフォルトの名無しさん
2015/12/19(土) 23:55:31.17ID:GM3q6wlH0293デフォルトの名無しさん
2015/12/20(日) 01:22:59.25ID:ei3pb2ORhttp://realtime.search.yahoo.co.jp/search?fr=applep2&ei=utf-8&p=xamarin
0294uy ◆Qawu9.2l1E
2015/12/20(日) 01:23:00.97ID:I1JEaeeoバランスwwwwwwwwwwwwwwwww?WwWWWwWw
低能特有の曖昧でふわふわした表現ワロタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0295デフォルトの名無しさん
2015/12/20(日) 01:27:54.27ID:ei3pb2OR0296デフォルトの名無しさん
2015/12/20(日) 02:21:28.75ID:IuSUOMsB求められてる範疇で都合よく使えるいいんだ。百点の理想郷なんかなんかいらんのよ
クライアントないし上長の要望に立ち向かうってこと自体、曖昧でふわふわしたところにやんわりと釘を刺し続ける行為だしね
90点もいらない、10点の仕事を最安で求められたなら10点できっちり済ませるのが土方クオリティ
0297デフォルトの名無しさん
2015/12/20(日) 02:24:10.18ID:jqjYNF9z矛盾したこと言ってるなよ。
0298デフォルトの名無しさん
2015/12/20(日) 02:39:17.80ID:IuSUOMsB0299デフォルトの名無しさん
2015/12/20(日) 07:15:36.12ID:2L75ZkE+20年前にはそんなものは神話だということがバレているわけだが。
0300デフォルトの名無しさん
2015/12/20(日) 07:17:27.87ID:2L75ZkE+もしかして、動的型言語では契約プログラミングができないとでも思い込んでいる?
0301デフォルトの名無しさん
2015/12/20(日) 07:54:40.31ID:jqjYNF9z静的言語でできることの「一部」しかできない。
いっつもできるできないの話に持ち込んで
同じことができると錯覚させようとするんだよなぁw
0302デフォルトの名無しさん
2015/12/20(日) 08:43:25.14ID:gr0U1KS4神話じゃなくってそれはどうすればいいのか知らないだけのことで、少なくとも完全にパッケージングされていれば
きにならないことだ
0303デフォルトの名無しさん
2015/12/20(日) 08:49:50.37ID:fsY0id6uあれは感動
0304デフォルトの名無しさん
2015/12/20(日) 09:30:42.11ID:hK9ny108動的言語でできることの「一部」ですらないまがいもん。
いっつもできるできないの話に持ち込んで
同じことができると錯覚させようとするんだよなぁw
それでそのことを指摘すると、動的な機能なんていらないとか
typoの修正が完全じゃなくなるとか、補完の精度が落ちるとか
挙げ句の果ては、動的だと動かさないと型チェックできないとか
0か1かの極論を展開して煙に巻こうとするんだよなぁw
で、さらにそれを指摘すると、それしか反論がなかったからとか開き直る。
さんざん動的のメリットを言ってもユースケース想像できなくて頭ごなしに拒否。
ドカタは世界が狭いから、静的型だとダメだから動的に移る人もいるって
わかんないんだよね
0305デフォルトの名無しさん
2015/12/20(日) 09:35:11.37ID:jqjYNF9z静的言語でなんでも動的にできるなんて言ってないがねw
逆に静的に決めることが利点なわけで、動的でやろうとは思わない。
そりゃ動的にすることも出来なくはないけど、できればやりたくない。
0306デフォルトの名無しさん
2015/12/20(日) 10:57:03.24ID:bx1tuSu0C#には動的型言語みたいな機能のdynamicがあるけど
静的型言語を使っておいて全部の変数をdynamicで書こうとは思わないよね
キャストもなるべくしないようにすべし、というのが静的型の文化
一方で最近の動的型言語は静的型の機能を吸収していっているが
とても中途半端でジェネリックが無い
まさに、動的型の静的機能は静的型言語でできることの一部ですら無いまがい物だね
0307デフォルトの名無しさん
2015/12/20(日) 11:15:20.03ID:NKmQ5FTU想像はできてない、かも分からんが
お前も言えてないよ
0308デフォルトの名無しさん
2015/12/20(日) 11:29:25.89ID:OjtiikyNあとは稼働を止めずにリプレースできるとか。。
静的言語の問題点は
静的解析してりゃテストはいらんとか言い出す馬鹿が発生し易いってことかな。
0309デフォルトの名無しさん
2015/12/20(日) 11:47:57.68ID:jqjYNF9z"その方法" は、クラウドの時代になって様変わりしたけどねw
今はサーバーにログインして、一台一台ソースコードを更新なんて
危険なやり方でリプレースしたりしませんw
新しいバージョンにしたVMを作成して最終確認した後
接続先を新しいVMに切り替えるんですよ。
このやり方に動的の利点なんかありません。
0310デフォルトの名無しさん
2015/12/20(日) 11:49:22.93ID:jqjYNF9z○ 静的言語の問題点は静的解析してりゃテストはいらんとか言い出すんでしょう?
とかいいだす、動的馬鹿が発生し易いってことかなw
静的だとテストはいらんと言ってるのは動的厨だけ。
0311デフォルトの名無しさん
2015/12/20(日) 11:56:38.95ID:ZootpjTaで、値に対するテストに通れば、型チェックも通ってると思うんだけど、
なぜか静的ドカタは動的だと型のテストコードも必要と思い込んでるみたいなんだよね
なんで?
0312デフォルトの名無しさん
2015/12/20(日) 12:49:50.49ID:jqjYNF9zいろいろと勘違いしてるねw
重要なのは、テストも含めた開発のコスト。問題点は早く見つかる方がコストは低くなる。
そしてもう一つ。型チェックというのは正確にはインターフェースのチェック。
引数(シグネチャ)が正しいこと。クラスの継承関係などが正しいこと。
インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。
(ほぼというのは意図的に静的型の型安全性を捨てた場合を除くから)
テストコードというのは、単体テストが主で、これはインターフェースのテストではない。
単体テストでインターフェースのテストを静的型と同等レベルまで動的型でテストするには
漏れがないといえるレベル(少なくともカバッジ100%)の完全なテストが必要になる。
しかし漏れがないことを証明する方法はないし、そもそもテストに問題がないことを証明する方法もない。
ちなみに、カバレッジ100%を目指せと言うと、それはやめろと言われる(笑)
テストを書くというのはコストがかかる。メンテナンスするのにもコストは掛かる。
テストを書かなくてもテストを書いたのと同じ効果が得られるのであれば、それに越したことはない
それがテストの一部であったとしても、テストのコストを下げることになる。
テストはどれだけやっても十分とはいえないんだから多ければ多いほどいい。コストがかからない方法(静的)ならなおさらだ。
動的型は完璧なテストがあれば十分だというが、そのような完璧なテストは存在しない。
TDD再考 (1) ? テストファーストとユニットテストへの死刑宣告 ( http://ubiteku.oinker.me/2015/07/21/tdd-is-dead-long-live-testing/ )
TDD再考 (2) ? 何故、ほとんどのユニットテストは無駄なのか? ( http://ubiteku.oinker.me/2015/07/27/why-most-unit-testing-is-waste/ )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 1 http://postd.cc/is-tdd-dead-part1/ )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 2 http://postd.cc/is-tdd-dead-part-2/ )
0313デフォルトの名無しさん
2015/12/20(日) 12:51:46.50ID:akw4ximt自分がVisualC#™️推しだってことは隠して
Microsoft™️ .NETフレームワーク専用言語の
「静的言語(=Visual C#™️)は世界一なんだぞぉ!」
って主張するスレってことでいいかね?
0314デフォルトの名無しさん
2015/12/20(日) 12:55:58.25ID:Ava23gurあ、ドカタ界隈ではインターフェースのテストはしてないんだ
なるほどね
0315デフォルトの名無しさん
2015/12/20(日) 13:00:45.19ID:jqjYNF9zインターフェースのテストをしてるんだw
書いてみてよ。
0316デフォルトの名無しさん
2015/12/20(日) 13:05:09.23ID:jqjYNF9z具体的に説明する。
foo(TypeA a, TypeB b, TypeC c) という関数がある。
この関数を使っている所がソースコードのあちこちに存在する。
静的型付けであれば、このインターフェース、つまり引数の型が違うものを
全て教えてくれる。
>>314はこのインターフェースのテストを書くらしいw
俺は実行して見る以外のやり方を知らないよ。
実行すればわかる? そうだね。”漏れがなく完璧なテストがあればね"
さあテストを書くお仕事だ。テストを書くのはコストは掛かるぞ。
テストをメンテナンスするのにもコストは掛かるぞ。
静的型付けでは、このインターフェースのテストにはコストはかからない。
0317デフォルトの名無しさん
2015/12/20(日) 13:10:54.30ID:hK9ny108> インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。
逆だろ
静的型ではほぼ完全にチェックできることしか書けないように、
本来ソフトウエアにできることに制限を設けてるだけ
0318デフォルトの名無しさん
2015/12/20(日) 13:11:34.10ID:Ava23gurドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ
なるほどね
0319デフォルトの名無しさん
2015/12/20(日) 13:22:25.74ID:jqjYNF9z> 静的型ではほぼ完全にチェックできることしか書けないように、
> 本来ソフトウエアにできることに制限を設けてるだけ
プログラミングの進化に伴い、なんでもできるアセンブラから制限をかけることで、
より安全なコードが書けるように進化しているという事実をどう考えてるのか?
>>318
> ドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ
だからいったろ?
静的型のインターフェースのテストと同等レベルのテストを行うには
完璧なテスト(カバレッジ100%)が必要。だがテストが完璧だと保証する方法はない。
テストにバグがないことを保証する方法もない。
そしてカバレッジ100%を目指せというと、それはやめとけと言われる(笑)
もちろんカバレッジ100%では完璧ではない。特に動的型付けでは
コードパスによって引数は大胆に変わる可能性があるし、コード自体も変わる可能性がある。
あるコードを実行したら、オレオレパッチで関数のシグネチャが変わることさえも。
テストはどれだけやっても確実にはならない。ソースコードの単体テストに加えて
静的型付けのコンパイルチェックがあれば、単体テストだけよりもさらに完璧になる。
鬼に金棒ってやつだ。
所詮お前は、単体テストがあれば十分だって考えてる
あまちゃんってこと。
0320デフォルトの名無しさん
2015/12/20(日) 13:43:19.63ID:GK0ijEppつまり値に対するテストはロクにやらずに
本番でエラーが出ないことをガクブルしながら祈ってるわけね
なるほどね
0321デフォルトの名無しさん
2015/12/20(日) 13:44:12.09ID:dp1zfJIT0322デフォルトの名無しさん
2015/12/20(日) 14:52:31.49ID:hK9ny108> より安全なコードが書けるように進化しているという事実をどう考えてるのか?
抽象化=制限 じゃあない。
0323デフォルトの名無しさん
2015/12/20(日) 15:56:38.30ID:+uShK3RK0324デフォルトの名無しさん
2015/12/20(日) 16:28:07.52ID:bx1tuSu0自動車にも自動ブレーキがつく時代だぞ
ファンヒーターやコンロも付けっぱなし防止機能が付いているし
電車なんかの制御も安全機能だらけだろ
初めから危ない動作はしないように制御されている
セーフティーは重要
お前らの書くプログラムも明らかに矛盾した入力は受け付けないようにしているだろ
ユーザーは何を入力するか分からんからな
普段そういう安全機能がついたものを使っておいて、また、作っておいて
どうしてそういう安全に関する考えを自分の使う言語にまで発展させて考えられないの?
頭硬いの?どうして安全装置が無いことでドヤ顔できるの?
0325デフォルトの名無しさん
2015/12/20(日) 16:31:01.73ID:+uShK3RK0326デフォルトの名無しさん
2015/12/20(日) 16:38:13.00ID:bx1tuSu0そういう意味ではメガデモをアセンブリで作るような場合は安全は関係ないだろう
仕事で使うもの、あまたある業務用装置に
安全装置がついてないとでも言うか?
なまじ危ないことをするから安全装置だらけだぞ
ただし業務用装置にはコストの関係もあるから付いてない場合もあるが
それは劣っているというだけで、コストかけられるなら安全装置はついていたほうが良いのは当たり前
安全装置がついていないことをドヤ顔する人はいない
0327デフォルトの名無しさん
2015/12/20(日) 16:41:55.89ID:+uShK3RK0328デフォルトの名無しさん
2015/12/20(日) 16:46:14.53ID:0rzi2y0bまあ、する気もないんだろうけど。
動的遅延結合性を大事にする人間は別に型は否定してない。
たまたま今の型システムは不自由だから、次善の策として動的型を使っているだけだ。
0329デフォルトの名無しさん
2015/12/20(日) 16:51:13.35ID:bx1tuSu0誤った入力が有ってもそのまま実行するのか?
それか初めから誤った入力は出来ないように
無効なボタンは灰色表示にして押せないようにしているんじゃないのか?
当たり前だよな?
普段そういうものを作っておいて、作らされておいて
どうして自分の使っている言語に安全装置が足りてないことに気づかないの?
0330デフォルトの名無しさん
2015/12/20(日) 16:55:40.40ID:+uShK3RK0331デフォルトの名無しさん
2015/12/20(日) 17:27:57.19ID:9YX+2XWA正直、smalltalkはlispやprologと同じくらい極北なイメージがある。
Cのマクロしか知らずにマクロを批判してたらLisperに囲まれてボコボコにされるのと同じように、
Javaのオブジェクト指向しか知らずにOOPを批判してたらSmalltalkerにボコボコにされる雰囲気がある。
そして誰か、「この世は計算式」ってどういう意味なのか教えてください。
それがオブジェクト指向とどう対立するのかも分からん。
■ このスレッドは過去ログ倉庫に格納されています