גנוקאש 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 והספריות הכלולת. המנוע פוצל מקוד motif בגרסה 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