GnuCash 2.4 računovodstvo za mala poduzeća

GnuCash 2.4 small business accounting

Ekipa GnuCash programera je saznala o novoj knjizi, koju je izdao PacktPub, UK:

GnuCash 2.4 Small Business Accounting, autor Ashok Ramachandran.

Priručnik za početnike za upravljanje kontima.

Jedan od naših programera, Christian Stimming, doprinio je ovoj knjizi kao lektor, stoga je svesrdno preporučujemo kao lektiru. Baci pogled na knjigu na packtpub.com. Najbolja stvar je ta, da je izdavač odlučio odvojiti neke postotke za GnuCash projekt. Uživaj u čitanju!

Veličina programa

Ovo je stara stranica o količini kodova za program Gnucash.

Često je zanimljivo proučiti izvorni kod projekta u brojkama. To ne iznenađujuće: na kraju krajeva, radi se o računovodstvu. GnuCash se je tijekom godina razvio od male praktične elektronske čekovne knjižice u prilično veliki program s mnogim funkcijama.

GnuCash se trenutačno sastoji od više od 300.000 redaka koda, raspoređenih u više od 1000 datoteka. Preveden je na 23 jezika i ima preko 139 autora i suradnika.

[code size graph]

Ako se izgubiš u ovoj masi izvornog koda, razmisli o tome na ovaj način: ispisano na papiru i vezano u sveske, izvorni kod bi iznosio nekoliko desetaka primjeraka Tolstojevog „Rata i mira”, otprilike širine knjižne police.

Imaj na umu, ovaj izvorni kod (i dokumenti) izrađeni su i ispravljeni od stvarnih ljudi, *nije* automatski generiran. Alati (kao što su glade ili swig) mogu generirati gazilione redaka koda automatski; njih ne uračunavam. Svaki ovdje izbrojani redak bio je utipkan, uređen, prerađen i višestruko prilagođen ljudskim rukama.

S obzirom na to da imamo oko 400 izvanrednih grešaka u bugzilli, radi se o otprilike jednoj grešci na 1000 redaka koda ili jednoj grešci na 50 ispisanih stranica. Ovaj broj grešaka zapravo nije netipičan za softverske projekte, već je u blizini norme.

Tablica u nastavku prikazuje neke povijesne podatke o brojčanom nizu koda i broju datoteka razvojnog projekta GnuCash. Imaj na umu da se ne računa cijeli kôd: npr., Makefiles i configure.in i autogen.sh se ne broje. Također, datoteke koje se automatski generiraju se ne broje, kao niti datoteke koje su „posuđene” iz drugih projekata. Također se ne broje eksperimentalne datoteke, razni perl skripti, različiti pretvarači, dodaci i pomoćni programi. Čak se i glade datoteke ne broje, iako su veliki dijelovi cjelokupnog grafičkog sučelja opisani u glade datotekama.

Imaj također na umu da KLOC‑ovi nisu dobri za produktivnost programera, kao što niie ni wc dobar način brojanja KLOC‑a. Mnogo bolje mjere su metrike složenosti, koje na primjer, broje broj i veličinu blokova if‑then‑else, broj i veličinu svih blokova ili broj matematičkih operatora po izjavi. Možda ćemo jednog dana pokrenuti jedan od tih alata na ovom kodu. Za sada, to je ono što imamo. S druge strane, pokušali smo prebrojiti samo one datoteke koje sadrže ljudski uređen kôd, tj. datoteke koje ljudi izravno uređuju. Svrha toga je da se izbjegne umjetno napuhavanje KLOC brojeva prebrojavanjem automatski generiranog kôda (zbog čega se glade datoteke ne broje: one su velike i automatski se generiraju).

Tablica 1. Povijesne statistike razvoja

Verzija engine backend register ledger motif gnome razni programi import-export reports scheme business test docs interni tekst Ukupno Jezici Autori
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

Svaka ćelija prikazuje sljedeće:

broj *c, *.h i *.scm datoteka (KLOCS u *.c + KLOCS u *.h + KLOCS u *.scm). Ako u mapi nema datoteka *.scm, prikazuje se samo (KLOCS u *.c + KLOCS u *.h). Ako postoji samo jedan broj u zagradi, to je odgovarajući KLOC zbroj za tu statistiku.

gdje je KLOC == kilo-lines-of-code (kilo‑redaka‑koda), izviješteno pomoću wc. Kao što je gore već spomenuto, wc nije jako dobra kodna metrika, ali je to što imamo pri ruci.

Legenda za stupce tablice



engine
Sadržaj src/engine i uključenih direktorija. U verziji 1.1 je mehanizam razdvojen iz motif koda. Pozadinski sustav za spremanje podataka (file‑io, sql) razdvojen je tijekom verzije 1.5.

backend
Sadržaj direktorija src/backend (verzija 1.7 i novija) ili src/engine/file, src/engine/sql (verzija 1.6 i starija).

register
Sadržaj direktorija src/register (verzija 1.6 i starija) ili src/register/register‑core (verzija 1.7 i novija). Registar je razdijeljen kao zasebna komponenta iz motif koda u verziji 1.1. Kao što se može vidjeti iz statistike, registarski kod je prilično stabilan. U verziji 1.7 i novijoj, ova ćelija pokazuje jedan drugi zbroj: broj redaka koda u src/register/register‑gnome (prethodno računato kao dio gnomea).

ledger
*.c, *.h datoteke samo u src direktoriju (verzija 1.6 i starija) ili src/register/ledger‑core (verzija 1.7 i novija).

motif
Sadržaj direktorija src/motif (verzija 1.2 i ranija). Motif verzija koda je prekinuta nakon verzije 1.2, nakon što je većina ne‑gui koda premještena u engine (mehanizam), u register (registar) ili u ledger (knjigu).

gnome
Sadržaj src/gnome plus src/register/gnome (verzija 1.6 i ranija). Za verziju 1.7 i novije, ovo se sastoji od src/gnome, src/gnome‑search i src/gnome‑util

razni programi
Sadržaj raznih programskih direktorija (verzija 1.7 i novija): src/app‑file, src/app‑utils, src/calculation, src/core‑utils, src/gnc‑modul, src/network‑utils, src/tax/us.

import-export
Kôd za uvoz i izvoz različitih formata datoteka: sadržaj direktorija src/import‑export.

reports
Kôd za generiranje izvještaja i dijagrama: sadržaj direktorija src/reports.

scheme
shema i guile kôd u direktorijima src/scm plus src/guile (verzija 1.6 i ranije). U verziji 1.7 i novijima, veći dio tog koda ušao je u izvještaje, u uvoz/izvoz te u pojedinačne module; tako da ostaju samo razni kodovi.

business
Kôd za dodavanje funkcija za male tvrtke: sadržaj direktorija src/business.

test
Kôd za automatske testove regresije: sadržaj direktorija src/*/test.

docs
Korisnička dokumentacija samo na engleskom jeziku, uključujući online pomoć i priručnik (html, sgml ili xml). Za verziju 1.8.4 i novije, broj ispod stupca broji prevedene, ne‑engleske dokumente (trenutačno de, es, fr, pt_PT). Njihove zbrojeve je nešto teže dobiti, jer se u računicu miješaju prilično veliki formati i konkurirajuće verzije.

interni tekst
Broj dizajnerskih dokumenata i README datoteka namijenjenih programerima. To uključuje *.txt datoteke, *.texinfo datoteke i README.* datoteke u svim poddirektorijima. Za verziju 1.7 i novije, broje se samo one iz src poddirektorija (ostavljajući pola tuceta raspršenih negdje drugdje).

Jezici
Broj jezika, na koje su prevedene poruke programa (broj po/*.po datoteka). U zagradama, broj poruka u datotekama poruka (grep msgstr po/*.po |wc), u tisućama.

Autori
Broj osoba navedenih u datoteci AUTHORS (autori) (verzija 1.6 i novija) ili datoteci README (starije verzije). To uključuje vodeće programere, podnositelje ispravaka i prevoditelje. Uključuje dodatne zasluge, navedene u datoteci gnucash‑docs/AUTHORS, koje nisu navedene u glavnoj datoteci gnucash/AUTHORS.

HTML5 Powered with CSS3 / Styling, and Semantics

Copyright © 2001–2023 The GnuCash Project

Prijavi probleme sa serverom na: irc://irc.gimp.net/gnucash

Problemi s prijevodom? Kontaktiraj: gnucash-devel@gnucash.org