http://www.perlmonks.org?node_id=722133


in reply to Re^4: RFC: RPG ;-)
in thread RFC: RPG ;-)

. . . as soon as I get design and requirements stuff better thought through.

*smiles* You know you need to be able to create and manage characters. All characters have, at the least, a name. Just get that up and running. Managing to adequately test a Tk application is going to be tough enough to set up without worrying about a bunch of features. Don't over-design. You have a well-defined, if very minimal, deliverable, so deliver it already! :-)


My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

Replies are listed 'Best First'.
Re^6: RFC: RPG ;-)
by pobocks (Chaplain) on Nov 07, 2008 at 02:26 UTC

    Thanks.

    On a side note... would it be worthwhile to do the interface as a module, and perhaps first implement a simpler text-based UI, with support for dropping in the TK GUI later?

    I have some idea of how I'd go about it... I'm more trying to decide if it's worthwhile.

    for(split(" ","tsuJ rehtonA lreP rekcaH")){print reverse . " "}print "\b.\n";

      Do some kind of layered design. Something along the lines of MVC as practiced in web development. Put all the logic that loads and stores data in one layer. Put the code that decides what can be done with the data in another layer. The final layer will display the data.

      Your display code talks only to the control code, and your data code talks only to control.

      By separating all this stuff out, it makes it easy to change UIs. It also makes your code easier to write tests for.

      There has been some discussion of how to organize a big gui app here. A bit of supersearching should turn it up.


      TGI says moo

      Why build it to be a drop-in replacement right now? You don't even know what kind of datastructures you're going to have. You're overthinking this. Literally just get something so stupidly basic it sounds like it won't be useful for anything out there right now. Then get the next version out there 7 days later. And the next 7 days after that. And so on and so forth. Linux 0.01 didn't have a windowing system - it barely booted up an x86 processor.

      My criteria for good software:
      1. Does it work?
      2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

        I think you're right to some degree, although I still want to have a little more planned out in terms of high level things (basically an overall goal to work towards (to be amended as needed) and a roadmap (to be amended as needed)).

        I figure I'll be ready to set up the git repo sometime mid next week.

        for(split(" ","tsuJ rehtonA lreP rekcaH")){print reverse . " "}print "\b.\n";