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


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

クラス名・変数名に迷ったら書き込むスレ。Part27



1 名前:デフォルトの名無しさん mailto:sage [2016/10/16(日) 08:01:30.20 ID:NOg6ZxxU.net]
クラス名、変数名のつけ方に悩んだら書き込むスレです。

命名規則や設計の善し悪しについて議論するのは基本的に禁止。

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part26
echo.2ch.net/test/read.cgi/tech/1450622191/

321 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 21:53:37.19 ID:w65J4ERD.net]
あるいは、
下手に切り替えるところまでを1つの関数にするよりは、

 SetRecruiting ( ! is_recruiting );
 is_recruiting = ! is_recruiting;
 is_recruiting ^= 1;

とかのほうが分かりやすいかもしらん。

322 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 22:19:02.82 ID:4zGB62ZL.net]
質問者はtoggleがしたいのか単にsetしたいだけなのかハッキリしておくれ

323 名前:デフォルトの名無しさん mailto:sage [2016/10/29(土) 22:52:35.09 ID:PR9zW7ZB.net]
employならenployableって表現はありだけど
recruitableはないと思うわw

英単語としては存在するみたいだけど、意味的におかしいよねw

324 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 00:44:44.17 ID:jMC+zj6I.net]
〜ableは「〜可能」って意味だからな
今回は募集可能じゃなくて応募可能と考えるべき

325 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 07:07:00.90 ID:JMWTgXDT.net]
募集に関するクラスに作るんじゃないの?
普通にavailableでいいと思うんだけど

326 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 08:42:44.21 ID:2kQlDpFE.net]
>>318
例: 政府により募集可能な期間が設定された

普通に使われると思うけど?

327 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 11:46:01.42 ID:f9d004U/.net]
member_wanted {none, a_few_programmer}

328 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 22:45:31.62 ID:sGqbfAV5.net]
2つほど相談です。
関数名は文脈を考えて付けるべきというのは理解していますが、
プリフィクス等の汎用的な命名方法を探しています。


(1)
以下のような複数の方法でfooと呼ばれる値を取得し、それを返す関数の名前をお願いします。

・テキストファイルから解析
・既存の変数から計算
・DBや他マシンと通信
    :
具体的などのような処理を行うかは、呼び出し元は知る必要はありません。
ただし、単なるGetFoo()よりは処理が重いイメージを伝えたいと思います。
現在は仮にFetchFoo()としています。


(2)
あるクラスのメンバ変数barに対して、取得と代入を行う関数をお願いします。

上記(1)と同じように複数の方法で値を取得し、それをbarに代入します。
現在 SetBar( FetchBar() ) と記述しているのですが、これをまとめたいという要求です。
こちらも呼び出し元は値の取得方法を知る必要はありませんが、少し重いイメージは出したいです。

InitializeBar() や ApplyBar() も考えましたが、
初期化だけに使うわけでも、各種設定を確定させるだけに使うわけでもないので、
ちょっとモヤモヤしています。

329 名前:デフォルトの名無しさん mailto:sage [2016/10/30(日) 23:33:05.97 ID:03ce0qAm.net]
ここではないどこかからデータを取ってくるという意味合いが強いならFetchを使う
より抽象的に手段や場所や対象はよくわからないがとにかく何かを取得するという意味合いが強いならGetを使う
処理が重くなる場合があるという情報は通常はドキュメントに記載する
ドキュメントではなくプログラムで表現したいなら微妙なニュアンスに頼らずに非同期版のメソッドを用意すること
非同期版のメソッドを用意することによって同期版を使った場合にパフォーマンス上のペナルティが発生する可能性があるということをプログラマにより直接的に伝えることができる



330 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 00:13:23.74 ID:T+jfS1R6.net]
>>324
ありがとうございます。

Getだけだと、単純なアクセサってイメージが強くないですか?
C#のプロパティとかも、稀にそういうトラブルがあるらしいですけれども。

331 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 00:31:03.58 ID:y/KimnPW.net]
>>323
(1) それとは別に「早い」バージョンも存在するのでなければ単純にGetFooで問題ない気もする。
どうしてもそれが重いことを名前で伝える必要があるのなら、あいまいなニュアンスに頼るんじゃなくて
明示的にGetFooInSlowWayとかGetFooByHeavyMethodとか付けたらどうかなあ

(2) 基本的に(1)と同じでUpdeteFooとかReloadFooでよく、本当に必要なら(以下略)でいいんじゃないか

332 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 00:32:53.87 ID:y/KimnPW.net]
Updateのスペルが間違ってたw

333 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 00:45:48.40 ID:y/KimnPW.net]
その手のメソッドが頻出するなら、何かサフィックスする規約でもいいのかもね。
例えばHV(HeaVy)とか
GetFooHV

334 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 00:55:49.63 ID:N3/YDThV.net]
>>325
メソッドはクラスやインターフェースとセットだから問題ないよ
それで迷うようならクラスの役割やインターフェースの要求があやふやなんだろうね
FooRepository.getFoo
Foo.getName
どっちがインフラに依存した重い処理でどっちがフィールドアクセス(+α)のささやかな処理か?
クラス分けがちゃんとしてれば常識的に迷うこたないでしょ

335 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 12:47:10.69 ID:uOz63dOb.net]
重いことを主張したいわけではなく、ただのアクセッサではないということを主張したいだけか。

そういう微妙なニュアンスにこだわりたいのはわかるが、作者のそんな意図はなかなか伝わらないものだよ。
だからこういう話題は、それ単独で悩むんじゃなくて、規約レベルで決めとくべき話題だな。アクセッサはgetで、ファイルから持ってくるときはreadとか。

その規約的なものを検討してて質問してるなら失礼。

336 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 20:56:32.06 ID:03zQ5mOK.net]
というかオブジェクト指向的にはgetなんとかはフィールドアクセサーだって連想は間違ってるんだよ
実装を見たらたまたまフィールドにアクセスしてたってだけの話でな

337 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 22:11:27.28 ID:6L1k9riG.net]
くっさ

338 名前:デフォルトの名無しさん mailto:sage [2016/10/31(月) 22:19:19.89 ID:u9vgcP7f.net]
アクセサーにgetを使うのって、解説用のときだけじゃね

339 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 09:00:22.30 ID:pQ6hmNDw.net]
プロパティのない言語だと、get/setをアクセッサとするルールを定めておくことで、色々と便利なわけですよ。



340 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 10:23:11.89 ID:H/G1IS5n.net]
解説のときにね

341 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 14:29:13.40 ID:zTwebp3Z.net]
>>331
その話題はここの連中にはまだ早い

342 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 16:07:11.34 ID:H/G1IS5n.net]
オブジェクトでフィールドにアクセスしないでなにかをGetするなんてあるんだろうか?

343 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 16:53:05.46 ID:0w7M9Ph5.net]
getするのはオブジェクトの属性だけとは限らないからねえ。
現に今の質問者の話がそれなわけで。

だからこそメソッドとは別に属性のアクセス専用のプロパティが発案されたんだと思うけど

344 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 20:13:14.70 ID:jey0RimT.net]
発案っていうかC#のプロパティなんかは例えばあれIDEの都合っしょ
そうすりゃIDE側から多少便利ってだけでね

public string Foo {get;}
public string Bar {get {return xxx.getBar()}}
この両方の書き方がある以上、属性専用も糞もない
用途はメソッドんときと一緒

345 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 20:22:36.25 ID:zZ+/B8c0.net]
>>339
プロパティはVBやCOMにもあるよ
それと、それまったく何の理由にもなってないと思うけど

プロパティは<オブジェクトの使用者に対して>それがオブジェクトの属性であることを明示するためにある。

346 名前:デフォルトの名無しさん mailto:sage [2016/11/01(火) 20:28:15.67 ID:ls1tDjet.net]
プロパティは歴史的にはRADのためのアイデアであってるよ
マイクロソフトの中の人が言ってた

347 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 11:57:37.21 ID:GdBKXJrN.net]
スキーマ名.テーブル名を格納する文字列についていい名前はないでしょうか

348 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 12:25:48.41 ID:iqvhs+TX.net]
string スキーマ名
string テーブル名

349 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 12:34:12.01 ID:GdBKXJrN.net]
すいません、hogeSchema.hogeTableのようにスキーマ名とテーブル名を結合させた文字列です
暫定でtableFullNameになっているのですが伝わるでしょうか



350 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 12:58:15.07 ID:iqvhs+TX.net]
string スキーマ名とテーブル名

351 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 16:25:05.97 ID:cswDNzjo.net]
>>344
スキーマまで含める意図がテーブルを完全に特定したいと言うことなら FullQualifiedTableName かな

352 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 16:51:09.01 ID:ocKcxs87.net]
>>346
fully qualifiedで完全修飾なんですね
おっしゃる通りテーブルを特定するために結合しているのでそれでいってみます
ありがとうございます

353 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 16:53:27.99 ID:7Lua67RL.net]
class TableName {
private String _name;
private String _schema;
public TableName(String n, String s) {
_name = n;
_schema = s; }
public String name() { return _name; }
public String schema() { return _schema; }
public String fullName() { return _name + "." + _schema; }
}

354 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 18:39:44.42 ID:MdOEsPX2.net]
俺ならそういうのをクラス名やメソッド名にはしないな
>>348さんみたいな方向のアプローチでつくっておいて
変数名をそれっぽいもんにして運用する

class Pair<T, U> {
private T first;
private U second;
public Pair(T first, U second) {this.first = first;this.second = second;}
public T first() {return first;}
public U second() {return second;}
}
class StringPair extends Pair<String, String> {
public StringPair(String a, String b) {super(a, b);}
public String whole() {return whole("");}
public String whole(String sep) {return new StringBuilder().append(first()).append(sep).append(second()).toString();}
}

で、
List<StringPair> schema_table_pairsとかst_pairsとかstpairsとかstsとか

355 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 22:47:45.00 ID:Bu8jEFR0.net]
こんなアホが俺の周りに来ませんように

356 名前:デフォルトの名無しさん mailto:sage [2016/11/02(水) 23:03:56.32 ID:jC5deFAg.net]
質問ではなく、ちょっと意見を聞きたいんだけどさ、
foo-bar_baz という名前があったとき、一パッと見でどう認識する?

1. Foo/ BarBaz
2. FooBar/ Baz
3. Foo/ Bar/ Baz
4. それ以外

357 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 00:18:47.46 ID:siYabkWS.net]
3だな

358 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 01:14:20.86 ID:snmoM2GI.net]
3かー、ありがとう。
小文字しか使えない状況って結構辛い

359 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 07:18:42.52 ID:viOY8I+I.net]
2に近いが1と3はない



360 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 08:34:35.58 ID:4MjmvoYz.net]
>>351
Google的には1だな
www.sem-r.com/seo/20110818061702.html

361 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 08:50:59.41 ID:q+jX9dvw.net]
ビンゴ!

362 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 09:18:04.47 ID:9JnV00MF.net]
foo-(bar_baz)
foo年bar組baz番
って感じ

363 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 10:28:30.55 ID:NjbREez3.net]
>>351
ここム板だから foo - bar_baz って認識する人が多いと思う
ハイフンを識別子に使える言語もあるけどね

364 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 11:49:34.61 ID:GY8DqBwz.net]
>>351
1かなスネーク形式を連想するし。

365 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 13:07:03.07 ID:ZphmWbuS.net]
ハイフン(っていうかプログラミング的にはマイナス記号だと思うけど)が識別子に使える
プログラミング言語なんてあるのかw

っていうか、この手のオレオレ表記法が他人にどう見えるかなんて無意味。
他人の書いたコードを読む時重要なのは書いた奴がその表記法をどういう意図で使っているかであって
読み手がどう思うかじゃないんだから。

あえて言えばそんな他人にお前の意図を推測させるような表記法なんか使うなと。

366 名前:351 mailto:sage [2016/11/03(木) 13:49:32.19 ID:snmoM2GI.net]
ありがとう。見事にみんなバラバラだな!
本当は日本語OKなら積極的に使いたいんだけどねぇ。

>>351
URLやら連想配列やらまで含めればそれなりに。
自分(相談者)の場合はDBだけども。

>>360
全くもって同意する。ただすまん、今回の場合は意図を推測する/させる立場が逆なんだ。
例えるなら大昔のコンピュータゲームで、
A攻撃&Bジャンプのアクションゲームがそれだけでクソゲー扱いされるようなもので。

367 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 13:50:30.47 ID:snmoM2GI.net]
アンカ間違えた 自分に打ってどうする >358だ

368 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 13:59:33.85 ID:+nsyTxDZ.net]
>>360
Lispとかあるでしょ

369 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 14:07:57.72 ID:h7OLIGrQ.net]
演算子の前後は空白開ければ楽勝で区別出来るが、Cの.と->は空白入れると座りが悪いので入れてない



370 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 14:54:54.10 ID:NjbREez3.net]
>>360
> ハイフン(っていうかプログラミング的にはマイナス記号だと思うけど)が識別子に使える
> プログラミング言語なんてあるのかw
COBOL とか PowerShell とか

> っていうか、この手のオレオレ表記法が他人にどう見えるかなんて無意味。
と思うならスルーしとけ

371 名前:デフォルトの名無しさん mailto:sage [2016/11/03(木) 15:27:26.47 ID:jGJ8D3JL.net]
>>360
チェインケースでググれ

372 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 11:34:10.16 ID:ZEtNANA9.net]
>>360 xsltも-が使える。しかもふつうに引き算で-を使う。

373 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 17:51:27.61 ID:yZRML0sj.net]
設定画面でファイルを保存する場所(フォルダ)を指定させるのですが、

まずは、保存する場所を指定するかどうかのBoolean型のプロパティと
指定する場合の実際の保存場所のパスを表すString型のプロパティ

の2つの名前をよろしくお願いします。
Settingsクラスあたりに追加します。

374 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 17:57:14.78 ID:yZRML0sj.net]
英語の名前もそうなんですが、日本語の方もお願いします。
UI的には
「保存する場所を指定する」というキャプションのCheckBoxあたりと、
「保存する場所」というキャプションのテキストボックスとフォルダダイアログを表示するボタンでいいですかね。

375 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 18:00:23.05 ID:BEVfOvDH.net]
>>368
設定自体をファイルに保存するの?
それとも、何か別のデータを保存するの?

376 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 18:07:17.31 ID:XfxE6vHI.net]
>>368
話を聞く感じでは「保存する場所を指定するかどうか」なんて設定は不要に感じる。
要は必要になった時に保存場所を規定値に戻せれば同じことでしょ?
保存場所を規定値に戻すメソッドを持たせればいい。

保存場所は普通にSaveFolder, SaveName, SavePathで良いのでは

377 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 18:09:25.00 ID:yZRML0sj.net]
>>370
別のデータを保存します。それが2,3個あるのですが、その種類は接頭辞として前につけようかなと
思ってますので>>368ではその具体例を省いて質問しました。

設定ファイル自体ももちろんファイルに保存しますが
それは固定なので。

378 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 18:12:18.73 ID:XfxE6vHI.net]
まあ、一度規定値に戻した後また同じパスを指定するのは面倒だってことはありうるのか。
じゃあUsesDefaultFolderとUserSpecifiedSaveFolderで

379 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 18:21:19.77 ID:yZRML0sj.net]
>一度規定値に戻した後また同じパスを指定するのは面倒だってことはありうるのか
その通りです。例えば、インターネットエクスプローラのプロキシの設定でも
チェックボックスとテキストボックスの2段構えになってるのですが、
他のソフトでそうなってないUIのときに一時的に切り替えるがめんどくさい経験をしてるので、
だから、あえてチェックボックスとの2段構えにしています。



380 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 19:27:32.71 ID:yZRML0sj.net]
色々ありがとうございます。
>UsesDefaultFolderとUserSpecifiedSaveFolder
ここらへんの案で行こうと思います。

381 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 21:38:10.07 ID:zlBynMxs.net]
あるクラス群の役割を抽象化したスーパークラスの名前を考えています。

あるデータDをデータベースに対して読み書きするクラスX
あるデータDをファイルに対して読み書きするクラスY
あるデータDをメモリに対して読み書きするクラスZ
あるデータDをウェブアプリに対して読み書きするクラスW

これらのクラスの読み書き先の違いを抽象化したスーパークラスの名前は何が良いでしょうか。

ReaderWriter でしょうか。

382 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 22:09:41.69 ID:5Ihw572q.net]
むしろReadWriterじゃない?
あとDStreamとか?

383 名前:デフォルトの名無しさん mailto:sage [2016/11/16(水) 22:42:11.51 ID:gtmrvLDz.net]
リポジトリだろ

384 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 00:16:14.42 ID:jhQKUhIJ.net]
>>376 です。

>>378 なるほど、ピッタリですね。
頂きます。

お二人とも、ありがとうございました。

385 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 01:17:13.53 ID:ypT0aoV/.net]
いやリポジトリは倉庫であって倉庫係ではないと思うけど...
>>376は倉庫係じゃん

386 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 02:13:48.61 ID:NU+xZ5I3.net]
377で挙がってるけどDStreamかなあ

387 名前:デフォルトの名無しさん [2016/11/17(木) 12:34:21.39 ID:ir/fHuQ7.net]
全然ストリームじゃないのにどっからストリームが出てくんのか…
雰囲気で訳も分からずデタラメな名前つけんなタコが

388 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 13:05:45.14 ID:/0Wfoiwq.net]
>>382
悪いけどお前さんがストリームって概念を理解してないだけだと思うよw

389 名前:デフォルトの名無しさん mailto:>>383 [2016/11/17(木) 13:33:29.72 ID:SIbcJcrO.net]
>>383
俺はお前が理解していないに一票。
ストリームじゃないし。



390 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 13:50:31.14 ID:/0Wfoiwq.net]
アホだ
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

391 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:00:14.97 ID:SIbcJcrO.net]
>>385
自分の言葉で説明できないという告白ですか。

ストリームの要件の一つに「連続データである」ということがある。
>>376はそれを満たしていないのでストリームではない。

反論があるなら、自分の言葉でどうぞ。

392 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:03:31.82 ID:3lGtF19o.net]
Dを永続化したいという目的ならD repositoryで伝わるよ
でも>>376は永続化の手段も表したいと言う
真っ先にリポジトリパターンを思い出す人は違和感を持つんじゃないかな

393 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:05:02.67 ID:/0Wfoiwq.net]
>>386
以前はランダムアクセスが困難なもののみを指してストリームという用法が一般的だったのは
たぶん確かだが、最近はランダムアクセス可能なものもストリームと呼ぶ。

例えば>>385のリンク先の.NET Frameworkの例を見てみ

394 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:05:19.03 ID:/0Wfoiwq.net]
しかし、本物のアホだな

395 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:08:02.50 ID:SIbcJcrO.net]
Wikipedia好きみたいだから、本家からも引用しときましょうか。

https://en.wikipedia.org/wiki/Stream_(computing)
> In computer science, a stream is a sequence of data elements made available
> over time. A stream can be thought of as items on a conveyor belt being
> processed one at a time rather than in large batches.

Google翻訳:
> コンピュータサイエンスでは、ストリームは時間の経過とともに利用可能になる
> 一連のデータ要素です。 流れは、大きなバッチではなく、一度に1つずつ処理
> されるコンベヤベルト上の物品と考えることができる。

396 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:12:38.46 ID:SIbcJcrO.net]
>>388
> 例えば>>385のリンク先の.NET Frameworkの例を見てみ
これと>>376が同じに見えるのか。
こりゃ会話するだけ無駄だわ。

397 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:24:01.83 ID:/0Wfoiwq.net]
今日はこのぐらいで勘弁しといたるわ、まで読んだ。
しかし重症だね。

398 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:27:22.96 ID:F8tQbCJJ.net]
煽りたいだけの奴が的外れな事を言って引っ込みがつかなくなったパターンですね

399 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 14:28:32.31 ID:/0Wfoiwq.net]
まあお馬鹿さんが調子にのるといけないので一応突っ込んでおくけど、
>>390の英語版のWikipediaの記事、引用してる本人が読んでないんだろうね

Exampleにはこうも書いてある
On Unix and related systems based on the C language, a stream is a source or sink of data, usually individual bytes or characters. Streams are an abstraction used when reading or writing files, or communicating over network sockets

そこにはシーケンシャルなメディアに限定するなんて記述はない。
当たり前だ磁気テープや穿孔テープの時代じゃあるまいし、そんな1960年代の用法を
有難がって守っても弊害しかないからね。



400 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 17:41:25.74 ID:cT5YV57l.net]
なんで揉めているのか二行で説明ヨロ

401 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 18:20:46.25 ID:mMJymgjM.net]
>>376
そもそも読み書き操作をスーパークラスにしうとするのがおかしい
データ主体にすべきだし、それならば「データDAccesser」とか妥当なのがでてくるけど

402 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 18:21:07.96 ID:HfqKr7Tv.net]
ある数人のグループ全員を、順番はアットランダムに選んでコロしていった場合、連続殺人なのでシリアルキラーと言われ、ランダムキラーと言われない。
その考え方から、ランダムにアクセスされるデータも考え方によっては連続アクセスだからシリアル→ストリームと解釈していいじゃん。


ってJCの女の子が言ってた

403 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 18:28:23.63 ID:oM0V2Zu8.net]
>>395
東軍: Streamはシーケンシャルなデータの流れだ
西軍: Streamはデータの構造やアクセス方法関係なしのデータの流れだ

こんな感じ?

抽象化されたStreamって意味なら西軍だけれども
読み書き先の構造やアクセス方法関係なしに
表面的にはシーケンシャルな処理に見えるようにするんじゃない?
あくまで順繰り読み書きすることが目的なのだから

404 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 19:06:23.32 ID:H4HAbVd3.net]
Fetch API に ReadableStream という名のインターフェースがあったな
https://triple-underscore.github.io/Fetch-ja.html

405 名前:デフォルトの名無しさん mailto:sage [2016/11/17(木) 20:30:41.08 ID:bN2Unndl.net]
集約ルートに対するCRUD操作とトランザクション管理を行うならリポジトリ
シーケンシャルなデータI/Oならストリームだろう
>>376ではどちらとも言えないので議論しても不毛な争いにしかならない
つまりお前らはハゲ

406 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 06:53:14.38 ID:ZuKcmSv7.net]
>>388
ランダムアクセス「も」ストリームとして扱うようになってきてるだけで名前としてはおかしいと思うけど今さら変えられないって話でしょ?
ストリームインターフェースを参考にするとか派生させるとかで作るならわかるけど全く新規に作るならあえてわかりにくい名前を付ける必要はないと思うよ

407 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 08:23:44.33 ID:sk5kx0wb.net]
てめえのためにスレまで建ててやったんだからとっととそっちいけやボンクラ

408 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 10:08:14.30 ID:fuS99ZTS.net]
>>401
違うよ。
ストリームって概念のキモは英語版Wikipediaの説明にもあるように抽象化でしょ。
それは最終的な対象を問わずに入出力を透過的に扱うため。

そこにシーケンシャルアクセス専用みたいな(本来どうでもいい)空気がくっついたのは、
単にその概念が生まれた当時にはランダムアクセス可能な対象がRAMぐらいしかなかったし、
今と違ってそれは非常に高価で富豪的に使うなんてありえなかったからだろう

409 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 10:22:05.49 ID:mP8U9SKK.net]
アクセス方式のシーケンシャル(アクセス)と、データの構造としてのシーケンシャル(データ)を混同するなよ



410 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 10:52:00.04 ID:GQvjvZ3S.net]
だな。>>386は「連続データである」とデータ構造としてシーケンシャルといってるだけなのに、
勝手に>>388がランダムアクセスとかアクセス方式の話をし出してるし、

さらに、勝手に>>388でシーケンシャルアクセスvsランダムアクセスみたいな
変な構図つくってるだけじゃん。

411 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 10:54:12.63 ID:fuS99ZTS.net]
何のこっちゃ

412 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 11:00:11.29 ID:GQvjvZ3S.net]
>>382が全然ストリームじゃねぇっていってんのは、>>376
ファイルやメモリはストリームだが、RDMBSかしらんが「データベース」とか
「ウェブアプリ」とかも含まれてるのにそれらを
総称して「ストリーム」とか言ってるから>>382が全然ストリームじゃねぇって
いってんじゃねぇの?

413 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 11:09:44.44 ID:GQvjvZ3S.net]
まぁ、例えば行と列から構成されるRDBMSとかもどんどん分解してけば、
最終的にはバイトの列になるのでじゃあそれは
ストリームって言えなくもないがさすがに無理あるな・・

414 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 11:14:36.55 ID:fuS99ZTS.net]
アホだ。
悪いけどそれ抽象化とか透過的って概念が何か理解できないだけ。

仮に透過的に扱えないなら、>>376はそもそもこんな質問をしないだろう。

415 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 11:15:44.52 ID:GQvjvZ3S.net]
と書いたがいや、君の言いたいことはわかった。
それらをすごい抽象化してただの入出力先という意味でストリームって
ことにしたわけね。

416 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 11:20:46.64 ID:GQvjvZ3S.net]
なんだよ。自分で気づいたのに1分差で負けた。
まぁ、でも、ランダムアクセスとかアクセス方式の話はまとを得ない
反論の仕方だったね。誰もランダムアクセスできるのデータの並びは
ストリームじゃないなんて言ってなかったし。

417 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 19:51:43.08 ID:VNWU1qlY.net]
纏めるとリポジトリが正解ってことですね

418 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 20:40:29.39 ID:ZuKcmSv7.net]
>>403
ストリームの本来の意味を調べてから出直してこい

419 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 20:47:28.99 ID:ZuKcmSv7.net]
>>412
>>376
> あるデータDをデータベースに対して読み書きするクラスX
> あるデータDをファイル



420 名前:ノ対して読み書きするクラスY
までならリポジトリが一番しっくりくる

> あるデータDをメモリに対して読み書きするクラスZ
これはちょっと微妙だけどまあメモリーも倉庫って言えなくもないか

> あるデータDをウェブアプリに対して読み書きするクラスW
ウェブアプリの動きがわからんのでなんとも言えないかな
DB のフロントエンドみたいなものならいいけど、書き込んだらプリンターに印刷されるようなアプリだったらリポジトリって言うのは違和感あるしなぁ
[]
[ここ壊れてます]

421 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 21:22:00.83 ID:ebwGr1K/.net]
インメモリリポジトリもウェブサービスベースのリポジトリも現場では当たり前のようにつかわれてるよ
CRUD操作とトランザクション管理ができていればインフラの実態が何であれリポジトリを名乗れる
Save命令が来たらプリンタで印刷してIDをラベリングして書類棚に保管する
Load命令が来たらIDで書類棚を探してスキャナにかける
トランザクション管理はタイムスタンプ方式でいいだろう
あとはバックエンドで作業する人を雇えば紙ベースのリポジトリが実装可能だ






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

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

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