Preuzimanja

GnuCash 2.4 računovodstvo za mala poduzeća

GnuCash 2.4 small business accounting

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

GnuCash 2.4 Small Business Accounting, autor Ashok Ramachandran.

Vodič za početnike o upravljanju kontima.

Jedan od naših razvijatelja, Christian Stimming, je doprinio ovoj knjizi kao lektor, stoga ti je možemo svesrdno preporučiti 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

Često je zanimljivo proučiti izvorni kôd 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 veliku desktop aplikaciju s mnogim funkcijama.

GnuCash se trenutačno sastoji od više od 300 000 redaka kôda, 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 kôda, razmisli o tome na ovaj način: ispisano na papiru i vezano u sveske, izvorni kȏd bi iznosio nekoliko desetaka primjeraka Tolstojevog „Rata i mira”, otprilike širine knjižne police.

Imaj na umu, ovaj izvorni kôd (i dokumenti) izrađeni su i ispravljeni od stvarnih ljudi, *nije* automatski generiran. Alati (kao što su glade ili swig) mogu generirati gazilione redaka kôda 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 kôda 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 kôda 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 kôdu. 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 razne aplikacije 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‑kôda), izviješteno pomoću wc. Kao što je gore već spomenuto, wc nije jako dobra kôdna 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 kôda. 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 kôda u verziji 1.1. Kao što se može vidjeti iz statistike, registarski kôd je prilično stabilan. U verziji 1.7 i novijoj, ova ćelija pokazuje drugi broj: broj redaka kôda u src/register/register‑gnome (prethodno računano 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 kôda je prekinuta nakon verzije 1.2, nakon što je većina ne‑gui kôda 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

razne aplikacije
Sadržaj raznih direktorija vezanih uz aplikaciju (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 kôda ušao je u izvještaje, u uvoz/izvoz te u pojedinačne module; tako da ostaju samo razni kôdovi.

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 kasnije, 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 višestruke 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 aplikacije (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.

Valid XHTML + RDFa

Copyright © 2001–2019 The GnuCash Project

Prijavi probleme sa serverom na: gnucash-devel@gnucash.org

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