As a retired Senior Project Manager responsible for maintaining many million 
lines of code I offer the following advice:

1. Stop and think.
2. Mark up the existing GUI's to indicate changes.
3. Write the New User's Manual and the System Adminstrator's Guide and 
Reference manual (tedious)
4.  Select an IDE and non make build system (CMake,Scons, etc.)
4. Write subroutine headers that compile and link
5. Complete coding (very boring)

If you doubt my wisdom, ask Scott Meyers to confirm Ted Creedon's advice.

Stay away from C++ unless you have significant decades of experience.

ROM effort for 1,000,000 lines of code / 100 lines per sub /per day = 10,000 
subroutines /365= more time than we have..

=> We're prisoners of the existing code.

Ted Creedon, P.E.
________________________________________
From: gnucash-devel <gnucash-devel-bounces+tcreedon=easystreet....@gnucash.org> 
on behalf of John Ralls <jra...@ceridwen.us>
Sent: Wednesday, October 5, 2016 12:12:59 AM
To: Dave
Cc: gnucash-devel@gnucash.org
Subject: Re: Are There Plans For A GUI Overhaul?

> On Oct 5, 2016, at 6:34 AM, Dave <linuxlu...@gmail.com> wrote:
>
> Thanks for the great responses! It does clarify quite a bit.
>
>
> From the looks of things, it seems that the C -- C++ port would have the
> most impact right now. It would take me awhile to get my C/C++ abilities
> ramped up again. Where's the best place to start learning about gnucash
> code? I don't know when I'd be able to start helping, but I'd at least want
> to learn what I could.

I think the best leverage for an additional developer at this point would be to 
work on extracting the business logic from the GUI code. That work could be in 
C since it's mostly extract function refactors and the extracted functions have 
to be callable by the C GUI.

Part of that same job is to extract and combine the common code from Register 
and Register2; when Bob wrote it his vision was that the Reg2 stuff would work 
well enough that we could just drop Register, so he just copied the Register 
code and modified it. It didn't work out that way and it's become something of 
a maintenance headache because whenever we touch the guts of Register we have 
to remember to make the same changes in Register2. That hasn't always happened, 
so there are probably bugs that have been fixed in Register that still exist in 
Register2.

To start learning the code read through the Doxygen documentation at 
http://code.gnucash.org/docs/MASTER and browse the code at 
https://github.com/gnucash/gnucash.

For refreshing your C++ skills bear in mind that we're using C++11, templates, 
and shallow hierarchies (sometimes called "modern C++"). Have a look at 
http://wiki.gnucash.org/wiki/C%2B%2B, in particular 
http://wiki.gnucash.org/wiki/C%2B%2B#Developer_Preparation.

Regards,
John Ralls



_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to