Downloaden

Nieuw boek: GnuCash 2.4 Small Business Accounting

GnuCash 2.4 small business accounting

Het GnuCash ontwikkelteam ontving bericht over een nieuw boek, uitgegeven door PacktPub (UK):

GnuCash 2.4 Small Business Accounting, geschreven door Ashok Ramachandran.

Deze handleiding voor het beheren van uw rekeningen is geschreven voor beginners.

Onze eigen ontwikkelaar Christian Stimming heeft als proeflezer bijgedragen aan dit boek; wij kunnen de uitkomst van deze vruchtbare samenwerking van harte aanbevelen. Daarnaast heeft de uitgever toegezegd om een zeker percentage van de verkoopopbrengst ten gunste van het GnuCash-project te laten komen. Neem dus vooral even een kijkje op packtpub.com!

Statistieken

Het kan vaak heel interessant zijn om de statistieken van een software ontwikkelingsproject te bestuderen. Een evidente interesse: boekhouding en statistiek gaan tenslotte goed samen. Door de jaren heen is GnuCash uitgegroeid van een een klein, handig, elektronisch chequeboekje to een redelijk grote bureaublad toepassing met een uitgebreide functieomvang.

GnuCash bestaat momenteel uit meer dan driehonderd vijftigduizend broncoderegels verdeeld over meer dan duizend bestanden. Het is vertaald naar 23 talen en heeft bijdragen ontvangen meer dan 139 auteurs.

[code size graph]

Als je je die massa broncode moeilijk kan voorstellen, beschouw het dan als volgt: afgedrukt op papier en in boeken ingebonden, zou dit overeenkomen met een paar dozijn exemplaren van Tolstoj's "Oorlog en Vrede", ongeveer een volledige boekenplank gevuld met broncode.

Mind you, this is source code (and docs) crafted and debugged by actual humans, this is *not* autogenerated code. Tools (such as glade or swig) can generate gazillions of lines of code automatically; I'm not counting those. Every last line counted here was typed in, edited, indented, tweaked, multiple times, by human hands.

Gezien dat we ongeveer 400 open bugs hebben in bugzilla, komt dit uit op ongeveer één bug per duizend regels code, of één bug per 50 afgedrukte pagina's. Deze bug verhouding is eigenlijk niet abnormaal voor software projecten; ze is in de buurt van de norm.

De onderstaande tabel toont enkele historische aantal-coderegels en aantal-bestanden statistieken voor het GnuCash ontwikkelingsproject. Merk op dat niet alle code geteld is: bijvoorbeeld, de Makefiles, configure.in en autogen.sh zijn niet geteld. En ook bestanden die automatisch gegenereerd worden, zijn niet meegeteld, net zo min als bestanden die van andere projecten 'geleend' werden. Voorts niet geteld zijn experimentele bestanden, allerlei perl scripts, diverse conversie hulpmiddelen, toevoegingen en hulpmiddelen. Tenslotte, glade bestanden worden niet geteld, hoewel grote delen van de algemene GUI in glade bestanden beschreven is.

Merk ook op dat KCR's geen goede maatstaf zijn voor de productiviteit van ontwikkelaars. Bovendien is wc geen goede manier om KCR's te tellen. Veel betere metingen zijn complexiteitsstatistieken die bijvoorbeeld het aantal en de grootte van if-then-else blokken tellen, of het aantal en de groote van alle blokken, of het aantal wiskundige operatoren per statement. Misschien gebruiken we ooit wel eens zo'n hulpmiddel op deze code. Voorlopig is dit wat we hebben. Van de andere kant hebben we geprobeerd om enkel de bestanden te tellen die door mensen bewerkte code bevatten, d.w.z., bestanden die rechtstreeks door mensen bewerkt zijn. De reden hiervoor is het artificieel opblazen van de KCR tellingen te vermijden door automatisch gegenereerde code mee te tellen (dit is waarom glade bestanden niet meegeteld worden: deze zijn groot en automatisch gegenereerd).

Tabel 1. Historische ontwikkelingsstatistieken

Versie engine backend register ledger motif gnome diverse app import-export reports scheme business test docs interne txt Totaal Talen Auteurs
xacc-0.9 Sept 97 - - - - 34 files (7.5+0.9) - - - - - - - 5 files (0.4) 1 file (0.1) 40 files (8.8) 1 1
xacc-0.9w Dec 97 - - - - 51 files (13.8+1.5) - - - - - - - 9 files (0.8) 1 file (0.1) 61 files (16.2) 1 2
xacc-1.0.17 Feb 98 - - - - 52 files (14.8+1.8) - - - - - - - 12 files (1.4) 4 files (0.3) 68 files (18.3) 1 7
gnucash-1.1.15 Aug 98 24 files (6.2+1.5) - 31 files (6.1+1.7) 5 files (1.4+0.4) 30 files (7.4+0.7) 17 files (3.4+0.5) - - - 3 files (0.3) - - 16 files (1.9) 17 files (1.8) 159 files (34.7) 1 (0.17) 25
gnucash-1.2.2 Aug 99 41 files (10.2+3.6) - 28 files (5.5+1.7) 14 files (2.4+0.6) 26 files (8.7+0.5) - - - - 14 files (1.4) - - 30 files (2.6) 15 files (1.8) 168 files (39.0) 3 (0.54) 41
gnucash-1.3.6 April 2000 41 files (12.9+4.0) - 32 files (6.8+2.1) 19 files (4.0+0.8) - 78 files (32.2+3.0) - - - 74 files (4.0+0.7+12.3) - - 33 files (7.8) 25 files (4.5) 302 files (95.1) 5 (4.3) 61
gnucash-1.4.6 Sept 2000 43 files (13.0+3.6) - 27 files (5.9+2.0) 24 files (5.4+1.8) - 82 files (33.8+3.0) - - - 68 files (4.0+0.7+15.5) - - 36 files (9.3) 36 files (4.8) 316 files (101.9) 7 (6.0) 82
gnucash-1.4.12 April 2001 43 files (13.1+3.6) - 27 files (5.9+2.0) 24 files (5.4+1.8) - 82 files (33.5+3.0) - - - 73 files (4.0+0.7+17.7) - - 43 files (11.5) 39 files (6.0) 331 files (108.2) 12 (17.8) 97
gnucash-1.5.2 Sept 2000 46 files (14.9+3.7) - 29 files (6.3+2.0) 25 files (5.7+1.8) - 83 files (35.8+2.9) - - - 73 files (4.6+0.8+16.8) - - 37 files (10.7) 48 files (8.2) 341 files (114.2) 8 (7.8) 89
gnucash-1.6.0 June 2001 139 files (42.8+8.3) - 28 files (5.7+2.0) 23 files (10.1+1.5) - 132 files (60.0+4.2) - - - 102 files (6.2+0.8+27.3) - - 64 files (12.1) 69 files (12.9) 455 files (193.9) 11 (18.7) 123
gnucash-1.7.2 November 2002 104 files (28.7+7.8+3.3) 89 files (30.0+3.3) 34 files (5.2+2.0)
29 files (10.5+1.2)
17 files (9.4+0.7) - 143 files (56.0+4.7+0.9) 75 files (17.0+2.5+5.1) 78 files (11.1+1.5+7.3) 38 files (2.4+0.1+14.2) 17 files (3.4) 94 files (19.9+1.9+4.5) 72 files (7.9+0.1+0.7) 83 files (22.2) 62 files (11.6) 935 files (297.1) 21 (56.1) 130
gnucash-1.8.4 June 2003 100 files (29.7+8.3+3.4) 89 files (30.1+3.3) 35 files (5.3+2.0)
31 files (10.7+1.2)
17 files (10.2+0.8) - 151 files (58.7+5.1+1.1) 71 files (16.9+2.6+5.2) 86 files (13.3+1.8+7.5) 52 files (2.4+0.2+15.1) 17 files (4.1) 98 files (21.5+2.0+5.1) 76 files (8.6+0.2+0.7) 24 files (13.8)
199 files (80.3)
69 files (14.3) 1115 files (385.5) 23 (62.4) 139

Elke cel geeft het volgende weer:

aantal *.c *, .h en *.scm bestanden (KCR's in *.c + KCR's in *.h + KCR's in *.scm). Al er geen *.scm bestanden zijn in de map, dan wordt enkel (KCR's in *.c + KCR's in *.h) getoond. Als er maar één enkel getal tussen haakjes staat, dan is dat het geschikte KCR-aantal voor die statistiek.

waarbij KCR == kilo-coderegels, zoals weergegeven door wc. Zoals eerder vermeld is wc geen bijzonder goed meetinstrument, maar het is wat we beschikbaar hebben.

Legenda tabelkolommen



engine
Inhoud van de src/engine en de include mappen. De engine is van de motif code afgesplitst in versie 1.1. De data opslag backend (file-io, sql) is afgesplitst in de loop van versie 1.5

backend
Inhoud van de src/backend map (versie 1.7 en later) of van src/engine/file, src/engine/sql (versie 1.6 en eerder)

register
Inhoud van de src/register map (versie 1.6 en eerder) of src/register-core (versie 1.7 en later). De register code is van de motif code afgesplitst in een aparte component in versie 1.1. Zoals afgelezen kan worden uit de statistieken, is de registercode vrij stabiel gebleven. In versie 1.7 en later toont deze cel een tweede telling: het aantal coderegels in src/register/register-gnome (voordien meegeteld als deel van gnome)

ledger
*.c, *.h bestanden, enkel in de src map. (versie 1.6 en eerder) of in src/register/ledger-core (versie 1.7 en later)

motif
Inhoud van de src/motif map (versie 1.2 en eerder). De motif versie van de code is opgeheven na versie 1.2, nadat de meeste non-gui code verhuisd was naar engine, register of ledger.

gnome
Inhoud van src/gnome en src/register/gnome (versie 1.6 en eerder). Voor versie 1.7 en later bestaat dit uit src/gnome, src/gnome-search en src/gnome-util

diverse app
Inhoud van allerei mappen die verband houden met de toepassing (versie 1.7 en later): src/app-file, src/app-utils, src/calculation, src/core-utils, src/gnc-module, src/network-utils, src/tax/us

import-export
Code voor de import en export van diverse bestandsformaten: inhoud van de src/import-export map.

reports
Code om rapporten en grafieken te genereren: inhoud van de src/reports map.

scheme
scheme en guile code in mappen src/scm en src/guile (versie 1.6 en eerder). In versie 1.7 en later is veel van deze code verhuisd naar reports, import/export en naar individuele modules; hierdoor blijft de restcode over.

business
Code om functies voor kleine ondernemingen toe te voegen: inhoud van de src/business map.

test
Code om automatische regressietesten uit te voeren: inhoud van de src/*/test mappen.

docs
Gebruikersdocumentatie (enkel Engelstalig), inclusief de online hulp en handleiding (html, sgml of xml). Voor versie 1.8.4 en later telt het getal onder de streep de vertaalde, niet-Engelstalige docs (momenteel de, es, fr, pt_PT). Beide getallen zijn tamelijk moeilijk te tellen door vrij grote veranderingen in het bestandsformaat en verschillende concurrerende versies.

interne txt
Het aantal ontwerpdocumenten en README-bestanden bestemd voor ontwikkelaars. Dit omvat *.txt bestanden, *.texinfo bestanden en README.* bestanden in alle submappen. Voor versie 1.7 en later worden enkel deze in de src map geteld (hiermee ruim zes andere vindplaatsen negerend)

Talen
Het aantal talen waarin de toepassingsberichten vertaald zijn (het aantal po/*.po bestanden). Tussen haakjes het aantal berichten in de berichtenbestanden (grep msgstr po/*.po |wc), in duizendtallen.

Auteurs
Het aantal mensen vermeld in het AUTHORS bestand (versie 1.6 en later) of het README bestand (eerdere versies). Dit omvat hoofdontwikkelaars, instuurders van patches en vertalers. Bevat tevens extra vermeldingen uit het gnucash-docs/AUTHORS bestand die niet vermeld zijn in het gnucash/AUTHORS hoofdbestand.

Valid XHTML + RDFa

Copyright © 2001-2014 The GnuCash Project

Storingsmeldingen server & e-mail naar: gnucash-devel@gnucash.org

Vertaalproblemen? Meld het op: gnucash-devel@gnucash.org