トップページ > プログラム > 2016年05月31日 > LdI3VN67

書き込み順位&時間帯一覧

4 位/197 ID中時間01234567891011121314151617181920212223Total
書き込み数00000000002103230000000011



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
【PHP】下らねぇ質問はここに書き込みやがれ 5 [無断転載禁止]©2ch.net

書き込みレス一覧

+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
331 :デフォルトの名無しさん[sage]:2016/05/31(火) 10:16:07.42 ID:LdI3VN67
>>327
> DBに入ってもない無い値を、入っていた事にされるのは許せんだけ。
outer joinやcross joinについてはどう思うのかね
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
333 :デフォルトの名無しさん[sage]:2016/05/31(火) 10:21:15.79 ID:LdI3VN67
>>311
> ループの内側の数とか言うより、描画用の項目定義は項目定義である。
> 医者が並べて見る時に、項目数が変わったり並び順が変わったら困るから。
> それは医者次第だけど、内部的には
> xpathみたいなもので指定する。
なかなか話が通じないが、要は表示項目数×人数のループをしてundefinedかどうかを
判定するということだろ?表示項目数が30で20人分表示なら600回の処理をする。

そうじゃなくて、存在するデータ側を元に表示するか、あるいは全く別のアプローチをすれば
いちいちundefinedかどうかなんて判定は不要ではとうこと。
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
335 :デフォルトの名無しさん[sage]:2016/05/31(火) 11:08:00.91 ID:LdI3VN67
>>334
> ふむ、では、その冴えたアプローチで綺麗にしたデータを、行と列、ないしはグラフにレンダリングする術を
> 提示してみてくれよ。
> まさか、最初にレンダリング域全体のメモリを確保して、データ一つ一つに対して、RCや軸をデータから推測してその場所へデータを載せれば良い、最終的に残るのはundefinedだった項目だけ、とか考えてんのかな。
グラフという単語がでてきたので話が根本的にかみ合ってない気もするが、基本的にはそういうことだよ。

テーブルで表示することを考えれば、項目が決まれば行あるいは列が決まり、人が決まれば列あるいは
行が決まる。それをメモリ上のデータ構造として作成して一気にテーブル化するとか、DOMを直接書き
換えるとか、あるいは、テンプレートを使うか、データバインディングしてModelが自動的にViewに反映
されるようにするとか、やりようはいくらでもある。

グラフのメタファーで言えば、定義域:0〜100, 値域:0〜100のグラフがあるとき、(1, 3), (2, 5)という二つの
データしか無ければ二回プロットすれば終了ということだよ。
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
338 :デフォルトの名無しさん[sage]:2016/05/31(火) 13:25:23.48 ID:LdI3VN67
>>336-337
なにか勘違いされてる気もするけど、歯抜けのデータが悪いとは一言も言ってないよ。
>>304みたいなデータが戻るケースはありがちだし。

で、俺が疑問に思ったのは、undefinedかどうかを判定する必要があるということは、
こんなコード書くの?ってこと。
display_items.each (function(display_item) {
  data.users.each (function(user) {
    // block A: ここがループの一番内側
    output('<td>' + user.hasOwnProperty(display_item) ? user.item_value : '' + '</td>');
  });
});
これだと、いつでもdisplay_items.count * data.users.count回のhasOwnProperty()が呼び出される。
display_items.count * data.users.count = 1,000のとき、表示するデータ数が1個だったときでも
1,000回の実行が必要。

そうじゃなくて、逆からのアプローチはできないのという疑問。
逆というのは、「存在するデータを元にする」やりかた。
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
339 :デフォルトの名無しさん[sage]:2016/05/31(火) 13:26:54.24 ID:LdI3VN67
君は君の問題を100%把握してるだろけど、俺(たち)は断片的な君の書き込み内容から
どのような問題なのかを想像することしかできないわけお。

>>336
> 一気にメモリに載せてられるかww
とか言われても、困惑するのみ。
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
341 :デフォルトの名無しさん[sage]:2016/05/31(火) 13:54:56.19 ID:LdI3VN67
>>340
まぁ、ざっと読むと君の環境はこのスレ的には異端みたいだし、フロントエンドエンジニアでもないようだから
どうでもいいっちゃいいんだけどね。
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
66 :デフォルトの名無しさん[sage]:2016/05/31(火) 14:40:48.35 ID:LdI3VN67
>>62
開放/閉鎖原則 (Open-Closed Principle(OCP))って知ってる?
知らないなら調べて見ると良いよ。

https://ja.wikipedia.org/wiki/%E9%96%8B%E6%94%BE/%E9%96%89%E9%8E%96%E5%8E%9F%E5%89%87
> 開放/閉鎖原則に従ったソフトウェアは、既存のソースコードを変更することなく、振る舞いを
> 変更することができる。

> 開放/閉鎖原則に沿ったソフトウェアは、既存のソースコードを変更せずに機能修正や機能追加を
> 行うことができる。そのため、品質検査を再実行する必要がない。

つまり、既存のコードに一切影響を与えることなく、新規に機能追加ができる。既存コードには
影響がないので、再テストも不要。
(自動テストがあるなら、実行するのはおおいに結構)

一方、switch-caseで処理を振り分けていたりする場合、新規に追加した機能のcaseが増え、
原理的には、その変更されたswitch-caseを含むメソッド/クラスを再テストする必要がある。
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
68 :デフォルトの名無しさん[sage]:2016/05/31(火) 14:47:52.46 ID:LdI3VN67
OCPの例:
http://objectclub.jp/community/memorial/homepage3.nifty.com/masarl/article/dp-ocp-2.html

class Note, Quater, Half, Staffがあり、Staff::Play()で演奏するが、ここに8分音符や16分音符
クラスを追加しても、class Staffを含め既存クラスの変更・テストは不要。
【PHP】下らねぇ質問はここに書き込みやがれ 5 [無断転載禁止]©2ch.net
425 :デフォルトの名無しさん[sage]:2016/05/31(火) 15:28:11.55 ID:LdI3VN67
>>421
'0777' => 0777
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
74 :デフォルトの名無しさん[sage]:2016/05/31(火) 15:41:46.58 ID:LdI3VN67
>>73
その設計書がコードと1:1でないなら、プログラマは普通コードを元にテストを書く。

>>68の例で言えば、8分音符を追加するという変更の時、どのコードがテスト対象になるのかを
知っているのは、実装したプログラマだけ。
設計書がコードと1:1なら設計書からテストを起こせるが、そんな現場はないだろう。
オブジェクト指向システムの設計 170 [無断転載禁止]©2ch.net
76 :デフォルトの名無しさん[sage]:2016/05/31(火) 15:53:45.05 ID:LdI3VN67
>>75
> そんなマー見た事いよ。先にテスト書いちゃうじゃん。
> テストに合わせて実装が現場だと普通だよ。
sine


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。