トップページ > プログラム > 2016年06月14日 > dYSnVaKQ

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

4 位/187 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000200310101000008



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
オブジェクト指向システムの設計 171 [無断転載禁止]©2ch.net

書き込みレス一覧

+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
655 :デフォルトの名無しさん[sage]:2016/06/14(火) 10:11:55.55 ID:dYSnVaKQ
>>653
最適解が「シャローコピー」となる、その主語はなに?
何に関して議論してるの?
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
332 :デフォルトの名無しさん[sage]:2016/06/14(火) 10:21:33.16 ID:dYSnVaKQ
Webアプリケーションではない、それほど小さくはないツールをrubyを使って書こうとしてます。
規模は、Model数でいうと20個くらいです。
Controller的なものもRubyで、Viewはありません。

で、データベースアクセスにActiveRecordを使ってみようと思ったんですが、establish_connection()に
250msくらいかかってしまいます(localのPostgreSQLに対して)。
これだと、Model用のテストで、データベース接続だけで250*20=5秒もかかってしまいます。

これを改善する方法はありますか?
・establish_connection()そのものを速くする方法
・test/unitを使ったテストでデータベース接続を共有する方法など

環境は、
ruby 2.3.1p112
activerecord (4.2.6)
CentOS release 6.8
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
661 :デフォルトの名無しさん[sage]:2016/06/14(火) 13:11:10.09 ID:dYSnVaKQ
>>659
> シリアライズ不可能なオブジェクト
それ、そもそも問題設定がおかしくないか?

もともとはオブジェクトをコピーするときの話で、その目的・実現方法による分類として
シャローコピーとディープコピーがある。

シリアライズ不可能なオブジェクトでもシャローコピーで良い場合もあれば悪い場合もある。
それは目的によって異なるというだけのこと。
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
662 :デフォルトの名無しさん[sage]:2016/06/14(火) 13:20:14.73 ID:dYSnVaKQ
>>689からも話が続いてるとして、
> 一口にdeep copyといってもいろいろ問題があるわけで「この問題にあなたはどう考えているのか?」
> この問題は個々がdeep copyする状況によって解決策が変わるだろうからあなたの考えがな聞きたかった

つまり、ディープコピーしたいんだが、ある項目についてはそれが難しいという話でしょ?
で、その問題解決の最適解がシャローコピー?

>>636の
> オブジェクト変更するから、変更前の「前回オブジェクト」を持っておきたいとか、
> 保存ボタン押すときに、保存の必要性あるか確認したいから、オブジェクトと退避オブジェクトを比較したい、その退避オブジェクトを作るとか
目的でディープコピーをしたいのだという人と、根本的に議論がかみ合ってない。
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
334 :デフォルトの名無しさん[sage]:2016/06/14(火) 13:58:36.80 ID:dYSnVaKQ
>>333
情報サンクス。

irubyはハードルが高そうなので、とりあえずjrubyで試してみるかと思ったけど、jruby + pg + activerecordな
環境を作るのさえハードルが高そうです。

$ irb
irb(main):001:0> require 'pg'
=> true
irb(main):002:0>
となるのに、
$ ruby test.rb
Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
というエラーが。

$ ruby -v
jruby 9.1.2.0 (2.3.0) 2016-05-26 7357c8f Java HotSpot(TM) 64-Bit Server VM 25.45-b02 on 1.8.0_45-b14 +jit [linux-x86_64]

ちょっとあきらめモードです。
Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net
336 :デフォルトの名無しさん[sage]:2016/06/14(火) 14:24:28.45 ID:dYSnVaKQ
>>335
モデルの数=models/*.rbのファイル数=test/*_test.rbのファイル数
となると思ってます。

*_test.rbを1プロセスでまとめて実行できれば、データベース接続も共有できそうな気がするんですが、
現状では*_test.rbそれぞれを別プロセスで実行し、それぞれデータベースに接続してます。

全体的にActiveRecordを使った方が楽になりそうではあるんですが、ノウハウが無いのと接続が
遅いということで、現状はPG::connect()して直接pgのメソッドを使ってコーディングを進めてます。
オブジェクト指向システムの設計 171 [無断転載禁止]©2ch.net
159 :デフォルトの名無しさん[sage]:2016/06/14(火) 16:49:38.14 ID:dYSnVaKQ
建築業は、アナロジーやメタファーとして使われてる(ことが多い)だけで、別にソフトウェア開発が建築業の
具体的プロセスのノウハウを取り入れてるわけじゃないと思うよ。

建築模型士という職業が成立するということと、プロトタイピングが重要なことに、関連性はないと思うよ。

建築業とソフトウェア開発が何か密接な関係があると思われてるのは、クリストファー・アレグザンダーが
建築家だったせいかもしれん。
+ JavaScript の質問用スレッド vol.120 + [無断転載禁止]©2ch.net
666 :デフォルトの名無しさん[sage]:2016/06/14(火) 18:07:30.48 ID:dYSnVaKQ
あなたの主張はわかった。
=> でもそれは間違ってる
=> 私が間違っていた
=> あなたも正しいが、私の主張も正しい
のどれだろうか。


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