Loading ...
Sorry, an error occurred while loading the content.
 

Re: [pcgen_developers] Code/Arch Team Meeting 6 PM Eastern, Fri March 9, 2012.

Expand Messages
  • Martijn Verburg
    Hi all, So a couple of questions/comments from the meeting log: 1.) Overall comment - That was a really useful read and it s great to see some more monolithic
    Message 1 of 8 , Mar 11, 2012
      Hi all,

      So a couple of questions/comments from the meeting log:

      1.) Overall comment - That was a really useful read and it's great to
      see some more monolithic stuff get split out!

      It would be good if the core pieces of the discussion were captured
      and added to the Architecture section in the wiki. Connor is this
      something you could tackle alongside Tom? If this is too much like
      'day job' work then ignore me, the meeting log captures things well
      enough that we can point developers at it.

      2.) ReferenceFacade question:

      (10:17 AM) cpmeister: right now there are a few classes which form the
      base of the event/listener system
      (10:18 AM) cpmeister: one of them is the ReferenceFacade, which simply
      holds a reference to an object and the UI can attach listeners to it
      when the reference changes
      (10:18 AM) [Arch_SB]thpr: That would be for something like Race?
      (which the PC can have only one)?
      (10:18 AM) cpmeister: indeed
      (10:19 AM) cpmeister: its up to the facade layer implementation to
      make sure that these references stay up to date when changes in the
      core occur
      (10:20 AM) James[Code_SB]: One important feature is that the reference
      detects if the set is change and only fires events when a change
      happens

      Connor states that "its up to the facade layer implementation to make
      sure that these references stay up to date when changes in the core
      occur". Is this something that we can guide the developers to
      remember by enforcing a contract (perhaps an interface) here?

      3.) LstSystemLoader Deprecation

      (10:59 AM) cpmeister: well, the new loaders are composed of code
      copied from the LstSystemLoader, so the LstSystemLoader is also
      deprecated
      (11:00 AM) [Arch_SB]thpr: ok
      (11:00 AM) cpmeister: the loading process is the same, but the code
      has just moved
      (11:01 AM) [Arch_SB]thpr: I see, so CampaignFileLoader and
      SourceFileLoader at this point
      (11:01 AM) [Arch_SB]thpr: and GameModeFileLoader
      (11:01 AM) cpmeister: yes

      I noticed this in the code when some new deprecation warnings popped
      up. Sadly the LstSystemLoader javadoc didn't tell me what it had been
      replaced by ;-). I assume it's OK if I reference the 3 new classes in
      the Javadoc for others to follow?

      That's all from me for now, hopefully will not be sleeping off jetlag
      for the next one!

      K
    • thpr
      ... SOMETHING needs to make it onto the Wiki; IMHO the why of the decisions is not best captured in Javadoc - it needs to be at a higher level. ... I m not
      Message 2 of 8 , Mar 11, 2012
        --- In pcgen_developers@yahoogroups.com, Martijn Verburg <martijnverburg@...> wrote:
        >
        > Hi all,
        >
        > So a couple of questions/comments from the meeting log:
        >
        > 1.) Overall comment - That was a really useful read and it's great to
        > see some more monolithic stuff get split out!

        SOMETHING needs to make it onto the Wiki; IMHO the "why" of the decisions is not best captured in Javadoc - it needs to be at a higher level.


        > 2.) ReferenceFacade question:
        >
        > Connor states that "its up to the facade layer implementation to make
        > sure that these references stay up to date when changes in the core
        > occur". Is this something that we can guide the developers to
        > remember by enforcing a contract (perhaps an interface) here?

        I'm not sure we want a contract there - I tend to try to avoid creating situations like that (because unless it's a template, it's forgotten anyway, and templates can produce problems from forcing a certain hierarchy and certain assumptions - they are good in certain cases, but I'm not sure it's the best solution here)

        I think the solution here is to take the event driven core (Facets) and attach it to the event-desiring UI. Right now, PlayerCharacter.java is a disservice in this, in that it basically presents a static front (basically no events as passed out of the facets).

        As the facets are updated to indicate what really is the presentation (output) layer vs. the core facets, then I think it makes sense to have the Facades directly subscribing to core events.

        > 3.) LstSystemLoader Deprecation
        >
        > I noticed this in the code when some new deprecation warnings popped
        > up. Sadly the LstSystemLoader javadoc didn't tell me what it had been
        > replaced by ;-). I assume it's OK if I reference the 3 new classes in
        > the Javadoc for others to follow?

        I tend to agree here. Having a pointer as to where things go should always be a requirement when things are deprecated.

        We also have some ambiguity in what it means to be deprecated. I'm not terribly thrilled with "preventive deprecation" (as we seem to have in SettingsHandler), when there is no place to point and say "this method is now over here". I'd rather stick to deprecated means there is already another way to do it, so we don't have warnings that really can't be fixed.

        For those that don't like my perspective on deprecation of SettingsHandler, go un-deprecate it and look at the change in warning count in pcgen.gui2.* ... the hundreds (thousands?) of warning messages that disappear then allows the few dozen remaining warnings to stand out, some of which need some analysis as to whether they are real problems... (I think some are problems, but I sense they are hidden in the overwhelming list of deprecation warnings)

        TP.
      Your message has been successfully submitted and would be delivered to recipients shortly.