[#401849] If statement — Masoud Ahmadi <lists@...>

Will anyone be able to point out what I am doing wrong.

15 messages 2012/12/02

[#401987] Trying to get "translator" to work — JD KF <lists@...>

So, basically, I'm trying to get the below code to work properly for

12 messages 2012/12/06

[#402012] Need help to select some listbox item in different listbox together — Jonathan Masato <lists@...>

Hello,

10 messages 2012/12/07

[#402045] if n belongs to set a and m belongs to set b repeat some steps, How? — "zubair a." <lists@...>

We can do so in java and similar languages like:

11 messages 2012/12/08

[#402078] Time.new(2001, 12, 3).to_i returns wrong value — Robert Buck <lists@...>

I am doing something that not many do, I am writing a database driver

9 messages 2012/12/09

[#402145] How I can create/extract a variable/hash into the current binding in Ruby? — Ramon de C Valle <rcvalle@...>

Hi,

12 messages 2012/12/12

[#402205] Wondering About Flatiron School — "Kevin Y." <lists@...>

Hi everyone!,

35 messages 2012/12/15
[#402207] Re: Wondering About Flatiron School — Chad Perrin <code@...> 2012/12/15

On Sat, Dec 15, 2012 at 11:51:08AM +0900, Kevin Y. wrote:

[#402214] Ruby quick reference arranged in ASCII sequence? — Old Grantonian <lists@...>

As a ruby beginner, I would be grateful for any links to a ruby

17 messages 2012/12/15

[#402226] print - and strip text between tags using Nokogiri — Paul Mena <lists@...>

I'm a Ruby Newbie trying to write a program to process thousands of HTML

13 messages 2012/12/15

[#402332] Perl to Ruby: regex captures to assignment. — "Derrick B." <lists@...>

Hello all,

37 messages 2012/12/19
[#402342] Re: Perl to Ruby: regex captures to assignment. — "Derrick B." <lists@...> 2012/12/20

First of all, thanks for the fast responses!

[#402352] Re: Perl to Ruby: regex captures to assignment. — Robert Klemme <shortcutter@...> 2012/12/20

On Thu, Dec 20, 2012 at 1:38 AM, Derrick B. <lists@ruby-forum.com> wrote:

[#402357] Re: Perl to Ruby: regex captures to assignment. — "Derrick B." <lists@...> 2012/12/20

Robert Klemme wrote in post #1089733:

[#402359] trying to strip characters from a line — Paul Mena <lists@...>

I'm reading a table from a MySQL database and then processing it row by

18 messages 2012/12/20

[#402394] simple division: -9 / 5 = -2 what? — "Derrick B." <lists@...>

$ irb

13 messages 2012/12/22

[#402412] POLS and string-handling — Paul Magnussen <lists@...>

Hi,

14 messages 2012/12/22

[#402460] "Open" dialog of Windows — "Damián M. González" <lists@...>

Hi guys, been researching about pop up the "open" file dialog of

11 messages 2012/12/24

[#402466] How do I install Ruby on my Ubuntu 12.10 partition. — Kaye Ng <lists@...>

I already have Ruby installed on my Windows 7 partition.

23 messages 2012/12/25

[#402510] Ruby Association Certified Ruby Programmer — Sean Westfall <lists@...>

How well respected is this certification in the industry: Ruby

27 messages 2012/12/27
[#402528] Re: Ruby Association Certified Ruby Programmer — Peter Hickman <peterhickman386@...> 2012/12/27

On 27 December 2012 01:28, Sean Westfall <lists@ruby-forum.com> wrote:

[#402555] numeric? — Brandon Weaver <keystonelemur@...>

I've found a bit of an annoyance trying to find out if a number is numeric

20 messages 2012/12/27

[#402580] Ruby Koans regarding Hashes. — "Derrick B." <lists@...>

I am trying to understand this, so let me know how I do. :) I know

18 messages 2012/12/28

[#402609] can't open new ruby program under "new" context menu — "Lee V." <lists@...>

I'm stuck on the new version at trying to do something very simple.

10 messages 2012/12/28

[#402642] require "test/unit" — "Mattias A." <lists@...>

Hi,

17 messages 2012/12/29
[#402667] Re: require "test/unit" — "Mattias A." <lists@...> 2012/12/31

Hi Dami=C3=A1n M. Gonz=C3=A1lez!

[#402747] Re: require "test/unit" — "Derrick B." <lists@...> 2013/01/04

Mattias A. wrote in post #1090700:

[#402749] Re: require "test/unit" — sto.mar@... 2013/01/04

Am 04.01.2013 19:48, schrieb Derrick B.:

Re: by value - by reference, circular reference

From: Robert Klemme <shortcutter@...>
Date: 2012-12-16 15:33:47 UTC
List: ruby-talk #402256
On Sat, Dec 15, 2012 at 7:35 PM, Michael Sas <lists@ruby-forum.com> wrote:
> Allright, thanks robert. Its clear now how this attempt failed.

Good!

> There was a working solution, where all references where class variables
> of one big class. The constructors of all classes where unparameterized.
> If a resource was needed, it was accessed through the big class. I
> didn't like this solution, because the classes where tightly coupled to
> the big class. But it was a good thing, that exchanging one resource was
> trivial.

That sounds like the god object anti pattern.  And it's made worse by
the fact that the god object was not passed around but made accessible
like a global variable (the class instance in this case).  That is
awful for testing.

> Before that the circularly intertwined classes called each others
> initialize in their constructors, where self had an adress already.
> Worked. In my opinion it was the ultimate form of cuppling.

It's difficult to properly evaluate that without more knowledge about
your use case.  It does sound though that functionality might be
improperly distributed across classes if so many of them need to know
each other.

> Now i have rather long parameterlists. I don't like that either.

You can avoid that by grouping arguments into a class of its own.  Of
course, that grouping must make sense.  Often Struct can be used to
create such containers in a single like of code.

> Another solution would be to use setter methods. But that would mean
> writing a few lines of code per initialisation extra.

Or use Struct to create classes with a number of properties.  You can
even add methods:

Window = Struct.new :width, :height, :pos_x, :pos_y do
  def paint(screen)
    screen.go_to pos_x, pos_y
    screen.paint ...
  end
end

> The latter three solution also leave the question of globally exchanging
> a resource open.
>
> The circular reference must go. But this topic is interesting. What are
> the established ways to treat circular references, long parameter lists
> and globally used (and potentially variable) objects?

There is definitively not a one size fits all solution to get rid of
all three together.  Even for individual items on your worklist
(circular refs, long parameter lists, global variables) there might be
multiple solutions.

As long as we do not know more about the nature of the application we
cannot really come up with good suggestions, I am afraid.

Kind regards

robert


--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

In This Thread

Prev Next