byvoid.com
域名年龄: 15年8个月4天HTTP/1.1 301 永久重定向 服务器:nginx/1.10.3 (Ubuntu) 访问时间:2019年07月16日 14:34:35 类型:text/html 文件大小:194 连接:keep-alive 目标网址:https://www.byvoid.com/ HTTP/1.1 200 OK 服务器:nginx/1.10.3 (Ubuntu) 访问时间:2019年07月16日 14:34:35 类型:text/html; charset=utf-8 Transfer-Encoding: chunked 连接:keep-alive 语言环境:Express 网页标记:W/"15c36-ppUP6D54wz0NmP9CAqTzJQ" Content-Encoding: gzip 网站编码:utf-8
網誌列表標籤項目遊記關於ResumeLogoSlides聯繫歡迎訪問Welcome to BYVoid.com. You can browse in English, Traditional Chinese or Simplified Chinese.歡迎光臨BYVoid.com,您可以使用英文、正體中文、簡體中文瀏覽本站。七月82019作者:BYVoid複式記賬Beancount版本管理可維護性重構注意力資源可讀性旅行日記自動扣費Beancount複式記賬(四):項目管理Beancount系列文章的前三篇已經基本覆蓋了常用的複式記賬方法。記賬本身是一門經驗的學問,不僅包括賬本身怎麼記,還包括了「賬本」怎麼整理。這篇文章不涉及複雜的會計學概念,只是從更加微觀的角度來講一講我實際記賬過程中是怎麼組織的。版本管理文本記賬的最大優勢就是它便於使用版本管理系統,像管理代碼一樣管理賬本。最常見的代碼版本管理工具就是git了,所以我推薦使用git管理Beancount的賬本文件。使用git的好處是提升賬本的可維護性,尤其是能夠防止不小心改錯、誤刪這樣的動作,這在重構的過程中極其重要。git如何使用我不再贅述,對於會寫代碼的人來說屬於基本技能。即使不熟悉,網上的資料和教程也是汗牛充棟了,更有Sourcetree這樣的可視化工具。惟一需要注意的是,你需要保管好你的git倉庫,尤其是要避免盲目上傳到Github之類的網站。賬本信息屬於非常敏感的個人隱私,因爲其中可以透露出的信息非常豐富,甚至超過了日記能包含的。如果要上傳git倉庫備份,至少要使用支持私人倉庫的服務,或者自己搭建git服務器(支持SSH即可)。最好在上傳之前對整個倉庫加密,譬如使用git-crypt。標籤標籤是一個講交易組織歸類的方法,是開支類別之外的另一個維度。每一個交易都能加上一個或多個標籤:2019-06-01 * "奧地利航空" "東京-維也納" #2019-07-Europe-TripExpenses:Transport:Airline 600 USDLiabilities:US:CreditCard:Citi標籤的作用是方便查詢,在fava和bean-query中都可以按照標籤來過濾。爲了避免重複,Beancount還提供了標籤堆棧語法:pushtag #2019-07-Europe-Trip2019-06-01 * "奧地利航空" "東京-維也納"Expenses:Transport:Airline 600 USDLiabilities:US:CreditCard:Citi2019-06-01 * "奧地利航空" "維也納-莫斯科"Expenses:Transport:Airline 100 USDLiabilities:US:CreditCard:Citipoptag #2019-07-Europe-Trip除了標籤,Beancount還提供了一個類似的語法^,叫做鏈接(Link),本質上和標籤是一樣的作用,但是被建議用作將財務上關聯的交易組織在一起的方法。常見的使用場合是有時間跨度的一筆交易,例如匯款和收款,短期的債務,按次記錄但是按月徵收的某些銀行手續費,或者僅僅是兩個目的一致的交易。2016-05-03 * "Chase" "取現" ^2016-05-overdraftAssets:Bank:US:Chase:Checking -75 USDAssets:Cash:USD 50 USDExpenses:Finance:BankFee:Overdraft 25 USD2016-05-05 * "Chase" "還清欠款" ^2016-05-overdraftAssets:Bank:US:Chase:Checking 25 USDAssets:Bank:US:Chase:Saving多文件組織到此爲止我一直假設所有的Beancount記錄都是在單一文件中的,這個文件會隨着賬目的增多越來越膨脹,直到用編輯器維護不便。使用單一文件就像把一個巨大的程序寫到一個源文件中一樣,閱讀和修改都很困難。所以Beancount提供了include文件包含語法,用法和多數編程語言一樣。include後面緊跟着要引入的文件名,路徑是相對於當前文件的。; main.beancountinclude "accounts.beancount"include "categories.beancount"include "books/books.beancount"; books/books.beancountinclude "2016.beancount"include "2017.beancount"include "2018.beancount"include "2019.beancount"利用這個簡單的語法,一個巨大的賬本就可以分成若干個較小的賬本組合起來了。要注意,到目前(Beancount 2.2.1)爲止,標籤堆棧和文件包含是不能組合使用的,也就是說標籤堆棧內的include的文件不會自動加上標籤。我在Beancount的問題列表提出了這個問題,作者的答覆是也許以後會實現。賬本劃分接下來我終於要講到我的經驗之談了。儘管有文件包含語法,但每條記錄到底怎麼劃分還是一個見仁見智的話題。我使用了三種分割方法,分別是按日期劃分、按類別劃分和按賬戶劃分。這三種劃分方式都有道理,各有優劣。總而言之,劃分的目的是減少錯誤的可能,降低維護成本,節約注意力資源。下面我詳細說來。按日期劃分按日期劃分賬本是最直接的分割方法,我們可以按年份或者月份創建文件(譬如2019.beancount),每個文件內只包含這段時間內的記賬。一般來說除非是修正錯誤或者重構,舊的賬不會再修改,使用當前的賬本來記賬,把過去的賬分割儲存是一種有效節約注意力資源的方法。除了按照日曆時間劃分,還可以結合標籤,把某些事件提取出來,最常見的是旅行。下面這個例子是我把2019年7月關於歐洲旅行的賬目全部放到2019-07-Europe-Trip.beancount中,並且結合標籤堆棧,把整個文件中的賬目標記上#2019-07-Europe-Trip標籤。; 2019-07-Europe-Trip.beancountpushtag #2019-07-Europe-Trip2019-06-01 * "奧地利航空" "東京-維也納"Expenses:Transport:Airline 600 USDLiabilities:US:CreditCard:Citi...poptag #2019-07-Europe-Trip使用單獨的文件來記錄某個時間段的某類事件相關的開銷的好處是,一旦這個事件結束,這個文件就可以進入封存狀態了。此外,
© 2010 - 2020 网站综合信息查询 同IP网站查询 相关类似网站查询 网站备案查询网站地图 最新查询 最近更新 优秀网站 热门网站 全部网站 同IP查询 备案查询
2025-01-16 06:30, Process in 0.0041 second.