GnuCash 2.4 Contabilidad para pequeños negocios

GnuCash 2.4 small business accounting

El equipo de desarrollo de GnuCash ha recibido noticias de un libro nuevo publicado por PacktPub, UK:

GnuCash 2.4 Contabilidad para pequeño negocio, por Ashok Ramachandran.

Esto es una guía de principiantes para el manejo de sus cuentas.

Nuestro desarrollador Christian Stimming ha estado contribuyendo a este libro como revisor y solo podemos recomendar el resultado de esta productiva colaboración. Echa un vistazo al libro en packtpub.com. Y lo mejor de todo es que la editorial se ha comprometido a destinar un porcentaje de las ventas del libro al proyecto GnuCash. ¡Disfrute del libro!

Dimensionamiento

Esta es una página antigua sobre el tamaño del código de Gnucash.

A menudo puede ser muy interesante estudiar las métricas del código fuente tras un proyecto de desarrollo de software. No un interés sorprendente: es contabilidad a pesar de todo. GnuCash ha crecido, a lo largo de años, desde un pequeñas casillas de manipulación electrónica a una aplicación de escritorio multi-características grande.

GnuCash actualmente consta de más de un tercio de un millón de líneas de código repartido en más de mil archivos. Ha sido traducido a veintitrés idiomas y acredita a más de 139 autores y colaboradores.

[code size graph]

Si ha tenido problemas para atravesar esa masa de código fuente, piense de esto de esta manera: impreso en papel y encuadernado en volúmenes, equivaldría a varias docenas de ejemplares de «La guerra y la paz» de Tolstoi, aproximadamente el valor de un código fuente del ancho de una estantería.

Eso sí, este es el código fuente (y los documentos) creados y depurados por humanos reales, este *no* es un código auto-generado. Las herramientas (como glade o swing) pueden generar miles de millones de líneas de código automáticamente; no estoy contando esos. Cada última línea contada aquí fue escrita, editada, sangrada, retocada, varias veces, por manos humanas.

Ya que tenemos alrededor de 400 defectos esperando en el bugzilla, que funciona acerca de un error por miles de líneas de código, o un fallo por cada 50 páginas de impresión. Esta iteración de fallos actualmente no es muy atípica para proyectos de software; es cercano a lo normal.

La tabla siguiente muestra algunas líneas-de-código históricas y número-de-filas métricas para el proyecto de desarrollo de GnuCash. Note que no todo lo del código está enumerados: por instante los Makefile y configure.in y autogen.sh no están enumerados. Además, los archivos que son generados automáticamente no están enumerados, ni hay archivos que han sido “prestados” desde otros proyectos. También no contados son ficheros experimentales, script de perl adicionales, varios conversores, agregados y utilidades. Finalmente, los archivos glade no están enumerados además de partes grandes del IGU completo son descritos en archivos de glade.

Tenga en cuenta también que los KLOC no son una buena métrica de la productividad del programador, ni siquiera ese wc es una buena manera de iteración de los KLOC. Las medidas mucho mejores son las métricas de complejidad, que, por ejemplo, cuentan el número y tamaño de los bloques if-then-else, o el número y tamaño de todos los bloques, o el número de operadores matemáticos por declaración. Quizás algún día ejecutemos una de esas herramientas en este código. Por ahora, esto es lo que tenemos. Por otro lado, hemos intentado contar solo aquellos archivos que contienen código editado por humanos, es decir, archivos que son editados directamente por humanos. El objetivo de hacer esto es evitar inflar artificialmente los recuentos de KLOC contando el código generado automáticamente (razón por la cual los archivos de glade no se cuentan: son grandes y se generan automáticamente).

Tabla 1. Estadísticas de Desarrollo Histórico

Versión engine backend register ledger motif gnome app miscelánea import-export reports scheme business test docs txt interno Total Idiomas Reconocimiento de 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 celda representa lo siguiente:

número de ficheros *c y *.h y *.scm (KLOCS en *.c + KLOCS en *.h + KLOCS in *.scm). Si no hay archivos *.scm en el directorio, entonces solamente (KLOCS en *.c + KLOCS en *.h) son desplegados. Si solamente hay un número dentro de paréntesis, es la iteración apropiada de KLOC para esa estadística.

donde KLOC == líneas-kilo-de-código, como informaron por wc. Como anotó encima, wc no es una métrica de código terriblemente bueno, pero es lo que tenemos a mano.

Leyenda de Columna de Tabla



engine
El contenido de src/engine y los directorios incluidos. El motor fue desdoblado desde el código motif en la versión 1.1. El backend de almacenaje de datos (file-io, sql) fue dividido en el trascurso de la versión 1.5.

backend
Contenido del directorio src/backend (versión 1.7 y posterior) o de src/engine/file, sec/engine/sql (versión 1.6 y anterior).

register
Contenido del directorio src/register (versión 1.6 y anterior) o src/register/register-core (versión 1.7 y posterior). El registro se dividió como un componente separado del código de motivo en la versión 1.1. Como se puede ver en las estadísticas, el código de registro ha sido bastante estable. En la versión 1.7 y posteriores, esta celda muestra un segundo recuento: el número de líneas de código en src/register/register-gnome (anteriormente contado como parte de GNOME).

ledger
Archivos *.c, *.h dentro del directorio src únicamente (versión 1.6 anteriores) o src/register/ledger-core (versión 1.7 y posteriores).

motif
El contenido del directorio src/motif (versión 1.2 y anterior). La versión motif del código fue abandonado tras la versión 1.2, después muchos del código distinto de la IGU fue trasladado a cualquiera del motor, el registrador o el libro mayor.

gnome
Contents of src/gnome plus src/register/gnome (version 1.6 and earlier). For version 1.7 and later, this consists of src/gnome, src/gnome-search and src/gnome-util

app miscelánea
Contenido de varios directorios relacionados con aplicaciones (versión 1.7 y posteriores): src/app-file, src/app-utils, src/calculate, src/core-utils, src/gnc-module, src/network-utils, src/tax/us.

import-export
Código para importar y exportar varios formatos de fichero: contenido del directorio src/import-export.

reports
Código para generar informes y gráficos: contenidos del directorio src/reports.

scheme
código scheme y guile en directorios src/scm más src/guile (versión 1.6 y anteriores). En versión 1.7 y posterior, mucho de este código se envió dentro de informes, importar/exportar, y dentro de módulos individuales; como solamente código misceláneo remanente.

business
Código para agregar características de pequeños negocios: contenidos del directorio src/business.

test
Código para realizar pruebas de regresión automatizadas: contenido de los directorios src/*/test.

docs
Documentación del usuario solo en inglés, incluida la ayuda en línea y el manual (html, sgml o xml). Para la versión 1.8.4 y posteriores, el número debajo de la barra cuenta los documentos traducidos que no están en inglés (actualmente de, es, fr, pt_PT). Estos dos números son algo difíciles de contar, debido a las pérdidas de formato bastante grandes y las múltiples versiones de la competencia.

txt interno
El número de documentos de diseño y archivo README destinados a desarrolladores. Esto incluye archivos *.txt, archivos * .texinfo y archivos README. * En todos los subdirectorios. Para la versión 1.7 y posteriores, solo se cuentan los del subdirectorio src (dejando fuera una media docena dispersa en otros lugares).

Idiomas
El número de idiomas que los mensajes de la aplicación han sido traducidos a (el nombre de ficheros po/*.po). En paréntesis, el número de mensajes dentro de los ficheros de mensaje (grep msgstr po/*.po |wc, en miles.

Reconocimiento de Autor
El número de gente acreditada en el archivo AUTHORS (versión 1.6 y posterior) o el README (versiones anteriores). Estos incluyen desarrolladores en la cabecera, envíos de parches y traductores al idioma nativo. Esto incluye reconocimientos adicionales declarados dentro del archivo gnucash-docs/AUTHORS que no están declarados dentro del archivo principal de gnucash/AUTHORS.

HTML5 Powered with CSS3 / Styling, and Semantics

Copyright © 2001–2022 The GnuCash Project

Notificaciones de interrupción del servidor y correo-e a: irc://irc.gnome.org/gnucash

¿Problemas de traducción? Contacto: gnucash-devel@gnucash.org