- 1 名前:デフォルトの名無しさん mailto:sage [2017/12/01(金) 23:08:21.45 ID:FxdZTiuZ.net]
- スレタイ以外の言語もok
前スレ 次世代言語Part7[Go Rust Swift Kotlin TypeScript] mevius.5ch.net/test/read.cgi/tech/1508403098/
- 331 名前:デフォルトの名無しさん [2017/12/15(金) 16:17:12.00 ID:85mmUd/p.net]
- 動的型付け言語でメソッド先頭に引数型チェックをずらずら書いてるコードを見た時は心底アホだなと思いました
- 332 名前:デフォルトの名無しさん [2017/12/15(金) 16:19:20.03 ID:6UtRgQBN.net]
- >>324
その言い方は「手を抜く」ことに関して批判しているのように聞こえるな。 プログラマなら手を抜くことに積極的なのはむしろ褒められるべきことだと思うが。 手を抜かないことを美徳とするなら伝統工芸の職人さんにでもなれば。 少なくともそんな考え方をするような人間はプログラマには向いていないよ。
- 333 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 16:28:14.91 ID:Tb7zQwK9.net]
- >>326
そんなに自分のバカさを自慢しなくても…皆よくわかっているから
- 334 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 17:07:38.29 ID:WQPs5rl9.net]
- >>302
javaの場合はクラス間のキャストと整数、小数間のキャストが同じ構文だから分かりにくいけどあれ全くの別物だから 後者はどちらかというと関数に近い 例えばStringをObjectにキャストしても変数の値(=メモリアドレス)は変わらない でもlongをdoubleに変換したら変数の値自体が変わる これは大きな違い
- 335 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 17:10:15.06 ID:WQPs5rl9.net]
- 静的型付けでもテストはいるけど数を減らせる
わざわざ機械がチェック出来る事を人がやる意味は? あとオーバーヘッドどうのこうのって動的型付けの方がオーバーヘッドでかいやん
- 336 名前: mailto:sage [2017/12/15(金) 18:14:48.74 ID:kyib3K1A.net]
- >>326
いや、それが、Java の本番コードでは執拗な null チェックはかかせないようですよ、はじめてみたときは目をうたがったな…
- 337 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 19:17:26.70 ID:Tb7zQwK9.net]
- >>330
静的型はより少ないテストデータで同等の品質を確保できるという実証データはある?
- 338 名前: mailto:sage [2017/12/15(金) 19:24:35.38 ID:kyib3K1A.net]
- >>332
https://developers.srad.jp/story/14/11/08/081210/ あまり参考にならないかもしれない
- 339 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 19:39:38.59 ID:57xWWF8w.net]
- >>331
今時NotNullアノテーションで対応するけどな
- 340 名前:デフォルトの名無しさん [2017/12/15(金) 19:42:37.27 ID:Q6E9xMBX.net]
- スレタイの言語はどれも静的型付けやなw
- 341 名前:デフォルトの名無しさん [2017/12/15(金) 20:07:05.04 ID:6UtRgQBN.net]
- >>332
説得力のある実証データはたぶんないだろうな。
- 342 名前:だが逆説的に、動的型でも静的型と同等のテスト量で同等の品質を確保できる
という実証データがないだろうこともやはり同じだ。 「型付け」と「テスト量と品質」に関係性は「あるかもしれない」し、「ないかもしれない」。 そのことについて議論する価値はあるかもしれないが、 説得力のある実証データがないことが静的型付けを批判する理由にはなり得ない。 [] - [ここ壊れてます]
- 343 名前:デフォルトの名無しさん [2017/12/15(金) 20:17:29.09 ID:6UtRgQBN.net]
- ちなみにあまり説得力のない実証データなら腐るほどある。
何故それらに説得力ないかというと、 テストの品質というものを正確に数値化できないからだろうな。 つまり、品質を正確に数値化する方法がない限りはそのことについては誰も実証はできない。 まずは品質の数値化について誰もが納得できるような方法を考えることからだ。 そして、それが簡単にできれば苦労はしていない。
- 344 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 21:49:32.08 ID:HGhk3PLi.net]
- 静的型と動的型の言語で、同程度の品質を担保するために必要なテストの量が変わらないと仮定するなら、
メタプログラミングのしやすさとコードリーディングの難易度を天秤にかけるだけの話になりそうだ キャストについては、さすがにGoのinterfaceやらJavaのObjectは別として、それが本当に「本質的でない」場面があるとはどうしてもピンと来ない 上で例に出されてるOCamlの浮動小数点数と整数の演算だって、本来この2つを四則演算した結果が 浮動小数点数になるか整数になるかは本来非自明だから、どっちかに明示的に型を揃えろっていうのは 静的型動的型関係ない問題だと自分は思う メタプログラミングについてはこれももう出てるけど、本当にそれが必要かって言われるとなあ 確かに記述量自体は短くなるけど、間違いなく可読性とトレードオフになる
- 345 名前:デフォルトの名無しさん [2017/12/15(金) 22:40:22.38 ID:19GjPIYk.net]
- 「ノコギリと刺し身包丁の優劣」みたいな無意味な話はつまらん。
- 346 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 23:34:56.14 ID:WQPs5rl9.net]
- メタプログラミングみたいなのは型システム関係なくunsafeみたいな感じで一部分に閉じ込めて使うのが普通だからな
- 347 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 23:53:14.51 ID:/50W1d3E.net]
- 最近は、Pythonでも型アノテーション書くようにしてるよ。
見返した時に、コメントで型情報を書くよりは 楽なんで(;´∀`)
- 348 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 00:22:41.60 ID:ocig5iu9.net]
- >>335
TypeScriptは動的だよ。
- 349 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 00:39:35.88 ID:TWnq2dTt.net]
- >>342
静的型でもあり動的型でもある不思議な言語
- 350 名前:デフォルトの名無しさん [2017/12/16(土) 00:56:52.03 ID:puMNteBt.net]
- TypeScriptは静的な型検査をしたいから作ったんじゃないんか?
- 351 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 01:22:56.08 ID:TZZbndKv.net]
- 新しい言語の新しい議論でもあるのかと思って開いてみたら
20年前くらいの動的vs静的の罵り合いしかなかった 5ch死んでるな
- 352 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 01:34:19.93 ID:fQ+nYBte.net]
- そう思うなら貴方にはこのスレは向いていなかったのでしょう。どうぞ卒業なさいませ
- 353 名前:デフォルトの名無しさん [2017/12/16(土) 07:38:33.30 ID:g6YeJGmB.net]
- 20年は言いすぎだが確かに今更な話題だな
- 354 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 07:39:24.99 ID:0YcySKum.net]
- >>336
>説得力のある実証データがないことが静的型付けを批判する理由にはなり得ない。 完全に同意するし、同様に、 説得力のある実証データがない以上は動的型付けを批判する理由にはなり得ない。 と思うね。
- 355 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 10:07:20.76 ID:pj2GdbCH.net]
- 説得力のある実証データが無いとは限らない得ない。
発見されてない可能性のあるものを存在しないと断定し得ない。
- 356 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 11:54:08.21 ID:0YcySKum.net]
- >>349
信頼できる具体的なデータを出してから出直してきな、ばーか!
- 357 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 12:02:59.86 ID:pj2GdbCH.net]
- 信頼できる具体的なデータがないことはなり得ない。
完全に同意するし、同様に、 信頼できる具体的なデータがない理由にはなり得ない。
- 358 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:57:13.50 ID:GPVNoJ1v.net]
- そういう白いカラスを探すような真似をせんでも。
動的静的、どちらも良いものだし、どちらにも反対側に寄せるような機能も
- 359 名前:今時はある。
そういう意味では「静的型付け言語だから間違いが少ない」と言う発想は明後日というか「間違うなと言うだけの話」として扱われても仕方ないっちゃ仕方ない。 今まで一回もキャストやポインタデリファレンスを使ったコードを書いたことがない奴だけがギリギリ石を投げても良いと思うが、そんなやつはごく少数だろ。 チェックが厳しくなるのは良い事だが、それがないと物が作れない(はず)なんて言うのは補助輪付きの自転車を指して「これが至高の自転車だ、なぜなら倒れないからだ!」って言うのと同じくらい暴論。 [] - [ここ壊れてます]
- 360 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 14:58:31.90 ID:GPVNoJ1v.net]
- そういう奴がRustのコンパイラにバタバタと倒れていくのは至極愉快だけどな。
最初からそれぐらい考えて作っとけよ、と。
- 361 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:18:00.92 ID:4mgESDS3.net]
- 数値を引数にとる関数作ったら
境界値やゼロ値をテストするのが静的型 数値文字列オブジェクト思い付く限り全てテストしないと発狂するガイジが型無し池沼 こういうことでしょ?
- 362 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:28:08.68 ID:Dp1B/626.net]
- >>354
境界値やゼロ値をテストするコード書けば、文字列オブジェクトが入ってきたらエラーになるから 動的型でもそんなテストは必要ありません。 そんな当たり前の事も分からないなんて、君は本当に低脳だな。
- 363 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:32:04.21 ID:GPVNoJ1v.net]
- 逆の発想でしょ。
数値以外で呼んでなけりゃいいんだから、呼び出し箇所で引数が数値と推論できなければエラーにしときゃいいじゃん。解析上で。 仕様として数値しか取らないなら、数値に対するテストで十分でしょ。 静的言語でも数値以外を渡す方法が無いわけでも無い。程度論。 静的言語でもヒステリックなチェックが必要な案件もやっただけに、ホントに夢見てるんだろうなって思うわ。 引数を手当り次第にチェックする、という解法しか出て来ないのがそもそもキチガイじみてる。
- 364 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:34:15.25 ID:GPVNoJ1v.net]
- スタックもメモリも疑え、みたいなプログラム書いたこと無いんだろうな。
- 365 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:41:18.50 ID:4mgESDS3.net]
- お前も頭がパーエッチパーなのか?
- 366 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 15:47:08.12 ID:0YcySKum.net]
- >>358
おまえはまず自分がバカであることを自覚しろ 話はそれからだ
- 367 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:20:40.73 ID:4mgESDS3.net]
- 型無し能無し糞バカパーエッチパーのバカがなんだって?
早く10年熟成のウリジナル社内フレームワーク保守する作業に戻れよ
- 368 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 20:13:15.10 ID:GPVNoJ1v.net]
- どーやっても無関係のPHPをけなしたいんです!
というある種の精神的ハンディキャップを持ってるみたいだから仕方あるまい。
- 369 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 20:18:13.50 ID:GPVNoJ1v.net]
- 考えてみたけど、むしろPHPの問題は型があったとしても多分変わり無く問題としてあり続けると思うな。
- 370 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 20:50:00.94 ID:GPVNoJ1v.net]
- QCやると>>337は痛感するがな。
品質保証しなかった物が万一起こす損害と、品質保証したから避けられた損害はイコールじゃないし、 品質保証してしまった時点で、避けた損害の計上は机上の空論になってしまう。 避けるも何も起こらなかったんじゃないの?と過剰な心配とみなされがち。 起こっていたに違いない、と言うのは確かに空論だからな。 「改善できている品質」自体を点数化(そしてある程度これは王道もある)しても、「改善しなかった場合の品質」が見積値のままなので、恣意的と言われても仕方が無い。 同様の問題にコストカットもあるが、これも最初から織り込んで当初目的を果たしてしまうと話がややこしくなる。対費用効果が品証と同様に、実績値と見積値の比較になる。正しい
- 371 名前:比較じゃないのは確か。
一番、営業部や企画部や、ことによると開発部とも喧嘩になる数字。 なので、これに関して実証値を出せと言うのは、同じ事を、2つの方法で、全く同じ能力の人間が、二の轍を避けるというバアイスをかけないために初見で行った場合、の数値を出せと言う、無茶苦茶な要求になる。 パラレルワールドが発生してそれが一つの状態として観察出来る神が存在しない限りイチャモンのつけ放題。 要は無意味。 [] - [ここ壊れてます]
- 372 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 20:53:09.27 ID:GPVNoJ1v.net]
- バイアスがどう間違ったかバアイスになってるわ。以外に読めるもんだな。ごめん。
- 373 名前:デフォルトの名無しさん [2017/12/16(土) 22:08:20.37 ID:/LKsQL98.net]
- >>355
phpでも?
- 374 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 22:37:18.69 ID:ocig5iu9.net]
- >境界値やゼロ値をテストするコード書けば、文字列オブジェクトが入ってきたらエラーになるから
それをテストで確かめるんだろうが
- 375 名前:デフォルトの名無しさん [2017/12/16(土) 23:57:56.53 ID:g6YeJGmB.net]
- 間違えない前提ならテストもいらんなw
- 376 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 00:07:22.96 ID:lzYKowQo.net]
- >>362
当たり前やン PHP7になって型サポートが入った!!とか嬉ション漏らしてるペチパー見て 心底あの界隈のレベルの低さに辟易した
- 377 名前:デフォルトの名無しさん [2017/12/17(日) 00:17:16.85 ID:w0yPK3Np.net]
- >>366
そこなんだよなぁ。 >>355は、動的静的どちらでも同じようにテストを書くことになるんだから 「結果、テストを書く手間(量)は一緒だろ」と言いたいんだろうが、 型については「テスト時に確かめるのが動的」、「コンパイル時に確かめてくれるのが静的」という違いがある。 「テスト時だろうがコンパイル時だろうがきちんと確かめることには変わりないんだからいいだろ」 という意見が動的派の主張のような気がするんだが(俺の勘違いだったら指摘してくれ)、 個人的にはテスト自体にバグが含まれる可能性があるという点で違うので、静的のほうが好ましいと思う。 コンパイラにバグがない保証はないがその可能性はかなり低いし、 まして、どこの誰が書いたかも分からないテストと比べればどちらが信用できるかは明らか。 静的でもテスト自体にバグが紛れることはもちろんあるが、型についてはコンパイル時にチェックされるので、 型チェックだけに焦点を絞ってみれば、やはり静的言語の方が信頼性は上だろう。
- 378 名前:デフォルトの名無しさん [2017/12/17(日) 00:30:03.31 ID:w0yPK3Np.net]
- >>367
すごく良い意見だと思う。 そもそもテストがあるのは人間は間違えるからというのが前提だからで、 そしてそのテストを書くのも人間なのでテスト自体も間違えている可能性がある。 それでもテストを書くのはチェックによって間違いを完全になくすことはできなくても ある程度まで減らすことはできるという考えがあるからだろう。 そして、その考え方でいくとテストを重ねれば重ねるほど信頼性は上がるということになる。 つまり、テストのテストを行えば2重チェックとなりさらに信頼性が上がることになるが、 テストのテストを書くというのはあまりにもアホらしいので普通そんなことはしない。 つまり、通常のテストでのチェックは1重のチェックまでが限界となる。 それに対してコンパイラはコンパイラ自体がしっかりとテストされている。 つまり、コンパイラによる型チェックは言い換えればコンパイラ自体によるチェックと コンパイラのテストによるチェックの2重チェックを同時に受けていることになる。 この考え方でいけば、ただのテストは1重のチェックだが、コンパイラによるチェックはそれだけで2重チェックとみなせる。 つまり、コンパイラによるチェックのほうが信頼性が高いということになるはずだ。 一応理論はしっかりと通っているはず。 自分で書いといてこんなこと言うのもなんだが「なんだかこじつけな気がして、あまり気に入らない」。 誰か論破してくれ。
- 379 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:33:04.30 ID:DD3iPSz/.net]
- コンパイラにバグはないとかさ。。
とりあえずvcを一通り使ってみてから言ってほしいな。 浅はかすぎる。 まあしかし静的チェックと動的チェックを両方やるならいいと思うよ。 これは結局、仕様と実際の動作のどっちもしっかりチェックする必要があるってこと。
- 380 名前:デフォルトの名無しさん [2017/12/17(日) 02:06:25.44 ID:an2T/Jmb.net]
- 一般的な話をvc固有の問題で批判する方が浅はかと言わざるを得ない
- 381 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 02:24:22.59 ID:lzYKowQo.net]
- 型も書けないような奴が
正しいテストを書けるだろうか?(irony)
- 382 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 08:41:58.60 ID:cjnEvY5x.net]
- それ以前に、めんどくさいからって型書きたがらないような奴は現実にはほとんどテストなんか書いてないんだよ
動的型でテスト書けば問題ないだの必要なテストが増えるだのテストの正しさだのというのははっきり言って机上の空論 そもそも彼等はテストを書かない
- 383 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 08:51:42.24 ID:ROemoGKg.net]
- そんなこというと、動的型付け言語を使っているから型を書いていないって人より
auto/varを使って意識的に型を書かない人の方がテストを書かない傾向があるって 言っているように聞こえるけど。
- 384 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 09:04:39.97 ID:cjnEvY5x.net]
- >>375
そりゃ静的型でも型書かない奴は山ほどいるだろ テストを書いているということを議論の前提にしていることが全くもって非現実的だと言ってるんだよ
- 385 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 09:06:12.54 ID:qBUEKR93.net]
- テストの目的は実装のバグを探すことだけか?
むしろ仕様をチェックすることが最も重要だよ バグは直せばいいだけだが、仕様はうっかり変更されたら直せない 死んだ人が帰ってこないのと同じ 動的型の言語仕様を捨てて静的型に移行するのが難しい理由もその辺にありそうだ
- 386 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 09:14:23.72 ID:i+M+l/V2.net]
- テストすら正しく書ける気がしないドカタにはメタプログラミングなんて無理
- 387 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 09:48:44.61 ID:G+5q9UaX.net]
- >>377
テストの目的は変化を検出することだよ 作って運用開始して終わりならテストなんか手動で十分
- 388 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:35:01.56 ID:v3Bx338J.net]
- >>368
それもまぁ程度論だろ。 一部の人間があったら良いなと思ってたものが出来たから嬉しいってだけの話で、 全体に対してどうと思うほうがちょっとおかしいよ。
- 389 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:41:57.99 ID:v3Bx338J.net]
- テストのテストを馬鹿にしてるが、書くからな。
何重まで上に上がる?というのは論点がずれてて、要件定義書でテスト仕様書をテストする。(詳細設計なんかは無視する) 紙の上でかもしれんし、直交表書くかもしれんし、色々あるが、 要件定義や詳細設計からテストだけ書いて、その妥当性も判断せずにオールグリーンこれでオッケー、ならそれは間違ってると思う。 間違えない前提ならテストは要らない、はその通りで、どの開発レイヤにも「この場ではこれは間違っていないとみなす」というブラックボックスがある程度発生していく。 単体試験なんかで担保して、レイヤがあがるにつれてブラックボックスは増えていく。 そこにワザワザ、ヒステリックテストをする必要は無い。 ブラックボックス側から数値しか出さないなら、数値以外をチェックするのは過品質に近い。
- 390 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:06:03.05 ID:pDfY69my.net]
- >>369
細かくいうと「結局製品として必要な質を担保するのに必要なテストコードは変わらない」っていう主張な。少なくとも自分はこう思ってる あくまで主観だし定量的に示せないんで上で上がってる通り空論といってもいいがな 少なくともコンパイルとLinter通った時点での品質は静的型が上なのは否定しない が、自分の経験上、型チェック程度は他のテストのついででチェック進むから、そのせいでテストコードがかさむとかそういうケースはそうそうないはずなんだよな
- 391 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:11:02.52 ID:pDfY69my.net]
- もちろん「テストコードと、一種の証明である型チェックの性質は違う」とかそういう理屈も理解してるが、
結局「製品としての質担保」という観点で見るなら、その程度の手段の差は全くもって関係なくなる、というのが自分の考え この辺はテストに求める役割に対する考え方の違いかもしれん
- 392 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:14:39.63 ID:pDfY69my.net]
- あとPHPディスに絡めようとしてるやつ
- 393 名前:ェいるが、PHPは静的型動的型の以前の部分に問題があるし、
この議論で少なくとも自分が動的型言語の念頭においてるのはPythonやRubyだからな? [] - [ここ壊れてます]
- 394 名前:デフォルトの名無しさん [2017/12/17(日) 12:18:57.69 ID:028c4ua0.net]
- >>370
論破じゃなく、補足になるが、特に業務でプログラミングするならコスパ考慮して選んでるからねえ。 現実の工数は、要件変動も含めその時点でのコンパイラ・インタープリタで拾えない部分の不整合によるものが大きい(まだ合理化されてないとも言えるが)。 プログラミング言語の歴史見ると判るが、静的・動的とも互いに相手のいいところを取り入れて進化してきてる。 同時に、世の中のニーズ(個人が計算リソースを持つようになった、など)に対応した形でも変わってきている。 これは適用可能な領域を広げようとした結果。 オレ個人の例で言えば、業務要件==>計算モデル==>候補言語を複数選択。 その後、プロジェクト要件(期間、要求品質、メンバースキル、関係者が蓄積しているプログラミング資産など)との組み合わせが適しているものを勧めている。 なので言語仕様やライブラリ含めた挙動だけ比較しても、それはツールとしての現在の瞬間の姿を見てるだけなので、その評価が未来にも、業務にも適用できると考えるなら早計。
- 395 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:57:26.41 ID:v3Bx338J.net]
- >>382
静的型が上というか、帳尻があっている、と言うことはわかるから、一つの方向としては正しいと思う。 ただ、本当にあっているか?小数は桁落ちしてないか?まで考えると、静的型でも、どの道ピアレビューなんかで担保するしかない。 これは言うとおり、ついでに型が充分かも見る、という動的言語のピアレビューと工数としては変わらん。
- 396 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:01:33.13 ID:2YAiyrnb.net]
- 静的型のメリットで最も大きいのは依存関係が静的にほぼ完全に把握できることでしょ
自社事業の開発で常に動いているものを弄るなら、これ以上に心強いものはない
- 397 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:10:12.04 ID:v3Bx338J.net]
- 依存関係はどっちでも同じ程度じゃないの?
RoRみたいに、そのディレクトリに置いたら勝手に使用される、を想像してたら違うのかもしれんけど。 動的型も静的型も、リテラルでのimportやrequire、参照設定とusingでそれなりに決まる部分もあれば、 Node.jsだと変数でのrequireや、CなんかでのLoadLibraryなんかでも動的ロードなんかで全く決まらん事もあるんだし。 依存関係の解決はちゃんとそれ用に何か用意した方が良いと思うけど。
- 398 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:23:12.52 ID:qBUEKR93.net]
- モジュールの依存関係は型と関係ないね
「モジュール=型」とかいう超怪しい等式に依存するのは嫌だね
- 399 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:46:20.78 ID:x6mh3PiV.net]
- テストコードはテスト対象のコードより明快なものが一般的で、明快であれば人の目で判別しやすいってのも考慮すべきよ
テストを重ねるほど品質が上がるってのは空論だし、1重しかテストしないのは妥協してるからというわけでもないよ
- 400 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 15:54:09.19 ID:F+iLZcQ1.net]
- >>388
IDEのメソッド呼出元の検索とか使ったことないのか? 規模が大きくなるとあれがないとやってられなくなるぞ
- 401 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 16:41:56.81 ID:PjBbAu1N.net]
- >>370
形式手法でコード自動生成しててもやっぱり高信頼性のためにはテストは必須だぜ?
- 402 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 17:52:05.86 ID:v3Bx338J.net]
- >>391
なんだ、そんな事か。長々書いて損した。 動的言語のIDE使ったことある? いや、IDEじゃなくてもいいや。VSCodeと適当なNode.jsのプロジェクトでさえ、それなりに効くだろ。 >>390 テスト自体は1重でも良いとして、何らかの方法でテストの正当性は担保しないの? それじゃただ書いたコードが書いた意図どおり動いてる確認で、意図が正しいかのテストにはなってない気がする。 意図が正しいかの証明は要件定義と設計書の間でのみ行われる、ってのが普通なのかな。
- 403 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 19:31:01.08 ID:AwDJJh6p.net]
- 要件に寄らず、テストは最低8重ないとダメ
スレのレベルが低すぎる……♂
- 404 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 23:06:04.33 ID:lzYKowQo.net]
- >>391
良く訓練されたPHPerは超力Grepを使いこなすから問題ないんだよなぁ
- 405 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 23:23:38.60 ID:qBUEKR93.net]
- メソッド呼出元検索、、今回ほど仕様バグが沸き起こる思いをしたことが無い…
- 406 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 23:39:30.09 ID:LyzNAsst.net]
- >>393
> 意図が正しいかのテスト って何だよ意味不明。 必要なテストがされているかが重要だろ。 数だけ多くたってダメなんだよ。
- 407 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 23:57:38.71 ID:lzYKowQo.net]
- つまり、動的型言語は山ほどテスト書かないとダメって言いたいんだろw
- 408 名前:デフォルトの名無しさん [2017/12/18(月) 00:07:07.45 ID:oET30lFX.net]
- 一応確認なんだけど動的言語じゃなく動的型付け言語の話なんだよね?
- 409 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 00:58:28.12 ID:9GZmy5yv.net]
- >>398
テスト書く量は同じだよ
- 410 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 04:30:42.74 ID:p9HDlb+0.net]
- >>400
ねーよ
- 411 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 08:13:16.77 ID:9GZmy5yv.net]
- >>401
強い型付けの動的型言語なら、値に対するテストを書けば型に対するテストは不要です assert(x > 0) というテストを書いたのに、さらにxが文字列かどうかテストする必要ははありませんね 反論するなら反例を出してくださいね クソくだらない長文はいらないので
- 412 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 08:13:41.10 ID:UBkq3PS9.net]
- >>397
わからんならしたことがないって事だ。
- 413 名前:デフォルトの名無しさん [2017/12/18(月) 08:28:29.94 ID:9Kb0ajxH.net]
- >>402
型ってのを、CPUのプリミティブでしか考えなくて良い業務プログラムならそうだな。 問題は、今時そんなトイプロジェクトが少ないって事。
- 414 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 09:01:45.44 ID:yq3smURe.net]
- >>402
自演乙
- 415 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 10:20:33.66 ID:/BfrEM8a.net]
- >>404
つまり、幽霊型とか依存型あたりを使い倒さないと今時のプロジェクトはまわらない、という認識でいいのか? そりゃその辺りを使い倒さないと回らないプロジェクト前提なら、動的型付けでは無理な話になるが それが必須な状況が、動的型付け言語のメタプログラミング並みに思い付かないぞ
- 416 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 12:43:07.93 ID:h27G1UNw.net]
- >>402
用途による。 弱い型付け言語でも、型無言語でも値に対するテストで充分な場合もあるし(要は、不正値が渡されてる時点で異常であって、その場合の動作は不定として構わないという要件の場合。よくある) 逆に強い型付け言語でも、強い磁界やノイズ源の間際で使われるようなものを書くときにはキチガイじみたテストもする。 a=170,b=85,a+b==255みたいなアサーションすら稼働コードにも並ぶし、それが成立しなかったらリセットかかるようにする。
- 417 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 12:54:00.44 ID:mr3x/gYU.net]
- ちなみにvscodeでnode.jsのコード補完が効くのはtypescriptの型情報の恩恵を得てるから
- 418 名前:デフォルトの名無しさん [2017/12/18(月) 21:36:27.12 ID:9Kb0ajxH.net]
- >>406
むしろ動的型付けの出番が増えるけどな。 昔ながらの単純なOAアプリには不要だが。
- 419 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:10:12.61 ID:lENhGj5D.net]
- >>407
長文書かずに反例を出せ、って書き込みにアンカーつけてまで 反例無しの長文書いててワロタ
- 420 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 02:4
]
- [ここ壊れてます]
- 421 名前:5:28.87 ID:4MuASRxE.net mailto: 具体例がなくても、長文を書けば何か言った気になれるからなwwwwww []
- [ここ壊れてます]
- 422 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 04:16:57.53 ID:6mJgSo5a.net]
- >>406
幽霊型や依存型って動的型付けなら普通にコードでやっていることを 静的な型で表現しようとしてがんばってる例のあれのこと?
- 423 名前:デフォルトの名無しさん [2017/12/19(火) 07:49:40.76 ID:yvsoeKM9.net]
- >>412
>静的な型で表現しようとしてがんばってる例 まあそういう事になるよね。 もともと計算モデルが違う(=問題解決へのアプローチが違う) プログラミング言語同士を比較すれば、「一方は率直に実装できる」 フィーチャーが有るのは当たり前だしね。 理想はプロジェクト毎に最適の計算モデル、言語、スキルを揃える事だが 現実には、そういう要素が有ることを知らなかったり、教育投資を捨てたく ないって理由で、合っていないモデルで無理やり進めてるのが現実。
- 424 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 08:55:34.79 ID:9wTQQ92p.net]
- >>410
反例じゃん?
- 425 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 09:24:51.77 ID:ngbi4CU2.net]
- >>402「強い型付け言語である場合、値のテストをすれば型のテストはいらない」
>>407「弱い型付け言語でも型のテストがいらない場合がある。また、強い磁場中の利用であればa=170,b=85,a+b==255のようなキチガイじみたテストをする」 あガガイのガイ
- 426 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:04:54.40 ID:lG4ryEsW.net]
- >>412
動的型で項書き換え最適化や実行前の証明が普通になされているというなら、まあそうだね
- 427 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:08:42.98 ID:9wTQQ92p.net]
- うん、反例の一つかと。
〜あるし、〜する(こともある)。 前者は言う通りにそれ以下のテストだけど、後者は型テストももちろんするし、その周辺のメモリの値すらテストする、って事なんだが。 カナリア知らんとかはやめてくれよ。
- 428 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:20:03.85 ID:/xuMeQeJ.net]
- 次世代で証明されると期待される定理を今使う
クレジットカードみたいなやつ 動的型付けってそういう仕組みなんだね
- 429 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:22:38.78 ID:ngbi4CU2.net]
- ID:9wTQQ92p
こいつくせえな話が通じてねえ 例のガイジか
- 430 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 13:31:22.89 ID:xjqFNtfj.net]
- ガイ・スティール・ジュニア略してガイジ。
- 431 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 14:57:09.50 ID:9wTQQ92p.net]
- 通じてないのはそっちだと思うけど。
理解できければ全部レッテル貼って理解を放棄するクセはいかがかと思うが。
|

|