顯示包含「記帳」標籤的文章。顯示所有文章
顯示包含「記帳」標籤的文章。顯示所有文章

2013年9月2日星期一

自製記帳軟件 - 工具


唐吉訶德的馬盾與
決定了要自製記帳軟件之後, 就要面對用什麼樣的工具來完成這個"唐吉訶德"式的壯舉. 畢竟唐吉訶德再荒唐也有一匹瘦馬, 一面皮盾, 和一支長予

"En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor." - Don Quijote de la Mancha

在 "自製記帳軟件 - 原因" 中已經簡單地說了罐頭式軟件的幾種主要限制: 彈性, 分工及版權. 為了要避免這幾種限制, 在決定工具前我花了不少時間去研究十多個廠商的開發軟件及資料庫伺服器的功能, 特性及版權. 在兼顧了自己的開發能力, 輔助工具, 價格及普及性後, 我決定了以Microsoft Access 及 MySQL Community Server 作前店後居式的配搭來開發自家製的記帳軟件.

前店
我知道很多IT人對 Microsoft Access 都是不屑一顧, 但是我選擇的原因是它可以大幅度減輕我開發的負擔, 尤其不用跟DLL打交道, 就已經功德無量, 更不用提它簡單的報表(Report)設計系統了. 另方面 Microsoft 一直很負責任地提供 Microsoft Access Runtime 給用戶免費下載, 令到在分發及佈署在客戶端時更方便容易. 當然 Microsoft Access 都有它的不足之處; 第一, 它是一個檔案式的資料庫管理系統; 第二, 資料檔容易損壞. 雖然有如此重大的缺點, 但是用作使用者介面(不儲存資料), 它的內建功能是可以讓我相對而言輕鬆地完成任務.

後居
選擇 MySQL Community Server 是一個折衷的方案. 自Oracle 於2009年收購並將 MySQL 納入為旗下產品線後, 開源社區便一直擔心 MySQL Community Server 會逐漸被 Oracle 遺棄. 有見於此, Michael Widenius 於2009年推出了MariaDB, 一個完全與MySQL相容的開源資料庫管理系統 (海豚對上海獅). 那為何我還是選擇以MySQL來開發呢? 因為 Oracle 提供了豐富的免費工具如MySQL Workbench等, 讓我可以更直覺地設計 Schema. 換句話說, 因為我懶...

後居的居所
MySQL Community Server 雖然叫伺服器, 但是它並不是一個完整的作業系統, 所以要找一個作業系統如 Microsoft Windows 來讓它住進去並提供服務. 但是為了省錢又要穩定, 我最後選擇了CentOS, 一個 Red Hat Enterprise Linux 的開源版, 來作這個"後居的居所". 等等! Linux 不是很複雜的嗎? 呵呵,  十年前 Linux 可能是很複雜很難上手, 但是現在各個 Linux Distributions 已經非常之 Down to the Earth 了. 如果有興趣的可以從 Ubuntu, Fedora, 及 CentOS 等 Distributors 下載他們的 Live CD ISO, 然後燒成開機光碟, 再插入電腦內後享受一下非視窗系的另類風格. 但小心不要按了 Install to Hard disk 的選項, 除非你知道自己在幹什麼...

聲明: 文中所提及的商標及產品名稱均屬其版權及商標持有人.

2013年9月1日星期日

自製記帳軟件 - 原因


"我要寫一個記帳軟件!" 
每當有人在大小討論區提出這樣的豪言壯語時, 周遭的網友大都會回問: "為什麼不買一個現成的?" 是啊, 坊間現成的記帳軟件已經發展的非常成熟而且價格相宜, 實在沒理由自己大費周張去寫的. 但是罐頭式的軟件也有它們的局限, 要不然市場上也不會有那麼多獨立的軟件公司提供客制化的記帳軟件.

獨一無二
每一間公司都是獨一無二的, 各有不同需要, 罐頭式記帳軟件雖然可以應付到大部份的工作要求, 但是去到枝末小節時, 它們的局限就會變得刺眼. 我親身體驗過, 記帳後還要用Microsoft Excel去做報表的苦況...

多人作業問題
記帳通常都是團隊分工的: 出單, 入單, 出納, 批核等等不同崗位都需要即時和系統溝通. 但是罐頭式記帳軟件通常都是單機版並以檔案形式儲存資料, 即是只能安裝在一台電腦之上, 那又如何多人共同作業呢. 雖然有些品牌有多推出多人版本, 但是它們通常是透過內聯網以檔案分享形式來達至多人作業. 這就帶出一個危機出來: 如果那個檔案損毀了怎麼辦? 如果是單機使用, 檔案損毀的機率是很低的, 但是在網絡中分享檔案, 其損壞的機率是高很多的. 電力或網絡不穩, 隨機的封包掉失, 客戶端突然斷聯等再加上單機本身已經有可能發生的故障, 這些都令檔案損毀的可能性大增.

版權成本
過去罐頭式記帳軟件都是沒有限制公司數目, 就好像Microsoft Excel一樣, 你喜歡建立多少檔案也可以. 但是幾年前開始, 有軟件公司已經改變這種授權方式, 每一套軟件都只能建立一定數量的公司, 如果多於此數則需要跟他們買額外的授權. 對於一般公司來說, 這並沒有什麼不便, 但是對於有提供簿記服務的會計樓, 這就會增加他們的營運成本.

當然還有很多其他的理由去支持編寫一套屬於自己的記帳軟件, 但我就不一一細數. 光是上述三點已經足夠讓我執意去完成這個"唐吉訶德"式的夢. 或許背後推動自己的是 "I Can! Can You?" 這種虛榮吧.