גנוקאש 2.4 חשבונאות לעסקים קטנים

GnuCash 2.4 small business accounting

צוות פיתוח גנוקאש קיבל הודעה אודות ספר חדש שהוצא לאור על ידי PacktPub, בריטניה:

גנוקאש 2.4 חשבונאות לעסקים קטנים, מאת אשוק רמאכרנדרן.

מדריך למתחילים לניהול חשבונות אישיים.

המפתח שלנו כריסטיאן סטימינג תרם כבר לספר זה כמבקר, אנחנו יכולים להמליץ בלב שלם על תוצאות שיתוף הפעולה הפורה הזה. חפשו את הספר ב-packtpub.com, יתרה מזאת, המוציא לאור התחייב להקצות חלק מהכנסות מכירות הספרים, לפרויקט גנו-קאש. תיהנו עם הספר!

שִׁדּוּד

זהו דף עתיק על שידוד קוד גנוקש.

לעתים, עשוי להיות די מעניין לחקור את מתווה קוד המקור שמאחורי פרויקט פיתוח תוכנה. לא עניין מפתיע: זוהי החשבונאות אחרי הכל.גנוקאש גדלה במהלך השנים, מפנקס המחאות אלקטרוני קטן ושימושי, עד תכנת שולחן עבודה גדולה ורבת-תכונות.

כיום גנוקאש מכילה מעל שליש מיליון שורות קוד, הפזורות על פני יותר מאלף קבצים. היא תורגמה לעשרים ושלוש שפות ומזכה מעל 139 כותבים ותורמים.

[code size graph]

אם התקשיתם לשחות בתוך המסה הזו של קוד מקור, חשבו על זה כך: מודפסים על נייר, וכרוכים לכרכים, זה היה מסתכם בכמה עשרות עותקים של "מלחמה ושלום" מאת טולסטוי, בערך אורך של מדף ספרים במונחים של קוד מקור.

לתשומת לב, זהו קוד מקור (ומסמכים) נבנה ונופה מתקלים על ידי בני אדם אמתיים, זה *לא* קוד שחולל אוטומטית. כלים (כגון גלייד או סוויג) יכולים ליצור אין ספור שורות קוד באופן אוטומטי; אלו לא נלקחו בחשבון. כל שורה מדוברת כאן, עד האחרונה שבהן, הוקלדה, נערכה, הוזחה, עודנה, יותר מפעם אחת, בידיים אנושיות.

בהתחשב בכך שיש לנו כ -400 תקלים פתוחים בבוגזילה, זה שיוצא בערך תקל אחד לאלף שורות קוד, או תקל אחד לכל 50 עמודים של תדפיסים. כמות תקלים זו למעשה אינה חריגה בפרויקטי תוכנה; למעשה זה קרוב לתקן.

הטבלה שלהלן מציגה מדדי שורות קוד ומספר הקבצים בפרויקט פיתוח גנוקאש . לתשומת לב, לא כל הקוד נספר: למשל, Makefiles ו- configure.in ו- autogen.sh לא נספרים. כמו כן, קבצים שנוצרו אוטומטית לא נספרים, וגם לא קבצים אשר "הושאלו" מפרויקטים אחרים. מן הסתם, גם לא נספרים קבצים ניסיוניים, תסריאים שונים בפרל, ממירים שונים, תוספים וכלי עזר. לבסוף, קבצי glade לא נספרים, למרות שחלקים גדולים במנשק המשתמש הכללי מתוארים בקבצי glade .

לתשומת לב, KLOC אינו מדד טוב למדידת תפוקת תכניתנים, אפילו wc אינה דרך טובה לספור KLOC. מדדים טובים בהרבה הם מדדי מורכבות, אשר למשל סופרים את המספר והגודל של מקטעי אם-אז-אחר, או את המספר והגודל של כל המקטעים, או את מספר המפעילים המתמטיים לכל משפט. אולי מתישהו נפעיל את אחד הכלים הללו על הקוד שלנו. לעת עתה זה מה שיש לנו. מצד שני, ניסינו לספור רק את הקבצים המכילים קוד בעריכה אנושית, כלומר קבצים שנערכים ישירות על ידי בני אדם. המטרה היתה למנוע ניפוח מלאכותי של ספירות KLOC על ידי ספירת קוד שנוצר אוטומטית (ולכן קבצי glade לא נספרים: הם גדולים ומחוללים אוטומטית).

טבלה 1. מצב פיתוח הסטורי

גרסה engine backend register ledger motif gnome ישומים שונים import-export reports scheme business test docs TXT פנימי סך הכל שפות מזכה יוצרים
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

כל תא מציג את הבאים:

מספר קבצי * c ו- * .h ו- * .scm (KLOCS ב * .c + KLOCS ב * .h + KLOCS ב * .scm). אם אין קבצי * .scm בספריה, רק (KLOCS ב * .c + KLOCS ב * .h) מוצגים. אם יש רק מספר אחד בסוגריים, זה ספירת KLOC המתאימה לנתון זה.

כאשר KLOC == קילו-שורות קוד, כפי שהזוכר מעלה wc. כאמור, wc הוא לא מדד קוד מאוד טוב, אבל זה מה שיש לנו זמין.

מקרא עמודות טבלה



engine
תוכן SRC/engine והספריות הכלולת. המנוע פוצל מקוד המוטיב בגרסה 1.1. שרת אחסון הנתונים (file-io, sql) פוצל במהלך יצירת גרסה 1.5

backend
תוכן ספריית src/backend (גרסה 1.7 ואילך) או src/engine/file, src/engine/sql (גרסה 1.6 ומעלה)

register
תוכן ספריית src/register (גרסה 1.6 ומעלה) או src/register/register-core (גרסה 1.7 ואילך). היומן פוצל כמרכיב נפרד מקוד המוטיב בגרסה 1.1. כפי שניתן לראות מהנתונים הסטטיסטיים, קוד היומן היה יציב למדי. בגרסה 1.7 ואילך, תא זה מציג ספירה משנית: מספר שורות הקוד ב- src/register/register-gnome (נספר בעבר כחלק מ- gnome)

ledger
* .c, * .h קבצים בספריית src בלבד (גרסה 1.6 ומעלה) או src/register/ledger-core (גרסה 1.7 ואילך)

motif
תוכן ספריית src/motif (גרסה 1.2 ומעלה). גרסת המוטיב של הקוד הופסקה לאחר גרסה 1.2, לאחר שרוב הקוד שאינו gui הועבר למנוע, ליומן או לכרטסת.

gnome
תוכן src/gnome בתוספת src/register/gnome (גרסה 1.6 ומעלה). לגרסה 1.7 ואילך, מורכב מ- src/gnome, src/gnome-search ו- src/gnome-util

ישומים שונים
תוכן ספריות שונות הקשורות ליישומים (גרסה 1.7 ואילך): src/app-file, src/app-utils, src/calculation, src/core-utils, src/gnc-module, src/network-utils, src/tax/us

import-export
קוד לייבוא וייצוא במבני קובץ שונים: תוכן מחיצת src/ייבוא-ייצוא.

reports
קוד ליצירת דוחות ותרשימים: תוכן מחיצת src/דוחות.

scheme
סכמה וקוד guile בספריות src/scm יחד עם src/guile (גרסה 1.6 ומעלה). בגרסה 1.7 ואילך, חלק גדול מהקוד הזה נכנס לדוחות, לייבוא/לייצוא ופירקנים פרטניים; וכך נותר רק קוד 'אחר'.

business
קוד להוספת תכונות עסקיות קטנות: תוכן ספריית src/business.

test
קוד לביצוע בדיקות רגרסיה אוטומטיות: תוכן ספריות src/*/test.

docs
תיעוד משתמשים בשפה האנגלית בלבד, כולל עזרה מקוונת ומדריך (html, sgml או xml). בגירסה 1.8.4 ואילך, המספר שמתחת לסרגל סופר את המסמכים המתורגמים, שאינם באנגלית (כרגע de, es, fr, pt_PT). שני המספרים הללו קצת קשים לספירה בגלל חיבורים במבנה גדול למדי, וריבוי גרסאות מתחרות.

TXT פנימי
מספר מסמכי העיצוב וקבצי README המיועדים למפתחים. בכלל זה קבצי * .txt, * קבצי .texinfo וקבצי README. * בכל ספריות המשנה. מגירסה 1.7 ואילך נספרים רק אלה שבספריית המשנה src (לא נכללים כחצי תריסר המפוזרים במקומות אחרים)

שפות
מספר השפות שאליהן מסרי היישום תורגמו (מספר קובצי po/*.po ). בסוגריים, מספר המסרים בקבצי המסר (grep msgstr po/*.po |wc), באלפים.

מזכה יוצרים
מספר האנשים שזוכו בקובץ AUTHORS (גרסה 1.6 ואילך) או בקובץ README (גרסאות קודמות). אלה כוללים מפתחים מובילים, מגישי תיקונים ומתרגמים לשפות רב-לאומיות. בכולל זה זיכויים נוספים המופיעים בקובץ gnucash-docs/AUTHORS שלא רשומים בקובץ gnucash/AUTHORS הראשי.

HTML5 Powered with CSS3 / Styling, and Semantics

Copyright © 2001–2021 The GnuCash Project

שרת & משלח דוחות ניתוק בדואר אלקטרוני אל: irc://irc.gnome.org/gnucash

בעיות תרגום? צור קשר עם: gnucash-devel@gnucash.org