On Wed, Jan 22, 2014 at 7:28 AM, John Locke <[email protected]> wrote:

>  Hi,
>
> I'm all for ripping out the financial code and replacing it. And I share
> Erik's concerns about stability.
>
> Would it be possible to start by defining an API that wraps the current
> code, write some tests against that API, and then be able to use that to
> verify that the new code works correctly?
>

I wish.  If the old code was testable I wouldn't be in as much a hurry to
replace it.

>
> I'm thinking either a database API of stored functions, or a web services
> API. If we could get that in place with some decent tests, we can then
> totally change the underlying schema and know when we have it successfully
> built. TDD. And we know we want both -- much of the app in the database, as
> well as a REST API.
>

Yeah, we should have test cases written with the new API.  Unfortunately
the old code depends on sloppy scoping which makes testing more or less
impossible.  I added tests at one point to GL.pm and it took me over 8
hours just to get scoping issues resolved.

Aside from the effort, the concern I have is that when we start mucking
around with tightening up scoping, we may break things.

We are better off doing what I did for 1.4 and the COGS logic which is
defining test cases I wanted the old code to pass (whether or not it did)
and then writing those for the new code.

>
> Just a thought...
>
> Cheers,
> John Locke
> http://www.freelock.com
>
>
> On 01/22/2014 12:55 AM, Chris Travers wrote:
>
>
>
>
> On Wed, Jan 22, 2014 at 12:34 AM, Erik Huelsmann <[email protected]> wrote:
>
>>
>>  On Wed, Jan 22, 2014 at 9:14 AM, Chris Travers 
>> <[email protected]>wrote:
>>
>>> Two more thoughts:
>>>
>>>>
>>>>>   Ok. This is a big one. Even though I think it's a great goal to
>>>> set, if it were up to me, I'd like to split this up in smaller tasks, if
>>>> possible.\
>>>>
>>>
>>>  At this point I don't think it is possible.  The db has to be
>>> redesigned from underneath and making that backwards-compatible is going to
>>> take almost as much time as the full rewrite.
>>>
>>>
>>>>   One thing that I think is important for the project as a whole is
>>>> that we can maintain a reasonable level of stability during the entire
>>>> rewrite -- it helps with the acceptance of the final 1.5 end result.
>>>>
>>>
>>>  Sure, but I would highly suggest that we not make the financial logic
>>> a moving target and try hard to avoid any new reports against financial
>>> tables in the mean time.  Otherwise, if it is a moving target, it will
>>> never get done.
>>>
>>>
>>  Well, my point is merely that we should strive to keep trunk in working
>> order. Maybe we should/can start this work on a branch so that even if this
>> work turns out to be infeasible (or rather: the resources to finish it turn
>> out to be unavailable), we'll still have a working trunk version.
>>
>>  Does that sound like an approach?
>>
>
>  Sure.  Just noting the moving target problem may mean delaying feature
> requests until it gets done, or doing those in the feature branch as well.
>
>  Here's my estimate as far as the minimum which will need to be redone at
> once:
>
>  1. We need a new db design of the following underlying tables: ar, ap,
> gl, acc_trans, invoice payment, payment_map, overpayment.  Providing
> read-compatibility may be possible, but write compatibility is not really
> feasible.
>
>  This means that the following have to be rewritten:
>
>  Financial transactions and sales/purchase invoices
> Reconciliation
> Payments
> The reporting queries will need to be gone through and ported to the new
> codebase.
>
>  The first three replace about 12000 lines of Perl code, most of it old
> SQL-Ledger code as well as about 1600 lines of 1.3 SQL code.
>
>  The second involves review of another 1600 lines of SQL or so.
>
>
>
>>  --
>>  Bye,
>>
>>  Erik.
>>
>>  http://efficito.com -- Hosted accounting and ERP.
>>  Robust and Flexible. No vendor lock-in.
>>
>>
>> ------------------------------------------------------------------------------
>> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
>> Learn Why More Businesses Are Choosing CenturyLink Cloud For
>> Critical Workloads, Development Environments & Everything In Between.
>> Get a Quote or Start a Free Trial Today.
>>
>> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
>> _______________________________________________
>> Ledger-smb-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel
>>
>>
>
>
>  --
> Best Wishes,
> Chris Travers
>
>  Efficito:  Hosted Accounting and ERP.  Robust and Flexible.  No vendor
> lock-in.
> http://www.efficito.com/learn_more.shtml
>   !DSPAM:52df877f173469724526679!
>
> ------------------------------------------------------------------------------
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today. 
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
>
>
> !DSPAM:52df877f173469724526679!
>
>
>
> _______________________________________________
> Ledger-smb-devel mailing 
> [email protected]https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel
>
>
>
> !DSPAM:52df877f173469724526679!
>
>
>
>
> ------------------------------------------------------------------------------
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> _______________________________________________
> Ledger-smb-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel
>
>


-- 
Best Wishes,
Chris Travers

Efficito:  Hosted Accounting and ERP.  Robust and Flexible.  No vendor
lock-in.
http://www.efficito.com/learn_more.shtml
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Ledger-smb-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel

Reply via email to