Nou llibre: GnuCash 2.4 comptabilitat per a petita empresa

GnuCash 2.4 small business accounting

L'equip de desenvolupament de GnuCash ha estat notificat sobre un nou llibre editat per PacktPub, UK:

GnuCash 2.4 comptabilitat per a petites empreses, per Ashok Ramachandran.

Aquesta és una guia del principiant per gestionar els vostres comptes.

El nostre propi desenvolupador Christian Stimming contribueix a aquest llibre com un revisor i podem recomanar de tot cor el resultat d'aquesta fructífera col·laboració. No dubteu a fer una ullada a aquest llibre a packtpub.com , i, el millor de tot, l'editor s'ha compromès a assignar un percentatge de les vendes del llibre al projecte GnuCash. Divertiu-vos amb aquest llibre!

Dimensions

Sovint pot ser molt interessant estudiar les mètriques de codi font darrere d'un projecte de desenvolupament de programari. No desperta un interès sorprenent: és comptabilitat al capdavall. Gnucash ha crescut, amb els anys, des d'una petita llista de verificació electrònica de butxaca cap a una aplicació d'escriptori bastant gran i amb moltes característiques.

Gnucash actualment consta de més d'un terç de milió de línies de codi repartits en més de mil arxius. Ha estat traduït a vint idiomes i als crèdits hi ha més de 139 autors i col·laboradors.

[code size graph]

Si heu tingut problemes nedant a través d'aquella massa de codi font, penseu en ell d'aquesta manera: imprimit en paper i enquadernat en volums, vindria a ser diverses dotzenes de còpies de "Guerra i Pau" de Tolstoi, aproximadament una prestatgeria d'amplada dedicada al codi font.

Això sí, això és codi font (i documents) elaborat i depurat pels éssers humans reals, això *no* és codi generat automàticament. Eines (com glade o swig) poden generar moltíssims milions de línies de codi automàticament; aquests no els estic comptant. Cada final de línia comptada aquí ha estat teclejada, editada, sagnada, retocada, diverses vegades, per mans humanes.

Donat que tenim uns 400 errors destacats a bugzilla, que funciona sobre un error per cada mil línies de codi, o un error per 50 pàgines de la còpia impresa. Aquest recompte d'errors en realitat no és atípic per als projectes de programari; està a prop de la norma.

La taula següent mostra alguns indicadors històrics de línies de codi i nombre d'arxius per al projecte de desenvolupament del Gnucash. Tingueu en compte que no s'ha comptat tot el codi: per exemple, les Makefiles, els configure.in i els autogen.sh no s'han comptat. Tampoc es compten els arxius que es generen automàticament, ni els arxius "prestats" d'altres projectes. Tampoc compten els arxius experimentals, varis scripts de perl, diversos convertidors, afegitons i utilitats. Finalment, glade no es compten, encara que gran part de la GUI global són descrites a Glade.

Tingueu en compte també que els KLOC no són una bona mètrica de productivitat del programador, ni tan sols que wc és una bona manera de comptar els KLOC's. Moltes mesures millors són les mètriques de complexitat, que, per exemple, compten el nombre i la mida dels blocs si-llavors-sinó, o el nombre i la mida de tots els blocs o la quantitat d'operadors matemàtics per instrucció. Potser algun dia executarem una d'aquestes eines en aquest codi. De moment, això és el que tenim. D'altra banda, hem intentat comptar únicament aquells fitxers que continguin codi editat per persones, és a dir, fitxers que són editats directament per persones. La intenció de fer-ho és evitar inflar artificialment els recomptes de KLOC comptant el codi generat automàticament (és per això que els fitxers glade no es compten: són grans i es generen automàticament).

Taula 1. Estadístiques dels desenvolupaments anteriors

Versió engine backend register ledger motif gnome aplicacions diverses import-export reports scheme business test docs txt intern Total Idiomes Crèdits d'autor
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

Cada cel·la mostra el següent:

número de fitxers *.c, *.h i *.scm (KLOCS en *.c + KLOCS en *.h + KLOCS en *.scm). Si no hi ha fitxers *.scm al directori, llavors només es mostren (KLOCS en *.c + KLOCS en *. h). Si hi ha només un nombre en el parèntesi, és el recompte KLOC d'arxiu per a aquesta estadística.

on KLOC == quilo-línies-de-codi, com informat per wc. Com s'ha dit anteriorment, el wc no és una terriblement bona mètrica de codi, però és el que tenim a la mà.

Llegenda de la columna de la taula



engine
Continguts de src/engine i els directoris continguts. El motor es va treure del codi motif a la versió 1.1. El rerefons d'emmagatzematge de dades (file-io, sql) es va treure fora en el decurs de la versió 1.5

backend
Contingut del directori src/backend (versió 1.7 i posterior) o de src/engine/file, src/engine/sql (versió 1.6 i anteriors)

register
Continguts del directori src/register (versió 1.6 i anteriors) o src/register/register-core (versió 1.7 i posterior). El registre es va extreure fora com un component separat del codi del motif a la versió 1.1. Com es pot veure a les estadístiques, el codi de register ha estat bastant estable. A la versió 1.7 i més tard, la cel·la mostra un segon recompte: el nombre de línies de codi a src/register/register-gnome (prèviament comptat com a part del gnome)

ledger
fitxers *.c, *.h al directori src únicament (versió 1.6 i anterior) o src/register/ledger-core (versió 1.7 i posterior)

motif
Continguts del directori src/motif (versió 1.2 i anteriors). La versió motif del codi es va suspendre després de la versió 1.2, després de que la majoria del codi no-gui es va traslladar al motor, al registre o al llibre major.

gnome
Continguts de src/gnome més src/register/gnome (versió 1.6 i anteriors). Per a la versió 1.7 i posteriors, consisteix en src/gnome, src/gnome-search i src/gnome-util

aplicacions diverses
Continguts de diversos directoris relacionats amb aplicacions (versió 1.7 i posteriors): src/app-file, src/app-utils, src/calculation, src/core-utils, src/gnc-module, src/network-utils, src/tax/us

import-export
Codi d'importació i exportació a diversos formats d'arxiu: contingut del directori src/import-export.

reports
Codi per generar informes i gràfics: contingut del directori src/reports.

scheme
esquema i codi de guile als directoris src/scm més src/guile (versió 1.6 i anteriors). A la versió 1.7 i posteriors, gran part d'aquest codi va anar a reports, import/export, i a mòduls individuals; per tant només queda codi heterogeni.

business
Codi per afegir característiques de petita empresa: contingut de src/business.

test
Codi per dur a terme proves de regressió automatitzades: contingut dels directoris src/*/test.

docs
Documentació per a usuari només-en-anglès, incloent-hi l'ajuda en línia i el manual (html, sgml o xml). Per a versió 1.8.4 i posteriors, el número de sota la barra compta els documents traduïts, documents en llengües diferents a l'anglès (actualment de, es, fr, pt_PT). Ambdós números són una mica difícils de comptar, per la elevada barreja de formats i diverses versions que competeixen.

txt intern
El nombre de documents de disseny i fitxers README adreçat a desenvolupadors. Això inclou arxius *.txt, arxius *.texinfo i arxius README.* en tots els subdirectoris. Per a la versió 1.7 i posteriors, només es compten aquells al subdirectori src (deixant fora alguna dotzena dispersa a d'altres llocs)

Idiomes
El nombre de llengües al que s'han traduït els missatges d'aplicació (el nombre de fitxers po/*.po). Al parèntesi, el nombre de missatges en els arxius de missatges (grep msgstr po/*.po |wc), en milers.

Crèdits d'autor
El nombre de persones que apareixen al fitxer AUTHORS (versió 1.6 i posteriors) o el fitxer README (versions anteriors). Aquests inclouen desenvolupadors principals, emissors de pedassos i traductors. Això inclou crèdits addicionals que figuren a l'arxiu gnucash-docs/AUTHORS que no surten a l'arxiu principal gnucash/AUTHORS.

Valid XHTML + RDFa

Copyright © 2001-2017 The GnuCash Project

Informes d'interrupció del servidor i del correu electrònic a: gnucash-devel@gnucash.org

Problemes de traducció? Contacteu: gnucash-devel@gnucash.org