Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.3 / 3....
  • LibreOffice 3.6.6 / 4.0.3
  • MPlayer 1.1.1
  • systemd 204
  • Arch Linux 2013.05.01
  • Blender 2.67
  • KDE Software Compilatio...
  • CrunchBang Linux Stable...
  • Elementary OS 0.1 / 0.2...
  • SystemRescueCd 3.6.0
  • Home > Linux > Programming > Perl Modules

    MooseX::Role::BuildInstanceOf 0.08

    Download button

    No screenshots available
    Downloads: 232  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    John Napiorkowski | More programs
    Perl Artistic License / FREE
    February 3rd, 2012, 14:53 GMT
    ROOT / Programming / Perl Modules

     Read user reviews (0)  Refer to a friend  Subscribe

    MooseX::Role::BuildInstanceOf description

    Less Boilerplate when you need lots of Instances

    MooseX::Role::BuildInstanceOf is a Perl module that provides less boilerplate when you need lots of instances.

    Developer comments

    There can often be a tension between coding for flexibility and for future growth and writing code that is terse, to the point, and solves the smallest possible business problem that is brought to you. Writing the minimum code to solve a particular problem has merit, yet can eventually leave you with an application that has many hacky modifications and is hard to test in an isolated manner. Minimum code should not imply minimum forward planning or poorly tested code.

    For me, doing the right thing means I need to both limit myself to the smallest possible solution for a given business case, yet make sure I am not writing CODE that is impossible to grow over time in a clean manner. Generally I attempt to do this by clearly separating the problem domains under a business case into distinct classes. I then tie all the functional bits together in the loosest manner possible. Moose makes this easy, with its powerful attribute features, type coercions and Roles to augment classical inheritance.

    Loose coupling and deep configurability work well with inversion of control systems, like Bread::Board or the IOC built into the Catalyst MVC framework. It helps me to defer decisions to the proper authority and also makes it easier to test my logic, since pieces are easier to test independently.

    Although this leaves me with the design I desire, I find there's a lot of repeated boilerplate code and logic, particularly in my main application class which often will marshall several underlying classes, each of which is performing a particular job. For example:

     package MyApp::WebPage;

     use Moose;
     use Path::Class qw(file);
     use MyApp::Web::Text;

     has text => (is=>'ro', required=>1, lazy_build=>1);

     sub _build_text {
     file("~/text_for_webpage")->slurp;
     }



    Product's homepage

    Requirements:

    · Perl

      


    TAGS:

    build instance | Perl module | MooseX | build | instance

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM