Hi,
I create a new topic for my newest version of my framework PerlUIM. I'm working on this version since one or two months now (Design & Drafts). I started the code today to establish a first base and maybe get feedbacks from people using perl SDK.
So first, why a new version ? :
- Because i now have advanced skills in perl and CA UIM.
- Because v4 is a refactoring of all wrongs code of v1<->v3
- Because the solution for _local methods is not good enougth.
- No emitter is seriously a big pain to trace and debug codes.
- Allow asynchronous code.
Most of my new API(s) are inspired from JAVA SDK or from my own experience ( Perl or NodeJS binding ).
Repository (with examples) : GitHub - fraxken/perluim5: CA UIM (Nimsoft) Perl Object-Oriented framework. Version 5 of perluim series.
So let get started with version 5 core features :
A) New request object to replace nimRequest and nimNamedRequest
- Multiple time execution (define one time, use multiple times).
- Built-in emitter
- Built-in retry
- Timeout support. UNIX ONLY
- Overbus param ( define if we use nimRequest or nimNamedRequest in request.pm )
- PDS Auto-parser (in and out).
Default methods are fucked for Object-Oriented programming. (Same for JAVA SDK..). In other hand we are forced to provide a typed PDS ( -_-' ... Dynamic typing guy !!! ). So creating an auto-parsing layer seem to be a very good way to simplify this.
B) Event class
All frameworks class will be extended by the Event class. It will help a lot with debugging and tracing issues.
C) Logger class
Re-implement the logger class from Perluim V4.2+ but with a TimeZone support and a better overall stability.
D) Server class
- Map all default events with a better Object-Oriented Sugar.
- Register callback. (Support for Args Hash).
- Schedule callback.
Provide a daemon probe with the ability to run timed callback ( interval or fixed date ). All of this will be possible because of Event core class.
---
And after that i have to work on how re-implementating probes callbacks etc.. Not sure how i will implement all of this for now. But i want to create a map of class for all probes (with maybe an abstraction layer / default layer).
New rules :
- Only one argument (reference hash). A interface with key => val.
before(arg1,arg2);
after({ arg1 => 'v1' , arg2 => 'v2'});
The goal is to provide clear interface with better handling of optional parameters. And in the same way explicit call.
---
I'm open to any feedsback !
Best Regards,
Thomas